为什么需要握三次手,两次或者四次可以吗??

为什么两次不可以?因为计算机和服务器只做两次握手的话只是单向通信,TCP是全双工通信的必须保证可靠性。

1.二次握手失败,C端会重复发送SYN报文,等待对端发送确认报文,S端会保存tcp连接的所有资源,
大量的这种情况会导致S资源耗尽。
2.二次握手成功,S收不到ACK会重复发送SYN+ACK报文。
3.二次握手完以后,双方以为连接建立成功,即可开始通信。假如此时连接并没有真的建立成功,
S端开始发送消息,会造成网络拥堵发生。

为什么四次不可以?四次其实原则上来说是可以的,就是把第二次的ACK和SYN分两次发送。在理论上是完全可以行得通的,但是TCP本着节约网络网络资源的前提。

        • 三次握手之后计算机如果继续发送SYN报文,服务端会怎么样???其时这是徒劳的。第三次完成以后链接已经建立,后面无论多少次都是徒劳。

        如果TCP同时建立连接会怎么样???

此时只会建立一条全双工的TCP链接,不是两条。

        • 双方没有CS之分,两端都是同时承担两个角色,客户端和服务器。

猜你喜欢

转载自blog.csdn.net/feng8403000/article/details/114956165