码迷,mamicode.com
首页 > 其他好文 > 详细

有关TCP方式连接建立时三次握手,为什么不是2次 或4次 5次

时间:2016-07-24 07:08:24      阅读:1699      评论:0      收藏:0      [点我收藏+]

标签:服务器   客户端   通信   

首先简述一下 TPC连接建立的过程中,“三次握手” 的过程:


第一次:客户端像服务器端发送连接请求

第二次:服务器收到请求后,向客户端发送回应和连接请求

第三次:客户端收到后,对服务器的请求发送应答

技术分享





其中总共发送了3条消息,因此该过程也称作“三次握手”

而这其中 3次握手 也是建立连接过程中需要发送的最少的消息数目


技术分享


这样来看:

1:

一次握手 仅仅由客户端发送一次请求,肯定是无法建立可靠的TCP连接的



2:

两次握手:服务器端 在发出消息后,并不知道自己能否发送,以及对面的客户端能否接收。也就是说,如果在两次握手的状态下建立连接,很可能建立的连接是从客户端到服务器端单向的,也就是客户端一直发消息,服务器端一直收消息。


此外,两次握手建立的连接,服务器端如果向客户端发消息,不能保证能正常发出,也不能保证客户端能正常收到。所以二次握手可能会造成这两种情况:(C表示客户端,S表示服务器端)

    1、建立连接的过程中,C向S发送请求,但由于某些原因,S并没有收到请求,于是C又发了一条请        求。

       S向C回应并发出请求。这时候认为连接建立,开始通信,结束后断开连接。这时,一开始那条

       S没有收的请求突然传到了S端,于是S对这条请求回应后,由于假定“二次握手”,这时候

       S认为自己和C建立连接了,但C不认为自己和S建立连接,这就导致已经失效的请求重新建立了错误的连接



    2、如果服务器发出并且客户端收不到消息,服务器会重复发送消息直到得到回应,浪费很多资源


3:

4、5、6、7次握手:由于3次握手已经能确保建立可靠的连接,所以不需要多次握手




有关TCP方式连接建立时三次握手,为什么不是2次 或4次 5次

标签:服务器   客户端   通信   

原文地址:http://zhweizhi.blog.51cto.com/10800691/1829208

(1)
(2)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!