[发明专利]传递客户端IPv6地址及端口至后端服务器的方法及装置有效
申请号: | 201210054431.7 | 申请日: | 2012-03-02 |
公开(公告)号: | CN103297407A | 公开(公告)日: | 2013-09-11 |
发明(设计)人: | 罗枫;吴教仁;刘涛;刘宁;张诚 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L29/12 |
代理公司: | 北京清亦华知识产权代理事务所(普通合伙) 11201 | 代理人: | 宋合成 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 传递 客户端 ipv6 地址 端口 后端 服务器 方法 装置 | ||
1.一种从IPv6负载均衡设备传递客户端的原始IPv6地址及端口至后端服务器的方法,其特征在于,包括以下步骤:
(A)所述客户端向所述IPv6负载均衡设备发送数据包;
(B)所述IPv6负载均衡设备对所述客户端的原始IPv6地址及端口进行地址转换,将所述客户端的原始IPv6地址及端口存储在TCP选项字段中并发送带有所述TCP选项字段的数据包;
(C)所述后端服务器的Linux内核层截获syn_recv_sock钩子,挂载tcp_v6_syn_recv_sock_ttm钩子函数,以得到所述TCP选项字段中的所述客户端的原始IPv6地址及端口并存储;
(D)所述后端服务器的Linux内核层截获getname钩子,挂载inet6_getname_ttm钩子函数,以提取所述客户端的原始IPv6地址及端口供所述后端服务器的Linux应用层使用。
2.根据权利要求1所述的方法,其特征在于,进一步包括步骤:
(E)截获_sk_stream_mem_rediv函数,使用跳转指令码替换所述_sk_stream_mem_rediv函数开始部分的指令代码,进而调用__sk_stream_mem_rediv_ttm函数,并完成所述sock结构体以及所述高速缓存的释放。
3.根据权利要求1或2所述的方法,其特征在于,在所述步骤(B)之后进一步包括:
步骤(F),将所述TCP选项字段的kind号写入作为TCPOPT_TTM并将所述TCP选项字段的总长度写入作为TCPOLEN_TTM。
4.根据权利要求3所述的方法,其特征在于,所述步骤(C)包括:
所述服务器的Linux内核层调用linux内核原生的tcp_v6_syn_recv_sock函数;
判断所述TCP选项字段的kind号是否为TCPOPT_TTM并判断所述TCP选项字段的总长度是否为TCPOLEN_TTM;
如果是,则获取存储在所述TCP选项字段中的所述客户端的原始IPv6地址及端口;
为所述客户端的原始IPv6地址及端口分配高速缓存;
将sock结构体的sk_user_data指针指向所述高速缓存;以及
将所述客户端的原始IPv6地址及端口保存到所述高速缓存中。
5.根据权利要求4所述的方法,其特征在于,进一步包括:
如果不存在kind号为TCPOPT_TTM且长度为TCPOLEN_TTM的所述TCP选项字段,则返回。
6.根据权利要求4所述的方法,其特征在于,进一步包括:
如果没有成功分配所述高速缓存,则返回。
7.根据权利要求1或2所述的方法,其特征在于,步骤(D)包括:
调用linux内核原生的inet6_getname函数;
判断所述sk_user_data指针指向的所述高速缓存是否为空;
如果否,则判断所述高速缓存中是否存储有所述客户端的原始IPv6地址及端口;以及
如果所述高速缓存中存储有所述客户端的原始IPv6地址及端口,则将所述sk_user_data指针指向的所述高速缓存中存储的所述客户端的原始IPv6地址及端口赋值到uaddr的sin6_addr和sin6_port。
8.根据权利要求7所述的方法,其特征在于,进一步包括步骤:
如果判断所述sk_user_data指针指向的所述高速缓存为空,则返回。
9.根据权利要求7所述的方法,其特征在于,进一步包括步骤:
如果判断所述高速缓存中没有存储所述客户端的原始IPv6地址及端口,则返回。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210054431.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一个通信方法及设备、系统
- 下一篇:数字信息发送和接收方法、装置以及分发系统