为什么TCP协议建立连接是三次握手?
为什么TCP协议建立连接是三次握手?为什么不是少于3次,比如1次两次?又为什么不是大于3次,比如4次,5次或者更多?
你白兔爸爸
12 years, 4 months ago
Answers
+_+ 三次握手是有原因的,因为TCP是有连接确认的协议,需要拿到对方的syn号,以便进行初始化和数据的发送,请参考《TCP/IP 卷一》
(1)客户发送一个SYN段指明客户打算连接的服务器的端口,以及初始序号(ISN),这个SYN段为报文段1;
(2)服务器发回包含服务器的初始序号的SYN作为应答。同时,将确认序号设置为客户的ISN加1以对客户的SYN报文段进行确认,即ACK=对方的SYN+1。
(3)客户必须将确认序号设置为服务器的ISN加1以对服务器的SYN报文段进行确认,把服务端的SYN+1以确认收到对方请求。
这三个报文段完成连接的建立,所以TCP协议建立连接是三次握手,并且获取了双方的开始ISN序列号,然后从这个序列后继续往后开始进行通讯。
至于多了就是完全没有必要了,不像是结束的时候可能需要四次才能完成对应的TCP结束过程。
怒吼吧蛋蛋
answered 12 years, 4 months ago