目录
TCP报文格式中的六个标志位由6个比特构成,在通信双方基于TCP协议互相发送报文数据时可以通过报头中标志位来区别对方发送的报文数据的请示。
ACK
确认号是否有效。
接收端对所收到的报文进行检查,若未发现错误,便向发送端发出ACK标志位为1的报文数据(如果没有进行捎带应答,接收端发送的报文数据就只有报头,无有效载荷),表明信息已被正确接收,并准备好接收下一份报文;为0就忽略应答报文中的确认序号字段。
SYN
请求建立连接。携带SYN标识的称为同步报文段。
RST
对端要求重新建立连接。携带RST标识的称为复位报文段。
客户端与服务器通过三次握手成功建立连接,但是正常通信时服务器端的操作系统资源满载,导致服务器无法对客户端做出应答,由于服务端建立连接后也要管理连接,操作系统描述管理这些连接数据结构,服务端OS为了解决资源满载的问题可能会释放掉建立的连接,服务端端必须重新发送RST标识为1的报文给对应客户端请求重新建立连接才可以进行通信。
FIN
通知对端,本端要关闭了。携带FIN标识的称为结束报文段。
PSH
提示接收端应用程序立刻从其接收缓冲区中读取数据。
当发送端向接收端的接收缓冲区里发送数据时,如果接收端的应用层不及时在其接收缓冲区读取数据,那么就会导致接收缓冲区满了,此时发送端向接收端发数据时就会阻塞。在TCP协议中接收端的窗口大小为0,发送端会定期向接收端发送窗口探测数据段(PSH标志位为1)来获取接收端的窗口大小并提示接收端应用程序立即读取其接收缓冲区中的数据。当然为了提高通信效率也可以在正常通信中发送标志位PSH为1的报文数据。
URG
紧急指针是否有效。
在TCP协议中发送端向接收端发送报文数据时,接收端依据32位序号来保证接收到的数据的顺序与发送端发送数据的顺序一致,接收端应用层按顺序读取数据,如果客户端想让接收端优先读取自己发送的一个数据就要靠数据中的标志位URG了,TCP协议段中16位紧急指针表示的是发送端要发送的包含紧急数据的报文中的有效载荷中该紧急数据的偏移量,紧急数据大小是1byte。
URG一般用于当服务端响应速度慢,客户端需要查看服务端的工作状态编号:
紧急数据在应用层叫作带外数据。