剖析PPP鏈路的原理
我們都知道PPP協(xié)議是點(diǎn)對(duì)點(diǎn)協(xié)議,這些基礎(chǔ)內(nèi)容我們?cè)谏弦还?jié)已經(jīng)講解過(guò)了,這次我們主要解析一下PPP鏈路問(wèn)題。它幫助人們?cè)诤?jiǎn)單的點(diǎn)對(duì)點(diǎn)鏈路上實(shí)現(xiàn)了上層協(xié)議的封裝。但是,目前豐富多彩的互聯(lián)網(wǎng)世界是承載在復(fù)雜、龐大的廣 域網(wǎng)上,靈活方便的非點(diǎn)對(duì)點(diǎn)的以太網(wǎng)絡(luò)是現(xiàn)代網(wǎng)絡(luò)世界的主要常用媒介,那PPP是否已經(jīng)遠(yuǎn)離了我們呢?答案是否定的,實(shí)際上,現(xiàn)在我在家中利用ADSL接 入ISP登錄到我的博客來(lái)寫(xiě)這篇文章,這一過(guò)程就離不開(kāi)PPP協(xié)議,且聽(tīng)我慢慢道來(lái)。
就讓我用我們最熟悉的上網(wǎng)為例來(lái)講解吧。早期,人們用計(jì)算機(jī)外接modem(調(diào)制解調(diào)器)再通過(guò)電話(huà)線(xiàn)撥號(hào)來(lái)接入ISP(Internet接入服務(wù) 提供商)連接Internet,就使用了PPP協(xié)議,具體來(lái)說(shuō),就是在“用戶(hù)撥出計(jì)算機(jī) - 用戶(hù)modem - ISP modem -接入服務(wù)器”這樣一條PPP鏈路上,使用PPP封裝了IP報(bào)文來(lái)實(shí)現(xiàn)用戶(hù)至Internet網(wǎng)絡(luò)接入服務(wù)器之間IP報(bào)文的流控和計(jì)費(fèi)等功能,如下圖:
PPP鏈路撥號(hào)接入ISP
上圖中,”電話(huà)線(xiàn)“這一串行連接是通過(guò)用戶(hù)電話(huà)撥入電話(huà)局提供的接入號(hào)碼來(lái)建立起來(lái)的,”撥號(hào)“這一概念,也就發(fā)端于此。這種撥號(hào)方式,用戶(hù)計(jì)算機(jī) 與ISP接入服務(wù)器之間的連接線(xiàn)路完全占用了電話(huà)線(xiàn)的信道,所以用戶(hù)在使用計(jì)算機(jī)接入網(wǎng)絡(luò)之后,電話(huà)就處于占線(xiàn)狀態(tài),不能再同時(shí)接入語(yǔ)音電話(huà)。并且,這種 使用modem通過(guò)電話(huà)線(xiàn)傳輸模擬信號(hào)的接入方式,***就只能達(dá)到56kbps的上網(wǎng)速率(實(shí)際使用時(shí),由于鏈路問(wèn)題,連這個(gè)速率都很難達(dá)到),生活在 2009年的我們可以想象那時(shí)網(wǎng)民的生活是多么的水深火熱…
針對(duì)于上述缺陷,人們利用ISDN(綜合業(yè)務(wù)數(shù)字網(wǎng))技術(shù)改進(jìn)了網(wǎng)絡(luò)接入方案。使用ISDN技術(shù),我們可以在依然使用原來(lái)的普通電話(huà)線(xiàn)的情況下,在 電話(huà)線(xiàn)上傳輸數(shù)字信號(hào)。這是通過(guò)在電話(huà)線(xiàn)上建立ISDN信道來(lái)實(shí)現(xiàn)的,ISDN的BRI(基礎(chǔ)速率接口)支持2個(gè)B信道+1個(gè)D信道總共128kbps的 連接速率,我們使用MLPPP(多鏈路PPP) 協(xié)議將ISDN提供的多條點(diǎn)對(duì)點(diǎn)鏈路復(fù)合為一條點(diǎn)對(duì)點(diǎn)鏈路,這樣就可以利用BRI的128kbps速率高速(相對(duì)于原來(lái)的modem方式)接入網(wǎng)絡(luò)了。同 時(shí),ISDN可以在一條電話(huà)線(xiàn)線(xiàn)路上同時(shí)接入多個(gè)終端設(shè)備(計(jì)算機(jī)、電話(huà)等)同時(shí)使用。這一切,只需要將上圖中的調(diào)制解調(diào)器換為ISDN接入設(shè)備即可。
和ISDN技術(shù)類(lèi)似的,我們現(xiàn)在經(jīng)常聽(tīng)到和使用的ADSL技術(shù),也是在一定程度上對(duì)傳統(tǒng)電話(huà)線(xiàn)路的信道使用方式進(jìn)行了優(yōu)化改造。ADSL是xDSL 技術(shù)族的一員,傳輸速率可以達(dá)到Mbps數(shù)量級(jí),xDSL有ADSL、VDSL、HDSL等多種模型,他們的區(qū)別就在于信號(hào)傳輸速率和傳輸距離上,其中 ADSL在這些指標(biāo)上顯示出其非常適合作為家庭接入Internet的特點(diǎn),所以人們普遍采用了ADSL。
其實(shí),ISDN和ADSL相對(duì)于傳統(tǒng)modem撥號(hào)方式,只是改變了承載信號(hào)的物理層。
講上面這些ISDN和ADSL的內(nèi)容,目的是為了逐步引出這篇文章的主角 - PPPoE,但是,說(shuō)真的,直到寫(xiě)完了上面的內(nèi)容,外加查了很久的資料,我也沒(méi)真正找到確實(shí)可信的論據(jù)來(lái)證明為什么在A(yíng)DSL物理鏈路上我們要選擇使用 PPPoE來(lái)接入ISP… ^o^ (使用PPPoE協(xié)議可將PPP幀之外再封裝上一層PPPoE頭,以達(dá)到在Ethernet網(wǎng)絡(luò)這種非PPP鏈路上傳輸PPP幀的目的。)
當(dāng)然,雖然沒(méi)有找到直接論據(jù),但是分析了眾多的資料后我是有收獲的,我可以說(shuō)說(shuō)自己的理解,有不對(duì)之處還請(qǐng)各位指點(diǎn)。
傳統(tǒng)的modem撥號(hào)和ISDN撥號(hào)都是用modem撥ISP的一個(gè)號(hào)碼,也就是得到ISP分配的一條電話(huà)線(xiàn)連接來(lái)建立起點(diǎn)對(duì)點(diǎn)物理鏈路的,而 ADSL也是類(lèi)似的物理層拓?fù)洌晕蚁霊?yīng)該也是可以同樣的撥號(hào)方式直接接入ISP的。但是,為什么現(xiàn)實(shí)中ADSL不是這樣來(lái)使用的呢,為什么要在 ADSL物理層之上再封裝“ethernet層+PPPoE層”然后再承載PPP而不是直接在A(yíng)DSL物理層上承載PPP呢?ISP運(yùn)營(yíng)商到底出于什么考 慮呢?
在A(yíng)DSL網(wǎng)絡(luò)上直接封裝PPP,則這條點(diǎn)對(duì)點(diǎn)鏈路是起始與用戶(hù)的ADSL貓,終結(jié)于ISP運(yùn)營(yíng)商的DSLAM(數(shù)字用戶(hù)接入復(fù)用)設(shè)備,也就是 ADSL物理鏈路的終點(diǎn)。對(duì)于用戶(hù)的管理與認(rèn)證授權(quán)控制必須要放在DSLAM設(shè)備上(當(dāng)然PPP支持遠(yuǎn)程授權(quán),但這無(wú)疑將增加復(fù)雜度和風(fēng)險(xiǎn)),這 樣,ISP必須在很接近用戶(hù)物理位置也就是網(wǎng)絡(luò)的末梢底層的地方(因?yàn)锳DSL物理線(xiàn)路不會(huì)很遠(yuǎn))來(lái)管理用戶(hù)。
ADSL撥號(hào)接入ISP網(wǎng)絡(luò)時(shí)的PPP鏈路
而如果采取PPPoE的方式,先將PPP封裝在PPPoE內(nèi),再在PPPoE外封裝Ethernet頭,然后再將這Ethernet幀通過(guò)ATM或 LAPD(Link Access Procedure on the D channel)等鏈路層協(xié)議封裝在A(yíng)DSL或ISDN物理連接上。這樣,點(diǎn)對(duì)點(diǎn)鏈路的起點(diǎn)將是封裝PPPoE的用戶(hù)計(jì)算機(jī),終點(diǎn)可以是DSLAM,也可 以是DSLAM之后的更高層的BAS(寬帶接入服務(wù)器)設(shè)備或其他哪里,就看PPPoE服務(wù)器被設(shè)置在哪里了(PPPoE報(bào)文在PPPoE服務(wù)器被解 開(kāi)),如上圖這種經(jīng)典的應(yīng)用場(chǎng)景中PPP鏈路就直到LNS設(shè)備才終結(jié)(PC到DSLAM之間是ADSL PPP鏈路承載PPPoE,DSLAM到BAS之間 是ATM鏈路承載PPPoE,在BAS設(shè)備將PPP從PPPoE封裝中解出,然后,從BAS到LNS設(shè)備之間使用L2TP協(xié)議承載了PPP報(bào)文,L2TP 將在本系列文行的后續(xù)文章中介紹)。這樣,一是解決方案更加靈活,另外,由于管理設(shè)備可以位于更高(更靠近網(wǎng)絡(luò)核心)的位置,集中管理的用戶(hù)可以更多,可 以降低運(yùn)營(yíng)商的成本。
解釋到這里,我覺(jué)得我這個(gè)解釋是很合理可信的:PPPoE虛擬撥號(hào)的使用使得PPP接入連接(也就是客戶(hù))的認(rèn)證、授權(quán)點(diǎn)位置更加靈活,可是將其設(shè) 置在更接近網(wǎng)路的核心的位置。我認(rèn)為,PPPoE這種協(xié)議的存在,重要的是提供了一種PPP報(bào)文的封裝方式,至于具體如何封裝并不是決定性的,用 Ethernet封裝就是PPPoE,用ATM封裝就是PPPoA。但是,為什么普通modem撥號(hào)和ISDN沒(méi)有采用這樣的PPPoE撥號(hào)呢?我真的解 釋不了,因?yàn)?,理論上是絕對(duì)可行的。
本文中講到了PPPoE協(xié)議,但是截至目前,只是講到用它封裝了PPP幀然后放在專(zhuān)線(xiàn)鏈路(ADSL/ISDN)上傳輸。至于為什么要用PPPoE,以及PPPoE的具體本領(lǐng),還是下篇文章再向大家介紹吧。