新闻中心

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 下一页

评论


相关推荐

技术专区

关闭