1
Q
TCP四次握手
A
回答
4
鉴于SYN和ACK的语义,应该可以在不同的数据包中发送SYN + ACK,并且延迟握手。例如。客户端发送一个SYN,服务器回复一个ACK来确认客户端是否希望新建一个连接,但是它没有给出希望。稍后,服务器发送SYN并从客户端获取匹配的ACK,并建立连接。但是我怀疑有人以这种方式建立连接,也许有些操作系统会嘲讽它。
但是,还有一种四路握手的情况,但是具有不同的数据包排序。如果双方都试图同时与另一方建立连接,例如可能会发生这种情况。都向对方发送一个SYN,并获得一个ACK。它在RFC 793(TCP)部分3.4中进行了描述。但我怀疑你会看到这样的握手,因为它不适合典型的客户端 - 服务器场景,其中一端在等待连接,另一端在连接。
编辑:您设想的握手存在,它被称为“分手握手”。见http://hackmageddon.com/2011/04/17/tcp-split-handshake-attack-explained/。而且就像我预料的那样,它没有得到普遍的支持。
相关问题
- 1. TCP三次握手
- 2. TCP三次握手问题
- 3. TCP三次握手失败
- 4. Nanomsg TCP握手
- 5. TCP三次握手 - 捎带应答
- 6. TCP握手延迟
- 7. TCP握手过程
- 8. TCP握手失败
- 9. HTTP响应的TCP握手?
- 10. Windows TCP握手问题
- 11. TCP握手没有检索
- 12. 双向握手和三次握手
- 13. tcpip三次握手
- 14. 三次握手的TCP recive窗口大小
- 15. 如何识别TCP三次握手中的初始包?
- 16. Linux C原始套接字TCP握手
- 17. 用PHP的fsockopen()中断TCP握手?
- 18. 使用SOCK_RAW套接字的TCP握手
- 19. 欺骗TCP服务器握手失败
- 20. 使用Ada的TCP/IP握手
- 21. accept()方法和tcp/ip握手
- 22. 两个一般协议和TCP握手
- 23. tcp:在哪里实施3way握手
- 24. 握手后的TCP数据包
- 25. 实现三次握手
- 26. 初次握手后SSL协议会请求握手吗?
- 27. 是否可以使用nping手动执行tcp 3路握手?
- 28. 为什么TCP的三次握手在碰撞时碰到序列号?
- 29. 三次握手的必要性
- 30. openWrt上的freeradius 4次握手失败?
“鉴于语义...它应该是可能的”我不确定你是否证明了基于你的RFC知识或只是假设它的观点。 – SerG
ACK的语义只是为了确认接收到数据,SYN的语义只是要求连接。两个标志彼此正交,并且在一起使用时没有特殊含义,类似于FIN和ACK,所以它们应该一起发送还是分开发送都不重要。 –