python入門教程11-02 (python語法入門之互聯網協議)

互聯網的核心就是由一堆協議組成,協議就是標準,因此瞭解互聯網協議也是很是的重要的,下面咱們一塊兒來看看吧!服務器

網路基礎微信

導讀網絡

早期的電話須要有電話線、後面的大屁股電腦須要插網線、再後來的智能手機電腦須要有網卡。tcp

也就是說網絡通訊的第一步必須得先有物理鏈接介質ide

有了物理鏈接介質就能實現通訊了嗎操作系統

不一樣語言國家的人彼此之間打電話溝通,彼此都沒法理解對方說了些什麼,須要雙方都精通對方的語言或者用一種全世界通用的語言進行溝通交流才能夠解決。ip

那回到咱們的計算機,不一樣計算機之間要想實現無障礙的通訊,除了物理鏈接介質之外,也應該有一套共用的標準,只有你們都按照這個標準來,計算機之間才能實現通訊路由

這個標準咱們叫它互聯網協議!it

互聯網協議class

互聯網協議按照功能不一樣分爲osi七層或tcp/ip五層或tcp/ip四層

每層常見物理設備

交換機知識點補充

如今若是就兩臺計算機,它們之間要想通訊僅僅只須要彼此連接起來便可通訊。

那若是是多臺電腦之間想要實現彼此之間的相互通訊,該如何連接呢?

一臺電腦開多個網口插多個網線?那不成馬蜂窩了嘛?

這個時候就須要一箇中間人來幫咱們完成多臺機器之間的互聯>>>:交換機(全部連接了同一個交換機的電腦彼此之間都是互聯的)

瞭解:

三層交換機:既具備交換機功能又具備路由器功能

四層交換機:可以根據你走的是什麼協議對應找到對應的應用

每層常見運行協議

1.物理層

物理連接介質,傳遞電信號

2.數據鏈路層

物理層接收到一長串010101如何切分取值,這個事數據鏈路層的裏面的以太網協議

1.它規定了0101的二進制電信號的分組方式

2.但凡接入互聯網的機器,必須有一塊網卡

網卡(用來惟一標識全世界獨一無二的一臺計算機)每塊網卡出廠時都會被燒製上一個全世界惟一的編號,一般由12位16進制數表示(前六位是廠商編號,後六位是流水線號)

這個惟一表示計算機獨一無二的地址就叫mac地址

基於以太網協議的通訊方式

上面若是僅僅是兩臺電腦之間通訊是否是已經開業完成了,可是若是是多臺呢?如何去精準找到對方?

這裏須要知道,在同一個局域網內通訊基本靠吼!廣播,單播

弊端:廣播風暴,沒法跨局域網通訊

3.網絡層

規定了計算機都必須有一個ip地址

ip地址特色:點分十進制

有兩個版本ipv4和ipv6 爲了可以兼容更多的計算機

其中ipv4版本

​ 最小:0.0.0.0

​ 最大:255.255.255.255

IP協議能夠跨局域網傳輸而且ip地址可以惟一標識互聯網中獨一無二的一臺機器!

4.傳輸層

TCP/UDP協議都是基於端口工做的協議這是重點,後面再講,先來看,計算機之間通訊,究竟是誰和誰想通訊,是計算機自己嗎?是否是應該是我安裝在計算機上的應用軟件之間想通訊(qq,微信等),那咱們如今只是知道了如何定位全世界獨一無二的計算機,沒辦法肯定計算機之上的哪款軟件須要通訊吧?這就須要用到端口

端口(port):0~65535用來標識一臺計算機之上基於網絡通訊的應用軟件,0~1024操做系統本身用的,通常狀況下8000以後的端口咱們能夠任意使用,8000以前的一般會有相應的程序默認使用

​ ip:可以查到全世界獨一無二的計算機

​ port:可以標識一臺機器上的某個程序

​ ip+port:可以肯定全世界範圍內一臺計算機上的某個程序

TCP協議

當應用程序想經過TCP協議實現遠程通訊時,彼此之間必須先先創建雙向通訊通道,基於該雙向通道實現數據的遠程交互,該雙向通道直到任意一方主動斷開纔會失效

三次握手

創建雙向通道的過程稱之爲三次握手,創建通道的發起者能夠是客戶端也能夠是服務端,下面咱們就以客戶端先主動發起爲例

客戶端會朝服務端發送一個請求詢問服務端:"我能不能挖一條通往你家的地道"

服務端收到請求,回覆說:"好吧 你挖吧",因爲TCP是雙向通道,客戶端挖向服務端的通道只能給客戶端朝服務端發消息使用,服務端要向給客戶端發消息是沒辦法走這一條通道的,須要本身挖一條通往客戶端的通道

因此服務端在回覆贊成客戶端挖通道的同時還會問一句:"那我能不能也挖一條通往你家的通道"

客戶端收到服務端請求後客戶端到服務端的通道就挖成功了,而後也會贊成服務端的請求,服務端挖向客戶端的通道也會成功

總結:之因此稱之爲三次握手就是由於中間的服務端的贊成,和請求合併成了一次請求

四次揮手

創建一個鏈接須要三次握手,而終止一個鏈接要通過四次握手

當服務端或者客戶端不想再與對方進行通訊以後,雙方任意一方均可以主動發起斷開連接的請求,咱們仍是以客戶端主動發起爲例

客戶端因爲已經沒有任何須要發送給服務端的消息了,因此發起斷開客戶端到服務端的通道請求

服務端收到該請求後贊成了 至此客戶端到服務端的單項通道斷開

服務端這個時候不會馬上朝客戶端發器請求說那我也斷開到你家的通道吧,服務端須要想一想我手上還有沒有須要發送給客戶端的消息,若是還有的話,那我不能立馬斷開,先把數據發完才能斷

等服務端檢查完畢以後發送也沒有數據要給客戶端了,這個時候就會朝客戶端發起斷開服務端到客戶端的通道請求

客戶端贊成該請求,至此四次揮手完成

總結:揮手必須是四次,中間的兩次不能合併成一次,緣由就在於須要檢查是否還有數據須要給對方發送

UDP協議

當應用程序但願經過UDP與一個應用程序通訊時,傳輸數據以前源端和終端不創建鏈接。

當它想傳送時就簡單地去抓取來自應用程序的數據,並儘量快地把它扔到網絡上。

TCP和UDP相似於

​ TCP:打電話(你一句我一句,你儂我儂)

​ UDP: 發短信(管你看不看,發了就不關我事了)

總結

TCP---傳輸控制協議,提供的是面向鏈接、可靠的字節流服務。當客戶和服務器彼此交換數據前,必須先在雙方之間創建一個TCP鏈接,以後才能傳輸數據。TCP提供超時重發,丟棄重複數據,檢驗數據,流量控制等功能,保證數據能從一端傳到另外一端。

UDP---用戶數據報協議,是一個簡單的面向數據報的運輸層協議。UDP不提供可靠性,它只是把應用程序傳給IP層的數據報發送出去,可是並不能保證它們能到達目的地。因爲UDP在傳輸數據報前不用在客戶和服務器之間創建一個鏈接,且沒有超時重發等機制,故而傳輸速度很快

5.應用層

應用層協議:http協議,ftp協議(目前瞭解便可)

相關文章
相關標籤/搜索