日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TCP/IP学习笔记(九)TCP报文段首部格式

發布時間:2024/4/19 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TCP/IP学习笔记(九)TCP报文段首部格式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

TCP為了實現穩定可靠的傳輸,自然是需要在發送數據時附帶一些信息,對端接收到報文段后將用戶數據分離開存放在接收緩沖區,然后根據附加信息決定接下來的行為。所以即使TCP是面向字節流的傳輸協議,但是傳輸的基本單元卻是報文段。

報文段由報文首部和數據組成,報文首部最小占20字節最多占60字節,固定的20字節包含各種連接信息,可擴展的40字節存放各種選項值

源端口和目的端口

各占2個字節,分別寫入源端口號和目的端口號。比如客戶端端口號10000,服務器端口號9999,那么客戶端發送的報文段中源端口號為10000,目的端口號為9999。服務器發送的報文段相反

序列號

占4個字節,范圍是[0:232[0:232]。表示數據的第一個字節的序列號,由于TCP的數據交互是基于序列號的(控制滑動窗口),發送方通過序列號控制發送數據以及超時重傳,接收方通過序列號控制亂序重排

接收方可以根據第一個字節序列號 + 數據個數算出最后一個字節的序列號,并將其加一用作應答

當序列號增加到232?1232?1后,會重新從0開始,由于232232字節為4GB,可以保證重復使用的序列號代表的數據已經成功到達對端

確認號

占4個字節,表示期望下次收到的序列號。比如服務器收到客戶端發來的報文段,其序列號字段值為501,并通過計算可知數據長度為200,所以服務器可以算出最后一個字節的序列號為700。這表明服務器正確收到了客戶端發送的序列號到700為止的數據,因此,服務器期望下次收到的序列號為701,并將其作為確認號放入應答報文段中

確認號和序列號范圍相同,當溢出時從0開始

數據偏移

占4位(注意這個單位是位,不是字節),表示TCP報文段的第一個數據距離報文段起始處有多遠。由于TCP報文段首部長度不確定,20到60字節不等,所以需要一個字段用于找到數據起始處

數據偏移代表的是4字節的倍數,由于4位二進制最大可以表示15,所以數據偏移最大為4 * 15 = 60,這也是TCP報文段首部的最大長度

保留

占6位,目前不使用

控制位

TCP報文段首部存在6個控制位,用于說明報文段的性質,每個控制字段占1位

緊急URG

表示報文段中的數據是緊急數據,需要馬上處理。接收方收到這種類型的報文段后,不會像正常流程那樣將數據追加到接收緩沖區末尾,而是插到緩沖區開始的位置,這樣應用程序就可以立即讀取緊急數據

比如鍵入Ctrl + C時,就會將這條中斷信息放在緩沖區頭部,否則,只有當應用程序將之前的數據全部處理完才能夠接收這個終止信息

該控制位需要配合緊急指針一同使用

確認ACK

只有當ACK位被置1時確認號才有用。TCP規定,連接建立后發送的所有報文段ACK位都必須置1

推送PSH

當發送方希望數據可以立即發送給對端時,TCP會將報文段首部的PSH位置1,接收方同樣將PSH位置1的報文段中的數據盡快告知應用程序

該控制位很少使用,因為TCP會自己決定什么時候應該使用PUSH操作

復位RST

用于復位,表示連接出現錯誤,應當立即關閉。當TCP接收到復位報文段后會通知應用程序連接被復位,隨后關閉連接

同步SYN

連接建立的過程中用于同步序列號,告知對方自己的起始序列號。可以根據對方的序列號初始化緩沖區起點(滑動窗口)

SYN=1,ACK=0時表示一個連接請求報文段,SYN=1,ACK=1表示一個連接接收報文段

終止FIN

用于釋放連接,報文段中FIN控制位為1表示已經將數據發送完畢,等待關閉連接

窗口

占2個字節,表示發送該報文段的一方能夠接收的字節數,用于控制對端發送數據的個數(控制對端滑動窗口)

窗口值范圍為[0,:216?1][0,:216?1]

檢驗和

占2個字節,用于檢驗報文段是否出錯。發送方根據發送的報文段計算檢驗和填入報文段首部,接收方根據接收的報文段重新計算,如果不匹配,表明報文段出錯

緊急指針

占2個字節,表示緊急數據的個數,因為報文段中可以既包含緊急數據也可以包含普通數據,該字段用于區分二者

只有緊急URG控制位置1時才有效

選項

長度可變, 最長為40字節,當沒有使用選項字段時,TCP報文段首部共20字節。

TCP選項比較常用的是MSS,即最大報文段長度。需要注意的是MSS指的是數據的最大長度而不是TCP報文段長度。在將數據發送之前,會根據MSS將數據進行合理的切分,即單次發送的報文段中的數據不能超過MSS,所以MSS應該適當調大一些以降低網絡中的報文段個數

總結

以上是生活随笔為你收集整理的TCP/IP学习笔记(九)TCP报文段首部格式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。