(002)TCP/IP協(xié)議-鏈路層

一、引言

  • 在TCP/IP協(xié)議簇中,鏈路層的作用主要有:(1).為IP模塊發(fā)送/接受IP數(shù)據(jù)包;(2).為ARP模塊發(fā)送ARP請求與接收ARP應答织盼;(3).為RARP模塊發(fā)送RARP請求與接收RARP應答杨何。
  • 根據(jù)所使用的網(wǎng)絡硬件不同,TCP/IP協(xié)議簇使用不同的鏈路層協(xié)議悔政。不同的網(wǎng)絡硬件包括以太網(wǎng)晚吞、令牌環(huán)網(wǎng)、光纖分布式數(shù)據(jù)接口(FDDI)谋国、RS-232串行線路等等槽地。
  • 該文將說明一下鏈路層協(xié)議:
    • 協(xié)議-以太網(wǎng):事實上的協(xié)議(RFC 894封裝格式)、標準組織協(xié)議(IEEE 802.2/802.3芦瘾,即RFC 1042封裝格式)捌蚊;
    • 協(xié)議-串行線路:SLIP/CSLIP與PPP。

二近弟、以太網(wǎng)協(xié)議(RFC 894)與IEEE802協(xié)議(RFC 1042)

圖1. IEEE 802幀(RFC 1042)與 以太幀(RFC 894)

圖中缅糟,各個數(shù)字的單位是字節(jié)(Byte)。這兩種協(xié)議祷愉,都是以太網(wǎng)上的窗宦。以太網(wǎng)協(xié)議是事實上的協(xié)議,IEEE802協(xié)議是標準組織根據(jù)以太網(wǎng)協(xié)議發(fā)布的標準參考協(xié)議二鳄。這兩種協(xié)議都有相似的結構(如圖)赴涵。兩種幀格式都是采用48bit(6字節(jié))的目的地址與源地址。這些地址就是我們常說的物理地址(Media Access Control Address订讼,MAC)髓窜。

1.以太網(wǎng)幀格式(如圖1下半部分)

  • 目標MAC地址,6字節(jié)長度欺殿;
  • 源MAC地址寄纵,6字節(jié)長度;
  • 類型區(qū)域脖苏,2字節(jié)長度程拭,用于表示該幀是什么協(xié)議幀;
    • 當區(qū)域值為0x0800棍潘,表示該幀是一個IP數(shù)據(jù)包哺壶,其后的數(shù)據(jù)區(qū)域長度是46~1500字節(jié);
    • 當區(qū)域值為0x0806蜒谤,表示該幀是一個ARP請求或ARP應答包,其后數(shù)據(jù)長度是固定的28字節(jié)+18字節(jié)填充字節(jié)(PAD)至扰;
    • 當區(qū)域值為0x8035鳍徽,表示該幀是一個RARP請求或RARP應答包,其后數(shù)據(jù)長度是固定的28字節(jié)+18字節(jié)填充字節(jié)(PAD)敢课。
  • 數(shù)據(jù)區(qū)域阶祭,其長度如上绷杜;
  • CRC ,差錯循環(huán)冗余校驗碼濒募,4字節(jié)長度鞭盟。校驗范圍:除CRC以外的其他數(shù)據(jù)。

以太幀最小數(shù)據(jù)區(qū)域是46字節(jié)瑰剃,因此齿诉,ARP與RARP包不夠這么長,需要填充PAD(填充字節(jié))晌姚。
用wireshark抓取一幀粤剧,可以看到:

圖2. 抓取一以太幀

藍色部分為目的MAC地址;黑色部分為源MAC地址挥唠;紅色部分為幀類型部分抵恋,指明這是一個IPv4數(shù)據(jù)包;黃色為填充字節(jié)部分宝磨;其余為數(shù)據(jù)部分弧关。沒有看到CRC校驗碼是應為抓包工具抓不到。

