第2章 传输层: TCP和UDP
三次握手
- 服务器准备接受外来连接. 准备工作通过调用socket(), bind()和listen()函数来完成.
- 客户端通过调用connect()主动连接服务器. 这引起客户端发送一个SYN分节(表示同步). 它告诉服务器将要发送的数据的初始序列号.
- 服务器确认客户的SYN, 同时自己也发送一个SYN, 它含有服务器将在同一连接中发送的数据的初始序列号.
- 客户端确认服务器的SYN.
Figure 1: 三次握手
四次挥手
- 某个应用进程首先调用close()主动关闭. 发送FIN.
- 接收到FIN的一端执行被动关闭.
- 一段时间后, 接收到文件结束符的应用进程调用close()关闭它的套接口. 发送FIN.
- 接收到这个FIN的原发送方对它进行确认.
每个方向都需要有一个FIN和一个ACK, 所以需要四次.
Figure 2: 四次挥手
Generated by Emacs 25.x(Org mode 8.x)
Copyright © 2014 - Pinvon - Powered by EGO