[发明专利]实现CDN回源请求携带客户端IP的方法及系统在审
申请号: | 201711328802.5 | 申请日: | 2017-12-13 |
公开(公告)号: | CN109922105A | 公开(公告)日: | 2019-06-21 |
发明(设计)人: | 姚平;李强乙;朱恒;朱健荣 | 申请(专利权)人: | 苏宁云商集团股份有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L29/06;H04L12/24 |
代理公司: | 北京市万慧达律师事务所 11111 | 代理人: | 黄玉东 |
地址: | 210042 江苏省*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 客户端IP 源站服务器 回源 客户端访问 数据包 携带 数据包发送 反馈请求 访问请求 请求内容 业务逻辑 私匙 私钥 网站 存储 转发 发送 更新 部署 | ||
1.一种实现CDN回源请求携带客户端IP的方法,其特征在于,包括:
步骤S1:根据CDN节点接收客户端访问请求,判断所述CDN节点是否存储有与所述访问请求对应私钥;若“无”,则执行S3;
步骤S3:发起到源站服务器的TCP连接请求,插入客户端IP和端口到TCP syn数据包中,并将更新后的所述TCP syn数据包发送至源站服务器;
步骤S4:通过源站服务器提取所述TCP syn数据包中的客户端IP和端口,返回syn ack数据包给CDN节点,接受所述TCP连接请求;
步骤S5:利用所述CDN节点将客户端访问请求内容通过所述TCP连接转发至源站服务器,使得源站服务器的业务逻辑反馈所述请求内容,并获得客户端IP和端口。
2.根据权利要求1所述的方法,其特征在于,所述S3具体包括:
步骤S31:所述CDN节点向源站服务器发起握手请求,构造TCP syn数据包;
步骤S32:调用第一内核函数将客户端IP和端口插入所述TCP syn数据包的头部选项option,以更新所述TCP syn数据包;
步骤S33:将更新后的所述TCP syn数据包发送至源站服务器。
3.根据权利要求2所述的方法,其特征在于,所述S4具体包括:
步骤S41:调用第二内核函数对所述头部选项option验证;
步骤S42:验证通过后提取所述头部选项option中的客户端IP和端口,存储至sock结构体中;
步骤S43:通过所述sock结构体管理源站服务器与所述CDN节点的TCP连接关系。
4.根据权利要求3所述的方法,其特征在于,所述S5具体包括:
步骤S51:利用accept函数调用源站服务器中的inet_getname_cip函数;
步骤S52:inet_getname_cip函数调用内核原生函数inet_getname,利用所述原生函数inet_getname从所述sock结构体中提取客户端IP和端口,并将客户端IP和端口返回至accept函数。
5.根据权利要求3所述的方法,其特征在于,所述第一内核函数为tcp_options_write函数,所述第二内核函数为tcp_v4_syn_recv_sock_cip函数。
6.根据权利要求3所述的方法,其特征在于,所述tcp_v4_syn_recv_sock_cip函数为源站服务器中内核syn_recv_sock上挂载的钩子函数。
7.根据权利要求1所述的方法,其特征在于,在步骤S1与步骤S3之间,还包括:
步骤S2:使用所述私钥对所述访问请求解密,并将客户端IP和端口插入到解密后的请求内容中,然后回源至源站服务器,使得源站服务器的业务逻辑能够获得客户端IP和端口,并反馈对应访问请求内容。
8.一种实现CDN回源请求携带客户端IP的方法,其特征在于,包括:
CDN节点接收客户端访问请求,判断该CDN节点的本地是否存储有与所述访问请求对应私钥;
CDN节点发起到源站服务器的TCP连接请求,插入客户端IP和端口到TCP syn数据包中,并将更新后的所述TCP syn数据包发送至源站服务器;
CDN节点接收源站服务器在提取所述TCP syn数据包中客户端IP和端口后返回的synack数据包,并与源站服务器建立所述TCP连接;
CDN节点将客户端访问请求内容通过所述TCP连接转发至源站服务器,使得源站服务器的业务逻辑反馈所述请求内容,并获得客户端IP和端口。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏宁云商集团股份有限公司,未经苏宁云商集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711328802.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:消息发送方法及相关设备
- 下一篇:一种用于医疗设备的远程监控系统