• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 手機與無線通信 > 設計應用 > 基于ATM的ADSL網關的研究與實現

    基于ATM的ADSL網關的研究與實現

    作者: 時間:2009-12-25 來源:網絡 收藏

    圖3:的協議棧

    在圖3中,AAL5是適配層,RFC1483是適配層第五類型的多協議封裝規范,描述了在端系統中怎樣在主機、橋設備和路由設備之間承載多協議業務。在中,根據ITU的協議規范,信號經過一系列變換以ATM信元的形式輸出,因此我們要在ATM適配層的基礎上將信號變成上層協議能夠識別的包,從而決定該包是否轉發,丟棄或者接收。根據RFC1483協議,有兩種多協議封裝的形式,一種是LLC封裝多協議,即LLC-SNAP模式,在同一個VC上承載多協議,協議類型包含在LLC頭中,另一種是VC-MUX模式,不同的協議使用不同的VC,則不需要在協議頭中指明協議類型,而具體哪一個VC承載哪一種協議則是在鏈路初始化的時候確定,這種方法降低了鏈路開銷,但在虛擬連接數量有限的情況下多數還是使用LLC復用。這個功能是通過在Linux內核中加載PPPOA模塊來的。

    PPP包中包括三種類型的信息:

    * Link Control Protocol(LCP) 用來協商鏈路參數,包的大小,以及認證類型

    * Network Control Protocol(NCP) 指明高層協議的信息,可以是IP、IPX及其控制協議。

    * 數據幀

      遵循的協議是ATM的,也就是在物理層是在電話線上調制高速數據信號,RS編碼,擾碼等一些物理層的協議,在物理層以上是以ATM信元格式輸出的,而對于ADSL來說,PPP over ATM Adaption Layer 5(AAL5) RFC2364是用AAL5作為成幀協議,支持PVC,SVC, PPPOA是ADSL協議棧的基本部分,它依賴于RFC1483,工作在LLC-SNAP或VC-MUX模式下,用戶端設備(CPE)封裝PPP包的過程就是以PPPOA協議來進行ADSL環路和DSLAM上傳輸數據的。AAL5的公共部分匯集子層(CPCS)的協議數據單元如圖4所示:

      其中CPCS-PDU Payload部分是AAL5協議的數據部分,最大為216-1個字節,這是因為在下面的二字節的LENGTH域中限定的。PAD中有48個字節,剛好為一個信元的數據域,由SAR(分段重組)子層生成,CPI域是為了使CPCS-PDU TRAILER成64位而填補上去的,CRC采用32位的循環冗余校驗碼。

      在我們的ADSL網關設計中,考慮到有限的虛擬連接的數量,我們采用的是LLC封裝多協議的模式,即LLC-SNAP模式,其CPCS-PDU Payload域如圖4所示。包括:

    * LLC頭:3字節,其中兩個字節指定了一個目的SAP(0xFE)和源SAP(0xFE),后面是幀類型,為Un-numbered Information=0x03

    * Network Layer protocol Identifier(NLPID),這里使用的是PPP,其類型值為0xCF

    * PPP協議標識域為一和二字節

    * PPP信息域

    * PPP填充域

      對于局域網內的用戶通過以太網口和Wireless LAN的天線與網關互聯,其中以太網和Wireless LAN使用不同的網段,網關要做的事情是看用戶的IP包,如果是發往本局域網的,那要看是不是同一個網段的,如果是則丟棄,如果不是則發向另一網段,也就是說在本地的包業務通信中,起了一個橋接的作用。如果不是發向本局域網,而是發向廣域網的包則通過PPP端口轉發,其路由功能。以太網的驅動程序和WLAN驅動程序在Linux中也是作為一個可載入模塊加載到Linux內核中。

      為了實現應用網關功能,在應用層我們還根據實際需要實現了IP地址過濾的防火墻,地址解析,簡單管理,動態主機地址分配,和WEB服務器,

      重新編譯內核時去掉對硬盤,鼠標,顯卡,鍵盤的支持,只保留一個簡單的文件系統,并放在Flash上,這樣可以在線升級網關操作系統。內核的核心主要是進行內存管理,啟動和中斷。將PPPOA模塊、以太網以及WLAN驅動模塊編譯進內核,內核程序與設備接口間采用消息驅動方式,三個模塊對應三個消息隊列和三個通信例程,每個例程負責監聽相應端口的數據(對應一個消息隊列),當接受到消息時,使進程轉入處理程序,進行內存刷新、加工數據幀頭、發送消息等工作,消息隊列如果沒有消息存在,該進程就釋放CPU給其它進程。由于一些寄存器(DCR,SPR等)的值和外設的I/O空間要映射到物理內存空間,所以要在TLB中鎖定這些內存,在為三個PCI設備進行內存分配時,要判斷分配的內存空間是否與鎖定的內存空間重疊。另外我們在硬件設計上使用了串口(RS-232)作為調試接口,可以在shell中測試系統命令,運行應用程序,或用GDB對應用程序進行調試,另外shell還用于對系統進行配置。配置包括配置全局參數對網關的命令行接口,需要配置撥號PPP over ATM端口、以太網和WLAN端口。在配置前需要確認ADSL線路與DSLAM連接,要有一個靜態IP地址或者由ISP負責動態IP地址分配。網關在啟動時,BIOS上電自檢,加載文件系統,引導網關操作系統,ADSL線路進行握手操作,初始化鏈路,進入SHOWTIME。

    三、 進一步的工作及展望

      ADSL網關集ADSL modem 和應用網關于一體,既完成ADSL接入的模擬的調制解調工作,又在此基礎上實現了資源共享,簡單網絡管理以及網絡安全方面的功能等,是一種有著廣泛應用前景的技術


    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 志丹县| 多伦县| 左云县| 鸡西市| 余干县| 望城县| 平定县| 齐河县| 定边县| 岱山县| 马公市| 通化县| 历史| 宜丰县| 石狮市| 琼海市| 德州市| 灵武市| 井陉县| 休宁县| 西华县| 巧家县| 疏附县| 稻城县| 阳城县| 丰台区| 当雄县| 夏津县| 扎囊县| 沁阳市| 德江县| 兴城市| 西华县| 上虞市| 芒康县| 大化| 成武县| 宿迁市| 朝阳县| 阿拉尔市| 朝阳区|