[发明专利]一种报文处理方法、装置和设备有效
申请号: | 201310341741.1 | 申请日: | 2013-08-07 |
公开(公告)号: | CN103414714A | 公开(公告)日: | 2013-11-27 |
发明(设计)人: | 骆绍开 | 申请(专利权)人: | 华为数字技术(苏州)有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
地址: | 215123 江苏省苏州市苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 报文 处理 方法 装置 设备 | ||
技术领域
本发明涉及计算机领域,尤其涉及一种报文处理方法、装置和设备。
背景技术
TOE(TCP Offload Engine,TCP卸载引擎)指由网卡芯片实现对TCP报文的协议处理,主机驱动接收和发送的仅是TCP报文的数据段,从而将主机CPU从协议处理中释放出来,更好地处理其他业务,最终实现加速网络响应的同时提高服务器性能。
MTU(Maximum Transmission Unit,最大传输单元)是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位),在OSI模型中指链路层的最大数据帧长度(对于IP报文,指包含IP头的长度,一般为1500);
PMTU(Path MTU,路径最大传输单元),指从源地址到目的地址,所有IP节点MTU中的最小值,使得长度在该值内的报文经过该路径时都不需要分片,长度超出该值的报文需要被分片才能通过此路径传输;
PMTUDP(Path Mtu Discovery Protocol协议,路径最大传输单元发现协议),是一种动态发现任意路径PMTU的技术。通过ICMP(Internet Control Message Protocol,互联网控制报文协议)报文在源/目的节点之间协商PMTU值,最终源节点使用该值作为发送报文的MTU(对于IP报文还需要将头部的DF(Decline Fragment,禁止分片)置位,以禁止路由器对报文进行分片);
MSS(Maximum Segment Size,最大分段大小)是TCP协议的概念,表示该条连接每个数据包的最大长度,该值通过PMTUD协议协商的PMTU计算获得:
MSS=PMTU-40,其中40为20字节的IP头长度加上20字节的TCP头长度。
目前现有技术中常采用以下方法处理报文:
1、一般的网卡在收发报文时,协议栈会根据所配置的网卡的MTU值支持报文分片和报文重组。
2、支持报文分片的TOE网卡在接收到分片报文后,不对接收到的分片报文进行TOE卸载,而是直接交给主机协议栈进行后续处理。
3、不支持报文分片的TOE网卡在接收到分片报文后将分片报文直接丢弃;
在建立连接时,先根据PMTUD协议协商PMTU值,取整个链路中所有设备端口MTU的最小值作为该连接的PMTU值;
在发IP报文时在IP头部置DF位,禁止中间路由器对其分片;
通过以上方式TOE网卡收到对端发送的报文都是非分片报文,而该TOE网卡在发送报文时,TOE驱动将该连接的PMTU减去40得到MSS值,然后将该MSS值配置给TOE网卡,TOE网卡根据MSS构造TCP报文。
在实现上述分片报文的处理过程中,发明人发现现有技术中至少存在如下问题:
一般的网卡将TCP卸载交由协议栈处理,因此会占用较大的主机CPU利用率;
支持报文分片的TOE网卡由于将分片报文不走TOE通道,从而未实现硬件TCP加速功能,并且当一个TCP连接的部分报文是分片报文时,报文分别走TOE卸载通道和普通网卡通道,该连接将出现状态异常;
在TOE网卡不支持报文分片的情况下,为了防范DDOS(Distributed Denial of Service,分布式拒绝服务)攻击等原因,较多网络不再提供ICMP传输,使得PMTUD协议无法工作,并且当对端发送较大报文,且DF未置位时,最终收到路由器分片后的报文又被丢弃,影响网络性能。
发明内容
本发明的实施例提供一种报文处理方法、装置和设备,能够使TOE网卡支持对IP分片报文的处理并实现对分片报文的硬件TOE卸载,提高了网络的响应性能和传输性能。
为达到上述目的,本发明的实施例采用如下技术方案:
一方面,提供一种报文处理方法,所述方法包括:
接收第一报文;
当所述第一报文为分片报文时,则将所述第一报文搬移到主机共享内存中;
在所述主机共享内存中读取所述第一报文并进行重组生成第二报文;
将所述第二报文搬移到网卡内存中;
将所述网卡内存中的所述第二报文进行传输控制协议TCP卸载引擎卸载。
在第一种可能的实现方式中,结合第一方面,所述接收第一报文后,所述方法还包括:
判断所述第一报文是否为分片报文,若所述第一报文为分片报文,则将所述第一报文搬移到主机共享内存中;
若所述第一报文不是分片报文,则将所述第一报文直接进行传输控制协议TCP卸载引擎卸载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为数字技术(苏州)有限公司,未经华为数字技术(苏州)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310341741.1/2.html,转载请声明来源钻瓜专利网。