數(shù)據(jù)鏈路層不是tcp/ip協(xié)議的一部分,只是tcp/ip賴以存在的基礎(chǔ),提供了各種通信網(wǎng)與tcp/ip之間的接口。
各物理網(wǎng)絡(luò)可以使用自己的數(shù)據(jù)鏈路層協(xié)議和物理層協(xié)議。
在數(shù)據(jù)鏈路層使用得最為廣泛的就是slip和ppp協(xié)議。
一、串行線路網(wǎng)際協(xié)議slip(serial line ip)
串行線路網(wǎng)際協(xié)議 slip:是一個(gè)在串行線路上對(duì)ip分組進(jìn)行封裝的簡(jiǎn)單的面向字符的協(xié)議,用以使用戶通過(guò)電話線和調(diào)制解調(diào)器接入internet。
slip幀的封裝規(guī)則:
ip數(shù)據(jù)報(bào)的首尾各加上一個(gè)特殊標(biāo)志字符end,其編碼為0xc0(11000000)。
若ip數(shù)據(jù)報(bào)中的某個(gè)字節(jié)恰與特殊標(biāo)志字符end的編碼(0xc0)一樣,則需用2字節(jié)序列0xdb(稱為slip轉(zhuǎn)義字符)和0xdc替換該字節(jié)。
若ip數(shù)據(jù)報(bào)中某個(gè)字節(jié)恰與slip轉(zhuǎn)義字符一樣,則需用2字節(jié)序列0xdb和0xdd將它替換。
slip協(xié)議的缺點(diǎn):
沒(méi)有校驗(yàn)字段,不提供差錯(cuò)檢測(cè)的功能,只能靠高層檢驗(yàn)差錯(cuò);
不能提供對(duì)方的ip地址,對(duì)無(wú)固定ip地址的撥號(hào)入網(wǎng)的用戶來(lái)說(shuō)不方便;
無(wú)協(xié)議類型字段,僅支持ip協(xié)議,而不支持其他的協(xié)議。
適用:低速串行線路中的交互性業(yè)務(wù)(附加信息開(kāi)銷大,數(shù)據(jù)傳輸效率較低)。
cslip協(xié)議(壓縮的slip):在連續(xù)發(fā)送的數(shù)據(jù)報(bào)分組中會(huì)有許多相同的首部字節(jié),若某一字段和前一分組中的相應(yīng)字段相同,則不發(fā)送這個(gè)字段;若某一字段和前一個(gè)分組中的相應(yīng)字段不同,則只發(fā)送改變的部分。
二、點(diǎn)對(duì)點(diǎn)的ppp協(xié)議(point-to-point protocol)
作用:完成鏈路的操作、維護(hù)和管理功能。
運(yùn)行條件:只需提供全雙工電路(專用的或交換式的)以實(shí)現(xiàn)雙向的數(shù)據(jù)傳輸。
1、ppp協(xié)議的構(gòu)成
在串行鏈路上封裝ip數(shù)據(jù)報(bào)的方法:既支持異步鏈路(無(wú)奇偶校驗(yàn)的8比特?cái)?shù)據(jù)),也支持面向比特的同步鏈路。
鏈路控制協(xié)議lcp:用于建立、配置和測(cè)試數(shù)據(jù)鏈路連接,通信的雙方可協(xié)商一些選項(xiàng)。
網(wǎng)絡(luò)控制協(xié)議ncp:用于建立、配置多種不同網(wǎng)絡(luò)層協(xié)議, 每種網(wǎng)絡(luò)層協(xié)議需要一個(gè)ncp來(lái)進(jìn)行配置,在單個(gè)ppp鏈路上可支持同時(shí)運(yùn)行多種網(wǎng)絡(luò)協(xié)議。
2、 ppp的幀格式
標(biāo)志字段(f1ag),編碼為01111110(0x7e),是幀的定界符,用以標(biāo)識(shí)一幀的開(kāi)始和結(jié)束。
地址字段(address),編碼為11111111(0xff),采用標(biāo)準(zhǔn)的廣播地址。
控制字段(contro1),編碼為00000011(0x03),是一個(gè)無(wú)編號(hào)幀。
協(xié)議字段(protocol), 用于標(biāo)識(shí)封裝在ppp幀中的信息所用的協(xié)議類型。
信息字段(information),包含零個(gè)或多個(gè)字節(jié),是網(wǎng)絡(luò)層協(xié)議數(shù)據(jù)報(bào),缺省最大長(zhǎng)度為1500個(gè)字節(jié)。
fcs幀校驗(yàn)序列字段,用16比特的循環(huán)冗余校驗(yàn)crc計(jì)算校驗(yàn)和。
ppp是面向字符的,幀長(zhǎng)度都是整數(shù)個(gè)字節(jié)。
字符填充法:將信息字段中出現(xiàn)的每一個(gè)0x7e字符轉(zhuǎn)變成為2字節(jié)序列0x7d和0x5e;若信息字段中出現(xiàn)一個(gè)0x7d字符則將其轉(zhuǎn)變成為2字節(jié)序列0x7d和0x5d;若信息字段中出現(xiàn)ascii碼的控制字符(即小于0x20的字符),則在該字符前面要加入一個(gè)0x7d字符。
3、ppp的協(xié)議族
1)鏈路控制協(xié)議lcp(link control protocol)
作用:用于建立、配置、維護(hù)和終止點(diǎn)對(duì)點(diǎn)的鏈路層連接。
工作過(guò)程:——通過(guò)交換lcp幀來(lái)實(shí)現(xiàn)
第一階段:鏈路的建立和配置協(xié)調(diào);
第二階段:鏈路質(zhì)量檢查(可選),決定鏈路是否滿足網(wǎng)絡(luò)層協(xié)議的要求;
第三階段:網(wǎng)絡(luò)層協(xié)議配置;
第四階段:關(guān)閉鏈路,可隨時(shí)關(guān)閉鏈路,多因用戶要求或發(fā)生物理故障。
lcp的三種幀:
鏈路建立幀:用于建立和配置ppp鏈路并確定與該鏈路相關(guān)的參數(shù);
鏈路終止幀:用于終止ppp鏈路;
鏈路維護(hù)幀:用于管理和調(diào)試ppp鏈路。
2)網(wǎng)絡(luò)控制協(xié)議ncp(network control protocol)
ppp使用一組網(wǎng)絡(luò)控制協(xié)議ncp配置不同的網(wǎng)絡(luò)層,其中普遍使用的是用于配置ip層的ip控制協(xié)議ipcp(internet protocol control protocol)。
使用與lcp相同的報(bào)文結(jié)構(gòu)及協(xié)商機(jī)制完成選項(xiàng)協(xié)商的任務(wù)。
4、ppp的運(yùn)行機(jī)制
ppp不提供使用序號(hào)和確認(rèn)的可靠傳輸。
當(dāng)用戶撥號(hào)接入isp時(shí),路由器的調(diào)制解調(diào)器對(duì)撥號(hào)應(yīng)答并建立一條物理連接;
pc機(jī)向路由器發(fā)送一系列l(wèi)cp分組(封裝成多個(gè)ppp幀),選擇將要使用的一些ppp參數(shù);
進(jìn)行網(wǎng)絡(luò)層配置,ncp給新接入的pc機(jī)分配一個(gè)臨時(shí)的ip地址。
當(dāng)用戶通信完畢時(shí),ncp釋放網(wǎng)絡(luò)層連接,收回原來(lái)分配出去的ip地址;
lcp釋放數(shù)據(jù)鏈路層連接;
最后釋放的是物理層連接。