[发明专利]一种TCP数据包的传输方法无效

专利信息
申请号: 200810055730.6 申请日: 2008-01-08
公开(公告)号: CN101217493A 公开(公告)日: 2008-07-09
发明(设计)人: 张建宇;姚嘉;刘晓舟;廖唯棨;邹维 申请(专利权)人: 北京大学
主分类号: H04L12/56 分类号: H04L12/56;H04L29/06
代理公司: 北京君尚知识产权代理事务所 代理人: 余长江
地址: 100871*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 tcp 数据包 传输 方法
【权利要求书】:

1.一种TCP数据包的传输方法,其步骤如下:

1)将应用网关接收到的、目的IP地址为非本地IP地址的TCP数据包传输到内核层的数据包转发模块;

2)数据包转发模块根据负载均衡算法从用户层业务程序创建的“监听”流套接字池中选出一个“监听”流套接字,将其本地监听端口保存到数据包的内核数据结构中;

3)所述“监听”流套接字响应新建TCP连接握手请求,并创建“数据”流套接字,所述流套接字包含三个数据包缓冲队列:接收队列、发送队列和深度处理队列;“监听”流套接字还包含一个监听队列和一个新建TCP连接队列;

4)数据包转发模块将TCP数据包重定向到内核层的本地网络协议栈;

5)本地网络协议栈的TCP输入处理模块对TCP数据包的TCP包头进行解析处理,在“数据”流套接字散列表中查找是否存在与数据包对应的“数据”流套接字;

6)若存在“数据”流套接字,则将数据包加入到“数据”流套接字的接收队列的队尾,并跳到步骤9;

7)若不存在“数据”流套接字,则在“监听”流套接字散列表中找到数据包转发模块选出的“监听”流套接字,将数据包加入到“监听”流套接字的监听队列的队尾;

8)TCP新建连接模块从监听队列队首取出TCP数据包,完成与客户机的新建TCP连接握手,创建与客户机进行通信的“数据”流套接字,将该流套接字加入到内核中的“数据”流套接字散列表以及“监听”流套接字的新建TCP连接队列队尾;

9)用户层的业务程序调用套接字的系统调用函数accept(),从“监听”流套接字的新建TCP连接队列队首取出“数据”流套接字并返回其信息给业务程序;调用套接字的系统调用函数socket(),创建与服务器通信的“数据”流套接字;调用套接字的系统调用函数connect(),建立应用网关与服务器间的TCP连接;

10)业务程序调用套接字的系统调用函数,触发TCP输入处理模块从“数据”流套接字的接收队列的队首取出TCP数据包,还原提取出应用层数据并拷贝到业务程序提供的用户层缓冲区中,如果所述函数的参数flags中包含标识MSG_PREINSPECTING,则将数据包加入到“数据”流套接字的深度处理队列队尾;

11)业务程序解析处理用户层缓冲区中的数据,调用套接字的系统调用函数,并根据所述函数的参数flags中设置的不同标识,执行对“数据”流套接字深度处理队列中的原始TCP数据包的处理操作,包括:丢弃;对TCP数据包的内容不做任何修改原样发送出去;采用业务程序提供的数据替换TCP数据包的内容后发送出去;其中上述步骤中所有系统调用函数均兼容伯克利套接字。

2.如权利要求1所述的一种TCP数据包的传输方法,其特征在于步骤2)中所述的“监听”流套接字池的创建方法如下:

1)用户层的业务程序调用套接字的系统调用函数socket(),创建一个流套接字;

2)业务程序调用套接字的系统调用函数bind(),设置流套接字的本地监听端口;

3)业务程序调用套接字的系统调用函数listen(),将流套接字设置为“监听”流套接字,并以本地监听端口为键值将其加入内核中的“监听”流套接字散列表;

4)业务程序创建多个“监听”流套接字,形成一个监听”流套接字池。

3.如权利要求1所述的一种TCP数据包的传输方法,其特征在于步骤2)中所述的负载均衡算法采用对源IP地址、源端口、目的IP地址和目的端口进行哈希的方法。

4.如权利要求1所述的一种TCP数据包的传输方法,其特征在于步骤5)中,TCP输入处理模块根据数据包的目的IP地址、目的端口、源IP地址和源端口信息查找是否存在对应的“数据”流套接字。

5.如权利要求1所述的一种TCP数据包的传输方法,其特征在于步骤7)中在TCP输入处理模块根据数据包内核数据结构中保存的“监听”流套接字的本地监听端口信息,找到数据包转发模块选出的“监听”流套接字。

6.如权利要求1所述的一种TCP数据包的传输方法,其特征在于步骤9)中所述信息包括目的IP地址、目的端口、源IP地址和源端口。

7.如权利要求1所述的一种TCP数据包的传输方法,其特征在于步骤10)中,所述的系统调用函数为recv()、recvmsg()或recvfrom()。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/200810055730.6/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top