2.IEEE802幀格式(如圖1上半部分)

  • 目標MAC地址唤锉,6字節(jié)長度世囊;
  • 源MAC地址,6字節(jié)長度腌紧;
  • 長度區(qū)域茸习,2字節(jié)長度,指明其后除去CRC校驗碼的數(shù)據(jù)長度壁肋。這個長度值與以太幀的類型區(qū)域值不重合(以太幀類型最小0x0800[2048],數(shù)據(jù)長度范圍又是46~1500号胚,不沖突),可以使用該區(qū)域區(qū)分是以太幀還是IEEE802幀浸遗;
  • 邏輯鏈路控制(Logical Link Control ,802.2 LLC),3字節(jié)長度猫胁;
  • 子網(wǎng)訪問協(xié)議(Sub-network Access Protocol, 802.2 SNAP),5字節(jié)長度;
  • 數(shù)據(jù)區(qū)域跛锌,38~1492字節(jié)長度弃秆;
  • CRC ,差錯循環(huán)冗余校驗碼髓帽,4字節(jié)長度菠赚。

IEEE802最小數(shù)據(jù)區(qū)域是38字節(jié)

三、串行線路IP(SLIP)協(xié)議與點對點協(xié)議(PPP)

這兩個協(xié)議都是對串行線路網(wǎng)絡的協(xié)議郑藏。SLIP(Serial Line IP),是一種串行線路上對IP數(shù)據(jù)包進行封裝的簡單形式衡查。PPP(Point to Point Protocol)是SLIP的代替協(xié)議

1. SLIP

圖3. 串行線路IP協(xié)議幀
  • IP數(shù)據(jù)包以一個字節(jié)(0xc0)的特殊字符結束。為了防止噪音必盖,通常也會在首部加上一個0xc0字符拌牲;
  • 如果IP數(shù)據(jù)包中有0xdb字節(jié)俱饿,使用0xdbdd替換該字節(jié);
  • 如果IP數(shù)據(jù)包中有0xc0字節(jié)塌忽,使用0xdbdc替換該字節(jié)拍埠。

SLIP缺點:
a. 沒有類型字段,無法傳輸其他類型的上層協(xié)議土居;
b. 數(shù)據(jù)幀中枣购,沒有CRC校驗碼,無法保證傳輸正確性装盯,除非上層協(xié)議保證校驗坷虑。

2. PPP

圖4. 點對點協(xié)議幀
  • 標記(ox7e),1個字節(jié)埂奈,標記開始迄损;
  • 廣播地址,1個字節(jié)账磺;
  • 控制字芹敌,1個字節(jié);
  • 數(shù)據(jù)包中所使用的協(xié)議垮抗,2個字節(jié)氏捞,0x0021表示IP數(shù)據(jù)包等等;
  • 數(shù)據(jù)區(qū)域冒版,0~1500字節(jié)液茎,存放數(shù)據(jù),這是邏輯上限制了最大字節(jié)數(shù)辞嗡;
  • CRC校驗碼捆等,2個字節(jié);
  • 標記(ox7e)续室,1個字節(jié)栋烤,標記結束。

PPP比SLIP具有下面這些優(yōu)點:
(1) PPP支持在單根串行線路上運行多種協(xié)議挺狰,不只是I P協(xié)議明郭;
(2) 每一幀都有循環(huán)冗余檢驗;
(3) 通信雙方可以進行 I P地址的動態(tài)協(xié)商(使用I P網(wǎng)絡控制協(xié)議)丰泊;
(4) 與C S L I P類似薯定,對T C P和I P報文首部進行壓縮;
(5) 鏈路控制協(xié)議可以對多個數(shù)據(jù)鏈路選項進行設置瞳购。

四沉唠、環(huán)回接口

