第二章 鏈路層
在TCP/IP協議族中,鏈路層主要有三個目的:(1)為IP模塊發送和接收IP數據報;(2)為ARP模塊發送ARP請求和接收ARP應答;(3)為RARP發送RARP請求和接收RARP應答。TCP/IP支持多種不同的鏈路層協議,這取決于網絡所使用的硬件,如以太網、令牌環網、FDDI(光纖分布式數據接口)及RS-232串行線路等。
以太網和IEEE 802封裝
以太網這個術語一般是指數字設備公司( Digital Equipment Corp.)、英特爾公司和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)。
在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分組。
SLIP:串行線路IP
SLIP的全稱是Serial Line IP。它是一種在串行線路上對IP數據報進行封裝的簡單形式,在RFC 1055[Romkey 1988]中有詳細描述。SLIP適用于家庭中每臺計算機幾乎都有的RS-232串行端口和高速調制解調器接入Internet。
壓縮的SLIP
由于串行線路的速率通常較低( 19200 b/s或更低),而且通信經常是交互式的(如Telnet和Rlogin,二者都使用TCP),因此在SLIP線路上有許多小的TCP分組進行交換。為了傳送1個字節的數據需要20個字節的IP首部和20個字節的TCP首部,總數超過40個字節, 于是人們提出一個被稱作CSLIP(即壓縮SLIP)的新協議,它在RFC 1144[Jacobson 1990a]中被詳細描述。CSLIP一般能把上面的40個字節壓縮到3或5個字節。
PPP:點對點協議
PPP,點對點協議修改了SLIP協議中的所有缺陷。PPP包括以下三個部分:
1) 在串行鏈路上封裝IP數據報的方法。PPP既支持數據為8位和無奇偶檢驗的異步模式(如大多數計算機上都普遍存在的串行接口),還支持面向比特的同步鏈接。
2) 建立、配置及測試數據鏈路的鏈路控制協議( LCP:Link Control Protocol)。它允許通信雙方進行協商,以確定不同的選項。
3) 針對不同網絡層協議的網絡控制協議(NCP:Network Control Protocol)體系。當前RFC定義的網絡層有IP、OSI網絡層、DECnet以及Apple Talk。例如,IP NCP允許雙方商定是否對報文首部進行壓縮,類似于CSLIP(縮寫詞NCP也可用在TCP的前面)。
RFC 1548[Simpson 1993]描述了報文封裝的方法和鏈路控制協議。RFC 1332[McGregor
1 9 9 2 ]描述了針對IP的網絡控制協議。
環回接口
大多數的產品都支持環回接口( Loopback Interface),以允許運行在同一臺主機上的客戶程序和服務器程序通過TCP/IP進行通信。A類網絡號127就是為環回接口預留的。根據慣例,大多數系統把IP地址127.0.0.1分配給這個接口,并命名為localhost。一個傳給環回接口的IP數據報不能在任何網絡上出現。但是大多數的產品還是照樣完成傳輸層和網絡層的所有過程,只是當IP數據報離開網絡層時把它返回給自己。
最大傳輸單元MTU
以太網和802.3對數據幀的長度都有一個限制,其最大值分別是1500和1492字節。鏈路層的這個特性稱作MTU,最大傳輸單元。不同類型的網絡大多數都有一個上限。如果IP層有一個數據報要傳,而且數據的長度比鏈路層的MTU還大,那么IP層就需要進行分片( fragmentation),把數據報分成若干片,這樣每一片都小于MTU。
路徑MTU
當在同一個網絡上的兩臺主機互相進行通信時,該網絡的MTU是非常重要的。但是如果兩臺主機之間的通信要通過多個網絡,那么每個網絡的鏈路層就可能有不同的MTU。重要的不是兩臺主機所在網絡的MTU的值,而是兩臺通信主機路徑中的最小MTU。它被稱作路徑MTU。
兩臺主機之間的路徑MTU不一定是個常數。它取決于當時所選擇的路由。而選路不一定是對稱的(從A到B的路由可能與從B到A的路由不同),因此路徑MTU在兩個方向上不一定是一致的。
posted on 2008-04-18 21:58
水 閱讀(1920)
評論(3) 編輯 收藏 引用 所屬分類:
tcp/ip