带有路由功能的嵌入式网络终端及其路由功能实现方法

文档序号:7967002阅读:174来源:国知局
专利名称:带有路由功能的嵌入式网络终端及其路由功能实现方法
技术领域
本发明涉及网络通信领域,特别涉及一种嵌入式网络终端中路由功能的实现方法。
背景技术
随着互联网技术的发展和普及,越来越多的家庭用户享受到了网络带来的服务, 并且,随着嵌入式技术的发展,家庭中也出现了许多嵌入式网络终端,例如机顶盒、VoIP (Voice over Internet Protocol)适配器、家用路由器等,为家庭用户提供数据、 语音服务。在互联通信过程中涉及多种网络协议,其中,网际协议(IP)是一个网络层协 议,它包含寻址信息和控制信息,可使数据包在网络中路由。IP协议是TCP/IP协 议族中的主要网络层协议。用户数据报协议(UDP)是一个简单的面向数据报的传 输层协议。传输控制协议(TCP)是一种面向连接的、可靠的、基于字节流的传输 层通信协议。地址解析协议(ARP)是用来实现IP地址与本地网络认知的物理地 址(以太网MAC地址)之间的映射。点到点协议(PPP)是为在同等单元之间传 输数据包这样的简单链路设计的链路层协议。以太网上的点对点协议(PPPoE)即 以太网上传送PPP数据包的协议。许多网络服务提供商向家庭用户提供ADSL (Asymmetric Digital Subscriber Line)的网络接入服务。ADSL是DSL (Digital Subscriber Line)的一种非对称版本, 它利用数字编码技术从现有铜质电话线上获取最大数据传输容量,同时又不干扰在 同一条线上进行的常规话音服务。用户可以在上网的同时打电话或发送传真,而不 会影响通话质量或降低下载因特网内容的速度。目前,PPPoE(Point-to-Point Protocol over Ethernet)技术规范是宽带接入运营商首选的宽带接入方式,它利用PPP (Point-to-Point Protocol)技术直接实现更高速、更可靠、更便捷的ADSL宽带接入, 将现有的宽带接入服务器与本地以太网络相结合,兼顾了对用户终端的硬件要求, 提髙了 ADSL宽带接入的总体性能。 —般情况下,家庭用户使用一台终端,例如PC机,通过ADSL适配器,拨号 并登陆到网络。如果家庭用户拥有多台终端,并且有2台以上的终端需要具有上网 功能,例如'VoIP适配器和PC机需要同时上网,'则购实一个内置拨号功能的家用路 由器可以解决这个问题,但这将给用户带来额外的投资。在一些嵌入式网络终端中,例如某些VoIP适配器,内部集成了拨号功能和家用 路由器的功能,其他终端可以通过这台嵌入式网络终端作为路由器上网。图1为现 有的带有路由功能的嵌入式网络终端的网络功能部分的结构图,在该嵌入式网络终 端的网络功能部分中,包括嵌入式网络应用模块、DHCP服务器、TCP/UDP协议 处理模块、IP协议处理模块、PPP与PPPoE模块、以太网分组处理模块、ARP协 议处理模块、WAN网络接口卡模块、LAN NIC模块、HUB/SWITCH模块组成。 其中,外部的ADSL适配器与WAN NIC模块连接,与嵌入式网络终端相连的子网 中的各个终端通过HUB/SWITCH模块连接到LAN NIC模块上。WAN NIC模块与 PPP与PPPoE模块连接,LAN NIC模块与以太网分组处理模块连接,PPP与PPPoE 模块和以太网分组处理模块都连接到IP协议处理模块上,以太网分组处理模块还与 ARP协议处理模块连接,IP协议处理模块则与TCP/UDP协议处理模块连接, TCP/UDP协议处理模块则分别与嵌入式网络应用模块、DHCP服务器连接。在现有的带有路由功能的嵌入式网络终端中,利用DHCP服务器为其子网中各 终端提供IP地址等网络参数。由于需要向多台终端提供网络接入功能,现有的带有 路由功能的嵌入式网络终端提供的IP地址和网关等网络参数一般都为私网IP地址, 例如"192.168.0.*"。由于采用了私网地址作为终端的IP地址,因此,在现有的带 有路由功能的嵌入式网络终端中除了需要存储路由表外,还需要实现网络地址转换、 穿越等功能。由此会带来维护路由表、进行内外网地址转换、分组校验和重新计算 等一系列的操作。这种方式实现路由功能时,对硬件需求较高、软硬件成本都比较 髙,并且霈要处于内部子网的终端解决由于网络地址转换而造成问题。此外,现有的带有路由功能的嵌入式网络终端在使用PPPoE链路传输IP分组 时,链路分组中存在PPPoE协议以及PPP协议头,与以太网的链路分组的协议头相 比,多占用8字节,因此,在PPPoE链路中,能够传输的IP分组的最大分组长度 为1492,而以太网链路中,能够传输的IP分组的最大分组长度为1500。 一般情况IP分片的方式,将IP分组分片、分别转发至目的链路。采用IP分片的方式解决过
长分组的转发,需要占用一定的系统资源,并且多占用一部分网络带宽,对于硬件 资源有限的嵌入式网络终端来说,采用IP分片的解决方法效率低,会大大降低终端 的路由性能,发明内容本发明的一个目的是克服现有的带有路由功能的嵌入式网络终端实现路由功能 时,为维护路由表、进行内外网地址转换、分组校验和重新计算等额外操作,而带 来的对硬件需求较高、软硬件成本较高的缺陷,从而提供一种无需使用路由表维护 网络地址信息,无需进行网络地址转换,无霈做分组校验和重新计算的带有路由功 能的嵌入式网络终端。本发明的另一个目的是克服现有的带有路由功能的嵌入式网络终端采用IP分 片的方式解决过长分组的转发,霈要占用一定的系统资源,降低终端的路由功能的 缺陷,从而提供一种高效的嵌入式网络终端的路由功能实现方法。为了实现上述目的,本发明提供了一种带有路有功能的嵌入式网络终端,包括嵌入式网络应用模块1、 DHCP服务器2、 TCP/UDP协议处理模块3、 IP协议处理 模块4、路由功能模块5、 PPP与PPPoE模块6、以太网分组处理模块7、 ARP协议 处理模块8、网络接口卡模块IO、 HUB/SWITCH模块11,还包括分组区分模块9; 其中,所述的HUB/SWITCH模块11与所述的网络接口卡模块10连接,所述的网 络接口卡模块10还与分组区分模块9连接,所述的分组区分模块9则分别与所述的 PPP与PPPoE模块6、以太网分组处理模块7相连接,所述的PPP与PPPoE模块6 与所述的路由功能模块5连接,所述的以太网分组处理模块7分别连接到路由功能 模块5和ARP协议处理模块8上,所述的路由功能模块5连接到IP协议处理模块 4,所述的IP协议处理模块.4连接到所述的TCP/UDP协议处理模块3上,所述的 TCP/UDP协议处理模块3则分别与所述的嵌入式网络应用模块1和DHCP服务器2 连接。上述技术方案中,所述的分组区分模块9区分网络分组的来源,将PPPoE链路 分组发送到PPP与PPPoE模块6,将以太网链路分组发送到以太网分组处理模块7。上述技术方案中,所述的嵌入式网紐终端为VoIP适配器或IP电话,所述的VoIP 适配器还包括控制模块12、计算模块13与用户线接口控制模块14,所述的控制模 块12连接到嵌入式网络应用模块1,并分别与计算模块13和用户线连接口控制模
块14连接,所述的用户线连接口控制模块14与外界的普通话机连接;所述的IP电话还包括控制模块12、计算模块13、听筒15和键盘16,所述的控制模块12连接到嵌入式网络应用模块1,并分别与计算模块13和听筒1$、键盘16连接,所述的听筒15、键盘16还分别连接到外界的普通话机上。本发明还提供了一种嵌入式网络终端的路由功能实现方法,包括以下歩骤 步骤100)、向与所述的嵌入式网络终端相连接的外接网络终端提供公网IP地址、子网掩码、伪网关IP地址、域名服务器地址和网络接口的最大分组长度;歩骤200)、计算所述的嵌入式网络终端的伪网关IP地址,使用伪网关IP地址实现所述的嵌入式网络终端与所述的外接网络终端的以太网链路通信步骤300)、采用ARP欺骗技术保证所述的外接网络终端的网络分组全部到达所述的嵌入式网络终端;步骤400)、识别与区分PPPoE链路分组与以太网链路分组;歩骤500)、根据歩骤400中识别与区分的分组类型,对网络分组作转发与接收歩骤600)、调整网络分组的最大长度。上述技术方案中,所述的歩骤100)包括以下歩骤-.步骤101 )、所述的嵌入式网络终端通过外接的ADSL适配器拨号并登陆到网络 后,启动所述的DHCP服务器2;步骤102)、所述的DHCP服务器2从以太网链路接收"DHCP协议发现分组", 记录该分组中的硬件地址信息,并广播发送具有以下信息的DHCP协议提议分组在所述DHCP协议提议分组中包括所述的公网IP地址、子网掩码、伪网关IP 地址、域名服务器地址和网络接口的最大分组长度其中,所述的公网IP地址为嵌 入式网络终端的公网IP地址,所述的子网掩码为255.255.255.0,所述的网关为嵌入 式网络终端的伪网关IP地址,所述的域名服务器地址为嵌入式网络终端的域名服务 器地址,所述的网络接口的最大分组长度为1492;步骤103)、所述的DHCP服务器2从以太网链路接收"DHCP协议请求分组", 检査该分组中的硬件地址信息,若与步骤100"2)中记录的硬件地址信息一致,则 广播发送DHCP协议确认分组;在所述DHCP协议确认分组中包杻所述的公网IP地址、子网掩码、伪网关IP 地址、域名股务器地址和网络接口的最大分组长度;其中,所述的公网IP地址为嵌 入式网络终壤的公网IP地址,所述的子网掩码为255.255.255.0,所述的网关为嵌入9式网络终壤的伪网关IP地址,所述的域名服务器地址为嵌入式网络终端的域名服务器地址,所述的网络接口的最大分组长度为1492;步驟104)、当嵌入式网络终端退出网络、终止ADSL连接后,关闭D^CP服 务器2。上述技术方案中,在所述的步骤200)中,所述的计算所述的嵌入式网络终端 的伪网关IP地址具体包括以下步骤步骤201)、所述的嵌入式网络终端通过ADSL适配器拨号并登陆到网络后,获 取到公网IP地址,记录公网BP地址以"255.255.255.0"为子网掩码时的网络号、 子网号与主机号步骤202)、设置伪网关IP地址的网络号和子网号为嵌入式网络终端公网IP地 址以"255.255.255.0"为子网掩码时的网络号和子网号;步骤203)、如果嵌入式网络终端的公网IP地址的主机号为1,则伪网关IP地 址的主机号设置为254;否则,伪网关IP地址的主机号设置为嵌入式网络终端公网 IP地址的主机号减1:步骤204)、当嵌入式网络终端退出网络、终止ADSL连接后,伪网关IP地址 失效。上述技术方案中,在步骤300)中,所述的ARP欺骗技术包括以下歩骤步骤30D、所述的嵌入式网络终端通过ADSL适配器拨号并登陆到网络后,启 动ARP协议处理模块8;步骤302)、当嵌入式网络终端的ARP协议处理模块8接收到外接网络终端发 送的ARP协议请求分组时,如果该分组中的目的IP地址的网络号和子网号与嵌入 式网络终端外网IP地址的网络号和子网号不同,则不作处理;否则,如果该分组中 的目的BP地址的主机号非10、非255,并且与嵌入式网络终端的外网IP地址的主机 号不同,则以嵌入式网络终端的MAC地址构成ARP协议应答分组,并发送。上述技术方案中,在步骤500)中,所述的对网络分组作转发与接收包括以下 步骤步骤501)、接收来自链路层的网络分组,判断分组的类型,若为PPPoE链路 分组,则执行下一步,否则执行步骤503);步 502)、分组为PPPoE链路分组,根据转发和接收规则确定该分组是否应 该由上层模块接收,如果是,交给IP协议处理模块4处理,否则不接收;根据转发
和接收规则确定该分组是否应该转发,如果是,则使用以太网链路向另外一台终端 转发该IP分组,否则不转发步骤503)、分组为以太网链路分组,根据转发和接收规则,确定该分组是否应 该由上层模块接收,如果是,交给IP协议处理模块4处理,否则不接收;根据转发 和接收规则确定该分组是否应该转发,如果是,则使用PPPoE链路向外部网络转发 该IP分组,否则不转发。所述的转发和接收规则包括1) 、转发来自外接网络终端的全部以太网分组至外部网络;2) 、转发全部外部网络分组至外接网络终端;3) 、根据嵌入式网络终端的网络应用确定来自外接网络终端的以太网分组是否 应该接收;4) 、根据嵌入式网络终端的网络应用确定外部网络分组是否应该接收。 上述技术方案中,在步骤600)中,所述的调整网络分组的最大长度包括以下歩骤歩骤601)、使用DHCP服务器2,向外接网络终端提供网络接口最大分组长度 信息歩骤602)、使用ICMP不可达错误分组,通知外接网络终端更改IP分组长度; 歩骤603)、修改待转发的以太网链路中的TCP协议同步分组的最大分段长度 选项值,保证外部网络传输至嵌入式网络终端的IP分组无需分片。 本发明的优点在于1、 本发明无需使用路由表维护网络地址信息,无霈进行网络地址转换,无需进 行由于网络地址转换带来的校验和重新计算,成本低,效率高;2、 本发明实现完全透明的路由功能,避免了由于网络地址转换引发的问题。


