您的位置:首页 > 理论基础 > 计算机网络

TCP连接和建立

2015-08-29 00:00 405 查看
摘要: 三次握手
四次挥手

TCP三次握手

第一次握手:客户端向服务器发送→SYN J(调用connect进行主动打开。表示同步,告诉服务器客户将在连接中发送的数据的初始序列号,此时connect阻塞)

第二次握手:服务器向客户端响应一个→SYN K和→ACK J+1,客户端收到后connect返回(调用accept被动打开,告诉客户端服务器将在连接中发送的数据的初始序列号,此时accept阻塞)

第三次握手:客户端向服务器发送→ACK K+1,服务器收到后accept返回。

TCP四次挥手

第一次挥手:某个应用先调用close(主动关闭)。这一端的TCP发送一个→FIN M。

第二次挥手:收到FIN后(被动关闭),响应一个→ACK M+1。

第三次挥手:一段时间后,收到文件结束符的应用进程调用close关闭套接口。导致它的TCP也发送一个→FIN N。

第四次挥手:收到FIN的原发送端TCP进行确认发送一个→ACK N+1。

TCP为何采用三次握手来建立连接,若采用二次握手可以吗,请说明原因?

三次握手是为了防止已失效的连接请求再次传送到服务器端。
二次握手不可行,因为:如果由于网络不稳定,虽然客户端以前发送的连接请求以到达服务方,但服务方的同意连接的应答未能到达客户端。则客户方要重新发送连接请求,若采用二次握手,服务方收到重传的请求连接后,会以为是新的请求,就会发送同意连接报文,并新开进程提供服务,这样会造成服务方资源的无谓浪费。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: