一、IP包格式
IP數據包是一種可變長分組,它由首部和數據負載兩部分組成。首部長度一般為20-60字節(Byte),其中后40字節是可選的,長度不固定,前20字節格式為固定。數據負載部分的長度一般可變,整個IP數據包的大長度為65535B。
1、版本號(Version)
長度為4位(bit),IP v4的值為0100,IP v6的值為0110。
2、首部長度
指的是IP包頭長度,用4位(bit)表示,十進制值就是[0,15],一個IP包前20個字節是必有的,后40個字節根據情況可能有可能沒有。如果IP包頭是20個字節,則該位應是20/4=5。
3、服務類型(Type of Service TOS)
長度為8位(bit),其組成:前3位為優先級(Precedence),后4位標志位,最后1位保留未用。優先級主要用于QoS,表示從0(普通級別)到7(網絡控制分組)的優先級。標志位可分別表示D(Delay更低的時延)、T(Throughput更高的吞吐量)、R(Reliability更高的可靠性)、C(Cost更低費用的路由)。
TOS只表示用戶的請求,不具有強制性,實際應用中很少用,路由器通常忽略TOS字段。
4、總長度(Total Length)
指IP包總長度,用16位(bit)表示,即IP包大長度可以達216=65535字節。在以太網中允許的大包長為1500B,當超過網絡允許的大長度時需將過長的數據包分片。
5、標識符(Identifier)
長度為16位,用于數據包在分段重組時標識其序列號。將數據分段后,打包成IP包,IP包因走的路由上不同,會產生不同的到達目地的時間,到達目地的后再根據標識符進行重新組裝還原。該字段要與標志、段偏移一起使用的才能達到分段組裝的目標。
6、標志(Flags)
長度為3位,三位從左到右分別是MF、DF、未用。MF=1表示后面還有分段的數據包,MF=0表示沒有更多分片(即最后一個分片)。DF=1表示路由器不能對該數據包分段,DF=0表示數據包可以被分段。
7、偏移量(Fragment Offset)
也稱段偏移,用于標識該數據段在上層初始數據報文中的偏移量。如果某個包含分段的上層報文的IP數據包在傳送時丟失,則整個一系列包含分段的上層數據包的IP包都會要求重傳。
8、生存時間(TTL)
長度為8位,初始值由操作系統設置,每經過一個路由器轉發后其值就減1,減至0后丟棄該包。這種機制可以避免數據包找不到目地時不斷被轉發,堵塞網絡。
9、協議(Protocol)
長度為8位,標識上層所使用的協議。
10、首部校驗和(Header Checksum)
長度為16位,首部檢驗和只對IP數據包首部進行校驗,不包含數據部分。數據包每經過一個中間節點都要重新計算首部校驗和,對首都進行檢驗。
11、源IP地址(Source IP)
長度為32位,表示數據發送的主機IP。
12、目的IP地址(Destination IP)
長度為32位,表示數據要接收的主機IP。
13、選項字段(Options)
長度為0-40字節(Byte),主要有:安全和處理限制(Security)、記錄路徑(Record Route)、時間戳(Timestamps)、寬松源站選路(Loose Source Routing)、嚴格的源站選路(Strict Source Routing)等。
二、TCP報文
TCP報文由首部和數據兩部分組成。首部一般由20-60字節(Byte)構成,長度可變。其中前20B格式固定,后40B為可選。
因為,TCP報文還得傳給下層網絡層,封裝成IP包,而一個IP包大長度為65535,同時IP包首部也包含最少20B,所以一個IP包或TCP包可以包含的數據部分大長度為65535-20-20=65495B。
TCP報文中數據部分是可選的,即TCP報文可以不包含數據(同理IP包也可以不包含數據)。不含數據的TCP報文通常是一些確認和控制信息類的報文,如TCP建立連接時的三次握手和TCP終止時的四次揮手等。
1、源端口號(Source Port)
長度為16位,指明發送數據的進程。
2、目的端口號(Destination Port)
長度為16位,指明目的主機接收數據的進程。
3、序號(Sequence Number)
也稱為序列號,長度為32位,序號用來標識從TCP發送端向接入端發送的數據字節流進行編號,可以理解成對字節流的計數。
4、確認號(Acknowledgement Number)
長度為32位,確認號包含發送確認的一端所期望收到的下一個序號。確認號只有在ACK標志為1時才有效。
5、首部長度
長度為4位,用于表示TCP報文首部的長度。用4位(bit)表示,十進制值就是[0,15],一個TCP報文前20個字節是必有的,后40個字節根據情況可能有可能沒有。如果TCP報文首部是20個字節,則該位應是20/4=5。
6、保留位(Reserved)
長度為6位,必須是0,它是為將來定義新用途保留的。
7、標志(Code Bits)
長度為6位,在TCP報文中不管是握手還是揮手還是傳數據等,這6位標志都很重要。6位從左到右依次為:
URG:緊急標志位,說明緊急指針有效;
ACK:確認標志位,多數情況下空,說明確認序號有效;
PSH:推標志位,置位時表示接收方應立即請求將報文交給應用層;
RST:復位標志,用于重建一個已經混亂的連接;
SYN:同步標志,該標志僅在三次握手建立TCP連接時有效
FIN:結束標志,帶該標志位的數據包用于結束一個TCP會話。
8、窗口大小(Window Size)
長度為16位,TCP流量控制由連接的每一端通過聲明的窗口大小來提供。
9、檢驗和(Checksum)
長度為16位,該字段覆蓋整個TCP報文端,是個強制性的字段,是由發送端計算和存儲,到接收端后,由接收端進行驗證。
10、緊急指針(Urgent Pointer)
長度為16位,指向數據中優先部分的最后一個字節,通知接收方緊急數據的長度,該字段在URG標志置位時有效。
11、選項(Options)
長度為0-40B(字節),必須以4B為單位變化,必要時可以填充0。通常包含:最長報文大小(MaximumSegment Size,MSS)、窗口擴大選項、時間戳選項、選擇性確認(Selective ACKnowlegement,SACK)等。
12、數據
三、UDP數據段
UDP數據段格式比較簡單,如下:
UDP數據報由首部和數據兩部分組成,其中首部只有8B(字節)。
1、源端口號(Source Port)
長度為16位,指明發送數據的進程。
2、目的端口號(Destination Port)
長度為16位,指明目的主機接收數據的進程。
3、長度
長度為16位,該字段值為報頭和數據兩部分的總字節數。
4、檢驗和(Checksum)
長度為16位,UDP檢驗和作用于UDP報頭和UDP數據的所有位。由發送端計算和存儲,由接收端校驗。
5、數據
另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
本文題目:IP包、TCP報文、UDP數據段格式的匯總-創新互聯
標題網址:http://www.2m8n56k.cn/article10/dghego.html
成都網站建設公司_創新互聯,為您提供網站營銷、網站制作、品牌網站建設、域名注冊、微信公眾號、外貿網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