河南中国建设银行官网站,青岛开发区人才网,微信小程序后端开发流程,简单的销售网站怎么做TCP 三次握手建立连接 TCP 建立连接全过程解释
客户端发送 SYN 给服务器#xff0c;说明客户端请求建立连接#xff1b;服务端收到客户端发的 SYN#xff0c;并回复 SYNACK 给客户端#xff08;同意建立连接#xff09;#xff1b;客户端收到服务端的 SYNACK 后#xf… TCP 三次握手建立连接 TCP 建立连接全过程解释
客户端发送 SYN 给服务器说明客户端请求建立连接服务端收到客户端发的 SYN并回复 SYNACK 给客户端同意建立连接客户端收到服务端的 SYNACK 后回复 ACK 给服务端表示客户端收到了服务端发的同意报文服务端收到客户端的 ACK连接已建立可以数据传输。TCP 四次挥手释放连接: TCP 为什么要进行四次挥手
1:TCP 为什么要进行四次挥手 / 为什么 TCP 建立连接需要三次而释放连接则需要四次
答案因为 TCP 是全双工模式客户端请求关闭连接后客户端向服务端的连接关闭一二次挥手服务端继续传输之前没传完的数据给客户端数据传输服务端向客户端的连接关闭三四次挥手。所以 TCP 释放连接时服务器的 ACK 和 FIN 是分开发送的中间隔着数据传输而 TCP 建立连接时服务器的 ACK 和 SYN 是一起发送的第二次握手所以 TCP 建立连接需要三次而释放连接则需要四次。
2为什么 TCP 连接时可以 ACK 和 SYN 一起发送而释放时则 ACK 和 FIN 分开发送呢ACK 和 FIN 分开是指第二次和第三次挥手
答案:因为客户端请求释放时服务器可能还有数据需要传输给客户端因此服务端要先响应客户端 FIN 请求服务端发送 ACK然后数据传输传输完成后服务端再提出 FIN 请求服务端发送 FIN而连接时则没有中间的数据传输因此连接时可以 ACK 和 SYN 一起发送。
3:为什么客户端释放最后需要 TIME-WAIT 等待 2MSL 呢
答案:
1:为了保证客户端发送的最后一个 ACK 报文能够到达服务端。若未成功到达则服务端超时重传 FINACK 报文段客户端再重传 ACK并重新计时。
2:防止已失效的连接请求报文段出现在本连接中。TIME-WAIT 持续 2MSL 可使本连接持续的时间内所产生的所有报文段都从网络中消失这样可使下次连接中不会出现旧的连接报文段。
socket编程流程: