[发明专利]传输控制协议/网间协议的协议栈读取数据的方法和装置有效
| 申请号: | 200810189145.5 | 申请日: | 2008-12-29 |
| 公开(公告)号: | CN101494661A | 公开(公告)日: | 2009-07-29 |
| 发明(设计)人: | 刘凡 | 申请(专利权)人: | 深圳市同洲电子股份有限公司 |
| 主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L12/56 |
| 代理公司: | 北京集佳知识产权代理有限公司 | 代理人: | 逯长明 |
| 地址: | 518057广东省深圳市南*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 传输 控制 协议 读取 数据 方法 装置 | ||
技术领域
本发明涉及通信技术领域,特别涉及一种传输控制协议/网间协议的协议 栈读取数据的方法和装置。
背景技术
在网络编程中有时候需要从传输控制协议/网间协议(Transmission Control Protocol/Internet Protocol,TCP/IP)的协议栈中读取用户数据报协议 (User Datagram Protocol,UDP)数据包。
现有技术中提取UDP数据包的技术方案可以为:首先,数据的接收方和 发送方协商UDP数据包负载的格式,以及接收UDP数据包的端口;接收方 使用捆绑bind函数来指定上述协商好的端口接收UDP数据包,接收方通过 系统调用接收recv()、recvfrom()或recvmsg()函数监听上述接收UDP 数据包的端口;然后,发送方发送数据包给接收方,接收方执行系统调用将 一个UDP数据包从TCP/IP协议栈中拷贝到用户态,然后根据协商的数据包 负载的格式对UDP数据包负载进行解析,接下来可以进行各种处理和修改 (如删除和替换),还可以执行把处理结果发回给原始发送方或者其它设备 等。
发明人在实现本发明的过程中发现:每次系统调用都需要耗费一定的时 间;一次系统调用还会进行一次数据从内核态向用户态的搬移,花费了较多 的中央处理器(central processing unit,CPU)的计算时间,造成了网络输入 输出(Input/Output,I/O)能力低下。
发明内容
本发明实施例要解决的技术问题是提供一种传输控制协议/网间协议的协 议栈读取数据的方法和装置,提升网络输入输出能力。
为解决上述技术问题,本发明所提供的传输控制协议/网间协议的协议栈 读取数据的方法实施例可以通过以下技术方案实现:
获取标识;所述标识指定了读取传输控制协议/网间协议TCP/IP的协议栈 中的多个用户数据报协议UDP数据包;
获取长度;所述长度指定将要读取的UDP数据包的总长度;
获取数据:根据所述指定的UDP数据包的总长度从所述协议栈中读取对 应个数的UDP数据包;
将所述个数的UDP数据包拷贝到用户态。
可选地,所述标识指定的读取UDP数据包的总长度为5个UDP数据包的长 度到7个UDP数据包的长度之间。
可选地,在未获取到所述标识时,从协议栈中读取一个UDP数据包。
可选地,所述获取到的指定标识为UDP保留标识。
可选地,所述获取标识之前还包括:
通过系统调用从UDP套接口接收UDP数据包。
可选地,所述根据所述指定的UDP数据包的总长度从所述协议栈中读取 对应个数的UDP数据包包括:
根据所述指定的UDP数据包的总长度读取与所述总长度相同的UDP数据 包;或
根据所述指定的UDP数据包的总长度读取与所述总长度最接近且不小于 所述总长度的整数个UDP数据包。
本发明实施例还提供了一种数据读取装置,包括:
标识获取单元,用于获取标识;所述标识指定了读取传输控制协议/网间 协议TCP/IP的协议栈中的多个用户数据报协议UDP数据包;
长度获取单元,用于获取长度;所述长度指定了读取UDP数据包的总长 度;
读取单元,用于根据上述指定的UDP数据包的总长度从所述协议栈中读 取对应个数的UDP数据包;
拷贝单元,用于将所述个数的UDP数据包拷贝到用户态。
可选地,上述数据读取装置还包括:
所述读取单元,还用于当标识获取单元未获取到所述标识时,执行从所 述协议栈中读取一个UDP数据包。
可选地,上述数据读取装置还包括:
接收单元,用于通过系统调用从UDP套接口接收UDP数据包。
可选地,所述读取单元,具体用于根据所述指定的UDP数据包的总长度 读取与所述总长度相同的UDP数据包;或
根据所述指定的UDP数据包的总长度读取与所述总长度最接近且不小于 所述总长度的整数个UDP数据包。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市同洲电子股份有限公司,未经深圳市同洲电子股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810189145.5/2.html,转载请声明来源钻瓜专利网。





