網絡--tcp協議中控制位

網絡層中的tcp協議
首先看一下tcp的報頭信息

其中其餘的好理解,但是它是擁有了6個控制位的,說明了此次報文段的性質:

  1. 緊急URG(URGent) 當URG等於1時,表明緊急指針字段有效。它告訴系統此報文段中有緊急數據,應儘快傳送(相當於高優先級的數據),而不要按照原來的排隊順序來傳送。
    當URG置爲1的時,發鬆應用進程就告訴發送方的TCP的有緊急數據要傳傳送,於是發送方TCP就把緊急數據插入到本報文段數據的最前面,而在緊急數據後面的數據仍是普通數據,這時要與首部的緊急指針配合來使用。
  2. 確認ACK(ACKnowledgment) 僅當ACK = 1 時確認號字段纔有效,當ACK = 0時,確認號無效。TCP規定,在連接建立之後所有的傳送的報文段都必須把ACK置爲1;
  3. 推送PSH(PuSH) 當兩個應用進程進行交互式的通信時,有時在一端的應用進程希望鍵入一個命令後立即就能夠收到對方的響應,在這種情況下,TCP就可以使用推送PSH操作,發送方的TCP把PSH置爲1,並立即創建一個報文段發送出去。接收方收到PSH = 1的報文段,就儘快地(即“推送”向前)交付接受應用進程,而不再等到整個緩存都填滿了再向上交付;
  4. 復位RST(ReSeT)當RST = 1時,表明TCP連接中出現嚴重差錯,必須釋放連接,然後再重新建立運輸連接。RST置1還用來拒絕一個非法的報文段或拒絕一個打開一個連接。RST也稱爲重建位或重置位;
  5. 同步SYN(SYNchronization) 在連接建立時用來同步序號。當SYN = 1時而ACK = 1時表示這是一個連接請求報文段。對方若同意連接,則應在響應的報文段中是SYN = 1 和ACK = 1,因此SYN = 1就表示這是以惡搞連接請求或連接接受報文;
  6. 終止FIN(FINis) 用來釋放一個連接,當FIN = 1時,表示次報文段的發送方的數據已經發送完畢,並要求釋放運輸連接;

這裏最後再說一下關於URG和PSH的區別吧:
URG:URG被置爲1的報文段,相當於其緊急指針所指的數據是緊急數據,要被優先處理,其餘的普通數據就按照普通流程來走,所以其又被稱爲“帶外數據”;
PSH:這相當於是一條催促你的命令,其本身的作用是催促你將緩衝區當中的數據處理了,其本身的數據意義不是很大;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章