TCP首部中URG与PSH的联系与区别以及6个控制位

来源:互联网 发布:阿里妈妈淘宝联盟推广 编辑:程序博客网 时间:2024/05/22 15:05

URG与PSH的联系与区别

联系:
都是一种对数据的处理方式。

区别:

URG交付给进程的数据:
1、只有紧急数据;
2、紧急数据不进入接收缓冲区而直接交付给进程,余下数据要进入接收缓冲区;
3、URG是处理在前端(收到数据后立马对真正意义上”数据”进行操作,所以说”紧急”。

PSH交付给进程的数据:
1、缓冲区排好序的数据及当前报文中的数据;
2、PSH是在处理的后端,告诉内核,不用等待”满了”再递交数据递交到上层。

TCP报文段首部的6个控制位分别为URGACKPSHRSTSYNFIN,下面将对这6个控制位做详细解释。

紧急URG(URGent)
当URG=1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据),而不要按原来的排队顺序来传送。
当URG置1时,发送应用进程就告诉发送方的TCP有紧急数据要传送。于是发送方TCP就把紧急数据插入到本报文段数据的最前面,而在紧急数据后面的数据仍是普通数据。这时要与手不中紧急指针(Urgent Pointer)字段配合使用。

确认ACK(ACKnowledgment)
仅当ACK=1时确认号字段才有效。当ACK=0时,确认号无效。TCP规定,在连接建立后所有传送的报文段都必须把ACK置1。

推送PSH(PuSH)
当两个应用进程进行交互式的通信时,有时在一端的应用进程希望在键入一个命令后立即就能够收到对方的响应。这种情况下,TCP就可以使用推送(push)操作。这时,发送方TCP把PSH置1,并立即创建一个报文段发送出去。接收方TCP收到PSH=1的报文段,就尽快的(即“推送”向前)交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。

复位RST(ReSeT)
当RST=1时,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立运输连接。RST置1还用来拒绝一个非法的报文段或拒绝打开一个连接。RST也可称为重建位或重复位。

同步SYN(SYNchronization)
在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文段。对方若同意建立连接,则应在响应的报文段中使SYN=1和ACK=1。因此,SYN置1就表示这是一个连接请求或连接接受报文。

终止FIN(FINis)
用来释放一个连接。当FIN=1时,表明此报文段的发送方的数据已发送完毕,并要求释放运输连接。

原创粉丝点击