環(huán)回接口(Lookback Interface),以允許運行在同一臺主機上的客戶程序和服務器程序通過 TCP/IP進行通信苛败。 A類網(wǎng)絡號127就是為環(huán)回接口預留的满葛。多數(shù)系統(tǒng)將127.0.0.1分配給該接口,并命名該接口host為localhost罢屈。傳給環(huán)回接口的IP數(shù)據(jù)包是不會出現(xiàn)在網(wǎng)絡上的嘀韧。它是當IP數(shù)據(jù)包離開網(wǎng)絡層時候,返回給了它自己缠捌〕可以想象環(huán)回接口是一個鏈路層。


圖5. 環(huán)回接口處理IP數(shù)據(jù)包的過程
  • 傳給環(huán)回地址(一般為127.0.0.1)的任何數(shù)據(jù)均作為 I P輸入曼月;
  • 傳給廣播地址或多播地址的數(shù)據(jù)報復制一份傳給環(huán)回接口谊却,然后送到以太網(wǎng)上。這是因為廣播傳送和多播傳送的定義哑芹,包含主機本身炎辨;
  • 任何傳給該主機IP地址的數(shù)據(jù)均送到環(huán)回接口。

五聪姿、MTU與路徑MTU

通過以太幀和IEEE802幀碴萧,我們看到一個幀能夠傳輸?shù)臄?shù)據(jù)是有大小限制的,其最大值分別是1500字節(jié)與1492字節(jié)末购。這種特性叫最大傳輸單元(Maximum Transmission Unit破喻,MTU),單位是字節(jié)(Byte)。以下是不同網(wǎng)絡的MTU盟榴。

圖6. 常見網(wǎng)絡MTU

路徑MTU是指兩臺通信主機間的最小MTU曹质。兩臺主機通信,中間可能經過了n個網(wǎng)絡擎场,不同的網(wǎng)絡有不同的MTU羽德,根據(jù)木桶原理,其中最小的MTU為整個鏈路的路徑MTU顶籽。由于所選路由不同玩般,MTU也可能跟著變。

都看到這里了礼饱,要不要掃二維碼關注一下微信公眾號林灣村龍貓坏为。

微信公眾號rudy_tan_home

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市镊绪,隨后出現(xiàn)的幾起案子匀伏,更是在濱河造成了極大的恐慌,老刑警劉巖蝴韭,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件够颠,死亡現(xiàn)場離奇詭異,居然都是意外死亡榄鉴,警方通過查閱死者的電腦和手機履磨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進店門蛉抓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人剃诅,你說我怎么就攤上這事巷送。” “怎么了矛辕?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵笑跛,是天一觀的道長。 經常有香客問我聊品,道長飞蹂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任翻屈,我火速辦了婚禮陈哑,結果婚禮上,老公的妹妹穿的比我還像新娘妖胀。我一直安慰自己芥颈,他們只是感情好,可當我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布赚抡。 她就那樣靜靜地躺著爬坑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪涂臣。 梳的紋絲不亂的頭發(fā)上盾计,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天,我揣著相機與錄音赁遗,去河邊找鬼署辉。 笑死,一個胖子當著我的面吹牛岩四,可吹牛的內容都是我干的哭尝。 我是一名探鬼主播,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼剖煌,長吁一口氣:“原來是場噩夢啊……” “哼材鹦!你這毒婦竟也來了?” 一聲冷哼從身側響起耕姊,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤桶唐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后茉兰,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體尤泽,經...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了坯约。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片熊咽。...
    茶點故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖闹丐,靈堂內的尸體忽然破棺而出网棍,到底是詐尸還是另有隱情,我是刑警寧澤妇智,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站氏身,受9級特大地震影響巍棱,放射性物質發(fā)生泄漏。R本人自食惡果不足惜蛋欣,卻給世界環(huán)境...
    茶點故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一航徙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧陷虎,春花似錦到踏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至凿掂,卻和暖如春伴榔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背庄萎。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工踪少, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人糠涛。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓援奢,卻偏偏與公主長得像,于是被迫代替她去往敵國和親忍捡。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,700評論 2 345

推薦閱讀更多精彩內容