1. 程式人生 > >python網路程式設計之——osi7層協議

python網路程式設計之——osi7層協議

在這裡插入圖片描述

每層執行常見的物理裝置 在這裡插入圖片描述


網際網路=物理連線介質+網際網路協議
應用層:http協議等等  自己定義
傳輸層:tcp/udp協議  應用軟體埠協議
網路層: IP協議+子網掩碼   arp協議:地址解析協議,根據ip解析mac地址   資料報:報頭+內容  報頭由自己ip地址+目標ip地址+以及對報頭的描述組成
資料鏈路層:乙太網協議Ethernet    資料報:報頭+內容 基於mac地址,採用廣播的方式通訊   資料報:報頭+內容  報頭由自己mac地址+目標mac地址+以及對報頭的描述組成
物理層:輸出電訊號
結論:ip+port能確定全世界唯一的應用

1.物理層功能:主要是基於電器特性發送高低電壓(電訊號),高電壓對應數字1,低電壓對應數字0

2.資料鏈路層由來:單純的電訊號0和1沒有任何意義,必須規定電訊號多少位一組,每組什麼意思

資料鏈路層的功能:使用乙太網協議ethernet定義了電訊號的分組方式 ethernet規定: a.一組電訊號構成一組資料包,叫做幀 b.每一組資料幀分為報頭head和資料data兩部分

mac地址:每塊網絡卡出廠時都被燒製上一個世界唯一的mac地址,長度為48位2進位制,通常由12位16進位制數表示(前六位是廠商編號,後六位是流水線號)

3.網路層由來:**有了ethernet、mac地址、廣播的傳送方式,世界上的計算機就可以彼此通訊了,世界範圍的網際網路是由一個個彼此隔離的小的區域網組成的,那麼如果所有的通訊都採用乙太網的廣播方式,那麼一臺機器傳送的包全世界都會收到

網路層功能:引入一套新的地址用來區分不同的廣播域/子網,這套地址即網路地址

將兩個IP地址與子網掩碼分別進行AND運算(兩個數位都為1,運算結果為1,否則為0),然後比較結果是否相同,如果是的話,就表明它們在同一個子網路中,否則就不是。

IP協議的作用主要有兩個,一個是為每一臺計算機分配IP地址,另一個是確定哪些地址在同一個子網路。

ip常見的有IPV4和IPV6,ip地址分為公有地址和私有地址,

跨局域通訊中,ip和子網掩碼能幫我們確定目標位於哪個區域網,如果需要聯絡到目標還需要知道對方的mac地址。採用arp協議(地址解析協議),獲取目標主機的mac地址

4.傳輸層的由來:網路層的ip幫我們區分子網,乙太網層的mac幫我們找到主機,然後大家使用的都是應用程式,你的電腦上可能同時開啟qq,暴風影音,等多個應用程式,

那麼我們通過ip和mac找到了一臺特定的主機,如何標識這臺主機上的應用程式,答案就是埠,埠即應用程式與網絡卡關聯的編號。

傳輸層功能:建立埠到埠的通訊

補充:埠範圍0-65535,0-1023為系統佔用埠