TCP协议中的保留位、偏移位、控制位
1.TCP保留位:用于以后的扩用。
2.TCP的偏移位:用于表示TCP所传输的数据部分应该从TCP包的哪个位开始计算。
3.TCP报文段首部的6个控制位:URG、ACK、PSH、RST、SYN、FIN;下面将对这6个控制位做详细解释。
1)紧急URG(URGent)?
当URG=1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据),而不要按原来的排队顺序来传送。
当URG置1时,发送应用进程就告诉发送方的TCP有紧急数据要传送。于是发送方TCP就把紧急数据插入到本报文段数据的最前面,而在紧急数据后面的数据仍是普通数据。这时要与手不中紧急指针(Urgent Pointer)字段配合使用。 ?
2)确认ACK(ACKnowledgment)
仅当ACK=1时确认号字段才有效。当ACK=0时,确认号无效。TCP规定,在连接建立后所有传送的报文段都必须把ACK置1。
3)推送PSH(PuSH)
当两个应用进程进行交互式的通信时,有时在一端的应用进程希望在键入一个命令后立即就能够收到对方的响应。这种情况下,TCP就可以使用推送(push)操作。这时,发送方TCP把PSH置1,并立即创建一个报文段发送出去。接收方TCP收到PSH=1的报文段,就尽快的(即“推送”向前)交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。
4)复位RST(ReSeT)
当RST=1时,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立运输连接。RST置1还用来拒绝一个非法的报文段或拒绝打开一个连接。RST也可称为重建位或重复位。
5)同步SYN(SYNchronization)
在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文段。对方若同意建立连接,则应在响应的报文段中使SYN=1和ACK=1。因此,SYN置1就表示这是一个连接请求或连接接受报文。
6)终止FIN(FINis)
用来释放一个连接。当FIN=1时,表明此报文段的发送方的数据已发送完毕,并要求释放运输连接。