三次握手
- 服务器必须准备好接受外来的连接。通常通过socket, bind, listen三个函数完成,通常称为被动打开
- 客户端通过调用connect发起主动打开,导致客户TCP发送一个SYN(同步)分节,告诉服务器客户端将在(待建立)连接中发送数据的初始序列号
- 服务器必须确认(ACK)客户端的SYN, 同时自己发送一个SYN分节, 含有服务器将在同一连接中发送数据的初始序列号。服务器在单个分节中发送SYN和对客户SYN的ACK确认
- 客户端必须确认服务器的ACK
TCP终止
- 客户端应用进程调用close, 我们称为主动关闭, 该客户端TCP发送一个FIN分节,表示数据发送完毕
- 服务器接收到这个FIN对服务器端执行被动关闭, 这个FIN由TCP确认。接收也作为一个文件结束符传递给接收端应用程序, 因为FIN接收意味着接收端应用进程在相应连接上无额外数据可接收
- 一段时间后,服务器端接收到这个文件结束符的应用进程将调用close关闭套字连接,导致服务器端的TCP发送一个FIN分节
- 客户端接收这个最终FIN的原发送端TCP(即主动关闭的哪一端)确认FIN
posted @
2020-06-02 10:56
phper-liunian
阅读(
163)
评论()
编辑
收藏
举报