在tcp/ip協議族中,鏈路層主要有三個目的:(1)為ip模組傳送和接收ip資料報;(2)為arp模組傳送arp請求和接收arp應答;(3)為rarp傳送rarp請求和接收rarp應答。tcp/ip支援多種不同的鏈路層協議,這取決於網路所使用的硬體,如以
太網、令牌環網、fddi(光纖分布式資料介面)及rs-232序列線路等。特別注意序列協議也可以作為tcp/ip的鏈路層協議。
tcp/ip協議族鏈路層中使用最多的兩種封裝格式分別是:乙太網和ieee802.。
乙太網採用一種稱作 csma/cd的**接入方法,其意思是帶衝突檢測的載波偵聽多路接入(carrier sense, multiple access with collision detection)。它的速率為10 mb/s,位址為48 bit。
ieee802是由ieee(電子電氣工程師協會) 8 0 2委員會公布了乙個稍有不同的標準集,其中8 0 2 . 3針對整個c s m a / c d網路,8 0 2 . 4針對令牌匯流排網路,8 0 2 . 5針對令牌環網路。這三者的共同特性由8 0 2 . 2標準來定義,那就是8 0 2網路共有的邏輯鏈路控制( l l c)。不幸的是,8 0 2 . 2和8 0 2 . 3定義了乙個與乙太網不同的幀格式。
上圖展示了乙太網和802.3的封裝格式。兩種幀格式都採用48bit也就是6位元組的源和目的位址,這就是常說的硬體位址,也即mac位址。接下來的兩個位元組在兩種格式中互不相同,在802.3的封裝中,長度字段表示,其後面資料的位元組長度(最大值為:65535個位元組),但不包括crc校驗。乙太網的型別字段定義了後續資料的型別。在乙太網幀格式中,型別字段之後就是資料;而在802幀格式中,跟隨在後面的是 3位元組的802.2 llc和5位元組的802.2 snap。目的服務訪問點( destination service access point,
d s a p)和源服務訪問點(source service access point, ssap)的值都設為0 x a a。cntl欄位的值設為3。隨後的3個位元組o rg code都置為0。再接下來的2個位元組型別欄位和乙太網幀格式一樣。crc欄位用於幀內後續位元組差錯的迴圈冗餘碼檢驗(檢驗和)(它也被稱為fcs或幀檢驗序列)。
乙太網和802.3標準都定義了幀的最小長度和最大長度,其中乙太網為46~1500,802.3為38~1492。所以,在ip層,當長度小於最小長度會進行填充。當長度大於最大長度會進行分片。
上圖的最下面展示了arp(位址解析協議)和rarp(逆位址解析協議)的幀格式。
slip(serial line ip)是一種在序列線路上對ip資料報進行封裝的簡單形式,它適用於rs-232串列埠和高速數據機接入internet。
說明:①ip資料報以乙個稱作end(0xc0)的特殊字元結束。同時,為了防止資料報到來之前的線路雜訊被當成資料報內容,大多數實現在資料報的開始處也傳乙個 end字元(如果有線路雜訊,那麼end字元將結束這份錯誤的報文。這樣當前的報文得以正確地傳輸,而前乙個錯誤報文交給上層後,會發現其內容毫無意義而被丟棄)。
②如果ip報文中某個字元為 end,那麼就要連續傳輸兩個位元組 0xdb和0xdc來取代它。
③如果ip報文中某個字元為slip的esc字元,那麼就要連續傳輸兩個位元組 0xdb和0xdd來取代它。
缺陷:①每一端必須知道對方的ip位址才可以傳輸。沒辦法把本端的ip位址通知給另一端。
②資料幀中沒有型別字段。如果一條序列線路用於slip,那麼它不能同時使用其他協議。
③資料幀沒有校驗和(乙太網中的crc欄位)。只能通過上層協議去發現報文的錯誤。
ppp(point to point)包含以下三個部分:
①在序列鏈路上封裝 ip資料報的方法。 ppp既支援資料為 8位和無奇偶檢驗的非同步模式。還支援面向位元的同步鏈結。
② 建立、配置及測試資料鏈路的鏈路控制協議( lcp:link control protocol)。它允許通訊雙方進行協商,以確定不同的選項。
③針對不同網路層協議的網路控制協議( ncp:network control protocol)體系。ip的ncp執行雙方協商是否對報文首部壓縮。
資料幀以標誌字元0x7e開始和結束。緊接著乙個位址字元0xff,然後是乙個控制字元0x03。接下來是協議字段,類似與乙太網中型別欄位的功能。協議字段舉例如上圖所示。crc欄位(或fcs,幀檢驗序列)是乙個迴圈冗餘檢驗碼,以檢測資料幀中的錯誤。
鏈路中遇到標誌字元0x7e的說明:
①當遇到字元0x7e時,需連續傳送兩個字元:0x7d和0x5e,以實現標誌字元的轉義。
②當遇到轉義字元0x7d時,需連續傳送兩個字元:0x7d和0x5d,以實現轉義字元的轉義。
③預設情況下,如果字元的值小於 0x20(比如,乙個ascii控制字元),一般都要進行轉義。例如,遇到字元0x01時需連續傳送0x7d和0x21兩個字元(這時,第6個位元取補碼後變為1,而前面兩種情況均把它變為0)。
ppp相對於slip的優勢:
① ppp支援在單根序列線路上執行多種協議,不只是i p協議。
②每一幀都有迴圈冗餘檢驗。
③通訊雙方可以進行ip位址的動態協商(使用ip網路控制協議)。
④ 與cslip類似,對tcp和ip報文首部進行壓縮。
大多數的產品都支援環迴介面( loopback inte***ce),以允許執行在同一臺主機上的客戶程式和伺服器程式通過 tcp/ip進行通訊。a類網路號1 2 7就是為環迴介面預留的。根據慣例,大多數系統把ip位址127.0.0.1分配給這個介面,並命名為localhost。乙個傳給環迴介面的ip資料報不能在任何網路上出現。注意只要是127開頭的位址都是環迴介面,不是只有127.0.0.1。
發往環迴介面的資料不會發往網路,同時也可以部分省略傳輸層和所有網路層的處理。
說明:①傳給環迴位址(一般是1 2 7 . 0 . 0 . 1)的任何資料均作為i p輸入。
②傳給廣播位址或多播位址的資料報複製乙份傳給環迴介面,然後送到乙太網上。
③任何傳給該主機i p位址的資料均送到環迴介面。
在第2節的圖中,我們可以看到乙太網和802.3對資料幀的最大長度都有乙個限制,其最大值分別是1500和1492位元組。鏈路層的這個特性稱作mtu,最大傳輸單元。不同型別的網路大多數都有乙個上限。如果ip層有乙個資料報要傳,而且資料的長度比鏈路層的 m t u還大,那麼 i p層就需要進行分片(fragmentation),把資料報分成若干片,這樣每一片都小於mtu。下圖是一些鏈路層協議的mtu。
當兩台主機不是直接相連,他們直接通過多個網路通訊時,重要的不是主機的mtu,而是通訊網路上的最小mtu,這稱為路徑mtu。兩台主句的路徑mtu可能不是常數,要看資料是如何選擇路徑傳輸的。
《TCP IP協議族》 資料鏈路層三
從圖1 4可以看出,在tcp ip協議族中,鏈路層主要有三個目的 1 為ip模組傳送和接收ip資料報 2 為arp模組傳送arp請求和接收arp應答。3 為rarp傳送rarp請求和接收rarp應答。tcp ip支援多種不同的鏈路層協議,這取決於網路所使用的硬體,如乙太網 令牌環網 fddi 光纖分...
《TCP IP協議詳解 卷1》 鏈路層
鏈路層主要有三個目的 1 為ip模組傳送和接收ip資料報 2 為arp模組傳送arp請求和接收arp應答 3 為rarp傳送rarp請求和接收rarp應答。乙太網鏈路層協議包含 序列介面鏈路層協議 slip ppp 環迴 loopback 驅動程式。乙太網和ieee802封裝 目的位址和源位址長度為...
TCP IP協議學習筆記 2 鏈路層
一 在tcp ip協議族中,鏈路層主要有三個目的 1 傳送和接收ip資料報。2 傳送arp請求和接收arp應答。3 傳送rarp請求和接收rarp應答。二 鏈路層的封裝格式 以ieee 802.2 802.3 rfc1042 和乙太網的封裝格式 rfc894 為例 需要注意 1 這裡的目的位址與源位...