java面试题网

普通会员

160

帖子

12

回复

165

积分

楼主
发表于 2018-05-25 14:14:24 | 查看: 5368| 回复: 2

普通会员

217

帖子

75

回复

160

积分
沙发
发表于 2019-05-05 16:06:28
TCP为何采用三次握手来建立连接,若釆用二次握手可以吗?

三次握手是为了防止已失效的连接请求再次传送到服务器端。 二次握手不可行,因为:如果由于网络不稳定,虽然客户端以前发送的连接请求以到达服务方,但服务方的同意连接的应答未能到达客户端。则客户方要重新发送连接请求,若采用二次握手,服务方收到重传的请求连接后,会以为是新的请求,就会发送同意连接报文,并新开进程提供服务,这样会造成服务方资源的无谓浪费

普通会员

115

帖子

83

回复

167

积分
板凳
发表于 2019-09-27 16:56:42

简述 TCP 的三次握手
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
1).第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,
等待服务器确认; SYN:同步序列编号(Synchronize Sequence Numbers)
2).第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即
SYN+ACK包,此时服务器进入SYN_RECV状态;
3)第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1), 此包发送完毕,客户端
和服务器进入ESTABLISHED状态,完成三次握手。
完成三次握手,客户端与服务器开始传送数据。 

您需要登录后才可以回帖 登录 | 立即注册

java面试题网www.wuliaokankan.cnjava建站系统提供技术支持V2.1 网站地图 © 2016-2018