Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在丢弃输入的网络流量之前,操作系统会存储多长时间?_Linux_Sockets_Networking - Fatal编程技术网

Linux 在丢弃输入的网络流量之前,操作系统会存储多长时间?

Linux 在丢弃输入的网络流量之前,操作系统会存储多长时间?,linux,sockets,networking,Linux,Sockets,Networking,在丢弃输入的网络流量之前,操作系统会存储多长时间 假设我在某个端口上有一个打开的套接字,该端口为输入数据包打开 如果网络上的其他主机向该套接字发送大量数据包,而该套接字没有发出读取该数据的read()调用,会发生什么情况?操作系统将开始以FIFO方式销毁数据,还是停止接收(拒绝)输入数据包 我已经读过操作系统将与套接字相关的通信存储在单独的缓冲区中,即每个(打开的)套接字都有单独的输入/输出缓冲区。当缓冲区已满时,是否会发生上述情况 另外,如果某个主机将数据包发送到关闭的套接字,会发生什么情况?

在丢弃输入的网络流量之前,操作系统会存储多长时间

假设我在某个端口上有一个打开的套接字,该端口为输入数据包打开

如果网络上的其他主机向该套接字发送大量数据包,而该套接字没有发出读取该数据的
read()
调用,会发生什么情况?操作系统将开始以FIFO方式销毁数据,还是停止接收(拒绝)输入数据包

我已经读过操作系统将与套接字相关的通信存储在单独的缓冲区中,即每个(打开的)套接字都有单独的输入/输出缓冲区。当缓冲区已满时,是否会发生上述情况


另外,如果某个主机将数据包发送到关闭的套接字,会发生什么情况?操作系统是否拒绝数据包?或者它们暂时存储在某个缓冲区中?

直到读取数据或关闭本地套接字

在TCP的情况下,这意味着在套接字接收缓冲区已满时向对等方公布零发送窗口。另一方面,到达时出现故障的TCP段可能会被忽略


对于UDP,它意味着丢弃套接字接收缓冲区填满后到达的数据报。

您应该读取TCP/UDP的RFC。为什么要在信息免费提供时在此询问?为什么要求它被无意义地重写?因此,可以肯定的是,在TCP的情况下,数据不会丢失,因为接收方将强制发送方在窗口更新发出绿灯之前不发送更多数据。然而,在UDP的情况下,数据将丢失,对吗?这就是“丢弃数据报”的意思。