TCP
tcp三次握手
三次握手的流程如下:
- 首先是客户端发起请求,SYN=1,seq=J;
- 服务端接收到请求后,从SYN=1识别出是客户端请求建立新的连接,同意它建立连接的请求,SYN=1,ack=J+1,seq=K;
- 客户端收到服务端的应答后,回应服务端已经收到建立连接的请求,ACK=1,ack=k+1,seq=J+1;
tcp四次挥手
TCP是支持半关闭的:
- 首先,如果Client没有数据再发送给服务端,那么客户端发起关闭连接的请求;
- 服务端收到请求后,向客户端发送确认关闭的应答;
- 服务端这时可能仍然继续向客户端发送数据,待服务端没有数据发送时,服务端发起关闭连接的请求;
- 客户端收到关闭连接的请求后,向服务端回复应答报文;
为什么建立连接时要三次握手
服务端在收到客户端建立连接的请求后,其实是做了两件事情:1)确认连接,ack=J+1;2)发起建立连接的请求,SYN=1,seq=K。所以是因为在建立连接环节,服务端是将这两件事情合二为一了。在关闭连接时,服务端也可以同时确认客户端的关闭请求+发起关闭请求。UDP
参考文献
[1]https://yq.aliyun.com/articles/95710?spm=ata.13261165.0.0.21a44d2f4qvs8G