TCP协议状态总结
以前的业务主要是集中于UDP的通信方式,最近在使用TCP协议过程中,遇到一些问题。.例如:
现将TCP中的各个状态总结一下。
1、 TCP协议中状态的存储位置
首先,看一下IP数据包的格式图:
其次,TCP数据段的歌诗图:
2、 各个Flag位状态含义
标记(TCPDump缩写) | 3字符缩写 | 描述 |
S | SYN | 同步序号发起一个连接 |
F | FIN | 发送端完成发送任务 |
R | RST | 重置连接 |
P | PSH | 数据传输标记 |
. |
| 以上四个标记比特均置0 |
| ACK | 确认响应序号有效 |
| UGR | 紧急指针 |
Tcpdump在服务端抓取的数据截图如下:
截图中包含完整的TCP全部流程:三次握手建立连接,四次握手终止连接。
3、 重置报文段(RST)
重置报文段的含义为:被连接的服务将报文重置,意味着此次连接无效,发起该报文的服务器,需要重新建立连接。
重置报文出现的可能原因为:
1) 到不存在的端口连接请求
接收方的目的端口没有正在监听。接收方的服务就会发送RST报文;
2) 异常中止连接
正常情况下连接也可以通过FIN进行关闭连接,此时需要发送队列中的全部发送完毕,最后才会发送FIN报文。也可以发送RST报文来关闭释放连接,此时发送队列中的数据会被全部丢弃。