http://blog.csdn.net/chenhanzhun/article/details/41441563
2014
概述
數(shù)據(jù)鏈路層是計(jì)算機(jī)網(wǎng)絡(luò)最基本的內(nèi)容,在 TCP/IP 協(xié)議族中,數(shù)據(jù)鏈路層主要有三個(gè)目的:
- 為 IP 模塊發(fā)送和接收 IP 數(shù)據(jù)報(bào);
- 為 ARP 模塊發(fā)送 ARP 請求和接收 ARP 應(yīng)答;
- 為RARP 發(fā)送RARP 請求和接收 RARP 應(yīng)答;
----數(shù)據(jù)鏈路層的協(xié)議數(shù)據(jù)單元——幀:將 IP 層(網(wǎng)絡(luò)層)的數(shù)據(jù)報(bào)添加首部和尾部封裝成幀。
----數(shù)據(jù)鏈路層協(xié)議有許多種,都會(huì)解決三個(gè)基本問題:封裝成幀,透明傳輸,差錯(cuò)檢測。
ARP 協(xié)議主要用來將 32bit 的 IP 地址解析為對應(yīng) 48bit(以太網(wǎng)中)的 MAC 地址(硬件地址)。而 RARP 協(xié)議則是將硬件地址解析為 IP 地址。TCP/IP支持多種不同的數(shù)據(jù)鏈路協(xié)議,這取決于網(wǎng)絡(luò)所使用的硬件,如以太網(wǎng)、令牌環(huán)網(wǎng)、FDDI、RS-232串行線路等,當(dāng)今 TCP/IP 采用的主要局網(wǎng)技術(shù)是以太網(wǎng)。
以太網(wǎng)和 IEEE802 封裝
以下是兩種常用的封裝格式,兩中幀格式都是采用 48bit 的目的 MAC 地址和源 MAC 地址;
以太網(wǎng)幀本體的前端是以太網(wǎng)首部,總共 14 字節(jié)。分別是 6 字節(jié)的目的 MAC 地址、6 字節(jié)的源 MAC 地址以及 2 字節(jié)的上層協(xié)議類型。緊跟幀頭后面的是數(shù)據(jù),一個(gè)數(shù)據(jù)幀所能容納的數(shù)據(jù)范圍是 46~1500 個(gè)字節(jié)。幀尾是一個(gè) 4 字節(jié)的 FCS(Frame Check Sequence,幀檢查序列)。在目的 MAC 地址中存放的是目的工作站的物理地址,源 MAC 地址中則存放的是構(gòu)造以太網(wǎng)幀發(fā)送端工作站的物理地址。
IEEE802 與一般的以太網(wǎng)在幀的首部上有區(qū)別,一般的以太網(wǎng)幀中表示類型字段,而 IEEE802 則表示幀的長度。此外,數(shù)據(jù)部分的前端還存在 LLC 和 SNAP 字段,而標(biāo)志上一層協(xié)議類型的字段就存放在 SNAP 字段中。
SLIP 串行線路 IP
SLIP 串行線路 IP 是一種在串行線路上對 IP 數(shù)據(jù)報(bào)進(jìn)行封裝的簡單形式,SLIP 協(xié)議有以下的幀格式:
- IP 數(shù)據(jù)報(bào)以 END(0xc0)的特殊字符結(jié)束;為了防止數(shù)據(jù)報(bào)到來之前的線路噪聲被當(dāng)成數(shù)據(jù)報(bào),大多數(shù)實(shí)現(xiàn)在數(shù)據(jù)報(bào)的開始處也傳一個(gè) END 字符;
- 若 IP 數(shù)據(jù)報(bào)報(bào)文中存在 END 字符,則要連續(xù)傳入兩個(gè)字節(jié) 0xdb 和 0xdc 來取代它;
- 若 IP 報(bào)文中存在字符為 SILP 的 ESC 字符,則要連續(xù)傳入兩個(gè)字節(jié) 0xdb 和 0xdd 來取代它;
缺點(diǎn):
- 每一端都必須知道對方的 IP 地址;沒辦法把本端的 IP 地址通知給另一端;
- 數(shù)據(jù)幀中沒有類型字段,即一條串行線路使用了 SLIP 協(xié)議,則不能同時(shí)使用其他協(xié)議;
- SLIP 沒有在數(shù)據(jù)幀中加上檢驗(yàn)和;
PPP 點(diǎn)對點(diǎn)協(xié)議
為了解決 SLIP 串行線路 IP 的缺點(diǎn),PPP 點(diǎn)對點(diǎn)協(xié)議對其進(jìn)行了修改,其內(nèi)容如下:
- 在串行鏈路上封裝 IP 數(shù)據(jù)報(bào)的方法;即 PPP 支持?jǐn)?shù)據(jù)為 8 位和無奇偶檢驗(yàn)的異步模式,還支持面向比特的同步鏈接;
- 建立、配置及測試數(shù)據(jù)鏈路的鏈路控制協(xié)議(LCP:Link Control Protocol),允許通信雙方進(jìn)行協(xié)商,以確定不同的選項(xiàng);
- 針對不同的網(wǎng)絡(luò)層協(xié)議的網(wǎng)絡(luò)控制協(xié)議(NCP:Network Control Protocol)體系;當(dāng)前 RFC 定義的網(wǎng)絡(luò)層有 IP、OSI 網(wǎng)絡(luò)層、DECnet 以及 AppleTalk;
最大傳輸單元 MTU
最大傳輸單元(Maximum Transmission Unit,MTU)是指一種通信協(xié)議的某一層上面所能通過的最大數(shù)據(jù)包大?。ㄒ宰止?jié)為單位)。數(shù)據(jù)鏈路層中的網(wǎng)絡(luò)對數(shù)據(jù)幀的長度都有一個(gè)限制,不同網(wǎng)絡(luò)的 MTU 值不同,常用的以太網(wǎng)為 1500 個(gè)字節(jié),802.3 為 1492 個(gè)字節(jié),網(wǎng)絡(luò)中一些常見鏈路層協(xié)議 MTU 的缺省數(shù)值如下:
- FDDI 協(xié)議:4352字節(jié)
- 以太網(wǎng)(Ethernet)協(xié)議:1500字節(jié)
- PPPoE(ADSL)協(xié)議:1492字節(jié)
- X.25 協(xié)議(Dial Up/Modem):576字節(jié)
- Point-to-Point:4470字節(jié)
如果在IP層要傳輸一個(gè)數(shù)據(jù)報(bào)比鏈路層的 MTU 還大,那么 IP 層就會(huì)對這個(gè)數(shù)據(jù)報(bào)進(jìn)行分片。一個(gè)數(shù)據(jù)報(bào)會(huì)被分為若干片,每個(gè)分片的大小都小于或者等于鏈路層的 MTU 值。當(dāng)同一網(wǎng)絡(luò)上的主機(jī)互相進(jìn)行通信時(shí),該網(wǎng)絡(luò)的 MTU 對通信雙方非常重要。但當(dāng)主機(jī)間要通過很多網(wǎng)絡(luò)才能通信時(shí),對通信雙方最重要的是通信路徑中最小的 MTU,因?yàn)樵谕ㄐ怕窂缴喜煌W(wǎng)絡(luò)的鏈路層 MTU 不同。通信路徑中最小的 MTU 被稱為
路徑 MTU。
參考資料:
《TCP/IP 詳解》
《圖解 TCP/IP》
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報(bào)。