1. 程式人生 > >網絡編程之OSI七層協議略析

網絡編程之OSI七層協議略析

端口號 廣播風暴 就是 image 組成 刪除 red 發包 災難

OSI七層協議

技術分享圖片

技術分享圖片


1 物理連接層
用高低電平模擬二進制數0101
2 數據鏈路層
以太網協議,Ethernet,要求連入網絡的計算機必要要有一塊網卡,並且規定全球每一塊網卡的mac
地址都不一樣,用12位十六進制數表示,前六位表示生產廠商,後六位表示流水線號
以太網協議的數據傳輸部分分為報頭和數據部分,報頭有18個字節組成,前6個字節為自己的mac地址,
中間6個字節是對方mac地址,後6個字節表示數據類型
以太網協議通信基本靠吼,一臺機器想要和另外一臺機器通信,同局域網內所有機器都能收到發包,其他
機器收到包後會拆包查看是否是屬於自己的包,如果不是則丟棄,如果是則讀取數據並回應,如果世界範

圍的機器都像這樣通信將是一場災難,這就是廣播風暴
知識點:以太網協議通信只能在局域網中,不能跨局域網通信

3 網絡層
IP協議,如何實現跨局域網絡通信,於是乎誕生了IP協議,IP協議規定了每臺計算機都有一個IP地址,
IP協議通信的數據傳輸部分也分為報頭和數據部分,報頭占20-60個字節,內部包含了IP版本號、自己
IP,目標IP等等數據,數據部分就是包含以太網協議中的所有內容,長度限制1500字節,超過1500字節的
數據將分片發送,IP分片是沒有校驗機制的,所有是不可靠傳輸,所以在傳輸層的數據盡可能避免到IP層分片
IP協議通信通過網關統一對外局域網進行聯系

4 傳輸層(端口協議)
TCP/UDP協議是基於端口工作的協議

TCP協議遵循3次握手4次揮手原則,每次傳輸數據需等到對方回應後才會把數據從內存中刪除,是一種可靠協議

TCP協議工作原理

技術分享圖片
port:端口,每臺計算機的端口編號由0~65535組成,前1023個端口號由操作系統占用
flask框架默認端口:5000
Django框架默認端口:8000
MySQL數據庫默認端口:3306
redis數據庫默認端口:6379

在一臺計算機上,同一時間同一端口只能有一個應用程序占用

總結:IP能唯一的表示互聯網中的某一臺計算機,port能唯一的表示一臺計算機上的一個應用程序
所以IP+PORT就可以唯一的表示互聯網中某臺計算機上的某個應用程序
補充:ARP協議的作用:通過IP地址解析MAC地址

5 應用層
HTTP,FTP等協議

網絡編程之OSI七層協議略析