TCP IP 詳解卷一 第2章 鏈路層

2021-06-28 10:55:33 字數 2873 閱讀 5473

資料鏈路層是計算機網路最基本的內容,在 tcp/ip 協議族中,資料鏈路層主要有三個目的:

1.        為ip 模組傳送和接收 ip 資料報;

2.        為arp 模組傳送 arp 請求和接收 arp 應答;

3.        為rarp傳送rarp 請求和接收rarp 應答;

資料鏈路層的協議資料單元——幀:將 ip 層(網路層)的資料報新增首部和尾部封裝成幀。資料鏈路層協議有許多種,都會解決三個基本問題:封裝成幀,透明傳輸,差錯檢測。

arp 協議主要用來將 32bit 的 ip 位址解析為對應 48bit(乙太網中)的 mac 位址(硬體位址)。而 rarp 協議則是將硬體位址解析為 ip 位址。tcp/ip支援多種不同的資料鏈路協議,這取決於網路所使用的硬體,如乙太網、令牌環網、fddi、rs-232序列線路等,當今tcp/ip 採用的主要局網技術是乙太網。 

以下是兩種常用的封裝格式,兩中幀格式都是採用48bit 的目的 mac 位址和源 mac 位址;

乙太網幀本體的前端是乙太網首部,總共 14 位元組。分別是 6 位元組的目的 mac 位址、6 位元組的源mac 位址以及 2 位元組的上層協議型別。緊跟幀頭後面的是資料,乙個資料幀所能容納的資料範圍是46~1500 個位元組。幀尾是乙個 4 位元組的 fcs(framecheck sequence,幀檢查序列)。在目的 mac 位址中存放的是目的工作站的實體地址,源 mac 位址中則存放的是構造乙太網幀傳送端工作站的實體地址。

ieee802 與一般的乙太網在幀的首部上有區別,一般的乙太網幀中表示型別字段,而ieee802 則表示幀的長度。此外,資料部分的前端還存在llc 和 snap 字段,而標誌上一層協議型別的字段就存放在 snap 欄位中。 

slip 序列線路 ip 是一種在序列線路上對ip 資料報進行封裝的簡單形式,slip 協議有以下的幀格式:

1.        ip 資料報以end(0xc0)的特殊字元結束;為了防止資料報到來之前的線路雜訊被當成資料報,大多數實現在資料報的開始處也傳乙個end 字元;

2.        若ip 資料報報文中存在 end 字元,則要連續傳入兩個位元組 0xdb 和 0xdc 來取代它;

3.        若ip 報文中存在字元為 silp 的 esc 字元,則要連續傳入兩個位元組0xdb 和 0xdd 來取代它;

slip是一種簡單的幀封裝方法,還有一些值得一提的缺陷:

1.        每一端都必須知道對方的 ip 位址;沒辦法把本端的 ip 位址通知給另一端;

2.        資料幀中沒有型別字段,即一條序列線路使用了slip 協議,則不能同時使用其他協議;

3.        slip 沒有在資料幀中加上檢驗和;如果slip傳輸的報文被線路雜訊影響而發生錯誤,只能通過上層協議來發現(另一種方法是,新型的數據機可以檢測並糾正錯誤報文) 。這樣,上層協議提供某種形式的crc就顯得很重要。

為了解決 slip 序列線路 ip 的缺點,ppp點對點協議對其進行了修改,其內容如下:

1.        在序列鏈路上封裝ip 資料報的方法;即 ppp 支援資料為 8 位和無奇偶檢驗的非同步模式,還支援面向位元的同步鏈結;

2.        建立、配置及測試資料鏈路的鏈路控制協議(lcp:link control protocol),允許通訊雙方進行協商,以確定不同的選項;

p p比slip具有下面這些優點: (1) ppp支援在單根序列線路上執行多種協議,

不只是 i p協議; (2) 每一幀都有迴圈冗餘檢驗; (3) 通訊雙方可以進行 i p位址的動態協商(使用i p網路控制協議); (4) 與cslip類似,對tcp和ip報文首部進行壓縮; (5) 鏈路控制協議可以對多個資料鏈路選項進行設定。為這些優點付出的代價是在每一幀的首部增加 3個位元組,當建立鏈路時要傳送幾幀協商資料,以及更為複雜的實現。 

大多數的產品都支援環迴介面(loopback inte***ce),以允許執行在同一臺主機上的客戶程式和伺服器程式通過t c p / i p進行通訊。 a類網路號127就是為環迴介面預留的。根據慣例,大多數系統把i p位址127.0.0.1分配給這個介面,並命名為localhost。乙個傳給環迴介面的i p資料報不能在任何網路上出現。

我們想象,一旦傳輸層檢測到目的端位址是環迴位址時,應該可以省略部分傳輸層和所有網路層的邏輯操作。但是大多數的產品還是照樣完成傳輸層和網路層的所有過程,只是當ip資料報離開網路層時把它返回給自己。 

最大傳輸單元(maximumtransmission unit,mtu)是指一種通訊協議的某一層上面所能通過的最大資料報大小(以位元組為單位)。資料鏈路層中的網路對資料幀的長度都有乙個限制,不同網路的mtu 值不同,常用的乙太網為 1500 個位元組,802.3 為1492 個位元組,網路中一些常見鏈路層協議mtu 的預設數值如下:

fddi 協議:4352位元組

乙太網(ethernet)協議:1500位元組

pppoe(adsl)協議:1492位元組

x.25 協議(dialup/modem):576位元組

point-to-point:4470位元組

如果在ip層要傳輸乙個資料報比鏈路層的mtu 還大,那麼 ip 層就會對這個資料報進行分片。乙個資料報會被分為若干片,每個分片的大小都小於或者等於鏈路層的mtu 值。當同一網路上的主機互相進行通訊時,該網路的mtu 對通訊雙方非常重要。但當主機間要通過很多網路才能通訊時,對通訊雙方最重要的是通訊路徑中最小的mtu,因為在通訊路徑上不同網路的鏈路層 mtu 不同。通訊路徑中最小的 mtu 被稱為路徑 mtu。

《TCP IP詳解 卷一》第2章 鏈路層

鏈路層的三個目的 tcp ip支援多種不同的鏈路層協議,這取決於網路所使用的硬體,如乙太網,令牌環網,fddi 光纖分布式資料介面 及rs 232序列線路等。本章詳細的討論了乙太網鏈路層協議,兩個序列介面鏈路層協議 slip和ppp 大多數實現都包含的環迴驅動程式。還講了mtu 最大傳輸單元 如何為...

TCP IP詳解 卷一(第二章 鏈路層)

在tcp ip協議族中,鏈路層主要有三個目的 1.為ip模組傳送和接收ip資料報 2.為arp模組傳送arp請求和接收arp應答 3.為rarp請求和接收rarp應答 tcp ip支援多種不同的鏈路層協議,本文主要討論乙太網鏈路層協議 ppp協議以及大多數實現都包含的環迴 loopback 驅動程式...

TCP IP 卷一 鏈路層

1 為ip模組傳送和接收ip資料報 2 為arp模組傳送arp請求和接收arp應答 3 為rarp傳送rarp請求和接收rarp應答 802.3針對整個csma cd網路,802.4針對令牌匯流排網路,802.5針對令牌環網路。802網路共有的邏輯鏈路控制 llc 802.2和802.3定義了乙個與...