TCP IP 第二章 鏈路層

2021-08-28 21:44:15 字數 4662 閱讀 1596

在tcp/ip協議族中,鏈路層主要有三個目的

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

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

為rarp傳送rarp請求和接收rarp應答

(1)乙太網

乙太網一般是指數字裝置公司,英特爾和xerox公司在2023年聯合公布的乙個標準。它是當今tcp/ip採用的主要的區域網技術,它採用一種稱作csma/cd的**接入方法,意思是帶衝突檢測的載波偵聽多路接入。它的速率為10mb/s,位址為48 bit

(2)ieee 802封裝

ieee 802委員會公布了乙個稍有不同的標準集,其中802.3針對整個csma/cd網路,802.4針對令牌匯流排網路,802.5針對令牌環網路。這三者的共同特性由802.2標準來定義,那就是802網路共有的邏輯鏈路控制(llc)

注意:ieee 802.2和802.3定義了乙個與乙太網不同的幀格式

(3)相關rfc文件

在tcp/ip中,乙太網ip資料報的封裝是在rfc 894中定義的。ieee 802網路的ip資料報封裝是在rfc 1042中定義的

主機需求rfc要求每台internet主機都與乙個10mb/s的乙太網電纜相連線:

必須能傳送和接收採用rfc 894(乙太網)封裝格式的分組

應該能接收與rfc 894混合的rfc 1042(ieee 802)封裝格式的分組

也許能夠傳送採用rfc 1042格式封裝的分組

兩種封裝格式的說明:

兩種幀格式都採用48bit(6位元組)的目的位址和源位址(802.3允許使用16bit的位址,但一般是48bit位址),稱為硬體位址。arp和rarp協議對32bit的ip位址和48bit的硬體位址進行對映

在802標準定義的幀格式中,長度欄位是指它後續資料的位元組長度,但不包括crc檢驗碼。乙太網的型別字段定義了後續資料的型別

在乙太網幀格式中,型別字段之後就是資料;而在802幀格式中,跟隨在後面的是3位元組的802.2 llc和5位元組的802.2 snap

crc欄位用於幀內後續位元組差錯的迴圈冗餘碼檢驗(檢驗和)

802.3標準定義的幀和乙太網的幀都有最小長度要求。802.3規定資料部分必須至少為38位元組,而對於乙太網,則要求最少要有46位元組

slip的全稱是serial line ip。它是一種在序列線路上對ip資料報進行封裝的簡單形式。slip適用於家庭中每台計算機幾乎都有的rs-232串列埠和高速數據機接入internet。下面的規則描述了slip協議定義的幀格式:

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

如果ip報文中某個字元為end,那麼就要連續傳輸兩個位元組0xdb和0xdc來取代它。0xdb這個特殊字元被稱作sli的esc字元

如果ip報文中某個字元為slip的esc字元,那麼就要連續傳輸兩個位元組0xdb和0xdd來取代

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

每一端必須知道對方的ip位址。沒有辦法把本端的ip位址通知給另一端

資料幀中沒有型別字段(類似於乙太網中的型別字段)。如果一條序列線路用於slip,那麼它不能同時使用其他協議

slip沒有在資料幀中加上檢驗和(類似於乙太網中的crc欄位)。如果slip傳輸報文被線路雜訊影響而發生錯誤,只能通過上層協議來發現

儘管存在這些缺點,slip仍然是一種廣泛使用的協議

由於序列線路的速率通常較低(19200b/s或更低),而且通訊經常是互動式的,因此在slip線路上有許多小的tcp分組進行交換。為了傳送1個位元組的資料需要20個位元組的ip首部和20個位元組的tcp首部,總數超過40個位元組

提出乙個被稱作cslip(壓縮slip)的新協議,它一般能把上面的40個位元組壓縮到3或5個位元組。它能在cslip的每一端維持多達16個tcp連線,並且知道其中每個連線的首部中的某些字段一般不會發生變化。對於那些發生變化的字段,大多數只是一些小的數字和的改變。這些被壓縮的首部大大地縮短了互動響應時間

ppp點對點協議修改了slip協議中的所有缺陷。包括三個部分:

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

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

針對不同網路層協議的網路控制協議(ncp:network control protocol)體系

每一幀都以標誌字元0x7e開始和結束。緊接著是乙個位址位元組,值始終是0xff,然後是乙個值為0x03的控制位元組

