從圖1 - 4中可以看出,在TCP/ip協議族中,鏈路層主要有三個目的:(1)為IP模塊發送和接收IP數據報;(2)為ARP模塊發送ARP請求和接收ARP應答;(3)為RARP發送RARP請求和接收RARP應答。TCP/IP支持多種不同的鏈路層協議,這取決于網絡所使用的硬件,如以太網、令牌環網、FDDI(光纖分布式數據接口)及RS-232串行線路等。
在本章中,我們將具體討論以太網鏈路層協議,兩個串行接口鏈路層協議(SLIP和PPP),以及大多數實現都包含的環回(loopback)驅動程序。以太網和S L IP是本書中大多數例子使用的鏈路層。對MTU(最大傳輸單元)進行了介紹,這個概念在本書的后面章節中將多次碰到。我們還討論了如何為串行線路選擇MTU。
以太網這個術語一般是指數字設備公司(Digital Equipment Corp.)、英特爾公司(IntelCorp.)和Xerox公司在1982年聯合公布的一個標準。它是當今TCP/IP采用的主要的局域網技術。它采用一種稱作CSMA/CD的媒體接入方法,其意思是帶沖突檢測的載波偵聽多路接入(Carrier Sense, Multiple access with Collision Detection)。它的速率為10 Mb/s,地址為48 bit。
幾年后, IEEE(電子電氣工程師協會) 802委員會公布了一個稍有不同的標準集,其中802.3針對整個CSMA/CD網絡,802.4針對令牌總線網絡,802.5針對令牌環網絡。這三者的共同特性由802.2標準來定義,那就是802網絡共有的邏輯鏈路控制(LLC)。不幸的是,802.2和802.3定義了一個與以太網不同的幀格式。文獻[Stallings 1987]對所有的IEEE 802標準進行了具體的介紹。
在TCP/IP世界中,以太網IP數據報的封裝是在RFC 894[Hornig 1984]中定義的,IEEE 802網絡的IP數據報封裝是在RFC 1042[Postel and Reynolds 1988]中定義的。主機需求RFC要求每臺Internet主機都與一個10 Mb/s的以太網電纜相連接:
1) 必須能發送和接收采用RFC 894(以太網)封裝格式的分組。
2) 應該能接收與RFC 894混合的RFC 1042(IEEE 802)封裝格式的分組。
3) 也許能夠發送采用RFC 1042格式封裝的分組。假如主機能同時發送兩種類型的分組數據,那么發送的分組必須是可以設置的,而且默認條件下必須是RFC 894分組。
最常使用的封裝格式是RFC 894定義的格式。圖2 - 1顯示了兩種不同形式的封裝格式。圖中每個方框下面的數字是它們的字節長度。
兩種幀格式都采用48 bit(6字節)的目的地址和源地址(802.3答應使用16 bit的地址,但一般是48 bit地址)。這就是我們在本書中所稱的硬件地址。ARP和RARP協議(第4章和第5章)對32 bit的IP地址和48 bit的硬件地址進行映射。
接下來的2個字節在兩種幀格式中互不相同。在802標準定義的幀格式中,長度字段是指它后續數據的字節長度,但不包括C R C檢驗碼。以太網的類型字段定義了后續數據的類型。在802標準定義的幀格式中,類型字段則由后續的子網接入協議( Sub-network AccessPRotocol,SNAP)的首部給出。幸運的是, 802定義的有效長度值與以太網的有效類型值無一相同,這樣,就可以對兩種幀格式進行區分。
(點擊查看原圖)
在以太網幀格式中,類型字段之后就是數據;而在802幀格式中,跟隨在后面的是3字節的802.2 LLC和5字節的802.2 SNAP。目的服務訪問點(Destination Service Access Point,DSAP)和源服務訪問點(Source Service Access Point, SSAP)的值都設為0xaa。Ctrl字段的值設為3。隨后的3個字節org code都置為0。再接下來的2個字節類型字段和以太網幀格式一樣(其他類型字段值可以參見RFC 1340 [Reynolds and Postel 1992])。
CRC字段用于幀內后續字節差錯的循環冗余碼檢驗(檢驗和)(它也被稱為FCS或幀檢驗序列)。
802.3標準定義的幀和以太網的幀都有最小長度要求。802.3規定數據部分必須至少為38字節,而對于以太網,則要求最少要有46字節。為了保證這一點,必須在不足的空間插入填充(pad)字節。在開始觀察線路上的分組時將碰到這種最小長度的情況。
在本書中,我們在需要的時候將給出以太網的封裝格式,因為這是最為常見的封裝格式。
新聞熱點
疑難解答