計算機網絡 - 點對點協議PPP

點對點協議PPP

PPP協議的特點

  • PPP協議就是用戶計算機與ISP通信時所使用的數據鏈路層協議

PPP協議應滿足的要求

  • 簡單:因IETF在設計因特網體系結構時,把最復雜的部分放在了TCP協議中,網際協議IP相對比較簡單,所以對數據鏈路層的幀,不需要糾錯,不需要序號,也不需要流量控制。簡單為首要要求
    簡單的設計還可以是協議在實現時不容易出錯,從而不同廠商在協議的不同實現上互操作性提高了。

  • 封裝成幀:PPP協議必須規定特殊字符作為幀定界符(標志一個幀的開始和結束的字符),以便接收端從收到的比特流中能準確地找出幀的開始和結束位置。

  • 透明性:PPP協議必須保證數據傳輸的透明性。(即如果數據中碰巧出現了和幀界定符一樣的比特組合時要采取有效的措施來解決這個問題)

  • 多種網絡層協議:PPP協議必須能夠在同一條物理鏈路上同時支持多種網絡層協議(例如P和IPX等)的運行。
    當點對點鏈路所連接的是局域網或路由器時,PPP協議必須同時支持在鏈路所連接的局域網或路由器上運行的各種網絡層協議。

  • 多種類型鏈路:除了要支持多種網絡層協議外,PPP還必須能夠在多種類型的鏈路上運行。

    這里特別要提到的是在1999年公布的在以太網上運行的PPP,即PPP over Ethernet,
    簡稱PPPoE,這是PPP協議能夠適應多種類型鏈路的典型例子,PPPoE是為寬帶上網的主機使用的
    鏈路層協議。這個協議把PPP幀再封裝在以太網幀中。
    
  • 差錯檢測:PPP協議必須能夠對接收端收到的幀進行檢測,并立即丟棄有差錯的幀

  • 檢測連接狀態:PPP協議必須具有一種機制能夠及時自動檢測出鏈路是否處于正常工作狀態。

  • 最大傳送單元: PPP協議必須對每一種類型的點對點鏈路設置最大傳送單元MTU的標準默認值(至少是1500字節),如果高層協議發送的分組過長并超過MTU的數值,PPP就要丟棄這樣的幀,并返回差錯。MTU是數據鏈路層的幀可以載荷的數據部分的最大長度,而不是幀的總長度

  • 網絡層地址協商:PPP協議必須提供一種機制使通信的兩個網絡層(例如兩個IP層)的實體能夠通過協商知道或能夠配置彼此的網絡層地址。協商的算法應盡可能的簡單,且能在所有的情況下得出協商結果。

  • 數據壓縮協商:PPP協議必須提供一種方法來協商使用數據壓縮算法,但PPP協議并不要求將數據壓縮算法進行標準化。

在TCP/IP協議族中,可靠運輸由運輸層的TCP協議負責,因此數據鏈路層的PPP協議不需要進行糾錯,不需要設置序號,也不需要進行流量控制。PPP協議不支持多點線路(即一個主站輪流和鏈路上的多個從站進行通信),而只支持點對點的鏈路通信,此外PPP協議只支持全雙工鏈路。

PPP協議的組成

PPP協議有三個組成部分

  • 一個將IP數據報封裝到串行鏈路的方法。PPP既支持異步鏈路(無奇偶檢驗的8比特數據),也支持面向比特的同步鏈路,IP數據報在PPP幀中就是其信息部分。這個信息部分的長度受最大傳送單元MTU的限制。

  • 一個用來建議、配置和測試數據鏈路連接的鏈路控制協議LCP,通信雙方可協商一些選項(在RFC 1661中定義了11中類型的LCP分組)

  • 一套網絡控制協議NCP,其中每一個協議支持不同的網絡層協議,如IP、OSI的網絡層、DECnet以及AppleTalk等。

PPP協議的幀格式

1.各字段的意義

PPP幀的首部和尾部分別為四個字段和兩個字段。
PPP協議幀格式.png
首部的第一個字段和尾部的第二個字段都是標志字段F(Flag),規定為0x7E
(0x代表它后面的字符是用十六進制表示的。7E即01111110)
標志字段表示一個幀的開始或結束。因此標志字段就是PPP幀的定界符。
連續兩幀之間只需要用一個標志字段,如果連續出現兩個標志字段,
就表示是一個空幀,應當丟棄。?


首部中的地址字段A規定為0xFF(即11111111),
控制字段C規定為0x03(即00000011)。這兩個字段實際上并沒有攜帶PPP幀的信息。


