use*_*032 0 networking tcp protocols handshake
我理解在三向握手中,有时接收端会在建立连接(piggybacking)时发送一个SYNACK数据包,但是它什么时候发送一个SYN然后一个ACK数据包?
例如:
->同步
<-SYN_ACK
->确认
相对:
->同步
<-同步
->SYN_ACK
谢谢!
不,不会 - 这就是原因
SYN 通常由“客户端”(例如您的浏览器)在它想要打开到服务器(例如您的 Web 服务器)的 TCP 连接时发送。服务器无法事先“知道”哪个客户端想要打开连接(并因此发送 SYN)到它。所以它不能发送未经请求的 SYN。
SYN 和 ACK 是标志,因此来自服务器的 SYN-ACK 是对客户端 SYN(它是自己的 SYN)的 ACK。从技术上讲,它可以单独发送它们,但是,单独发送 SYN 和 ACK 将涉及额外的半往返。'因为那将是四路握手 ((c)SYN -> , <- SYN(s), <-ACK(s), (c)ACK ->) 不会比三路更可靠握手优惠。因此,这样做是没有意义的。
话虽如此,理论上您可以设计一个带有 4 次握手的协议,但 TCP 并非如此设计。
希望有帮助。
| 归档时间: |
|
| 查看次数: |
1313 次 |
| 最近记录: |