gpt4 book ai didi

networking - TCP 3 次握手 - 多个 SYN

转载 作者:可可西里 更新时间:2023-11-01 02:45:11 25 4
gpt4 key购买 nike

假设主机 H1 正在寻找与 H2 建立 TCP 连接并发送 SYN 作为 3 次握手的第一步。然后 H1 没有收到超时消息,而是向 H2 发送第二个 SYN。

然后,H1 会收到这两个 SYN 的回复。在这种情况下,H1 做了什么——这两个中的哪一个作为握手的第三步确认,是来自 H2 的第一个 SYN+ACK 还是第二个?两个SYN+ACK有2个不同的H2 Initial Sequence Numbers (ISNs)。它们也有不同的 ACK——H1 在其两个 SYN 中发送了 2 个不同的 ISN。

换个角度——在这样的情况下,H2是做什么的呢?所以 - H2 收到一个 SYN 并发送 SYN+ACK 作为响应。过了一会儿,H2 又收到了一个来自 H1 的 SYN+ACK。 H2 在这种情况下做了什么:

  • 也向第二个 SYN 发送 SYN+ACK?在这种情况下,H2 如何知道哪个 SYN(H1 的 ISN)是用于此连接的?

  • 忽略第二个 SYN。但随后,H2 也超时了——自从它发送了之前的 SYN+ACK 后,它没有收到任何回复。

这在 TCP 中是如何处理的?

TIA

注意:我看过What if a TCP handshake segment is lost? , TCP: SYN request receives SYN response instead of SYN-ACK , tcpip 3-way handshakeTCP handshake reliability以及其他一些有用的讨论。

//-------------------------------------------- ---

编辑:

答案似乎在于 RST 标志——每当对序列#s 有疑问时重置。参见 RFC793 的图 9 .

但是,根据下面的评论,Q 仍然成立:H1 何时(图 9 中的“TCP A”)重试与其新 ISN 的连接——多长时间后以及在什么情况下?

最佳答案

图 9 中的情况发生在发送方已经放弃该连接后来自先前连接尝试的 SYN 到达时。主机 B 为这个额外的 SYN 发送了一个 ACK​​,主机 A 看到这个 ACK​​ 的序列号是错误的。然后主机 A 通过发送 RST 中止连接。

关于networking - TCP 3 次握手 - 多个 SYN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35548419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com