Martin Asked: 2010-01-21 03:19:09 +0800 CST2010-01-21 03:19:09 +0800 CST 2010-01-21 03:19:09 +0800 CST TCP 序列计数器溢出 772 我从课程中得到以下问题: “假设通过 Internet 的 TCP 连接具有 300Mbps 的可用带宽。假设某些数据包以非常高的延迟传输。在哪个延迟时间可能会出现严重问题?这是一个现实的问题吗?” 我计算出在约 2 分钟的延迟时间,序列计数器内将出现溢出(如果您假设它以 0 开始)。根据 RFC,序列计数器将溢出到零。我在 RFC 中没有发现“如果发生这种情况该怎么办”,但也许我忽略了它。 我的问题是:会发生什么?这仅仅是 TCP 的限制吗?是否有解决方法(使用更大的序列计数器除外)? tcp overflow 2 个回答 Voted Andrew McGregor 2010-01-21T03:34:36+08:002010-01-21T03:34:36+08:00 好吧,相关的 RFC 会告诉您如何正确执行此操作(并实际上解决了问题)。请参阅http://www.apps.ietf.org/rfc/rfc1323.html第 4 节。 Wim 2010-01-21T03:24:38+08:002010-01-21T03:24:38+08:00 我不认为溢出本身是一个问题,只有当您收到一个序列号位于当前接收窗口内但实际上来自(倍数)4 GiB 之前的数据包时,您才会遇到问题数据流。为此,根据您的计算,数据包必须延迟两分钟(听起来很合理)。在实践中,我认为这种情况不会经常发生,因为在所有中间系统中通常没有那么多缓冲空间(它也需要大约 4 GiB)。
好吧,相关的 RFC 会告诉您如何正确执行此操作(并实际上解决了问题)。请参阅http://www.apps.ietf.org/rfc/rfc1323.html第 4 节。
我不认为溢出本身是一个问题,只有当您收到一个序列号位于当前接收窗口内但实际上来自(倍数)4 GiB 之前的数据包时,您才会遇到问题数据流。为此,根据您的计算,数据包必须延迟两分钟(听起来很合理)。在实践中,我认为这种情况不会经常发生,因为在所有中间系统中通常没有那么多缓冲空间(它也需要大约 4 GiB)。