路由器及其处理IPv6数据包的方法

文档序号:7723723阅读:230来源:国知局
专利名称:路由器及其处理IPv6数据包的方法
技术领域
本发明涉及一种网络装置,尤其涉及一种路由器及其处理IPv6数据包的方法。
背景技术
在传统的IP网络中,主要采用的是IPv4网络通信协议。随着Internet的不断发 展,IPv4网络通信协议逐渐暴露出许多不足,其中最严重、最迫切需要解决的就是IP地址 空间耗尽和骨干路由器中路由表过于庞大的问题,这两个问题直接导致了下一代因特网协 议即IPv6网络通信协议的诞生。但是,由于IPv4网络的基础架构已经相当完善,目前Internet网络中IPv4的用 户和设备数量庞大,通信网络运营商也不可能一下抛弃现有的IPv4网络而改建IPv6网络, 因此从IPv4协议直接过渡到IPv6协议不太现实。因此,如何利用现有的网络实现IPv4协 议与IPv6协议的同网共存是目前最值得关注的问题。

发明内容
有鉴于此,有必要提供一种路由器,可同时处理IPv4数据包与IPv6数据包,实现 IPv4协议与IPv6协议的同网共存。此外,还需提供一种路由器处理IPv6数据包方法,可在不改变原有网络架构情况 下,实现IPv4协议与IPv6协议的同网共存。本发明提供的路由器,与局域网及广域网连接,可同时处理IPv4数据包与IPv6数 据包。所述路由器包括局域网端口、广域网端口、封包判断模块、网络判断模块、修改模块、 封包转发模块及处理模块。封包判断模块用于接收数据包,并判断数据包是否为IPv6数据 包。网络判断模块用于在数据包为IPv6数据包时根据IPv6数据包的控制信息判断IPv6 数据包的来源,该来源包括局域网或广域网。修改模块用于根据网络判断模块判断的IPv6 数据包的来源修改IPv6数据包的控制信息。封包转发模块用于根据修改后的IPv6数据包 的控制信息经局域网端口或广域网端口直接转发IPv6数据包至局域网或者广域网。以及 处理模块用于执行封包判断模块、网络判断模块、修改模块及封包转发模块。本发明提供的路由器处理IPv6数据包的方法包括以下步骤接收数据包,并判断 数据包是否为IPv6数据包;如果数据包是IPv6数据包,则根据IPv6数据包的控制信息判 断IPv6数据包的来源;根据IPv6数据包的来源,修改IPv6数据包的控制信息;以及根据修 改后的IPv6数据包的控制信息,调用转发函数直接转发IPv6数据包至局域网或者广域网。所述路由器及其处理IPv6数据包的方法,通过处理IPv6数据包以同时支持IPv4 网络和IPv6网络,使得在原有网络架构基本不改变的情况下利用现有的网络实现IPv4协 议与IPv6协议的同网共存。


