全球应用加速 调用 TOA 的方式 - 操作指南
VIEW CONTENTS
摘要: Linux内核在监听套接字收到三次握手的ACK包之后,会从SYN_REVC状态进入到TCP_ESTABLISHED状态。此时内核会调用tcp_v4_syn_recv_sock函数。Hook函数tcp_
点击领取2000元阿里云代金券,付款抵现金用,云服务器69元/年限时抢>>>    点击咨询成为阿里云VIP客户享永久折扣>>>
点击领取2860元腾讯云代金券,付款抵现金用云服务器88元/年限时抢>>>    点击成为腾讯云VIP客户享永久折扣优惠>>>
点击进入华为云最新优惠活动现场>>>    点击成为华为云VIP客户享永久折扣优惠>>>

Linux 内核在监听套接字收到三次握手的 ACK 包之后,会从 SYN_REVC 状态进入到 TCP_ESTABLISHED 状态。此时内核会调用 tcp_v4_syn_recv_sock 函数。
Hook 函数 tcp_v4_syn_recv_sock_toa 首先调用原有的 tcp_v4_syn_recv_sock 函数,然后调用 get_toa_data 函数从 TCP OPTION 中提取出 TOA OPTION,并存储在 sk_user_data 字段中。

上述调用完成后会调用 inet_getname_toa hook inet_getname,在获取源 IP 地址和端口时,首先调用原来的 inet_getname,然后判断 sk_user_data 是否为空,如果有数据从其中提取真实的 IP 和 port,替换 inet_getname 的返回。

服务端程序在用户态调用 getpeername,返回的 IP 和 port 即为客户端原始 IP 和 port。


路过

雷人

握手

鲜花

鸡蛋

相关阅读

2021-10-11 12:03| 发布者: xtyly| 查看: 69| 评论: 0



在线客服(工作时间:9:00-22:00)
400-600-6565

内容导航

微信客服

Copyright   ©2015-2019  云服务器社区  Powered by©Discuz!  技术支持:尊托网络     ( 湘ICP备15009499号-1 )