asa*_*blo 6 networking tcp linux-kernel sliding-window
这是我对 TCP/IP 中传入数据流的理解
我有点困惑滑动窗口位于哪里,或者它与套接字缓冲区相同
小智 10
Linux 并不将 TCP 的滑动窗口作为单独的缓冲区来处理,而是将其作为指示已接收/读取的数量的多个索引来处理。Linux内核数据包处理过程可以用多种方式描述,并且随着深入,可以分为几个小部分,但总体流程如下:
struct tcp_sock
成员u32 rcv_wnd
,然后将其用作tp->rcvq_space.space
窗口中留下的每个连接空间。tcp_recvmsg()
这里要记住的重要一点是,副本是性能方面最糟糕的事情。因此,内核将始终(除非绝对必要)避免复制并使用指针。