网络装置及其切割封包处理方法

文档序号:7975772阅读:157来源:国知局

专利名称::网络装置及其切割封包处理方法
技术领域
:本发明涉及网络通信领域,尤其涉及一种网络装置及其切割封包处理方法。技术背景在网络地址转换(NetworkAddressTranslation,NAT)系统中,当一个封包通过网络层传送时,如果其封包长度大于最大传递单元(Maxim咖TransmissionUnit,MTU),则必须经过IP切割(Fragmentation)后才能通过网络端口传递。切割后的封包是由特殊切割封包以及一般切割封包组成。特殊切割封包是具有不同的通信协议(如传输控制协议/用户数据报协议(TCP/UDP/ICMP))头部(Header)的特殊协议切割封包,也就是说,特殊切割封包的TCP/UDP头部中记载有原封包的内部IP地址以及内部端口号(PortN咖ber),而一般切割封包只记载内部IP地址而未记载端口号。在这种网络结构下,每一个被广泛使用的协议都被分配一个特殊的端口号,而每一个使用该协议的需求封包都带着这个端口号。例如超文本传输协议(HTTP)协议的端口号是80、文件传输协议(FTP)是的端口号是21等等。由于一般防火墙会针对端口号来拒绝某种协议的通信,当一般切割封包被传送时,会由于其没有相应的端口号而无法传送。因此,当封包被切割为特殊封包及若干个一般封包后,须对特殊封包及一般封包进行处理方可进行传送。目前已知的处理方式如下。在现有的切割封包处理方法中,通常是将一次切割后的封包按照封包切割前的传送顺序重新组合(Reassemble)以构成完整的封包,然后从重新组合后的封包的TCP/UDP头部中记录下相应的端口号,并经过NAT协议转换重新组合后的封包的IP地址及其端口号,最后再次切割该封包,并根据经过NAT协议转换后的IP地址及端口号传送该切割封包。然而,重新组合以及重新切割的过程,会增加处理切割封包的时间,并导致通信系统的运行效率降低。
发明内容有鉴于此,需要提供一种网络装置,其可提高切割封包的处理速度,从而提升通信系统的运行效率。此外,还需要提供一种切割封包处理方法,其可提高切割封包的处理速度,从而提升通信系统的运行效率。一种网络装置,包括接收模块、封包判断模块、转换模块、存储模块以及处理模块。接收模块用于接收切割封包。封包判断模块用于判断切割封包的封包类型,其中封包类型包括特殊切割封包以及一般切割封包,特殊切割封包包括协议头部字段。转换模块用于转换特殊切割封包的网络参数。存储模块用于存储一般切割封包的缓存信息,以及该特殊切割封包的联机信息和切割信息。处理模块用于根据缓存信息、联机信息和切割信息处理一般切割封包以及特殊切割封包。一种切割封包处理方法,应用于网络装置中,该切割封包处理方法包括提供联机列表;接收第一切割封包;判断第一切割封包的封包类型是一般切割封包还是特殊切割封包;如果第一切割封包是一般切割封包,则存储一般切割封包的缓存信息;接收及判断随后的切割封包是否是特殊切割封包;如果随后的切割封包是特殊切割封包,则判断特殊切割封包的联机信息是否已经记载于联机列表中;如果特殊切割封包的联机信息己经记载于联机列表中,则存储特殊切割封包的切割信息;以及根据联机信息和切割信息处理一般切割封包。上述地址转换系统及其切割封包处理方法通过转换模块、存储模块以及处理模块来处理切割封包,可提高切割封包的处理速度,从而提升通信系统的运行效率。图l为本发明实施方式中网络装置的应用环境示意图。图2为本发明实施方式中封包切割示意图。图3为本发明实施方式中网络装置的模块图。图4为本发明实施方式中切割封包处理方法的流程图。图5为本发明切割封包处理方法中步骤S416的具体流程图。图6为本发明切割封包处理方法中步骤S420的具体流程图。具体实施方式参阅图l,所示为本发明实施方式中网络装置10的应用环境示意图。如图1所示,网络装置10连接于客户端20与网络30之间,用于转换联机信息。该联机信息包括端口号(PortNumber)及因特网协议(InternetProtocol,IP)地址。在本实施例中,网络装置10为网关路由器(GatewayRouter),客户端20为个人计算机(PersonalComputer,PC),网络30为因特网(Internet)。根据因特网协议(Internetprotocol,IP)规定,当客户端20发送的封包通过网络层时,如果其封包长度大于最大传输单元(Maxi血咖TransmissionUnit,MTU),则该封包必须经过切割(Fragmentation)后才可传送。参阅图2,所示为本发明实施方式中对原封包1000进行切割的示意图。如图2所示,原封包1000是客户端20传送的封包,经过IP切割之后,原封包1000被切割为第一切割封包1001、第二切割封包1002,以及第三切割封包1003。在本实施例中,第一切割封包IOOI、第二切割封包1002、第三切割封包1003均包括IP头部(Header)以及有效载荷(Payload),第二切割封包1002还包括如传输控制协议/用户数据报协议等(TCP/UDP)头部(应注意的是,目前在网络上被广泛使用的协议,包括DNS、点对点协议(Point-to-PointProtocol,PPP)、串4亍线路互联网协议(SerialLineInternetProtocol,SLIP)、互联网消息访问协议(InternetMessageAccessProtocol,ICMP)等,本发明不限定于TCP/UDP协议)。IP头部用于记载第一切割封包1001、第二切割封包1002以及第三切割封包1003的内部IP地址(IPAddress)以及识别号(Identification),TCP/UDP头部用于记载第二切割封包1002的内部IP地址及内部端口号。对于同一个原封包1000而言,第一切割封包1001、第二切割封包1002以及第三切割封包1003的内部IP地址以及识别号相同,并且每个原封包1000仅具有一个包括TCP/UDP头部的切割封包。本发明包括TCP/UDP头部的切割封包并不局限于第二切割封包1002,在其它实施方式中,TCP/UDP头部也可能存在于第一切割封包1001或第三切割封包1003中。参阅图3,所示为本发明实施方式中网络装置10的模块图。在本实施例中,网络装置10包括接收模块110、封包判断模块120、转换模块130、存储模块140,以及处理模块150。接收模块110用于从客户端20接收切割封包。在本实施例中,接收模块110从客户端20接收切割封包IOOI、1002以及1003。封包判断模块120用于判断切割封包的封包类型。封包类型包括一般切割封包以及特殊切割封包,一般切割封包是指仅包括IP头部及有效载荷的切割封包,而特殊切割封包是指包括如TCP/UDP等协议头部、IP头部及有效载荷的切割封包。在本实施例中,封包判断模块120通过査看切割封包的IP头部中的切割位移(FragmentOffset,FO)字段,以及旗标(Flag)字段中的"更多切割"(MoreFragments,MF)位(未示出)来判断封包类型。如果切割位移字段记载的值为O,并且"更多切割"位记载的值为l,则表示该切割封包为特殊切割封包;如果切割位移字段记载的值不为O,则表示该切割封包为一般切割封包。转换模块130用于转换特殊切割封包的网络参数。在本实施例中,转换模块130根据网络地址转换(NetworkAddressTranslation,NAT)协议将第二切割封包1002的内部IP地址以及内部端口号分别转换为外部IP地址以及外部端口号。存储模块140存储有联机列表、切割列表,以及缓存列表。在本实施例中,存储模块140为随机存取存储器(RandomAccessMemory,RAM)。请参阅表l,所示为本发明存储于存储模块140的联机列表。联机列表用于记载特殊切割封包的联机信息。联机信息包括特殊切割封包的原始网络参数以及经转换模块130转换后的网络参数。在本实施例中,网络参数包括IP地址以及端口号。其中,IP地址分为内部IP地址及外部IP地址,端口号分为内部端口号及外部端口号。表l<table>tableseeoriginaldocumentpage8</column></row><table>~~~在本实施例中,如果特殊切割封包在联机列表中的序号为l,则说明该特殊切割封包f最先存储于联机列表中。IP=192.168.1.ll说明该特殊切割封包的内部IP地址为192.168.1.11,内部端口号=1000说明该特殊切割封包的内部端口号为1000,外部IP地址=220.136.233.167说明经转换模块130转换后的外部IP地址为220.136.233.167,外部端口号=8080说明经转换模块130转换后的外部端口号为8080。请参阅表2,所示为本发明存储于存储模块140的切割列表。切割列表用于记载特殊切割封包的切割信息。在本实施例中,切割信息包括特殊切割封包的内部IP地址、识别号以及索引(Index),其中索引为该特殊切割封包在联机列表中的序号。表2<table>tableseeoriginaldocumentpage8</column></row><table>在本实施例中,IP=192.168.1.11说明特殊切割封包的内部IP地址为IP-192.168.1.11,识别号-10说明特殊切割封包的IP头部中识别号字段记载的值为10,索引=1用于指向联机列表中序号为l的条目。请参阅表3,所示为本发明存储于存储模块140的缓存列表。缓存列表用于记载一般切割封包的缓存信息。在本实施例中,缓存信息包括内部IP地址以及识别号。表3<table>tableseeoriginaldocumentpage9</column></row><table>'处理模块150用于处理一般切割封包和特殊切割封包。在本实施例中,处理模块150包括查询子模块1502、传送子模块1504以及判断子模块1506。査询子模块1502用于查询缓存列表、切割列表以及联机列表。在本实施例中,查询子模块1502从缓存列表(参见表3)确定一般切割封包的缓存信息、从切割列表(参见表2)确定特殊切割封包在联机列表中的序号,以及从联机列表(参见表l)确定特殊切割封包经转换模块l30转换后的外部IP地址及外部端口号。传送子模块1504用于根据转换的网络参数传送切割封包。具体为,传送子模块1504根据外部IP地址以及外部端口号传送特殊切割封包,并根据外部IP地址传送一般切割封包。判断子模块1506用于判断是否所有的切割封包均已传送完毕。在本实施例中,判断子模块1506査看切割封包的IP头部中旗标字段的"更多切割(Morefragments,MF)"位,如果该位记载的值为O,则表示该切割封包是最后一个切割封包。如果该位记载的值为l,则表示该切割封包不是最后一个切割封包。参阅图4,所示为本发明实施方式中切割封包处理方法的流程图。在步骤S400中,接收模块110接收切割封包。在本实施例中,接收模块110接收到的切割封包可能是特殊切割封包或一般切割封包。在步骤S402中,封包判断模块120判断切割封包的封包类型是一般切割封包还是特殊切割封包。特殊切割封包是指包括TCP/UDP头部字段的切割封包,且对于每一个封包而言,经IP切割后仅存在一个特殊切割封包。在本实施例中,封包判断模块120査看切割封包的IP头部中的切割位移字段,以及旗标字段中的"更多切割"位。如果切割位移字段记载的值为O,并且"更多切割"位记载的值为l,则表示该切割封包是特殊切割封包。如果封包判断模块120判断切割封包是一般切割封包,则进入步骤S404。如果封包判断模块120判断切割封包是特殊切割封包,则进入步骤S422。在步骤S404中,如果第一切割封包是一般切割封包,则存储模块140将切割封包的缓存信息存储于存储模块140的缓存列表中。在步骤S406中,封包判断模块120判断下一个切割封包是否为特殊切割封包。如果封包判断模块120判断下一个切割封包不是特殊切割封包,则返回步骤S404。如果封包判断模块120判断下一个切割封包是特殊切割封包,则进入步骤S408。在步骤S408中,存储模块140査找联机列表,以便确定特殊切割封包是否已经处于联机列表中。如果特殊切割封包不处于联机列表中,则进入步骤S410;如果特殊切割封包已经处于联机列表中,则进入步骤S414。在步骤S410中,转换模块130转换特殊切割封包的网络参数。在本实施例中,转换模块130根据NAT协议转换特殊切割封包的网络参数,并且网络参数包括IP地址以及端口号。在步骤S412中,存储模块140将特殊切割封包的联机信息记载于联机列表中。在本实施例中,联机信息包括特殊切割封包的网络参数以及转换模块l30转换的网络参数。在步骤S414中,存储模块140将特殊切割封包的切割信息记载于切割列表中。在本实施例中,切割信息包括切割封包的内部IP地址及识别号,以及该特殊切割封包在上述联机列表中的序号。在步骤S416中,处理模块150依次处理存储于缓存列表中的一般切割封包。在步骤S418中,处理模块150处理特殊切割封包。具体为,处理模块150根据联机列表中记载的外部IP地址以及外部端口号传送特殊切割封包。在步骤S420中,处理模块150处理特殊切割封包之后的一般切割封包。在步骤S422中,若第一切割封包是特殊切割封包,则存储模块140査找联机列表,以便确定特殊切割封包是否己经处于联机列表中。如果特殊切割封包不处于联机列表中,则进入步骤S424;如果特殊切割封包已经处于联机列表中,则进入步骤S428。在步骤S424中,转换模块130转换特殊切割封包的网络参数。在本实施例中,转换模块130根据NAT协议转换特殊切割封包的网络参数,并且网络参数包括IP地址以及端口号。在步骤S426中,存储模块140将特殊切割封包的联机信息记载于联机列表中。在本实施例中,联机信息包括特殊切割封包的网络参数以及转换模块130转换的网络参数。在步骤S428中,存储模块140将特殊切割封包的切割信息记载于切割列表中。在本实施例中,切割信息包括切割封包的内部IP地址和识别号,以及该特殊切割封包在上述联机列表中的序号。参阅图5,所示为本发明切割封包处理方法中步骤S416的具体流程图。在步骤S4160中,接收模块110暂停接收后续的一般切割封包。在步骤S4162中,査询子模块1502査询缓存列表,以确定一般切割封包的缓存信息。在本实施例中,查询子模块1502査询一般切割封包的IP头部,以确定该切割封包的缓存信息。在步骤S4164中,査询子模块1502根据缓存信息査询切割列表,以便确定该切割封包在联机列表中的序号。在步骤S4166中,査询子模块1502根据査询子模块1502査询到的序号査询联机列表,以确定外部IP地址。在步骤S4168中,传送子模块1504根据外部IP地址传送该一般切割封包。在步骤S4170中,判断子模块1506判断缓存列表中的所有切割封包是否均已传送完毕。如果缓存列表中的所有切割封包均已传送完毕,则进入步骤S416;否则返回步骤S4140。在本实施例中,判断子模块1506査看该切割封包的IP头部中旗标字段的"更多切割"(MoreFragments,MF)位,若该位为"0",则表示该切割封包是最后一个切割封包。参阅图6,所示为本发明切割封包处理方法中步骤S420的具体流程图。在步骤S4200中,接收模块110继续接收后续的一般切割封包。在步骤S4202中,査询子模块1502根据一般切割封包的内部IP地址及识别号查询切割列表,以确定该切割封包在联机列表中的序号。在步骤S4204中,查询子模块1502根据该序号査询联机列表,以得到外部IP地址。在步骤S4206中,传送子模块l504根据外部IP地址传送该切割封包。在步骤S4208中,判断子模块1506判断是否所有切割封包均已传送完毕。若所有切割封包均已传送完毕,则结束;否则返回步骤S4200。本发明的地址转换系统10及其切割封包处理方法通过转换模块130、存储模块140以及处理模块150来处理切割封包,可提高切割封包的处理速度,从而提升通信系统的运行效率。权利要求1.一种网络装置,其特征在于,包括接收模块,用于接收切割封包;封包判断模块,用于判断所述切割封包的封包类型,所述封包类型包括特殊切割封包以及一般切割封包,所述特殊切割封包包括协议头部字段;转换模块,用于转换所述特殊切割封包的网络参数;存储模块,用于存储所述一般切割封包的缓存信息,以及所述特殊切割封包的联机信息及切割信息;以及处理模块,用于根据所述缓存信息、所述联机信息以及所述切割信息处理所述一般切割封包以及所述特殊切割封包。全文摘要一种切割封包处理方法,应用于网络装置中,该切割封包处理方法包括接收第一切割封包;判断第一切割封包的封包类型,封包类型包括一般切割封包以及特殊切割封包,特殊切割封包包括协议头部字段;如果第一切割封包是一般切割封包,则存储一般切割封包的缓存信息;判断随后的切割封包是否是特殊切割封包;如果随后的切割封包是特殊切割封包,则转换特殊切割封包的网络参数;存储特殊切割封包的联机信息以及切割信息;以及根据联机信息以及切割信息处理该一般切割封包。本发明实施方式中还提供了一种网络装置。上述网络装置及其封包切割方法可提高切割封包的处理速度,从而提升通信系统的运行效率。文档编号H04L12/56GK101132359SQ20061020081公开日2008年2月27日申请日期2006年8月18日优先权日2006年8月18日发明者郭婉绣申请人:鸿富锦精密工业(深圳)有限公司;鸿海精密工业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1