在硬體層,我們通過高壓低壓電等方式傳送1/0序列實現通訊,可只有通訊雙方協商好怎麼解讀這些1/0序列才有意義,這就是資料鏈路層協議要做的事情。它就像乙個信封,把1/0序列包起來,稱之為「幀」。資料鏈路層主要有以下幾個目的:
為ip模組傳送和接收ip資料報。
為arp模組傳送arp請求和接收arp應答。
為rarp模組傳送rarp請求和接收rarp應答。
根據網路所使用的硬體不同,tcp/ip支援多種不同的鏈路層協議。其中最主要的有乙太網協議跟slip協議等。
乙太網是當今tcp/ip採用的主要區域網技術,它採用一種稱作csma/cd的**接入方法。乙太網協議的內容推薦一篇tcp-ip協議詳解(2) 小喇叭開始廣播 (乙太網與wifi協議)。
slip是一種在序列線路上對ip資料報進行封裝的簡單形式,它適用於家庭中每台計算機幾乎都有的rs-232串列埠和高速數據機接入internet。
它以下面的規則定義幀格式:
ip資料報是以end結束,為了防止把資料傳送前的雜訊也當作資料接收,一般會在前面也加上乙個end。
如果資料報中真正的出現end,用0xdb,0xdc兩個連續的字元來取代它,0xdb也被稱作slip的esc字元。
如果資料報中真的出現esc,也就是0xdb,用0xdb,0xdd來取代它。
從上面可以看出,slip幀是不帶mac碼的,因為他們直接相連嘛。它很簡單,所以還是會有一些缺陷的存在:
必須事先知道雙方的ip位址,沒辦法把本端的ip位址告知對方。
沒有型別字段,如果一條鏈路支援slip,就只能支援它。
沒有錯誤檢驗,如果出錯就只能通過上層協議來檢驗。
總結,雖然它看上去缺點多多,但是還是被大量使用當中,所以對它了解是必要的。
另外一種點對點協議是ppp:點對點協議,它解決了slip協議的所有缺點。標誌字段變成了0x7e,所以真的7e需要轉義為0x7d、0x5e,遇到真的0x7d,需要轉義為0x7d、0x5d,遇到小於0x20的也需要轉義,為的是被主機或數據機解釋為特殊的控制字元。
跟slip相比,它加了乙個位址位元組,0xff,乙個值為0x03的控制位元組,乙個2位元組的協議,和乙個2位元組的crc。
大多數的產品都支援環迴介面,以允許允許在同一臺主機上的客戶端程式和伺服器程式進行通訊。我們想象中的,在封裝的時候如果發現目的位址是環迴位址時,可以省去網路層的一些操作,但是大多數系統還是跟普通資料一樣完成了,只是在要離開網路層的時候返回給自己。
這看上去多了很多不必要的操作,但確簡化了設計。因為可以把環迴介面看作是網路層下面的另乙個鏈路層,網路層傳給它就像傳給其它鏈路層一樣。
arp為ip位址和對應的硬體位址之間提供動態對映。ip位址和mac位址的對應關係是通過arp協議傳遞到路由器和主機,每個主機和路由器都有乙個arp cache,裡面存有ip和mac位址對應的關係,但是它也有時間限制的,一般是存活時間是20分鐘。
arp請求是以廣播方式傳送的,傳送請求的主機會說:「我ip位址是***x,mac位址是******,有誰知道ip為yyyy的mac位址嗎?」擁有該ip的主機會回答「我知道,該ip位址屬於我的乙個nic(網絡卡),它的mac位址是yyyyyy。」請求是廣播的,但應答是單播的。另外,其他主機和路由器也會對比自己的ip和mac位址,如果不一樣的話就更新。
具有本地磁碟的系統引導時,一般是從磁碟上的配置檔案中讀取ip位址。但是無盤機,需要採用rarp協議來讀取ip位址,過程是從介面卡上讀取唯一的硬體位址,然後傳送乙個rarp廣播請求,請求某個主機響應該無盤系統的ip位址。
網路基礎 資料鏈路層 ARP
阿鯉在之前已經把應用層,傳輸層,網路層都總結分享了 但是還差鏈路層,今天補上 在說鏈路層之前,讓我們先認識一下乙太網 乙太網不是一種具體的網路結構,而是一種技術標準 即包含了資料鏈路層的內容,也包含了一些物理層的內容 eg 網路拓撲結構,控制訪問方式,傳輸速率等 例如乙太網中的網線必須使用雙絞線 傳...
資料鏈路層 乙太網和ARP協議
arp協議 乙太網 不是一種具體的網路,而是一種技術標準,既包含了資料鏈路層的內容,也包含了一些物理層的內容。例如 規定了網路拓撲結構,訪問控制方式,傳輸速率等 乙太網幀格式 mtu 最大傳輸單元,鏈路層限制的資料幀大小 由於資料鏈路層mtu的限制,對於較大的ip資料報要進行分包 將較大的ip包分成...
《MY網路基礎知識》 資料鏈路層之ARP協議
osi模型 協議 資料報叫法 常見裝置 五層模型 應用層 http,dhcp,ftp 報文 常見pc機,工作站,終端等 應用層表示層 會話層 傳輸層tcp udp 傳輸協議分組,分組閘道器 傳輸層 網路層 ip協議,icmp 協議,igmp協議 ip包,ip資料報 路由器,三層交換機 網路層資料鏈路...