Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/networking/3.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
Networking TCP连接理论:序列号的最小速率_Networking_Tcp_Network Protocols - Fatal编程技术网

Networking TCP连接理论:序列号的最小速率

Networking TCP连接理论:序列号的最小速率,networking,tcp,network-protocols,Networking,Tcp,Network Protocols,(在这里问这个问题是因为计算机网络标签只有50个追随者,而没有TCP标签) 在我国大学研究生入学的国家一级考试中,有人问了以下问题: 打开TCP连接时,将导出初始序列号 使用一个即使在主机停机时仍保持运行的时间(ToD)时钟。 ToD时钟计数器的低阶32位用于初始 序列号。时钟计数器每毫秒递增一次 最大数据包生存期为64秒 “下面给出的哪个选项最接近最低允许费率 用于连接数据包的序列号可以增加多少 (A) 0.015/s (B) 0.064/s (C) 0.135/s (D) 0.327/s"

(在这里问这个问题是因为计算机网络标签只有50个追随者,而没有TCP标签)

在我国大学研究生入学的国家一级考试中,有人问了以下问题:

打开TCP连接时,将导出初始序列号 使用一个即使在主机停机时仍保持运行的时间(ToD)时钟。 ToD时钟计数器的低阶32位用于初始 序列号。时钟计数器每毫秒递增一次 最大数据包生存期为64秒

“下面给出的哪个选项最接近最低允许费率 用于连接数据包的序列号可以增加多少

 (A) 0.015/s (B) 0.064/s (C) 0.135/s (D) 0.327/s"
答案显然是(B)0.064/s

  • 通常,TCP最大连接速度由数据包生存期决定。如果序列号使用32位,则由于环绕,在2^32次计数后,这些数字将重复
  • 如果发送一个带有数字X的数据包,那么在发送2^32字节后,数字X将被重新分配给其他数据包。当编号为X的第二个数据包进入连接时,第一个数据包不应在网络中(以避免重复)。因此,序列号在数据包生存期之前不应重复
这决定了最高利率

然而,正如问题中所问,我们需要找到最低利率

(顺便说一句,即使序列号每64秒更改一次(64秒更改1个序列号),那么1秒中的序列值数=1/64=0.015…这是选项A,但显然这也不是正确答案。)

我的问题是:

  • 在一般情况下,或在这个特定问题上,什么因素决定了最低利率
  • 为什么是0.064/s,如果序列号的变化速度慢于此,会发生什么情况?如何解决这个问题以达到0.064/s
  • 我知道这更多的是一个理论问题,但它确实困扰了我很长时间。。
    非常感谢您的帮助。(包括证明这个问题和/或答案是错误的。这个问题值得思考的唯一原因是,它是在一次重要且高度重视的全国性考试中提出的。)

    这是我遇到的最棘手的问题之一。 在我看来: 首先,我们应该了解问题是询问RISN(随机初始序列号)的递增速率还是每个字节的序列号(注意:TCP是字节流协议)。我想他们是在问每个字节序列号的递增率

    如我们所知,要对同一连接再次使用相同的序列号: 环绕时间>生命时间。或最大数量/带宽>寿命

    从上面的公式中,我们可以说带宽是使用序列号的最大速率。类似地,我们可以说: 无可用/可用带宽>生存期的数量

    当我们被间接询问此可用\u带宽时,即他们只询问最小可能可用\u带宽:

    可用带宽<可用数量/寿命(我们知道寿命是恒定的)

    可用带宽与可用数量成比例

    因此,可用的数量的最小可能值为1,最大可能值为2^32

    如果他们询问最大允许速率,则意味着所有序列号应在64秒内消耗,这样我们可以获得最大速率,即带宽。因此,ans将为2^32/64(即64Mbps),但是

    他们询问了最小允许速率,即64秒内仅消耗1个序列号。所以ans应该是0.015/秒。这就是我对这个问题的看法


    快乐学习:)

    请不要混淆带宽和吞吐量。带宽在接口上是固定的,它总是大于传输协议的吞吐量,因为数据链路、网络和传输协议的开销必须从带宽中减去,才能达到理想的吞吐量。例如,100Base TX(100 Mbps以太网)的带宽始终为100 Mbps,但吞吐量必须减去以太网前导码、SoF、报头、FCS和包间间隙、IP报头和TCP报头,因此您的数据吞吐量小于带宽。。我已相应地更新了Ans。谢谢这使ans更加清晰。。