图1为本发明路由器一实施方式的应用环境及结构图。
图2为本发明处理IPv6数据包的方法一实施方式的流程图。
具体实施例方式请参阅图1,所示为本发明实施方式中路由器10的应用环境及结构图。在本实施方式中,路由器10处理局域网与广域网之间的IPv4与IPv6通信,如果是局域网内的IPv4 与IPv6通信,则可以通过硬件的网关和软件的桥接器来完成数据包的传送。路由器10包 括局域网端口 110与广域网端口 120。路由器10分别通过局域网端口 110及广域网端口 120与局域网20及广域网30相连,用于接收并处理来自局域网20及广域网30数据包。在本实施方式中,路由器10包括封包判断模块130、网络判断模块140、修改模块 150、封包转发模块160及处理模块170。封包判断模块130用于通过局域网端口 110或广 域网端口 120从局域网20或广域网30接收数据包,并判断数据包是否为IPv6数据包。数 据包中的信息包括数据包的类型字段(Ether Type)。在本实施方式中,封包判断模块130 根据所接收到的数据包内的类型字段来判断该数据包的类型。在本实施方式中,若封包判 断模块130判断出所接收的的数据包不是IPv6数据包,而是路由器10原本就可以路由处 理的数据包,如IPv4数据包、ARP(Address Resolution Protocol)数据包等,则路由器10 就按照其原有的处理方法来对数据包进行转发。例如,若所接收的数据包为IPv4数据包, 则封包判断模块130先对IPv4数据包进行地址转换,再开启IPv4协议栈转发IPv4数据包。网络判断模块140用于在数据包为IPv6数据包时判断IPv6数据包的来源,即判 断IPv6数据包是来自局域网20还是来自广域网30。在本实施方式中,网络判断模块140 通过判断IPv6数据包的控制信息来确定IPv6数据包的是来自局域网20还是来自广域网 30。在本实施方式中,该IPv6数据包的控制信息为数据结构skb->deV,当IPv6数据包被接 收到时,该控制信息为接收所述IPv6数据包的设备的设备信息。当IPv6数据包的控制信 息是局域网端口 110的设备信息时,网络判断模块140判断IPv6数据包来自局域网20 ;当 IPv6数据包的控制信息是广域网端口 120的设备信息时,网络判断模块140判断IPv6数据 包是来自广域网30。修改模块150用于根据所述网络判断模块判断的Pv6数据包的来源修改IPv6数 据包的控制信息。在本实施方式中当网络判断模块140判断IPv6数据包来自局域网20时, 修改模块150将IPv6数据包的控制信息,即数据结构skb->deV的内容修改为广域网端口 120的设备信息;当网络判断模块140判断IPv6数据包来自广域网30时,修改模块150将 IPv6数据包的控制信息,即数据结构skb-Mev的内容修改为局域网端口 110的设备信息。封包转发模块160用于根据修改后的IPv6数据包的控制信息经局域网端口 110 或广域网端口120直接转发IPv6数据包至局域网20或者广域网30,而不再对IPv6数据包 进行路由处理。在本实施方式中,修改后的IPv6数据包的控制信息为局域网端口 110时, 封包转发模块160调用转发函数经局域网端口 110直接转发IPv6数据包至局域网20 ;修改 后的IPv6数据包的控制信息为广域网端口 120时,封包转发模块160调用转发函数经广域 网端口 120直接转发IPv6数据包至广域网30。在本实施方式中,转发函数为deV_qUeUe_ xmit ()函数。处理模块170用于执行封包判断模块130、网络判断模块140、修改模块150及封 包转发模块160。
因路由器10通过修改数据包的控制信息并调用转发函数就能处理并转发其接收 的所有IPv6数据包,使得路由器10不但可以处理IPv4数据包,也能简单处理IPv6数据包, 非常简单的实现了 IPv4到IPv6的过渡。请参阅图2,所示为本发明路由器处理IPv6的数据包的方法一实施方式的流程 图。所述处理IPv6的数据包的方法通过图1所示的功能模块来执行。在步骤S200,封包判断模块130接收数据包。在本实施方式中,数据包是来自局域 网10或者广域网20。在步骤S202,封包判断模块130判断接收到的数据包是否为IPv6数据包。在本实 施方式中,封包判断模块130判断数据包是否为IPv6数据包的步骤是根据数据包的类型字 段来判断。当数据包的类型字段为IPv6时,数据包为IPv6数据包。否则,数据包的类型不 为IPv6数据包。如果封包判断模块130判定数据包为IPv6数据包,则在步骤S204,网络判断模块 140判断该IPv6数据包的来源。在本实施方式中,网络判断模块140根据接收的IPv6数据 包的控制信息确定IPv6数据包的来源。在本实施方式中,当IPv6数据包的控制信息是局 域网端口 110的设备信息时,则判断模块130判断IPv6数据包来自局域网20 ;当IPv6数 据包的控制信息是广域网端口 120的设备信息时,则判断模块130判断IPv6数据包来自广 域网30。若IPv6数据包来自局域网20,则在步骤S206,修改模块150修改该IPv6数据包的 控制信息,即数据结构skb->dev为广域网端口 120的设备信息。在本实施方式中,处理模 块170通过查询法将广域网端口 120的设备信息找出来,然后修改模块150把IPv6数据包 的控制信息,即数据结构skb->dev修改为广域网端口 120的设备信息。在本实施方式中, 查询法可以为通信领域内常用的指针查询法、查表法等。在步骤S208中,封包转发模块160根据修改后的IPv6数据包的控制信息直接转 发IPv6数据包至广域网30,而不需要对IPv6数据包进行路由处理。在本实施方式中,封包 转发模块160调用了转发函数经广域网端口 120直接转发IPv6数据包至广域网30。在本 实施方式中,转发函数为deV_queue_Xmit()函数。若IPv6数据包来自广域网30,在步骤S210,修改模块150修改IPv6数据包的控 制信息为局域网端口 110的设备信息。在步骤S212中,封包转发模块160调用转发函数根据修改后的IPv6数据包的控 制信息经局域网端口 110直接转发IPv6数据包至局域网20,而不需要对IPv6数据包进行
路由处理。如果数据包不是IPv6数据包时,则在步骤S214,路由器10按照原有的路由处理方 法处理数据包。如,若所接收的数据包为IPv4数据包,则路由器10先对IPv4数据包进行 地址转换,再开启IPv4协议栈转发IPv4数据包。本发明的路由器10及其处理IPv6数据包的方法通过封包判断模块130、网络判断 模块140以及封包转发模块150来实现路由器10同时处理IPv4数据包与IPv6数据包,使 得在原有网络架构基本不改变的情况下利用现有的网络实现IPv4协议与IPv6协议的同网共存。
权利要求
一种路由器,可同时处理IPv4与IPv6数据包,其包括局域网端口与广域网端口,其特征在于,所述路由器包括封包判断模块,用于接收数据包,并判断所述数据包是否为IPv6数据包;网络判断模块,用于在所述数据包为IPv6数据包时根据所述IPv6数据包的控制信息判断所述IPv6数据包的来源,所述来源包括局域网或广域网;修改模块,用于根据所述网络判断模块判断的IPv6数据包的来源修改所述IPv6数据包的控制信息;封包转发模块,用于根据所述修改后的IPv6数据包的控制信息经所述局域网端口或所述广域网端口直接转发所述IPv6数据包至局域网或者广域网;以及处理模块,用于执行所述封包判断模块、所述网络判断模块、所述修改模块及所述封包转发模块。
2.如权利要求1所述的路由器,其特征在于,所述修改模块修改的所述IPv6数据包的 控制信息为数据结构skb->deV。
3.如权利要求1所述的路由器,其特征在于,所述修改模块在所述IPv6数据包的来源 是局域网时 将所述IPv6数据包的控制信息修改为所述广域网端口的设备信息。
4.如权利要求1所述的路由器,其特征在于,所述修改模块在所述接IPv6数据包的来 源是广域网时将所述IPv6数据包的控制信息修改为所述局域网端口的设备信息。
5.如权利要求1所述的路由器,其特征在于,所述数据包包括类型字段。
6.如权利要求5所述的路由器,其特征在于,所述封包判断模块根据所述数据包的类 型字段判断所述数据包是否为IPv6数据包。
7.—种路由器处理IPv6数据包的方法,其特征在于,包括以下步骤接收数据包,并判断所述数据包是否为IPv6数据包;如果所述数据包是IPv6数据包,则根据所述IPv6数据包的控制信息判断所述IPv6数 据包的来源;根据所述IPv6数据包的来源,修改所述IPv6数据包的控制信息;以及根据所述修改后的IPv6数据包的控制信息,直接转发所述IPv6数据包至局域网或者 广域网。
8.如权利要求7所述的路由器处理IPv6数据包的方法,其特征在于,所述数据包包括类型字段。
9.如权利要求8所述的路由器处理IPv6数据包的方法,其特征在于,所述判断所述数 据包是否为IPv6数据包的步骤是根据所述数据包的类型字段来判断。
10.如权利要求7所述的路由器处理IPv6数据包的方法,其特征在于,所述修改所述 IPv6数据包的控制信息的步骤还包括当所述IPv6数据包的控制信息为所述局域网端口的设备信息时,则判断所述IPv6数 据包来自局域网;及修改所述IPv6数据包的控制信息为所述广域网端口的设备信息。
11.如权利要求7所述的路由器处理IPv6数据包的方法,其特征在于,所述修改所述 IPv6数据包的控制信息的步骤还包括当所述IPv6数据包的控制信息为所述广域网端口的设备信息时,则判断所述IPv6数据包来自广域网;及修改所述IPv6数据包的控制信息为所述局域网端口的设备信息。
全文摘要
一种路由器处理IPv6数据包的方法,包括以下步骤接收数据包,并判断数据包是否为IPv6数据包;如果数据包是IPv6数据包,则根据IPv6数据包的控制信息判断IPv6数据包的来源;根据IPv6数据包的来源,修改IPv6数据包的控制信息;以及根据修改后的IPv6数据包的控制信息,直接转发IPv6数据包至局域网或者广域网。本发明还提供了一种处理IPv6数据包的路由器。本发明所提供的路由器及其处理IPv6数据包的方法可以在原有网络架构基本不改变的情况下同时处理IPv4和IPv6数据包。
文档编号H04L12/28GK101841457SQ200910300950
公开日2010年9月22日 申请日期2009年3月19日 优先权日2009年3月19日
发明者单哲 申请人:鸿富锦精密工业(深圳)有限公司;鸿海精密工业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1