1. 程式人生 > >TCP/IP學習筆記(2)-資料鏈路層

TCP/IP學習筆記(2)-資料鏈路層

資料鏈路層有三個目的:      為IP模組傳送和 接收IP資料報。      為ARP模組傳送ARP請求和接收ARP應答。      為RARP傳送RARP請 求和接收RARP應答。      ip大家都聽說過。至於ARP和RARP,ARP叫做地址解析協議,是用IP地址換MAC地址的一種協議,而RARP則叫做逆地址解析協議,在tcp/ip協議的後面章節會介紹它們(在局域網裡面用ARP協議可以很容易的搞癱瘓網路哦)      資料鏈路層的協議還是很多的,有我們最常用的乙太網(就是平時我們用的網絡卡)協議,也有不太常見的令牌環,還有FDDI,當然,還有國內現在相當普及的PPP協議(就是adsl寬頻),以及一個loopback協議。
聯絡linux裡面的ifconfig -a命令,這個命令通常會得到如下的結果          其中,eth0就是乙太網介面,而lo則是loopback介面。這也說明這個主機在網路鏈路層上至少支援loopback協議和乙太網協議。      乙太網(Ether-net)的定義是指數字裝置公司( Digital Equipment Corp.)、英特爾公司(Intel Corp.)和Xerox公司在1982年聯合公佈的一個標準, 這個標準裡面使用了一種稱作CSMA/CD的接入方法。而IEEE802提供的標準集802.3(還有一部分定義到了802.2中)也提供了一個CSMA/CD的標準。 這兩個標準稍有不同,TCP/IP協議對這種情況的處理方式如下:
乙太網的IP資料報封裝在RFC894中定義,而IEEE802網路的IP資料報封裝在RFC1042中定義。 一臺主機一定要能傳送和接收RFC894定義的資料報。 一臺主機可以接收RFC894和RFC1042的封裝格式的混合資料報。 一臺主機也許能夠傳送RFC1042資料報。。如果主機能同時傳送兩種型別的分組數 據,那麼傳送的分組必須是可以設定的,而且預設條件下必須是RFC 894分組。      ppp(點對點協議)是從SLIP的替代品。他們都提供了一種低速接入的解決方案。而每一種資料鏈路層協議,都有一個MTU(最大傳輸單元)定義,在這個定義下面,如果IP資料報過大,則要進行分片(fragmentation),使得每片都小於MTU,注意PPP的MTU並不是一個物理定義,而是指一個邏輯定義(個人認為就是用程式控制)。可以用netstat來打印出MTU的結果,比如鍵入netstat -in
就可以觀察到eth0的MTU是1500。而lo(環回介面)的MTU則是16436。      最後說說那個環回介面(loopback)環回介面允許執行在同一臺主機上的客戶程式和伺服器程式通過TCP/IP進行通訊,IP地址127.0.0.1被分配給這個介面,並命名為localhost。 平時我們用127.0.0.1來嘗試自己的機器伺服器好使不好使。走的就是這個loopback介面。      目的地址的環回地址時,照樣還是傳輸層和網路層的所有過程,只是當IP資料報離開網路層時把它返回給自己,這樣做簡化了設計,因為環回介面可以看作是網路層下面的一個鏈路層。網路層把一份資料報傳送給環回介面,就像傳送給其它鏈路層一樣,只不過環回介面把它返回到IP的輸入佇列中。 對於環回介面,有如下三點值得注意:      傳給環回地址(一般是127.0.0.1)的任何資料均作為I P輸入。      傳給廣播地址或多播地址的資料報復制一份傳給環回介面,然後送到乙太網上。這是 因為廣播傳送和多播傳送的定義包含主機本身。      任何傳給該主機IP地址的資料均送到環回介面。      MTU        乙太網對資料幀的長度有一個限制,最大值是1500。鏈路層的這個特性稱作MTU(最大傳輸單元)。如果IP層資料報的長度比鏈路層的MTU還要大,那麼IP層就需要進行分片,每一片都要小於MTU。        如果兩臺主機之間的通訊要通過多個網路,那麼每個網路的鏈路層就可能有不同的MTU。兩臺通訊主機路徑中的最小MTU,被稱為路徑MTU。兩個方向上的選路不一定對稱,因此路徑MTU在兩個方向上不一定是一致的。

參考部落格:http://blog.csdn.net/goodboy1881/article/details/665061