[发明专利]IP报文分片的处理方法和分布式系统有效
申请号: | 201010601200.4 | 申请日: | 2010-12-22 |
公开(公告)号: | CN102065012A | 公开(公告)日: | 2011-05-18 |
发明(设计)人: | 刘巍巍;吴刚;孙伟 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | H04L12/56 | 分类号: | H04L12/56 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 田红娟;龙洪 |
地址: | 518057 广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | ip 报文 分片 处理 方法 分布式 系统 | ||
技术领域
本发明涉及网络通信领域,具体为一种IP报文分片的处理方法和分布式系统。
背景技术
IP网络中,当报文长度超过MTU(Maximum Transmission Unit,最大传输单元)时,需将报文分片发送;目的设备接收到分片报文后,根据各分片的偏移量进行重组。
分布式系统通常包括集中控制线卡、业务线卡以及接口线卡,这些线卡之间通过内部总线进行通信。图1示出了简化的分布式系统组成。接口线卡,对外连接IP网络。业务线卡,实现上层业务的处理。集中控制线卡,作为系统的总控节点,负责生成路由表和接口表,并同步给所有其他线卡。
现有技术中,分布式系统通常在一个或多个业务线卡或接口线卡上配置集中重组模块,重组目的地为本系统的分片报文。
申请于2007年4月28日的中国专利CN200710097246提出了一种配置重组接口线卡的选择原则,将不同报文的分片发到不同的接口线卡上进行重组,以在一定程度上分担重组模块所在线卡的负荷,提高了重组速度。由于无论从一个还是多个接口线卡收到分片报文,都会送到集中重组模块所在线卡上处理,这样会造成报文在接口线卡、集中重组模块所在线卡、业务线卡之间多次转发。并且,受线卡间报文通道所限,集中重组后的报文在线卡间转发可能会出现再次分片重组的现象。
此外,如图2所示,即使同一接口线卡收到所有分片报文,并且分片报文和非分片报文没有交叉传输,现有技术实现由于将分片报文送集中重组模块所在线卡处理,导致分片报文(报文1)和作为小包的非分片报文(报文2)在系统内走不同的路径传输,最终造成上层业务接收到的报文出现乱序问题,而在通信领域的一些业务应用中对于同一个流的报文是不允许乱序的。
发明内容
本发明要解决的技术问题是提供一种IP报文分片的处理方法和分布式系统,以避免报文多次转发重组。
为解决以上问题,本发明提供的IP报文分片的处理方法包括:
线卡接收报文分片;
所述线卡接收到报文的所有分片时,判断本线卡是否是目的线卡;
本线卡不是目的线卡时,所述线卡将所述报文的所有分片发送给目的线卡;本线卡是目的线卡时,所述线卡将所述报文的所有分片进行重组。
进一步地,所述线卡接收报文分片的步骤包括:
接收所述报文的第一个分片时,创建一个虚拟重组队列;
接收所述报文的后续分片时,按分片在原始报文中的位置写入所述虚拟重组队列中;
根据虚拟重组队列的写入情况判断是否接收到报文的所有分片。
进一步地,创建所述虚拟重组队列时,初始化定时器,若所述线卡为接口线卡,且在定时时间内未接收到报文的所有分片时,执行以下操作:
所述接口线卡确定集中重组模块所在的线卡;
若所述集中重组模块所在的线卡是本线卡,则丢弃已接收的报文分片,否则,所述接口线卡将已接收的报文分片发送到集中重组模块所在的线卡。
进一步地,创建所述虚拟重组队列时,初始化定时器,若所述线卡为业务线卡,且在定时时间内未接收到报文的所有分片时,丢弃已接收的报文分片。
进一步地,所述线卡通过查询分发表或路由确定本线卡是否为目的线卡。
进一步地,所述线卡为业务线卡时,通过判断本线卡是否为集中重组模块所在的线卡,来确定本线卡是否是目的线卡,若不是集中重组模块所在的线卡,则本线卡为目的线卡;通过判断集中重组模块所在的线卡的方式,确定本线卡为目的线卡时,所述业务线卡根据接收的报文分片直接进行报文重组。
进一步地,若当前接收的报文分片与已接收的报文分片重复或重叠,则丢弃所述当前接收的报文分片。
为解决以上技术问题,本发明还提供了一种分布式系统,该系统包括若干个线卡,所述线卡包括:
接收模块,用于接收报文分片;
目的线卡判断模块,用于在接收到报文的所有分片时,判断本线卡是否是目的线卡;
转发模块,在接收到报文的所有分片且本线卡不是目的线卡时,用于将所述报文的所有分片发送给目的线卡;
报文重组模块,接收到报文的所有分片且本线卡是目的线卡时,将所述报文的所有分片进行重组。
进一步地,所述接收模块包括:
接收子模块,用于接收报文分片;
虚拟重组队列管理子模块,用于接收所述报文的第一个分片时,创建一个虚拟重组队列;以及在接收所述报文的后续分片时,按分片在原始报文中的位置写入所述虚拟重组队列中;
分片判断子模块,用于根据所述虚拟重组队列的写入情况判断是否接收到报文的所有分片。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010601200.4/2.html,转载请声明来源钻瓜专利网。