電腦網路(8)-----TCP報文段的首部格式

來源:互聯網
上載者:User

標籤:

TCP報文段的首部格式概述

  TCP報文段首部的前20個位元組是固定的,因此TCP首部的最小長度是20位元組。

源連接埠和目標連接埠

  各佔2個位元組,分別寫入源連接埠號碼和目的連接埠號碼。

序號

  佔4個位元組,表示本報文段所發送資料的第一個位元組的編號。在TCP串連中所傳送的位元組流的每一個位元組都會按順序編號。由於序號由32位表示,所以每2^32個位元組,就會出現序號迴繞,再次從 0 開始。

確認號

  佔4個位元組,是期望收到對方寫一個報文段的第一個資料位元組的序號。若確認號=N,則表明:到序號N-1為止的所有資料都已正確收到。

資料位移(TCP首部長度)

  佔4位,它指出TCP報文段的資料起始處距離TCP報文段的起始處有多遠。這個欄位實際上是指出TCP報文段的首部長度,由於4位位元能夠表示的最大十進位數字是15,因此資料位移的最大值是60位元組,這也是TCP首部的最大長度。

緊急URG控制位

  當URG=1時,表明緊急指標欄位有效。它告訴系統此報文中有緊急資料,應儘快傳送,而不要按原來的排隊順序來傳送。當URG置1時,發送方TCP就把緊急資料插入到本報文段資料的最前面,而在緊急資料後面的資料仍是普通資料。這時要與首部中的緊急指標欄位配合使用。

確認ACK控制位

  僅當ACK=1時,確認號欄位才有效,TCP規定,在串連建立後的所有傳送的報文段都必須要ACK置1。

推送PSH控制位

  發送方TCP把PSH置1,並立即建立一個報文段發送出去。接收方TCP收到PSH=1的報文段,就儘快地交付接收應用進程,而不再等到整個緩衝都填滿了後再向上交付。

複位RST控制位

  當RST=1時,表明TCP串連中出現了嚴重差錯,必須釋放串連,然後再重建立立運輸串連。

同步SYN控制位

  在串連建立時用來同步序號,當SYN=1而ACK=0時,表明這是一個串連請求報文段。對方若同意建立串連,則應在響應的報文段中使SYN=1和ACK=1。因此,SYN置為1就表示這是一個串連請求或串連接受請求。

終止FIN控制位

  用來釋放一個串連。當FIN=1時,表明此段報文段的發送發的資料已經發送完畢,並要求釋放運輸串連。

視窗

  佔2個位元組。視窗指的是發送本報文段的接受視窗。視窗值告訴對方:從本報文段首部中的確認好算起,接收方目前允許對方發送的資料量。視窗值作為接收方法讓發送方設定其發送視窗的依據。視窗欄位明確指出了現在允許對方發送的資料量。視窗值是經常動態變化的。

緊急指標

  佔2個位元組。指出本報文段中緊急資料的位元組數。

選項

  長度可變,最長可達40位元組。當沒有使用“選項”時,TCP的首部長度是20位元組。

選項部分的應用:
  1. MSS最大報文段長度(Maxium Segment Size):指明資料欄位的最大長度,資料欄位的長度加上TCP首部的長度才等於整個TCP報文段的長度。MSS值指示自己期望對方發送TCP報文段時那個資料欄位的長度。通訊雙方可以有不同的MSS值。如果未填寫,預設採用536位元組。MSS只出現在SYN報文中。即:MSS出現在SYN=1的報文段中。
  2. 視窗擴大選項(Windows Scaling):由於TCP首部的視窗大小欄位長度是16位,所以其表示的最大數是65535。但是隨著時延和頻寬比較大的通訊產生(如衛星通訊),需要更大的視窗來滿足效能和吞吐率,所以產生了這個視窗擴大選項。
  3. SACK選擇確認項(Selective Acknowledgements):用來確保只重傳缺少的報文段,而不是重傳所有報文段。比如主機A發送報文段1、2、3,而主機B僅收到報文段1、3。那麼此時就需要使用SACK選項來告訴發送方只發送丟失的資料。那麼又如何指明丟失了哪些報文段呢?使用SACK需要兩個功能位元組。一個表示要使用SACK選項,另一個指明這個選項佔用多少位元組。描述丟失的報文段2,是通過描述它的左右邊界報文段1、3來完成的。而這個1、3實際上是表示序號,所以描述一個丟失的報文段需要64位即8個位元組的空間。那麼可以推算整個選項欄位最多描述(40-2)/8=4個丟失的報文段。
  4. 時間戳記選項(Timestamps):可以用來計算RTT(往返時間),發送方發送TCP報文時,把當前的時間值放入時間戳記欄位,接收方收到後發送確認報文時,把這個時間戳記欄位的值複製到確認報文中,當發送方收到確認報文後即可計算出RTT。也可以用來防止迴繞序號PAWS,也可以說可以用來區分相同序號的不同報文。因為序號用32為表示,每2^32個序號就會產生迴繞,那麼使用時間戳欄位就很容易區分相同序號的不同報文。
  5. NOP(NO-Operation):它要求選項部分中的每種選項長度必須是4位元組的倍數,不足的則用NOP填充。同時也可以用來分割不同的選項欄位。如視窗擴大選項和SACK之間用NOP隔開。

電腦網路(8)-----TCP報文段的首部格式

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.