TCP报头标志位URG/PSH/SYN/ACK/FIN/RST

您所在的位置:网站首页 tcp协议报头 TCP报头标志位URG/PSH/SYN/ACK/FIN/RST

TCP报头标志位URG/PSH/SYN/ACK/FIN/RST

2024-01-17 06:35| 来源: 网络整理| 查看: 265

TCP报头

  TCP是TCP/IP协议栈中的传输层支持的协议,并且TCP有自己报头信息。   TCP的报头信息如下表:   这里写图片描述   TCP是一个面向连接的、可靠的传输协议。而这个可靠传输的功能则是靠32位序号和32位确认序号实现。

TCP报头的标志位

  TCP报头中一共有六个标志位:URG/ACK/PSH/RST/SYN/FIN。  

SYN

  TCP三次握手中,如果A是发起端,则A就对服务器发一个SYN报文。表示建立连接。

ACK

  收到数据或请求后发送响应时发送ACK报文。

RST

  表示连接重置

FIN

  TCP四次挥手时,表示关闭连接   

PSH

   发送端需要发送一段数据,这个数据需要接收端一收到就进行向上交付。而接收端在收到PSH标志位有效的数据时,迅速将数据交付给应用层。所以PSH又叫急迫比特。    但是现在已经不需要将数据交付给应用层了,因为这些效果在TCP栈已经可以自行处理这些问题了。

URG

  URG成为紧急指针,意为URG位有效的数据包,是一个紧急需要处理的数据包,需要接收端在接收到之后迅速处理。

PSH与URG的区别

  说了这么多,是不是发现PSH与URG的效果相似,但是聪明的计算机网络创建者会将两个相同的标志位放入一起吗?很明显不会,所以PSH和URG的区别是什么?   首先,PSH与URG的相似之处在于二者所在的数据包都是急需接收端处理的报文。   不同之处在于PSH位有效时,当前的数据还会被发送到接收端的缓冲区,并刷新缓冲区,将当前缓冲区中所有数据都交付给上一层——应用层。    PSH位就是用来通告接收方立即将收到的报文连同TCP接收缓存里的数据递交应用进程处理,一般会出现在发送方封装最后一个应用字段的TCP报文中,针对TCP交互式应用,则只要封装有应用字段的TCP报文,均会将PSH位置1。当然,应用程序的开发者,可以根据需要,在某个应用功能模块或某个应用操作中,将所有封装应用字段的TCP报文PSH位置1,以提高交互双方的处理效率,这在理论上应该也是可行的。    URG位有效的数据包也是在当前报文需要接收端立即处理,但是当前报文不需要经过接收端的缓冲区,直接越过缓冲区,交付往接收端的应用层。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3