1 TCP连接管理:建立
- TCP sender和receiver在传输数据前需要建立连接
- 初始化TCP变量
- Seq. #
- Buffer和流量控制信息
- Client:连接发起者
- Socket clientSocket = new Socket(“hostname”,”port number”);
- Server: 等待客户连接请求
- Socket connectionSocket = welcomeSocket.accept();
Three way handshake:
Step 1: client host sends TCP SYN segment to server
- specifies initial seq #
- no data
Step 2: server host receives SYN, replies with SYNACK segment
- server allocates buffers
- specifies server initial seq. #
Step 3: client receives SYNACK, replies with ACK segment, which maycontain data
2 TCP连接管理:释放
Closing a connection:
client closes socket: clientSocket.close();
- Step 1: client向server发送TCP FIN 控制segment
- Step 2: server 收到FIN, 回复ACK. 关闭连接, 发送FIN.
- Step 3: client 收到FIN, 回复ACK.
- 进入“等待” –如果收到FIN,会重新发送ACK
- Step 4: server收到ACK. 连接关闭