tcp伪报头_TCP和UDP报头的比较
該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
一、TCP報頭
?TCP報文段的報頭有10個必需的字段和1個可選字段。報頭至少為20字節。報頭后面的數據是可選項。
1、源端口號(16位)
?標識發送報文的計算機端口或進程。一個TCP報文段必須包括源端口號,使目的主機知道應該向何處發送確認報文。
2、目的端口號(16位)
?標識接收報文的目的主機的端口或進程。
3、序列號(32位)
?用于標識每個報文段,使目的主機可確認已收到指定報文段中的數據。當源主機用于多個報文段發送一個報文時,即使這些報文到達目的主機的順序不一樣,序列號也可以使目的主機按順序排列它們。
?在建立連接時發送的第一個報文段中,雙方都提供一個初始序列號。TCP標準推薦使用以4ms間隔遞增1的計數器值作為這個初始序列號的值。使用計數器可以防止連接關閉再重新連接時出現相同的序列號。
?對于那些包含數據的報文段,報文段中第一個數據字節的數量就是初始序列號,其后數據字節按順序編號。如果源主機使用同樣的連接發送另一個報文段,那么這個報文段的序列號等于前一個報文段的序列號與前一個報文段中數據字節的數量之和。例如,假設源主機發送3個報文段,每個報文段有100字節的數據,且第一個報文段的序列號是1000,那么第二個報文段的序列號就是1100(1000+100),第三個報文段的序列號就是1200(1100+100)。
?如果序列號增大至最大值將復位為0。
4、確認號(32位)
?目的主機返回確認號,使源主機知道某個或幾個報文段已被接收。如果ACK控制位被設置為1,則該字段有效。確認號等于順序接收到的最后一個報文段的序號加1,這也是目的主機希望下次接收的報文段的序號值。返回確認號后,計算機認為已接收到小于該確認號的所有數據。
?例如,序列號等于前一個報文段的序列號與前一個報文段中數據字節的數量之和。例如,假設源主機發送3個報文段,每個報文段有100字節的數據,且第一個報文段的序列號是1000,那么接收到第一個報文段后,目的主機返回含確認號1100的報頭。接收到第二個報文段(其序號為1100)后,目的主機返回確認號1200。接收到第三個報文段后,目的主機返回確認號1300。
?目的主機不一定在每次接收到報文段后都返回確認號。在上面的例子中,目的主機可能等到所有3個報文段都收到后,再返回一個含確認號1300的報文段,表示已接收到全部1200字節的數據。但是如果目的主機再發回確認號之前等待時間過長,源主機會認為數據沒有到達目的主機,并自動重發。
?上面的例子中,如果目的主機接收到了報文段號為1000的第一個報文段以及報文段號為1200的最后一個報文段,則可返回確認號1100,但是再返回確認號1300之前,應該等待報文段號為1100的中間報文段。
5、報文長度(4位)
?由于TCP報頭的長度隨TCP選項字段內容的不同而變化,因此報頭中包含一個指定報頭字段的字段。該字段以32比特為單位,所以報頭長度一定是32比特的整數倍,有時需要在報頭末尾補0。如果報頭沒有TCP選項字段,則報頭長度值為5,表示報頭一個有160比特,即20字節。
6、保留位(6位)
?全部為0。
7、控制位(6位)
?URG:報文段緊急。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的tcp伪报头_TCP和UDP报头的比较的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是梨状窝瘘
- 下一篇: css 定位连线_CSS Positio