【问题标题】:TCP packet sequence numberTCP数据包序号
【发布时间】:2013-12-08 11:01:52
【问题描述】:

这个问题正在测试中,我不确定答案。

TCP 数据包正在从客户端发送到服务器。 MMS 等于 1460 字节,每个 TCP 数据包都以最大容量发送。在 TCP 标头中的序列号字段环绕之前,可以发送多少个 TCP 数据包?

在 1 Mbit/s 链接上这需要多少秒?

在 1Gbit/s 链路上这需要多长时间(以秒为单位)?

是否有某种公式可以解决这个问题?

谢谢!

【问题讨论】:

  • 你怎么看?请注意,除非您打算编写代码并询问与此代码相关的事情,否则此类问题对于 Stack Overflow 来说是题外话。
  • 另外,ACK 和延迟可能是其中的因素。
  • 我很抱歉。在哪里发布它会更好。我认为我们在这个例子中忽略了 ACK 和延迟

标签: tcp


【解决方案1】:

每个 TCP 段包含 1460 字节,并且 TCP 标头中的序列号是 4 字节=32 位,因此需要发送 2^32 字节(因为序列号测量字节而不是位)才能将序列号字段包装周围。

为了计算你需要考虑的延迟:

  • 传输时间 - 将数据包的位推送到链路上所需的时间。
  • 传播时间 - 信号到达目的地的时间。
  • 处理延迟 - 路由器处理数据包标头所用的时间。
  • 排队延迟 - 数据包在路由队列中花费的时间。

在您的问题中,传输时间为 1 Mbit/s 和 1Gbit/s,我假设其他延迟为 0;所以发送 2^32 字节= 8*2^32 位所需的时间:

1 Mbit/s 链路: 8*2^32 / 10^6 = 34359 秒

1Gbit/s 链路: 8*2^32 / 10^9 = 34 秒

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-14
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    • 2023-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多