完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1、Linux内核网络之传输层接收消息简析 在传输层发送消息时,TCP 发送出去消息后,会跟踪这些数据包,直到得到对方的确认为止。对于接收方来讲,当收到一个报文段时,其会根据情况把这些数据包添加到接收队列或者 prequeue 队列或者后备队列中。 在TCP传输控制块中存在三个队列:接收队列、prequeue队列和后备队列。 当系统启动tcp_low_latency时,TCP 传输控制块在软中断中接收并处理tcp段,然后将其插入到接收队列中。等待用户进程从接收队列中获取TCP段后复制到用户空间,然后删除并释放该段。 当不启用 tcp_low_latency 时能够提高TCP/IP协议栈的吞吐量以及反应速度(因为启用时在软中断中处理tcp段会导致软中断执行过长),TCP 传输控制块在软中断中将 TCP 段添加到 prequeue 队列中,然后立即处理 prequeue 中的段,若用户正在读取数据,则可以直接复制数据到用户缓冲区中,否则添加到接收队列中,然后从软中断中返回。在多数情况下有机会处理 prequeue 队列中的段,但只有当用户进程在进行 recv 类系统调用返回前,才在软中断中复制数据到用户空间。 当用户进程因操作传输控制块将其锁定时,无论是否启用 tcp_low_latency , 都会将未处理的 TCP 段添加到后备队列中,一旦用户解锁后,就会立即处理后备队列,将 TCP 段处理后添加到接收队列中。 TCP 的接收队列为 sock 结构中的 sk_receive_queue。通常情况下,接收的TCP 段都会在缓存在这里,等待用户进程主动读取。
Linux内核网络之传输层接收消息.pdf
(1.96 MB, 下载次数: 1
)
原作者:Linux码农 |
|
相关推荐
|
|
787 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程介绍之烧写所需镜像
888 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程之烧写方法
608 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-内核编译之初次编译
905 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-内核源代码的目录结构和文件说明
821 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 21:35 , Processed in 0.634497 second(s), Total 73, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号