本文會以PPP協定的角度出發,帶出乙太網路,然後會介紹PPPoE協定。主要將提及PPPoE在乙太網路中建立連線的過程,也會詳細介紹PPPoE承自PPP協定的主要特性等等。
第四步驟:PADS
接下來第四個步驟等於就是DSL-AC給用戶端的最後確認。PADS是PPPoE Active Discovery Session-confirmation的縮寫,在這個步驟中,DSL-AC也會建立一個Session ID,並把這個ID傳回給用戶端,以便於後續PPPoE資料傳輸之用。
若要終止整個PPPoE連線,無論是伺服器端或是用戶端,都可以提出需求來終止連線。這個終止動作稱為PADT,也就是PPPoE Active Discovery Termination。
PPPoE Session
PPPoE主要的工作階段其實是PPPoE Discovery。等到上面那個步驟完成,就代表這個點對點連線的雙方MAC位址都已經被定位,可以開始進行資料的傳輸,而PPPoE Session就是代表已經可以開始傳輸資料了。
PPPoE整合PPP協定的特點
前面提到在PPP協定中的階層式架構主要分成兩層,上層為NCP(Network Control Protocol),下層為LCP(Link Control Protocol)。
上層的NCP主要的工作是負責認證等等,並且與OSI網路架構的第三層協同運作,也因為NCP,PPP協定才能與各種不同的網路協定做整合。
而下層的LCP則是負責建立資料連結的連線,PPP協定提供不少種類的設定給LCP,以便建立資料連結的連線,主要內容是去協調點對點的網路連線以及檢查網路封包訊框等等設定。除此之外,LCP又包含接下來將介紹的設定內容。
前面有提到,LCP的主要工作是建立PPP協定的連線以及與連線相關的工作,而在Cisco的網路設備中可能包含的工作就如表1所示。
表1 Cisco網路設備中可能包含的工作
其中,連線認證方面,會要求建立連線的一方(也就是Caller)輸入與認證相關的資訊,例如密碼之類的。輸入認證的相關資訊的目的是,為了確認要求建立連線的一方有足夠的管理權限以便使用這樣的PPP連線。一般而言,會被使用的認證協定有PAP協定和CHAP協定。
而壓縮主要用來增加PPP連線的網路流量,當然作法如同名稱所示,就是將傳遞的資料透過壓縮的方式,減少所需要承載的網路封包大小。一般就Cisco的路由器而言,會使用的壓縮協定包含Stacker和Predictor兩種。
與眾多網路協定一樣,PPP協定的連線也具備錯誤偵測的功能,通常會使用Quality Magic Number來確保比較穩定而且不會有網路迴圈的資料傳輸。
至於最後的多連結部分,PPP協定的連線也可以在路由器的介面(Interfaces)上具備流量平衡(Load Balancing)的功能。所謂的Load Balancing就是在具有相同路徑選擇時,將網路流量平均分配到這些網路路徑上,以便達到網路流量平均分攤的效果,減少每一條網路路徑的負擔。
以圖3這個網路架構圖為例,假設伺服器X想要傳送封包給伺服器Y,由圖3可看出,伺服器X要到達伺服器Y必須經過三個路由器設備,但是可以經由路由器A、B、D這樣的網路路徑,也可以經由路由器A、C、D的網路路徑,若有開啟Load Balancing功能,則由伺服器X到伺服器Y的網路流量就會被分成兩條,分別走剛剛所說的兩種不同的網路路徑,這就是Load Balancing功能。
|
▲圖3 Load Balancing網路架構圖。 |
而在Cisco路由器上與PPP協定相關的Load Balancing功能,有時候會與Multilink協定(也就是MLP)有關。
另外,必須注意的是,Cisco的IOS從11.1版本以後就開始支援MLP。MLP協定被定義於RFC編號1717文件之中,MLP協定主要提供網路封包分割以及將切割的網路封包做定序的工作,一般而言,MLP協定會在平行多線路的環境同時發送網路封包。
在某些情況之下,這些MLP連線會像單一連線一樣的工作,如此一來,就可以在路由器之間有效增加網路流量。
PPP與PPPoE相關的RFC文件
在RFC編號1661和編號1332文件中,都有定義PPP協定的詳細規格。PPP協定主要被定義在RFC編號1661文件內,定義了各種認證方式、加密和解密的方式、壓縮資料方式,以及PPP協定如何和其他網路協定的合作與交互關係。
另外,RFC編號1994文件內則描述了關於PPP協定中的CHAP協定,也就是握手(Handshake)協定,用於建立撥號連接。而RFC編號2516文件中,定義了相當知名的PPPoE協定,PPPoE協定在乙太網路中用於傳輸PPP協定中的資料,經常被使用於ADSL上。
至於RFC編號2364文件,則描述了PPPoA協定,這個協定主要用於,當使用ATM網路卡來傳輸PPP協定的資料時所採用的,由於PPPoA是被用於ATM網路,所以也被稱為PPPoATM。
另外,PPP協定甚至還在兩個網路系統之間支援多點連接,以便增加網路頻寬,在這樣的網路環境之下,PPP協定支援兩個頻寬的合併,也支援流量平衡的功能,而這些都被定義於RFC編號1717文件之中。
結語
這篇文章主要以PPP協定的角度出發,帶出了乙太網路,然後介紹了PPPoE協定。主要提及PPPoE在乙太網路中建立連線的過程,也詳細介紹PPPoE承自PPP協定的主要特性。很多讀者相信在早期應該都使用過PPPoE網路,但是可能並不了解何謂PPPoE網路,透過這篇文章,相信可以大大提升對於PPPoE的認識。
<本文作者:胡凱智,目前在美商Mozilla擔任資深全球專案經理,曾於趨勢科技任職七年多,有兩年美國矽谷工作經驗,在美國專利局擁有軟體專利。讀者可在其粉絲專頁獲取更多網路知識及交流建議:https://www.facebook.com/khu.page>