1. 程式人生 > >TCP3次握手4次揮手

TCP3次握手4次揮手

  1. 源埠和目的埠,各佔2個位元組,分別寫入源埠和目的埠;
  2. 序號,佔4個位元組,TCP連線中傳送的位元組流中的每個位元組都按順序編號。例如,一段報文的序號欄位值是 301 ,而攜帶的資料共有100欄位,顯然下一個報文段(如果還有的話)的資料序號應該從401開始;
  3. 確認號,佔4個位元組,是期望收到對方下一個報文的第一個資料位元組的序號。例如,B收到了A傳送過來的報文,其序列號欄位是501,而資料長度是200位元組,這表明B正確的收到了A傳送的到序號700為止的資料。因此,B期望收到A的下一個資料序號是701,於是B在傳送給A的確認報文段中把確認號置為701;
  4. 資料偏移,佔4位,它指出TCP報文的資料距離TCP報文段的起始處有多遠;
  5. 保留,佔6位,保留今後使用,但目前應都位0;
  6. 緊急URG,當URG=1,表明緊急指標欄位有效。告訴系統此報文段中有緊急資料;
  7. 確認ACK,僅當ACK=1時,確認號欄位才有效。TCP規定,在連線建立後所有報文的傳輸都必須把ACK置1;
  8. 推送PSH,當兩個應用程序進行互動式通訊時,有時在一端的應用程序希望在鍵入一個命令後立即就能收到對方的響應,這時候就將PSH=1;
  9. 復位RST,當RST=1,表明TCP連線中出現嚴重差錯,必須釋放連線,然後再重新建立連線;
  10. 同步SYN,在連線建立時用來同步序號。當SYN=1,ACK=0,表明是連線請求報文,若同意連線,則響應報文中應該使SYN=1,ACK=1;
  11. 終止FIN,用來釋放連線。當FIN=1,表明此報文的傳送方的資料已經發送完畢,並且要求釋放;
  12. 視窗,佔2位元組,指的是通知接收方,傳送本報文你需要有多大的空間來接受;
  13. 檢驗和,佔2位元組,校驗首部和資料這兩部分;
  14. 緊急指標,佔2位元組,指出本報文段中的緊急資料的位元組數;
  15. 選項,長度可變,定義一些其他的可選的引數。