【问题标题】:What will happen if the socket buffer size is not enough如果套接字缓冲区大小不够会发生什么
【发布时间】:2020-04-04 18:39:18
【问题描述】:

我知道每个套接字都有一个缓冲区来读取或写入数据。例如,在 Linux 服务器上,我们可以使用命令 cat /proc/sys/net/ipv4/tcp_rmemcat /proc/sys/net/ipv4/tcp_wmem 检查缓冲区大小。

据我了解,TCP协议的一些算法,比如滑动窗口,需要用到socket的缓冲区。

如果我是对的,我想知道如果套接字缓冲区的大小不够会发生什么,例如,如果一个巨大的数据包来了怎么办。是否有任何其他可以使用的缓冲区(操作系统级别或网络接口卡/硬件级别)?如果不是,是否意味着必须放弃一些数据?

【问题讨论】:

    标签: sockets networking tcp buffer


    【解决方案1】:

    如果缓冲区空间不足,数据将被丢弃。在 TCP 的情况下,这将导致对等方再次发送数据,因为它们没有被确认。在 UDP 的情况下,数据只会丢失。 TCP 还将通告其接收窗口,以便对等方发送数据的速度不会超过处理速度(即从缓冲区中取出)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多