首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >linux中TCP/IP缓冲的相关问题

linux中TCP/IP缓冲的相关问题
EN

Unix & Linux用户
提问于 2020-02-16 16:32:01
回答 1查看 1K关注 0票数 0

我一直在非常努力地寻找TCP/IP中用作linux包传输的一部分的缓冲区。我读得越多越困惑。下面是我的问题。有人能帮我弄清楚吗?

1)驱动队列是否与TCP的接收和发送缓冲区相同,它是作为带指向skbs的描述符的环形缓冲区实现的?如果不是,TCP的接收/发送缓冲区何时出现在数据包传输中?

2) TCP连接待办事项队列与接收/接收队列是否完全不同?在分组旅行中,积压队列适合哪里?据我所知,待办事项队列用于挂起的连接。

3)对于从TCP接受/发送缓冲区传输数据的每个套接字是否有单独的缓冲区?

4)传入连接的流量是否正确?网卡->内核环缓冲区(Skb) -> IP栈-> TCP接受/接收缓冲区-> TCP层->套接字缓冲区用于连接。

EN

回答 1

Unix & Linux用户

发布于 2020-02-17 08:39:15

在一般情况下,网络驱动程序有自己的队列,在linux中,数据包被存储,sk_buff上的队列也提到过。这是内核上数据包处理方面最重要的结构。此缓冲区,即sk_buff,包含指向当前TCP、IPv6 4/IPv6 6等的指针。报头。

TCP待办事项是由struct sock处理的,用于处理将要重新组装的数据包的TCP状态和缓冲。

一般来说,我会说最重要的结构是sk_buf和袜子。除了内核源代码之外,请查看这些链接,这些链接也可能对您有所帮助。

https://ops.tips/blog/how-linux-tcp-introspection/

http://veithen.io/2014/01/01/how-tcp-backlog-works-in-linux.html

希望它能帮上忙

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/567902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档