gpt4 book ai didi

.net - TCP是否使用自己的线程?

转载 作者:可可西里 更新时间:2023-11-01 02:33:37 26 4
gpt4 key购买 nike

TCP 在收到网络数据包时发送 ACK。它还会在发生超时时重新发送数据包。现在我的问题是:TCP 在哪个线程中执行此操作?是否有一个 secret 的 TCP 后台线程监听接收到的数据包和超时并触发发送 ACK 并重新发送?还是仅当我在套接字上调用 receive 时才同步发生?或者可能有一个来自操作系统的自己的 TCP 守护进程来处理这个?

虽然我的问题涉及 .net,但我认为它通常适用于任何语言的任何 TCP 实现。

最佳答案

TCP 和套接字通常不依赖于语言,而是依赖于系统及其架构。

解决您的问题:

TCP 在哪个线程中执行此操作?当然,不在任何应用程序线程上。通常,您无法真正定义它,因为在内核级别可能没有“线程”这样的东西。

是否有一个 secret 的 TCP 后台线程监听接收到的数据包和超时并触发发送 ACK 和重发?如果您认为操作系统是“ secret 后台线程”,那么……是的。

或者这是否只在我调用时同步发生,例如,在套接字上接收?当您调用 receive 时,系统会检查其缓冲区中是否有任何传入数据包。但话又说回来,这可能或多或少取决于系统。

或者操作系统是否有一个自己的 TCP 守护进程来处理这个?大致如此。

有关更多信息,您可能需要查看以下链接: http://en.wikipedia.org/wiki/Protocol_stack http://www.ece.virginia.edu/cheetah/documents/papers/TCPlinux.pdf

附言。我无法快速找到有关 Windows TCP/IP 实现的详细信息,但由于 winsocks 有点基于 BSD 套接字,我认为它是相似的。

关于.net - TCP是否使用自己的线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28650856/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com