35、Linux 中 TCP 核心处理与分段处理机制解析

Linux 中 TCP 核心处理与分段处理机制解析

1. 套接字绑定与哈希表操作

在将套接字绑定到端口时,会进行一系列的操作。首先,让 sk→prev 指向绑定桶( tcp_bind_hashbucket 对象),该对象对应于绑定哈希冲突列表中的条目。接着,将 tcp_tw_bucket 对象与和 tcp_bind_bucket 对象相关联的套接字链( tb→owners )进行链接。

之后,需要从已建立列表中移除套接字的条目。这需要持有已建立哈希表的头锁,通过访问与套接字对应的 tcp_ehash_bucket 对象来获取该锁,而 tcp_ehash[] 表中的索引存储在套接字的 hashent 字段中。持有头锁后,将套接字从哈希表 tcp_ehash[] 中解除链接,套接字通过 next pprev 字段在已建立的冲突哈希链中进行链接。

下一步是将套接字链接到时间等待哈希桶中。时间等待套接字没有单独的桶,该桶是 tcp_ehash[] 表的一部分, tcp_ehash[] 的下半部分用于时间等待套接字。要访问哈希桶的头部,只需将 tcp_ehash_size 加到已建立哈希桶的头部即可,套接字通过 next pp

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值