发明名称 基于零拷贝方式的TCP/IP协议报文发送方法和装置
摘要 本发明提供一种基于零拷贝方式的TCP/IP协议报文发送方法和装置,其中,该方法包括:在发送报文直接内存访问数据缓冲区的头部中保留预定字段用于存储控制信息;网卡将用户传递的TCP/IP协议报文存储在发送报文直接内存访问数据缓冲区中;网卡根据TCP/IP协议报文更新发送报文直接内存访问数据缓冲区的头部中的控制信息;以及网卡根据报文直接内存访问数据缓冲区的头部中的控制信息,将所保存的TCP/IP协议报文重新组合成连续的报文后发送出去。本发明不需要占用CPU资源,并且不需要进行数据拷贝操作,可以明显地加快报文的构造及发送速度,满足了高流量下的报文发送应用需求。
申请公布号 CN101707590B 申请公布日期 2015.03.11
申请号 CN200910093984.1 申请日期 2009.09.25
申请人 曙光信息产业(北京)有限公司 发明人 邵宗有;聂华;历军;李永成
分类号 H04L29/06(2006.01)I;H04L12/70(2013.01)I 主分类号 H04L29/06(2006.01)I
代理机构 北京安博达知识产权代理有限公司 11271 代理人 徐国文
主权项 一种基于零拷贝方式的TCP/IP协议报文发送方法,其特征在于,包括:在发送报文直接内存访问数据缓冲区的头部中保留预定字段用于存储控制信息;网卡将用户传递的TCP/IP协议报文存储在所述发送报文直接内存访问数据缓冲区中;网卡根据所述TCP/IP协议报文更新所述发送报文直接内存访问数据缓冲区的头部中的控制信息;以及网卡根据所述报文直接内存访问数据缓冲区的头部中的所述控制信息,将所保存的TCP/IP协议报文重新组合成连续的报文后发送出去;根据需要预先确定所述预定字段的长度;所述用于存储控制信息的预定字段的长度为8位或16位;所述控制信息包括以下至少一种信息:链路类型、报文类型、是否存在Ipv4选项字段的信息、是否存在TCP选项字段的信息、TCP/UDP报文数据与Ipv4报文选项是否连续存储的信息、负载数据和TCP选项是否连续存储的字段、是否为长报文的信息、是否计算了TCP/UDP报文的检验和的信息、是否计算了IP报文的检验和的信息、IP报文头长度、TCP报文头长度、以及数据报文的总长度;调用接口函数分别构造所述控制信息,并且通过接口函数维护所述报文直接内存访问数据缓冲区的头部中的控制信息。
地址 100084 北京市海淀区中关村科学院南路6号