1、使用者認證和配置下發:
ADSL和FTTH接入網中,都需要先輸入使用者名和密碼(運作商配置設定給使用者的),登入之後才能通路網際網路,而BAS就是登入操作的視窗。BAS使用PPPoE(Point-to-Point Protocol over Ethernet,以太網的點對點協定)方式來實作這個功能(也有一些營運商使用PPPoA方式)。
PPPoE是由傳統的電話撥号上網上使用的PPP協定發展而來的。在使用電話線或者ISDN撥号上網時,PPP的工作方式如下圖所示:

TA :連接配接ISDN的一種終端裝置
TA的功能就是使得現有的非ISDN标準終端(例如模拟話機、G3傳真機、分裝置、PC機)能夠在ISDN上運作,為使用者在現有終端上提供ISDN業務。TA裝置還提供接口和PC機相連,類似外置modem,為PC機提供64K/128K數位信道。TA和ISDN卡的差別就像外置Modem和内置Modem的差別。外置的就是TA,内置的就是ISDN卡。
在撥接上網時,可以根據電話号碼來改變接入點,而不同的接入點具有不同的IP位址,是以無法事先在計算機上設定這個位址。
2、在以太網上傳輸PPP消息:
在ADSL和FTTH中,使用者和BAS之間是通過電纜或光纖固定連接配接在一起的,是以沒有必要驗證使用者身份,也就不需要PPP的所有這些功能。然而,通過使用者名和密碼登入的步驟可以根據使用者名來切換不同的營運商,這很友善。是以,接入網運作商在ADSL和FTTH中一般也會使用PPP(也有一些營運商使用DHCP方式來向用戶端下發IP位址等配置資訊)。當然撥号上網的PPP是無法直接用于ADSL和FTTH的。
在此之前,先來了解PPP協定是如何傳輸的。傳輸PPP消息的思路和将IP包裝入以太網包中傳輸是一樣的。PPP協定中沒有定義類似以太網中的報頭和FCS等元素,也沒有定義信号的格式,是以無法直接将PPP消息轉換成信号來發送。要傳輸PPP消息,必須有一個包含報頭、FCS、信号格式等元素的“容器”将PPP消息裝在其中。在撥号接入中PPP借用了HDLC協定(High-level Data Link Control,進階資料聯接控制)作為容器,而HDLC協定原本是為在專線中傳輸網絡包而設計的,撥号接入方式對這一規格進行了一些修正。最終,PPP消息傳輸就如下圖所示:
對于ADSL和FTTH而言,由于不能使用HDLC,是以需要尋找另一個機制作為替代HDLC來裝載PPP協定。此外,以太網和PPP在設計上有所不同,為了彌補這些問題就重新設計了一個新規格,這就是PPPoE。
3、通過隧道将網絡包發送給營運商:
所謂隧道,就類似于套接字之間建立的TCP連接配接。如果在BAS和營運商路由器之間的ADSL/FTTH接入服務商的網絡中建立一條隧道,将使用者到BAS的接入網連接配接起來,就形成了一條從使用者到營運商路由器的通道,就可以進入網際網路内部了,這樣的機制就類似于将接入網一直延伸到營運商路由器。
隧道的實作方式有很多種,TCP連接配接就是其中的一種。除此之外還有例如基于封裝的隧道實作方式,這種方式是将包含頭部在内的整個包裝入另一個包中傳輸到隧道的另一端。
4、接入網的整體工作過程:
接入網的工作從使用者端的網際網路接入路由器進行連接配接操作開始。首先,接入路由器中需要配置營運商配置設定的使用者名和密碼。然後,接入路由器會根據PPPoE的發現機制來尋找BAS。這一機制和ARP一樣是基于廣播來實作的,通過該機制得到BAS的MAC位址。上面的這個過程就相當于撥号上網中撥通電話的動作。
接下來,就進入使用者認證和下發配置的階段。這裡主要分為兩個重點,第一個重點是使用者名和密碼如何發給BAS。這裡有兩種方式,一種是将密碼進行加密的CHAP(Challenge Handshake Authentication Protocol,挑戰握手認證協定)方式,另一種是不加密的PAP(Password Authentication Protocol,密碼驗證協定)方式。進行加密的CHAP方式顯然更加安全,但是PAP方式也不一定就立刻會被竊取,除非在路由器和ADSL Modem中間進行竊聽,或者爬到電線杆上安裝竊聽裝置拾取電纜中洩漏的電磁波(這對于光纖是沒用的,因為光纖不會洩漏電磁波)。第二個重點是在校驗密碼之後BAS如何向使用者下發TCP/IP配置資訊。這裡下發的配置資訊包括配置設定給上網裝置的IP位址、DNS伺服器的IP位址以及預設網關的IP位址。
接着,用戶端就會開始發送用來通路網際網路的網絡包,隻不過在通過路由表判斷轉發目标之後,包不是按照以太網規則轉發,而是按照PPPoE規則轉發。PPPoE包如下圖所示:
最後,網絡包會到達BAS,而BAS會将MAC頭部和PPPoE頭部去掉,去除PPP頭部以及後面的部分,然後通過隧道機制将包發送出去。PPP包會沿隧道到達另一端的出口,也就是網絡營運商的路由器。
5、不配置設定IP位址的無編号端口:
當采用一對一連接配接,也就是兩台路由器的端口用一根線直接連接配接起來的情況下,一端發送的包肯定會到達另一端,那麼這種情況下就沒必要按照路由表查詢預設網關來判斷轉發目标位址了。那麼,網關的位址也就沒什麼用了;那麼,目标路由器的端口也用不着配置設定IP位址了(PPPoE是工作在以太網上的協定,可以通過集線器與路由器和BAS連接配接,是以從實體層面的連接配接形态來看并不是一對一的。不過,通過發現機制開始和BAS通信後,邏輯層面上就是一對一通信)。
以前,即便是在上面的場景中,還是會為每個端口配置設定IP位址,然而,當公有位址越來越少時,就提出了一個特例,即一對一連接配接的端口可以不配置設定IP位址。這種方式稱為無編号。這種情況下,BAS下發配置資訊時就不會下發預設網關的IP位址。
6、網際網路接入路由器将私有位址轉換成公有位址:
前面提到過,BAS會向使用者端下發TCP/IP的配置資訊,如果将這些資訊配置在計算機上,就相當于計算機擁有了公有位址,這種情況下不需要進行位址轉換也可以通路網際網路。TCP/IP原本的設計就是這樣的。然而,如果使用路由器來上網,BAS下發的參數就會被配置在路由器上,而且公有位址也是配置設定給路由器的。這樣一來,計算機就沒有公有位址了。
這時,計算機會被配置設定一個私有位址,計算機發送的包需要通過路由器進行位址轉換然後再轉發到網際網路中。Web和郵件等應用程式不會受到位址轉換的影響,但有些應用程式會因為位址轉換無法正常工作,這是因為有些應用程式需要将自己的IP位址告知通信對象或者控制伺服器,但在有位址轉換的情況下這些操作可能無法完成。
7、除PPPoE之外的其他方式:
首先,我們先來看看使用PPPoA(Point-to-Point Protocol over ATM)方式的ADSL接入網。ADSL使用PPPoE方式時,是先将PPP消息裝入以太網包中,然後再将以太網包拆分并裝入信元(如下圖所示)。
與PPPoE最本質上的差別也就是加不加MAC頭部和PPPoE頭部的差別。由于PPPoA沒有MAC頭部,是以PPP消息是無法通過以太網來傳輸的,這就意味着需要和BAS收發PPP消息的裝置,也就是計算機和路由器,必須和ADSL Modem是一體的,否則PPP機制就無法工作了。
一般我們将ADSL Modem和路由器整合成一台裝置。當然,也有使用USB接口連接配接的方式,隻是最終沒有普及。
正如我們之前提到的,當由于位址轉換産生問題時,這種方式就不容易處理了,因為我們無法抛開路由器用計算機直接上網。
當然,PPPoA相比PPPoE也有一些優勢。PPPoE方式在傳輸資訊時,需要添加PPPoE頭部和PPP頭部,這意味着MTU就相應變小了,這可能會降低網絡效率。而PPPoA不使用以太網包來傳輸PPP消息,是以不會發生MTU變小的問題。
PPPoE會降低網絡效率,PPPoA也有ADSL Modem和路由器無法分離的限制,這兩個問題其實都是由PPP引起的。是以,有一些營運商不适用PPP,他們使用DHCP協定(Dynamic Host Configuration Protocol,動态主機配置協定)從BAS向使用者端下發TCP/IP配置資訊。
首先,用戶端請求配置資訊,然後DHCP伺服器下發配置資訊。非常簡單,不需要像PPP那樣需要多個步驟,也不需要驗證使用者名和密碼。沒有使用者名和密碼,就意味着無法通過使用者名來切換營運商網絡,但這種方式也有優勢,它可以單純地直接傳輸以太網包,不需要添加額外的PPP頭部,是以不會占用MTU(如下圖所示)。
此外,DHCP的營運商使用的ADSL Modem也和PPPoE、PPPoA方式不同,這種ADSL Modem不使用信元,而是直接将以太網包調制成ADSL信号,是以沒有ADSL Modem和路由器無法分離的問題。