【问题标题】:Maximum number of bytes that can be sent on a TCP connectionTCP 连接可以发送的最大字节数
【发布时间】:2011-02-18 06:59:30
【问题描述】:

我最初假设由于 tcp 有一个 32 位的序列号字段,并且在 tcp 连接上发送的每个字节都标有唯一的数字,因此可以在 tcp 连接上发送的最大字节数约为 2^32- 1 或 2^32-2(哪个?)。

但是现在我觉得由于TCP是一个滑动窗口协议,连接过程中序号的回绕应该不会影响通过tcp连接可以发送的最大字节数,只要发生回绕发生旧数据包不再在网络中(它在 2*MSL 之后发送)。

正确答案是什么?

【问题讨论】:

    标签: tcp network-protocols


    【解决方案1】:

    您可以在 TCP 连接上传输的数据量确实没有限制。

    【讨论】:

    • 我想知道运行时间最长的 TCP 连接是什么... :-p
    • 也许你可以提出一个问题
    • 长时间运行的 tcp 连接可能在 gmail 和 yahoo 等大量使用的 smtp 服务器中很常见,因为可以在同一个 tcp 连接上发送多个邮件。我不确定。看到这个问题serverfault.com/questions/140951/…
    • bgp 路由器也在端口 179 上维护半永久的 tcp 连接。这些可能有资格获得运行时间最长的 tcp 连接。
    【解决方案2】:

    通过 TCP 连接可以发送的字节数没有限制。但是,在发送方停止发送、等待确认之前,未确认的未确认字节数是有限制的。

    最初窗口大小限制为 64kB,但通过窗口滑动可以扩展到 1GB。 (来源:Wikipedia)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-23
      • 2011-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-22
      相关资源
      最近更新 更多