[发明专利]一种UDP数据包的传输方法无效
| 申请号: | 200710304578.6 | 申请日: | 2007-12-28 |
| 公开(公告)号: | CN101217464A | 公开(公告)日: | 2008-07-09 |
| 发明(设计)人: | 张建宇;姚嘉;刘晓舟;廖唯棨;邹维 | 申请(专利权)人: | 北京大学 |
| 主分类号: | H04L12/56 | 分类号: | H04L12/56;H04L29/06 |
| 代理公司: | 北京君尚知识产权代理事务所 | 代理人: | 余长江 |
| 地址: | 100871*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | 本发明的目的是提供一种UDP数据包的传输方法,该方法通过将非本地UDP数据包直接重定向到本地网络协议栈进行处理(不依赖于网络地址转换技术)、数据报套接字负载均衡、减少内核层和用户层之间的数据拷贝传递以及减少网络协议栈中执行数据包构建、协议封装、数据链路层或网络层转发信息查找等复杂操作的开销,提高了内核层内部各模块间传输和处理UDP数据包以及内核层与用户层业务程序之间传输数据的效率,实现了应用网关对UDP流量应用层数据的在线高速处理、UDP数据包的快速转发以及对大量并发UDP会话的支持,并保证了应用网关对于通信源端和目的端的透明性。 | ||
| 搜索关键词: | 一种 udp 数据包 传输 方法 | ||
【主权项】:
1.一种UDP数据包的传输方法,其步骤如下:1)将应用网关接收到的、目的IP地址为非本地IP地址的UDP数据包传输到内核层的数据包转发模块;2)数据包转发模块根据负载均衡算法,从用户层业务程序创建的数据报套接字池中选出一个数据报套接字,将需要由业务程序处理的UDP数据包,分配给所述数据报套接字,所述数据报套接字包含三个数据包缓冲队列:接收队列、发送队列和深度处理队列;3)将上述数据报套接字的本地监听端口、数据包转发模块的发送回调函数指针以及数据链路层或网络层转发的目的信息保存到数据包内核数据结构中;4)数据包转发模块将UDP数据包重定向到内核层的本地网络协议栈的UDP输入处理模块;5)UDP输入处理模块对UDP数据包的UDP包头进行解析处理,并根据数据包内核数据结构中保存的数据报套接字本地监听端口信息,找到数据包转发模块选出的数据报套接字,将上述数据包加入到该套接字的接收队列的队尾;6)用户层的业务程序调用套接字的系统调用函数,触发UDP输入处理模块从数据报套接字的接收队列的队首取出UDP数据包,还原提取出应用层数据并拷贝到业务程序提供的用户层缓冲区中,其中所述函数均兼容伯克利套接字;如果所述函数的参数flags中包含标识MSG_PREINSPECTING,则将数据包加入到数据报套接字的深度处理队列队尾;7)业务程序解析处理用户层缓冲区中的数据,调用套接字的系统调用函数,并根据所述函数的参数flags中设置的不同标识,执行对数据报套接字深度处理队列中的原始UDP数据包的处理操作,包括:丢弃;不做任何修改直接交由数据包转发模块发送出去;采用业务程序提供的数据替换UDP数据包的内容后再交由数据包转发模块发送出去;其中所述系统调用函数均兼容伯克利套接字。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200710304578.6/,转载请声明来源钻瓜专利网。





