为什么两次不可以?因为计算机和服务器只做两次握手的话只是单向通信,TCP是全双工通信的必须保证可靠性。
1.二次握手失败,C端会重复发送SYN报文,等待对端发送确认报文,S端会保存tcp连接的所有资源, 大量的这种情况会导致S资源耗尽。 2.二次握手成功,S收不到ACK会重复发送SYN ACK报文。 3.二次握手完以后,双方以为连接建立成功,即可开始通信。假如此时连接并没有真的建立成功, S端开始发送消息,会造成网络拥堵发生。
为什么四次不可以?四次其实原则上来说是可以的,就是把第二次的ACK和SYN分两次发送。在理论上是完全可以行得通的,但是TCP本着节约网络网络资源的前提。
• 三次握手之后计算机如果继续发送SYN报文,服务端会怎么样???其时这是徒劳的。第三次完成以后链接已经建立,后面无论多少次都是徒劳。
如果TCP同时建立连接会怎么样???
此时只会建立一条全双工的TCP链接,不是两条。
• 双方没有CS之分,两端都是同时承担两个角色,客户端和服务器。