图1为一种现有的带有路由功能的网络终端的结构图;图2为本发明的带有路由功能的嵌入式网络终端的一个实施例的结构图;图3为本发明的路由功能实现方法的流程图;图4为本发明的带有路由功能的嵌入式网络终端的又一个实施例的结构图。 图面说明1嵌入式网络应用模块2DHCP服务器3TCP/UDP协议处理模块4IP协议处理模块5路由功能模块6PPP与PPPoE模块7以太网分组处理模块8ARP协议处理模块9分组区分模块10网络接口卡模块11HUB/SWITCH模块12控制模块13计算模块14用户线接口控制模块15听筒16键盘具体实施方式
下面结合附图和具体实施方式
对本发明作进一步的描述。实施例l:在本发明的一个实施例中,本发明的所述嵌入式网络终端可以是一个VoIP适配 器,图2为该适配器的结构图。所述的VoIP适配器包括嵌入式网络应用模块1 、DHCP 服务器2、 TCP/UDP协议处理模块3、 IP协议处理模块4、路由功能模块5、 PPP 与PPPoE模块6、以太网分组处理模块7、 ARP协议处理模块8、分组区分模块9、 网络接口卡模块IO (NIC, Network Interface Card)、 HUB/SWITCH模块11,还包 括控制模块12、计算模块13与用户线接口控制模块14。其中,控制模块12、计算 模块13属于主控计算功能部分,用户线接口控制模块,14属于用户线功能部分,其余部分都属于网络功能部分。VoIP适配器有两个外部接口, HUB/SWITCH模块11通过接口分别连接到外部 的ADSL适配器,和外部的一台网络终端(以下简称外接网络终端)上。 HUB/SWITCH模块11与网络接口卡模块IO连接,网络接口卡模块IO还与分组区 分模块9连接,分组区分模块9分别与PPP与PPPoE模块6、以太网分组处理模块 7相连接,PPP与PPPoE模块6与路由功能模块5连接,以太网分组处理模块7分 别连接到路由功能模块5和ARP协议处理模块8上,路由功能模块5连接到IP协 议处理模块4, IP协议处理模块4连接到TCP/UDP协议处理模块3上,TCP/UDP 协议处理模块3则分别与嵌入式网络旌用模块1和DHCP服务器2连接。嵌入式网 络应用模块1与控制模块12连接,控制模块12分别连接到计算模块13和用户线接 口控制模块14上,用户线接口控制模块14则与外部的普通话机连接。
嵌入式网络应用模块1一般为一种特定的网络应用,该模块与本发明的嵌入式网络终端的具体实现有关。在本实施例中,嵌入式网络应用模块1为VoIP终端中信令传,SIP协议模块、语音传输的RTP协议模块等。该模块提供语音分组的接收、处理和发送与信令协议分组的接收、处理和发送。DHCP服务器2负责向子网内的外接网络终端提供IP地址等网络参数。 TCP/UDP协议处理模块3构成了传输层,负责TCP/UDP协议的验证、解析和处理。IP协议处理模块4负责IP协议分组的验证、解析和处理。路由功能模块5实现IP分组的转发与过滤,负责将来自ADSL适配器的外部 IP分组转发至内部子网和将来自内部子网的IP分组转发至ADSL适配器,并按照 嵌入式网络应用的具体需求过滤无关分组,仅向IP协议处理模块4提供需要的IP 分组。PPP与PPPoE模块6实现了 PPPoE分组的验证、解析与处理,实现了 PPP相关协议分组的验证、解析和处理,实现了自动拨号功能。以太网分组处理模块7实现来至内部网络的以太网分组的验证和解析。ARP协议处理模块8除了实现了标准的ARP协议功能(例如IP地址与硬件地址的映射维护等)夕卜,还加入了ARP欺骟功能,保证子网终端所有分组均发送至嵌入式网络终端。分组区分模块9用于区分来自网络接口卡模块10分组的来源。 网络接口卡模块10实现嵌入式网络终端与HUB/SWITCH11的连接,进而实现嵌入式网络终端与ADSL适配器与子网内外接网络终端的连接。HUB/SWITCH模块11提供ADSL适配器、嵌入式网络终端与子网内外接网络终端之间的连接。控制模块12用于整个系统的控制协调,例如控制语音编码与解码、将语音数据 送与嵌入式网络应用模块1依靠网络协议栈发送或从嵌入式网络应用模块1中获取 语音数据,接收用户拨号,使用嵌入式网络应用模块1发送呼叫请求等。计算模块13用于语音编解码,提供计算功能。用户线接口控制模块14用于向用户提供拨号、振铃、通话等功能。如图3所示,VoIP适配器中的路由功能的实现方法包括步骤100、 DHCP股务器2向与VoIP适配器相连接的一台网络终端提供公网IP
地址等网络参数。在背景技术中已经提到,现有的带有路由功能的嵌入式网络终端 为与之连接的其他终端提供私网IP地址,从而需要实现网络地址转换、穿越等功能。 在VoIP适配器中,DHCP服务器为与之连接的终端提供了公网IP地址,避免了网 络地址转换以及穿越。其具体实现步骤如下步骤IOI、 VoIP适配器通过ADSL适配器拨号并登陆到网络后,内置的DHCP 服务器2启动。此时,本实施例的VoIP适配器具有公网IP地址与域名服务器地址 等网络参数。步骤102、当DHCP服务器2接收到来自以太两链路的"DHCP协议发现 (DISCOVER)分组"时,记录该分组中的硬件地址信息,并广播发送具有以下信 息的DHCP协议提议(OFFER)分组IP地址为VoIP适配器的公网IP地址;子网 掩码为255.255.255.0;网关为VoIP适配器的伪网关IP地址(后续将详细介绍如何 计算出伪网关IP地址);域名服务器地址为VoIP适配器的域名服务器地址;网络接 口的最大分组长度为1492。外接网络终端接收到DHCP协议提议(OFFER)分组 后,记录分组中的信息。歩骤103、当DHCP服务器2接收到来自以太网链路的DHCP协议请求 (REQUEST)分组时,检査该分组中的硬件地址信息,如果与步骤102中记录的硬 件地址信息一致,则广播发送具有以下信息的DHCP协议确认(ACK)分组IP 地址为VoIP适配器的公网IP地址;子网掩码为255.255.255.0;网关为VoIP适配器 的伪网关IP地址(后续将详细介绍如何计算出伪网关IP地址)域名服务器地址为 VoIP适配器的域名服务器地址;网络接口的最大分组长度为1492。否则不作任何处 理。步骤104、当VoIP适配器退出网络、终止ADSL连接后,DHCP服务器2关闭。 歩骤200、计算VoIP适配器的伪网关IP地址,使用伪网关IP地址实现本实施 例的VoIP适配器与外接网络终端的以太网链路通信。在上述操作中,本实施例的 VoIP适配器为与之相连的外接网络终端提供了与自身相同的公网IP地址,因此, 本实施例的VoIP适配器需要使用另外一个与自身公网地址不同的IP地址,实现与 外接网络终端的以太网通信,这个与自身公网地址不同的IP地址也被称为伪网关 IP,伪网关IP作为DHCP服务器2提扭的网关IP,当外接网络终端在获取网络参 数之后,会以本实施例的VoIP适配器作为网关进行网络连接。VoIP适配器的伪网 关IP地址的计算步骤包括-
步欏201、当VoIP适配器通过ADSL适配器拨号并登陆到网络后,获取到公网 IP地址,记录公网IP地址以"255.255.255.0"为子网掩码时的网络号、子网号与主 机号步骤202、设置伪网关IP地址的网络号和子网号为VoIP适配器公网IP地址以 "255.255.255.0"为子网掩码时的网络号和子网号;步骤203、如果VoIP适配器的公网IP地址的主机号为1,则伪网关IP地址的 主机号设置为254:否则,伪网关IP地址的主机号设置为VoIP适配器公网IP地址 的主机号减l;步骤2(H、当VoIP适配器退出网络、终止ADSL连接后,伪网关IP地址失效。 步骤300、使用ARP欺骟技术保证外接网络终端的网络分组全部到达本实施例 的VoIP适配器。在步骤100中,本实施例的VoIP适配器的DHCP服务器2向另外一台终端的 网络分组提供的网络参数中,子网掩码为255.255.255.0。在以太网中,子网掩码表 征具有哪些IP地址的终端同属一个子网之内,因此,外接网络终端会把具有与自身 IP地址相同的网络号和子网号的IP地址的终端均认作同属一个子网之内,在与这 些终端的交互中,会首先使用ARP协议获取到他们的MAC地址,进而直接使用该 MAC地址向这些终端发送网络分组。但在本发明中,实际上只有本实施例的VoIP 适配器与外接网络终端在一个子网内,与外接网络终端具有相同网络号和子网号的 其他终端并不在同一个子网内。为了保证外接网络终端发送的所有网络分组均到达 VoEP适配器,需要在VoIP适配器网络协议栈中加入ARP欺骗技术,具体实现如下步骤301、当VoIP适配器通过ADSL适配器拨号并登陆到网络后,启动ARP 协议处理模块8;步骤302、当VoIP适配器的ARP协议处理模块8接收到外接网络终端发送的 ARP协议请求分组时,如果该分组中的目的IP地址的网络号和子网号与嵌入式网 络终端外网IP地址的网络号和子网号不同,则不作处理否则,如果该分组中的目 的IP地址的主机号非0、非255 (广播地址),并且与VoEP适配器的外网IP地址的 主机号不同,则以VoIP适配器的MAC地址构成ARP协议应答分组并发送。步骤400、在链路层上实现PPPoE分组与以太网分组的识别与区分。VoIP适配 器从ADSL适配器上接收与发送PPPoE分组,在与外接网络终端所形成的以太子网 上接收与发送以太网分组,为了便于上层模块对两种分组的区分处理,在链路层上
要实现PPPoE分组与以太网分组的识别与区分。该功能主要由分组区分模块9实现。 具体实现过程如下步骤401 、在rCP/IP协议栈存储分组的缓冲区结构中,添加表征以太网与PPPoE 链路分组的标志;步骤402、当从网络接口卡模块10接收到分组后,解析分组中第13个和第14 个字节如果这两个字节分别为0x88、 0x63或0x88、 0x64,则该分组为PPPoE链 路分组,将步骤401中得到的表征标志设置为PPPoE分组否则,设置表征标志为 以太网分组步骤403、根据分组的表征标志,将相应分组交给PPP与PPPoE模块6、以太 网分组处理模块7区分处理。步骤500、 IP分组的转发与接收。由于VoIP适配器向与之相连的外接网络终端 提供了与自身相同的公网IP地址,因此避免了实现路由表和网络地址转换等占用资 源较多的功能,也避免了由网络地址转换引起的IP首部以及TCP/UDP分组校验和 的重新计算,仅需要实现分组的转发和接收。IP分组的转发与接收由路由功能模块 5实现,IP分组的转发与接收的具体实现步骤如下步骤501、接收来自链路层的网络分组,判断分组的类型,若为PPPoE链路分 组,则执行下一步,否则执行步骤503;步骤502、分组为PPPoE链路分组,根据转发和接收规则确定该分组是否应该 由上层模块接收,如果是,交给IP协议处理模块4处理,否则不接收根据转发和 接收规则确定该分组是否应该转发,如果是,则使用以太网链路向另外一台终端转 发该IP分组,否则不转发。步骤503、分组为以太网链路分组,根据转发和接收规则,确定该分组是否应 该由上层模块接收,如果是,交给IP协议处理模块4处理,否则不接收;根据转发 和接收规则确定该分组是否应该转发,如果是,则使用PPPoE链路向外部网络转发 该IP分组,否则不转发。在上述步骤中,所述的转发和接收规则具体包括1) 、转发来自外接网络终埔的全部以太网分组至外部网络;2) 、转发全部外部网络分组至外接网络终端;3) 、根据VoIP适配器的网络应用确定来自外接网络终端的以太网分组是否应该 接收。例如,在嵌入式VoIP (Voice over Internet Protocol)适配器中,需要向用户 提供w论接口实现配置和升级等,针对这样的网络应用,就需要SNJc来至内网的端 口为特定端口 (例如80)的TCP分组;4)、根据VoIP适配器的两络应用确定外部网络分组是否应该接收。例如,在 VoIP适配器中,如果使用SIP协议,在一般情况下仅需要接收UDP分组即可完成 注册和通话等功能,因此,仅需要接收SIP协议端口 (例如5060)以及RTP协议端 口的UDP分组。步骤600、 IP分组最大长度的调整。在背景技术中已经提到,现有技术采用IP 分片的方式解决过长分组的转发,这种方法效率低,会大大降低终端的路由性能。 因此,在本发明中不采用IP分片的方法,而是使用以下三种方法保证以太网链路中 不传输超过PPPoE链路最大分组长度的IP分组,具体实现如下步骤60K使用DHCP服务器2,向外接网络终端提供网络接口最大分组长度 信息。在本实施例的VoIP适配器向外接网络终端提供IP地址等网络参数时,使用 DHCP分组中的选项22 (接口最大传输单元选项),向外接网络终端提供网络接口 最大分组长度信息。步骤602、使用ICMP不可达错误(霈要分片)分组,通知外接网络终端更改 IP分组长度。对于某些没有按照RFC (R叫uest for Comments)标准实现的终端,即 使使用DHCP服务器向该终端提供网络接口最大分组长度信息,该终端也可能不修 改其发送IP分组时的最大分组长度。因此,在路由功能模块5接收到过长的IP分 组时,根据该分组构成ICMP不可达错误(需要分片)分组,通知外接网络终端链 路中最大IP分组长度。步骤603、修改待转发的以太网链路中的TCP协议同步(SYN)分组的最大分 段长度(MSS)选项值,保证外部网络传输至嵌入式网络终端的IP分组无需分片。 为了实现MSS的修改,霈要在以太网链路分组被转发至PPPoE链路之前,做如下 具体处理a) 计算IP首部长度,定位TCP首部位置b) 査看是否为TCP协议SYN分组,如果不是,则跳至f):c) 査看是否携带选项,如果不存在选项,则跳至f);d) 査看选项中是否包含有MSS,如果不包含,则跳至f);e) 获取MSS,如果MSS不大于1452,则跳至f);否则,更改MSS为1452, 并修改TCP首部中的校验和字段; f)交给PPPoE链路处理模块转发。 实施例2:在本发明的又一 个实施例中,本发明所述的嵌入式网络终端也可以是一个IP电 话,IP电话是现有电话与实施例l中所描述的VoIP适配器的组合,图4是IP电话 的系统结构图,IP电话在网络功能部分和主控计算功能部分的实现上,与实施例1 中所描述的VoIP适配器相应模块是相同的,因此在本实施例中不再详细描述。在用 户功能部分中,添加了听筒15和键盘16。键盘16和听筒15并行连接到控制模块 12上,并与外接的普通话机并行连接。其中,键盘16用于向用户提供拨号功能。听筒15用于向用户提供通话功能, 并以内部扬声器替代振铃功能。
权利要求
1、一种带有路有功能的嵌入式网络终端,包括嵌入式网络应用模块(1)、DHCP服务器(2)、TCP/UDP协议处理模块(3)、IP协议处理模块(4)、路由功能模块(5)、PPP与PPPoE模块(6)、以太网分组处理模块(7)、ARP协议处理模块(8)、网络接口卡模块(10)、HUB/SWITCH模块(11);其特征在于,还包括分组区分模块(9);其中,所述的HUB/SWITCH模块(11)与所述的网络接口卡模块(10)连接,所述的网络接口卡模块(10)还与分组区分模块(9)连接,所述的分组区分模块(9)则分别与所述的PPP与PPPoE模块(6)、以太网分组处理模块(7)相连接,所述的PPP与PPPoE模块(6)与所述的路由功能模块(5)连接,所述的以太网分组处理模块(7)分别与路由功能模块(5)和ARP协议处理模块(8)电连接,所述的路由功能模块(5)连接到IP协议处理模块(4),所述的IP协议处理模块(4)电连接到所述的TCP/UDP协议处理模块(3)上,所述的TCP/UDP协议处理模块(3)则分别与所述的嵌入式网络应用模块(1)和DHCP服务器(2)电连接。
2、 根据权利要求1所述的带有路有功能的嵌入式网络终端,其特征在于,所述 的分组区分模块(9)区分网络分组的来源,将PPPoE链路分组发送到PPP与PPPoE 模块(6),将以太网链路分组发送到以太网分组处理模块(7)。
3、 根据权利要求1所述的带有路有功能的嵌入式网络终端,其特征在于,所述 的嵌入式网络终端为VoIP适配器或IP电话,所述的VoIP适配器还包括控制模块(12)、计算模块(13)与用户线接口控制模块(14),所述的控制模块(12)连接 到嵌入式网络应用模块(1),并分别与计算模块(13)和用户线连接口控制模块(14) 连接,所述的用户线连接口控制模块(14)与外界的普通话机连接所述的IP电话还包括控制模块(12)、计算模块(13)、听筒(15)和键盘(16), 所述的控制模块(12)连接到嵌入式网络应用模块(1),并分别与计算模块(13) 和听筒(15)、键盘(16)连接,所述的听筒(15)、键盘(16)还分别连接到外界 的普通话机上。
4、 一种应用于权利要求1所述的带有路有功能的嵌入式网络终端实现路由的方 法,包括以下步骤步骤100)、向与所述的嵌入式网络终端相连接的外接网络终端提供公网IP地址、子网掩码、伪网关IP地址、域名服务器地址和网络接口的最大分组长度步骤200)、计算所述的嵌入式网络终端的伪网关IP地址,使用伪网关IP地址实现所述的嵌入式网络终端与所述的外接两络终端的以太网链路通信;步骤300)、采用ARP欺骟技术保证所述的外接网络终端的网络分组全部到达所述的嵌入式网络终端;步骤400)、识别与区分PPPoE链路分组与以太网链路分组;步骤500)、根据步骤400中识别与区分的分组类型,对网络分组作转发与接收;步骤600)、调整网络分组的最大长度。
5、根据权利要求4所述的嵌入式网络终端的路由功能实现方法,其特征在于, 所述的步骤100)包括以下步骤步骤101)、所述的嵌入式网络终端通过外接的ADSL适配器拨号并登陆到网络 后,启动所述的DHCP服务器(2):步骤102)、所述的DHCP服务器(2)从以太网链路接收"DHCP协议发现分 组",记录该分组中的硬件地址信息,并广播发送具有以下信息的DHCP协议提议 分组在所述DHCP协议提议分组中包括所述的公网IP地址、子网掩码、伪网关IP 地址、域名服务器地址和网络接口的最大分组长度其中,所述的公网IP地址为嵌 入式网络终端的公网IP地址,所述的子网掩码为255.255.255.0,所述的网关为嵌入 式网络终端的伪网关IP地址,所述的域名服务器地址为嵌入式网络终端的域名服务 器地址,所述的网络接口的最大分组长度为1492:步骤103)、所述的DHCP服务器(2)从以太网链路接收"DHCP协议请求分 组",检査该分组中的硬件地址信息,若与步骤100-2)中记录的硬件地址信息一致, 则广播发送DHCP协议确认分组;在所述DHCP协议确认组中包括所述的公网IP地址、子网掩码、伪网关IP地 址、域名服务器地址和网络接口的最大分组长度;其中,所述的公网IP地址为嵌入 式网络终端的公网IP地址,所述的子网掩码为255.255.255.0,所述的网关为嵌入式 网络终端的伪网关IP地址,所述的域名服务器地址为嵌入式网络终端的域名服务器 地址,所述的网络接口的最大分组长度为1492;步骤104)、当嵌入式网络终端退出网络、终止ADSL连接后,关闭DHCP服 务器(2)。
6、 根据权利要求4所述的嵌入式网络终端的路由功能实现方法,其特征在于, 在所述的步骤200)中,所述的计算所述的嵌入式网络终端的伪网关IP地址具体包 括以下步骤步骤20D、所述的嵌入式网络终端通过ADSL适配器拨号并登陆到网络后,获 取到公网IP地址,记录公网IP地址以"255.255.255.0"为子网掩码时的网络号、 子网号与主机号步骤202)、设置伪网关EP她址的网络号和子网号为嵌入式网络终端公网IP地 址以"255.255.255.0"为子网掩码时的网络号和子网号;步骤203)、如果嵌入式网络终端的公网IP地址的主机号为1,则伪网关IP地 址的主机号设置为254:否则,伪网关IP地址的主机号设置为嵌入式网络终端公网 IP地址的主机号减1:步骤204)、当嵌入式网络终端退出网络、终止ADSL连接后,伪网关IP地址 失效。
7、 根据权利要求4所述的嵌入式网络终端的路由功能实现方法,其特征在于, 在步骤300)中,所述的ARP欺骗技术包括以下步骤步骤301)、所述的嵌入式网络终端通过ADSL适配器拨号并登陆到网络后,启 动ARP协议处理模块(8);步骤302)、当嵌入式网络终端的ARP协议处理模块(8)接收到外接网络终端 发送的ARP协议请求分组时,如果该分组中的目的IP地址的网络号和子网号与嵌 入式网络终端外网IP地址的网络号和子网号不同,则不作处理;否则,如果该分组 中的目的IP地址的主机号非O、非255,并且与嵌入式网络终端的外网IP地址的主 机号不同,则以嵌入式网络终端的MAC地址构成ARP协议应答分组,并发送。
8、 根据权利要求4所述的嵌入式网络终端的路由功能实现方法,其特征在于, 在步骤500)中,所述的对网络分组作转发与接收包括以下步骤步骤50D、接收来自链路层的网络分组,判断分组的类型,若为PPPoE链路 分组,则执行下一步,否则执行步驟503):步骤502)、分组为PPPoE链路分组,根据转发和接收规则确定该分组是否应 该由上层模块接收,如果是,交给IP仏议处理模块(4)处理,否则不接收根据 转发和接收规则确定该分组是否应该转发,如果是,则使用以太网链路向另外一台 终端转发该IP分组,否则不转发; 步骤503)、分组为以太网链路分组,根据转发和接收规则,确定该分组是否应 该由上层模块接收,如果是,交给IP协议处理模块(4)处理,否则不接收;根据 转发和接收规则确定该分组是否/歪^^发,如果是,则使用PPPoE链路向外部网络 转发该IP分组,否则不转发。
9、 根据权利要求8所述的嵌入式网络终端的路由功能实现方法,其特征在于, 所述的转发和接收规则包括1) 、转发来自外接网络终端的全部以太网分组至外部网络;2) 、转发全部外部网络分组至外接网络终端3) 、根据嵌入式网络终端的网络应用确定来自外接网络终端的以太网分组是否 应该接收;4) 、根据嵌入式网络终端的网络应用确定外部网络分组是否应该接收。
10、 根据权利要求4所述的嵌入式网络终端的路由功能实现方法,其特征在于, 在步骤600)中,所述的调整网络分组的最大长度包括以下步骤歩骤60D、使用DHCP服务器(2),向外接网络终端提供网络接口最大分组长 度信息;歩骤602)、使用ICMP不可达错误分组,通知外接网络终端更改IP分组长度: 步骤603)、修改待转发的以太网链路中的TCP协议同歩分组的最大分段长度 选项值,保证外部网络传输至嵌入式网络终端的IP分组无需分片。
全文摘要
本发明公开了一种带有路由功能的嵌入式网络终端,包括嵌入式网络应用模块、DHCP服务器、TCP/UDP协议处理模块、IP协议处理模块、路由功能模块、PPP与PPPoE模块、以太网分组处理模块、ARP协议处理模块、网络接口卡模块、HUB/SWITCH模块,还包括分组区分模块。本发明还公开了一种嵌入式网络终端的路由功能实现方法。本发明的嵌入式网络终端无需使用路由表维护网络地址信息,无需进行网络地址转换,无需进行由于网络地址转换带来的校验和重新计算,成本低,效率高;实现完全透明的路由功能,避免了由于网络地址转换引发的问题。
文档编号H04L12/56GK101166141SQ20061011389
公开日2008年4月23日 申请日期2006年10月20日 优先权日2006年10月20日
发明者叶晓舟, 鹏 孙, 张建东, 王劲林, 王玲芳, 峰 邓 申请人:中国科学院声学研究所;北京中科智网科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1