協議字段,類似於乙太網中型別欄位的功能。當它的值為0x0021時,表示資訊欄位是乙個 ip資料報;值為0xc021時,表示資訊欄位是鏈路控制資料;值為0x8021時,表示資訊欄位是網路控制資料

crc欄位(或fcs,幀檢驗序列)是乙個迴圈冗餘檢驗碼,以檢測資料幀中的錯誤

標誌字元0x7e出現在資訊欄位中時,ppp需要對它進行轉義

總的來說,ppp比slip具有下面這些優點:

ppp支援在單根序列線路上執行多種協議,不只是ip協議

每一幀都有迴圈冗餘檢驗

通訊雙方可以進行ip位址的動態協商(使用ip網路控制協議)

與cslip類似,對tcp和ip報文首部進行壓縮

鏈路控制協議可以對多個資料鏈路選項進行設定

為這些優點付出的代價是在每一幀的首部增加3個位元組,當建立鏈路時要傳送幾幀協商資料,以及更為複雜的實現

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

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

傳給環迴位址(一般是127.0.0.1)的任何資料均作為ip輸入

傳給廣播位址或多播位址的資料報複製乙份傳給環迴介面,然後送到乙太網上。這是因為廣播傳送和多播傳送的定義包含主機本身

任何傳給該主機ip位址的資料均送到環迴介面

環迴介面可以被看作是網路層下面的另乙個鏈路層。網路層把乙份資料報傳送給環迴介面,就像傳給其他鏈路層一樣,只不過環迴介面把它返回到ip的輸入佇列中。從圖可以看出,送給主機本身ip位址的ip資料報一般不出現在相應的網路上

乙太網和802.3對資料幀的長度都有乙個限制,其最大值分別是1500和1492位元組。鏈路層的這個特性稱作mtu,最大傳輸單元。不同型別的網路大多數都有乙個上限。如果ip層有乙個資料報要傳,而且資料的長度比鏈路層的mtu還大,那麼ip層就需要進行分片,把資料報分成若干片,這樣每一片都小於mtu

當在同乙個網路上的兩台主機互相進行通訊時,該網路的mtu是非常重要的。但是如果兩台主機之間的通訊要通過多個網路,那麼每個網路的鏈路層就可能有不同的mtu。重要的不是兩台主機所在網路的mtu的值,重要的是兩台通訊主機路徑中的最小mtu。它被稱作路徑mtu

兩台主機之間的路徑mtu不一定是個常數。它取決於當時所選擇的路由。而選路不一定是對稱的(從a到b的路由可能與從b到a的路由不同),因此路徑mtu在兩個方向上不一定是一致的

如果線路速率是9600b/s,而乙個位元組有8bit,加上乙個起始位元和乙個停止位元,那麼線路的速率就是960b/s(位元組/秒)。以這個速率傳輸乙個1024位元組的分組需要1066ms。如果用slip鏈結執行乙個互動式應用程式,同時還執行另乙個應用程式如ftp傳送或接收1024位元組的資料,那麼一般來說就必須等待一半的時間(533ms)才能把互動式應用程式的分組資料傳送出去

對於互動應用來說,等待533ms是不能接受的。研究表明,互動響應時間超過100~200ms就被認為是不好的,這是傳送乙份互動報文出去後,直到接收到響應資訊(通常是出現乙個回顯字元)為止的往返時間

我們對平均等待時間的計算(傳輸最大資料幀所需時間的一半)只適用於slip鏈路(或ppp鏈路)在互動通訊和大塊資料傳輸這兩種情況下

《TCP IP詳解》筆記 第二章 鏈路層

第二章 鏈路層 1 鏈路層的作用 tcp ip的四層模型中,處於最下層的是鏈路層。它的主要作用是 接收和傳送ip模組的資料報 為apr模組傳送arp請求和接收apr應答 為rapr模組傳送rapr請求和接收rapr應答。2 乙太網協議和ieee 802.3協議。乙太網協議時先提出來的,採用csma ...

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

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

《TCP IP詳解 卷1 協議》第二章 鏈路層

鏈路層主要有三個目的 1.為ip模組傳送和接收ip資料報 2.為arp模組傳送arp請求和接收arp應答 3.為rarp模組傳送rarp請求和接收rarp應答 硬體 乙太網,令牌環網,fddi 光纖分布式資料介面 rs 232序列線路等。本章主要討論 乙太網鏈路層協議,兩個序列介面鏈路層協議 sli...