在通信線路質(zhì)量較差的年代,在數(shù)據(jù)鏈路層使用可靠傳輸協(xié)議曾經(jīng)是一種好辦法。因此,能實現(xiàn)可靠傳輸?shù)母呒墧?shù)據(jù)鏈路控制HDLC(High-level Data Link Control)就成為當(dāng)時比較流行的數(shù)據(jù)鏈路層協(xié)議。但現(xiàn)在HDLC已很少使用了。對于點對點的鏈路,簡單得多的點對點協(xié)議PPP(Point-to-Point Protocol)則是目前使用得最廣泛的數(shù)據(jù)鏈路層協(xié)議。
PPP協(xié)議的特點
我們知道,互聯(lián)網(wǎng)用戶通常都要連接到某個ISP才能接入到互聯(lián)網(wǎng)。PPP協(xié)議就是用戶計算機和ISP進行通信時所使用的數(shù)據(jù)鏈路層協(xié)議,PPP協(xié)議是IETF在1992年制定的。經(jīng)過1993年和1994年的修訂,現(xiàn)在的PPP協(xié)議在1994年就已成為互聯(lián)網(wǎng)的正式標(biāo)準(zhǔn)[RFC 1661]。
PPP協(xié)議應(yīng)滿足的需求
IETF認(rèn)為,在設(shè)計PPP協(xié)議時必須考慮以下多方面的需求[RFC 1547]: (1)簡單 IETF在設(shè)計互聯(lián)網(wǎng)體系結(jié)構(gòu)時把其中最復(fù)雜的部分放在TCP協(xié)議中,而網(wǎng)際協(xié)議IP則相對比較簡單,它提供的是不可靠的數(shù)據(jù)報服務(wù)。在這種情況下,數(shù)據(jù)鏈路層沒有必要提供比IP協(xié)議更多的功能。因此,對數(shù)據(jù)鏈路層的幀,不需要糾錯,不需要序號,也不需要流量控制。IETF把“簡單”作為首要的需求 。 簡單的設(shè)計還可使協(xié)議在實現(xiàn)時不容易出錯,從而使不同廠商在協(xié)議的不同實現(xiàn)上的互操作性提高了。我們知道,協(xié)議標(biāo)準(zhǔn)化的一個主要目的就是提高協(xié)議的互操作性。 總之,這種數(shù)據(jù)鏈路層的協(xié)議非常簡單:接收方每收到一個幀,就進行CRC檢驗。如CRC檢驗正確,就收下這個幀;反之,就丟棄這個幀,其他什么也不做.
封裝成幀 PPP協(xié)議必須規(guī)定特殊的字符作為幀定界符(即標(biāo)志一個幀的開始和結(jié)束的字符),以便使接收端從收到的比特流中能準(zhǔn)確地找出幀的開始和結(jié)束位置。 透明性 PPP協(xié)議必須保證數(shù)據(jù)傳輸?shù)耐该餍?。這就是說,如果數(shù)據(jù)中碰巧出現(xiàn)了和幀定界符一樣的比特組合時,就要采取有效的措施來解決這個問題。多種網(wǎng)絡(luò)層協(xié)議 PPP協(xié)議必須能夠在在同一條物理鏈路上同時支持多種網(wǎng)絡(luò)層協(xié)議(如IP和IPX等)的運行。當(dāng)點對點鏈路所連接的是局域網(wǎng)或路由器時,PPP協(xié)議必須同時支持在鏈路所連接的局域網(wǎng)或路由器上運行的各種網(wǎng)絡(luò)層協(xié)議。 多種類型鏈路 除了要支持多種網(wǎng)絡(luò)層的協(xié)議外,PPP還必須能夠在多種類型的鏈路上運行。例如,串行的(一次只發(fā)送一個比特)或并行的(一次并行地發(fā)送多個比特),同步的或異步的,低速的或高速的,電的或光的,交換的(動態(tài)的)或非交換的(靜態(tài)的)點對點鏈路。
這里特別要提到的是在1999年公布的在以太網(wǎng)上運行的PPP,即PPP over Ethernet,簡稱為PPPoE[RFC 2516],這是PPP協(xié)議能夠適應(yīng)多種類型鏈路的一個典型例子。PPPoE是為寬帶上網(wǎng)的主機使用的鏈路層協(xié)議。這個協(xié)議把PPP幀再封裝在以太網(wǎng)幀中(當(dāng)然還要增加一些能夠識別各用戶的功能)。寬帶上網(wǎng)時由于數(shù)據(jù)傳輸速率較高,因此可以讓多個連接在以太網(wǎng)上的用戶共享一條到ISP的寬帶鏈路?,F(xiàn)在,即使是只有一個用戶利用ADSL進行寬帶上網(wǎng)(并不和其他人共享到ISP的寬帶鏈路),也是使用PPPoE協(xié)議,
PPP協(xié)議的組成
1)一個將IP數(shù)據(jù)報封裝到串行鏈路的方法。PPP既支持異步鏈路(無奇偶檢驗的8比特數(shù)據(jù)),也支持面向比特的同步鏈路。IP數(shù)據(jù)報在PPP幀中就是其信息部分。這個信息部分的長度受最大傳送單元MTU的限制。
2)一個用來建立、配置和測試數(shù)據(jù)鏈路連接的鏈路控制協(xié)議LCP(Link Control Protocol)。通信的雙方可協(xié)商一些選項。在RFC 1661中定義了11種類型的LCP分組。
3)一套網(wǎng)絡(luò)控制協(xié)議NCP(Network Control Protocol),其中的每一個協(xié)議支持不同的網(wǎng)絡(luò)層協(xié)議,如IP、OSI的網(wǎng)絡(luò)層、DECnet,以及AppleTalk等。