TCP receive_queue prequeue backlog
来源:互联网 发布:知乎 杨洋 油腻 编辑:程序博客网 时间:2024/04/30 00:16
接收到数据包时struct sock *sk 可能被进程下上文或者中断上下文占用:
1、如果被进程上下文使占用时,软中断暂时拿不到锁,所以数据只能暂存在后备队列中(backlog),当进程上下文逻辑处理完成后会回调tcp_v4_do_rcv处理backlog队列作为补偿,具体看tcp_sendmsg 函数 release_sock的实现。
2、如果sk被软中断占用时,那么数据可能被放置到receive_queue或者prequeue,数据优先放置到prequeue中,如果prequeue满了则会放置到receive_queue中,理论上这里有一个队列就行了,但是TCP协议栈为什么要设计两个呢?其实是为了快点结束软中断数据处理流程,软中断处理函数中禁止了进程抢占和其他软中断发生,效率应该是很低下的,如果数据被放置到prequeue中,那么软中断流程很快就结束了,如果放置到receive_queue那么会有很复杂的逻辑需要处理。receive_queue队列的处理在软中断中,prequeue队列的处理则是在进程上下文中。
0 0
- TCP receive_queue prequeue backlog
- TCP offload engine(TCP减负引擎网卡), TCP backlog/prequeue buffer (TCP后备预备队列)
- prequeue和backlog和receive
- TCP的prequeue分析
- 5.6 TCP prequeue
- tcp backlog
- 关于tcp的prequeue的一些说明
- 再理解tcp backlog
- TCP之listen&backlog
- TCP SOCKET中backlog
- TCP 的backlog详解
- tcp之backlog参数
- 评价linux协议栈tcp实现中的prequeue
- TCP listen() Backlog 参数详解
- TCP listen() Backlog 参数详解
- TCP/IP协议中backlog
- 理解TCP backlog(已迁移)
- backlog
- Python3 下找不到urllib2的问题
- logback logback.xml常用配置详解(三) <filter>
- 华为上机面试题总结
- 【凯子哥带你夯实应用层】还在用XListView?试试更漂亮的AutoLoadListView吧!
- 日经春秋 20150331
- TCP receive_queue prequeue backlog
- LINUX网络编程的读书笔记
- 黑马程序员——集合类(List、Set)
- Java 2实用教程 学习之如何使用对象
- 正则表达式语法和验证
- Add Binary
- 中国崛起让西方乱了阵脚
- 从实例理解Struts2
- 日经社説 20150331 人口減見据えた国土計画に