PPP首部的第四個字段是2字節的協議字段。
當協議字段為0x0021時,PPP幀的信息字段就是IP數據報。
當為0xC021時,則信息字段是PPP鏈路控制協議LCP的數據,
而0x8021表示這是網絡層的控制數據。
  • 信息字段的長度是可變的,不超過1500字節
  • 尾部的第一個字段(2字節)是使用CRC的幀檢測序列FCS。

字節填充

當信息字段中出現和標志字段一樣的比特(0x7E)組合時,就必須采取一些措施使這種形式上和標志字段一樣的比特組合不出現在信息字段中。

當PPP使用異步傳輸時,它把轉義字符定義為0x7D(即01111101),并使用字節填充

RFC1662規定了如下所述的填充方法:

  • 把信息字段中出現的每一個0x7E字節轉變成2字節序列(0x7D,0x5E)。
  • 若信息字段出現一個0x7D的字節(即出現了和轉義字符一樣的比特組合),則把0x7D轉變成2字節序列(0x7D,0x5D)。
  • 若信息字段出現ASCII碼的控制符(即數值小于0x20的字符),則在該字符前加一個0x7D字節,同時將該字節的編碼加以改變。例如出現0x03就要把它轉變為2字節序列(0x7D,0x23)。

零比特填充

PPP協議在用SONET/SDH鏈路時,是使用同步傳輸(一連串的比特連續傳送)。這種情況下,PPP協議采用零比特填充方法來實現透明傳輸。

零比特填充的具體做法是:

  • 在發送端,先掃描整個信息字段,只要發現5個連續1,則立即填入一個0

因此經過這種零比特填充后的數據,可以保證信息字段中不會出現6個連續1

  • 接收端在接收到一個幀時,先找到標志字段F以確定一個幀的邊界。
  • 接著再用硬件對期中的比特流進行掃描。每當發現5個連續1時,就把這5個連續1后的一個0刪除,以還原成原來的信息比特流。

PPP協議的工作狀態

當用戶撥號接入ISP之后,就建立一條從PC到ISP的物理連接。這時,PC 向 ISP的發送一系列的鏈路控制及協議LCP分組(封裝成多個PPP幀),以便建立LCP連接。這些分組及其響應選擇將要使用的一些PPP參數。接著進行網絡層的配置,網絡控制協議NCP給新接入PC分配一個臨時的IP地址。這樣,PC就稱為因特網上的一個有IP的主機了。

當用戶通信完畢時,NCP釋放網絡層協議,收回原來分配出去的IP地址。接著LCP釋放數據鏈路層連接。最后釋放的是物理層的連接。


PPP協議狀態圖.png

PPP鏈路的起始和終點永遠是鏈路靜止狀態,這時存在PC和ISP的路由器之間并不存在物理層的連接。

當PC通過調制解調器呼叫路由器時(點擊連接),路由器能夠檢測到調制解調器發出的載波信號。在雙方建立了物理層連接后,PPP就進入鏈路建立狀態,其目的是建立鏈路層的LCP連接。

這時LCP開始協商一些配置選項,即發送LCP的配置請求幀。這是個PPP幀,其協議字段置為LCP對應的代碼,而信息字段包含特定的配置請求。鏈路的另一端可以發送以下幾種響應的一種:

  • 配置確認幀:所有選項都接受
  • 配置否認幀:所有選項都理解但不能接受
  • 配置拒絕幀:選項所有的無法識別或不能接受,需要協商。

LCP配置選項包括鏈路上的最大幀長、所使用的鑒別協議的規約,以及不使用PPP幀中的地址和控制字段(這兩個字段的值是固定的,沒有信息量)

協商結束后雙方就建立了LCP鏈路,接著就進入了鑒別狀態,在這一狀態,只允許傳送LCP協議的分組、鑒別協議的分組以及監測鏈路質量的分組。若使用口令鑒別協議PAP,則需要發起通信的一方發送身份標識符和口令。系統可允許用戶重試若干次。如需更好的安全性,則可使用更加復雜的口令握手鑒別協議CHAP。若鑒定失敗,則轉到鏈路終止狀態。若鑒別成功,則進入網絡層協議狀態。

網絡層協議狀態,PPP鏈路的兩端的網絡控制協議NCP根據網絡層的不同協議互相交換網絡層特定的網絡控制分組。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,963評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,348評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,083評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,706評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,442評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,802評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,795評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,983評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,542評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,287評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,486評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,030評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,710評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,116評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,412評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,224評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,462評論 2 378

推薦閱讀更多精彩內容