01、TCP
1、源端口號和目的端口號:
用16bit表示所以端口號范圍為0~65535,用來標識源主機和目的主機上的進程,用于運輸層的多路復用和多路分解。
2、序號:
用于TCP重發時區分是第一次發送還是重發的TCP段,還可以在一次連接的范圍防止重放攻擊,不重數可以在很久時間防止重放攻擊。
3、重放攻擊:
攻擊者拿到加密片段重新發給服務器,比如我們加密了密碼,但攻擊者仍然可以在不破解我們密碼情況下,可以拿我們加密的密碼直接去登錄我們賬號,所以可以在加密的時候把我們的密碼和一個不重數拼在一起再加密,所以我們的密碼加密版本,每次都會不同。
4、確認號:
和序號對應,指示發送確認號的一方下一次想接收的數據的序號,即接收方發送的確認號,表示接收方希望發送方下次發送數據的序號為確認號。
5、首部長度:
4比特,最多可以表示16個單位,每個單位是32比特即4個字節,所以最多可以表示64字節,所以TCP首部最長為64字節,一般如果沒有選項字段只有20字節。
6、標志字段:
每個占1bit,SYN用于建立TCP連接,FIN用于終止連接,ACK用于確認收到,RST用于重置連接(相當于異常終止連接),PSH用于指示接收方盡快把數據交給上層,URG用于表示TCP報文段中有緊急數據,CWR和ECE用于明確擁塞通告。
7、明確擁塞通告:
當路由器發現網絡擁塞后設置IP數據報的ECN比特,接收方收到這個ECN比特的信息后,將TCP報文段上面的ECE比特置為1,然后發回給發送方,發送方收到ECE信息后,以減半擁塞窗口作為回應,并在下一次發送TCP報文段時把報文段上的CWR比特置為1,以告訴接收方擁塞窗口已減半。
8、接收窗口:
用于流量控制,是表示接收方接收緩沖還能容納多少數據,發送方發送時會以接收窗口和擁塞窗口之中最小的為滑動窗口來流水線式發送數據。
9、因特網校驗和:
16位,即兩個字節,用于檢測TCP頭和數據有無錯誤,將報文段以16比特為一個單位,全部相加,溢出的會在結果后面加一,最后得到一個16比特的數,此時因特網校驗和加上這一個16比特的數后使得16比特全變為1,如果不是1那么就傳輸出錯。
10、緊急數據指針:
緊急數據的最后一個字節由16比特的緊急數據指針字段指出。
02、UDP
1、源端口號和目的端口號:
用16bit表示所以端口號范圍為0~65535,用來標識源主機和目的主機上的進程,用于運輸層的多路復用和多路分解。
2、長度:
UDP是一次性發送上層的數據,不會像TCP一樣將上層的報文進行分段處理,16bit最多可以表示65535個字節,是首部加數據的長度,首部長度固定8字節。
3、因特網校驗和:
16位,即兩個字節,用于檢測UDP頭和數據有無錯誤,將報文段以16比特為一個單位,全部相加,溢出的會在結果后面加一,最后得到一個16比特的數,此時因特網校驗和加上這一個16比特的數后使得16比特全變為1,如果不是1那么就傳輸出錯。
03、IP
1、版本:
4比特,最多表示16,用來標識是IPv4,還是IPv6。
2、首部長度:
4比特,最多可以表示16個單位,每個單位是32比特即4個字節,所以最多可以表示64字節,所以IP首部最長為64字節,一般如果沒有選項字段只有20字節。
3、服務類型:
用于區分不同類型的數據報,如實時數據報(IP電話)和非實時流量(HTTP),IP電話要求低時延、高吞吐量、可靠性可以差點,但HTTP可以有時延,但是可靠性要求很好。
4、數據報(包)長度:
16bit,理論上最多65535字節,但實際上很少超過1500字節,因為鏈路層的幀的負載一般最多1500字節(加上幀頭最多1518字節,就是下面的以太網幀),IP數據包太長得分片。
5、標識、標志、片偏移:
用于分片,標識號相當于TCP的序號,把包分片后給每個分片加一個標識,相鄰的分片標識數差1,標志是為了指示接收方接收完成了,通常最后一個分片的標志比特設為0,其他的為1,片偏移相當于偏移量,用于指示該分片是在整個數據報的哪個位置,便于目的主機接收后重新組裝。
6、壽命:
8bit,最多255,IP數據報每經過一個路由器該字段減一,如果減為0,該數據報被丟棄。
7、協議:
用于表示IP數據報要交給哪個上層運輸層協議,值為6是TCP,值為17是UDP。
8、首部檢驗和:
計算方式和上面一樣,但是運輸層首部檢驗和檢驗頭和數據,IP只檢驗IP頭,這樣是為了提高轉發效率。
9、源和目的IP地址:
用于標識源主機和目的主機,而運輸層的端口用于標識主機上面的進程。
04、IPV6
1、版本:
4比特,最多表示16,用來標識是IPv4,還是IPv6
2、流量類型:
用于區分不同類型的數據報,如實時數據報(IP電話)和非實時流量(HTTP),IP電話要求低時延、高吞吐量、可靠性可以差點,但HTTP可以有時延,但是可靠性要求很好。
3、流標簽:
用于區分不同的流,和流量類型作用類似。
4、有效載荷長度:
16bit,最大65535字節,IPv6不會分片,表示是數據長度不包括IPv6頭部,因為IPv6頭部固定是40字節。
5、下一個首部:
相當于IPv4的選項字段,把選項放在下一個首部里面,而且可以表示上層協議的首部在什么位置,相當于指示了上層協議,可以理解為把選項和IPv4的協議字段融合起來。
6、跳限制:和壽命一樣,8bit,最多255跳。
7、源和目的IP地址:IPv6地址為128位。
05、IPSec
ESP(Encapsulation Security Payload): 封裝安全性載荷
SPI(Security Parameter Index): 安全參數索引
IPsec是為了加密IP數據報,加密步驟如下:
1、在初始IPv4數據報(包括首部和數據)后面附加一個ESP尾部;
2、使用算法和SA(Security Association) 安全關聯規定的密鑰加密第一步結果;
3、在加密后的數據附加ESP首部;
4、使用算法和SA規定的密鑰為上述所有生成一個MAC(Message Authentication Code)報文鑒別碼即ESP MAC;
5、將該MAC放在尾部;
6、重新生成一個IPv4首部,這個新IP首部的地址是安全通道兩端的地址,先經過安全通道傳輸,后面解密后再把里面初始IP數據報拿出來傳輸。
06、以太網幀結構
1、前同步碼:
前7個字節的值都是10101010,最后一個字節的值是10101011,前7個字節用于喚醒接收適配器,將接收方時鐘和發送方時鐘同步,為什么會不同步呢,因為適配器會以10Mbps、100Mbps、10Gbps傳輸速率,所以時鐘不同,第8個字節最后兩個11告訴適配器重要的內容要來了。
2、目的地址和源地址:
即MAC(Media Access Control)地址,占6個字節,如AA-AA-AA-AA-AA
3、類型:
相當于IP數據報頭里面的協議,指示上層協議(網絡層),網絡層不只有IP協議。
4、CRC :
循環冗余檢驗,比檢驗和更加強的檢測,即數據比特一直和一個特定二進制序列異或,最后剩下的二進制串就是CRC,雖然可以檢測錯誤,并把錯誤幀丟棄,但是沒有重發機制,無法提供可靠性服務。
07、802.1Q以太網幀結構
大部分和上面一樣,802.1Q是一種擴展以太網格式,用于跨越VLAN干線的幀,新加入了一個VLAN標簽,VLAN標簽由2字節的標簽協議標識符,一個2字節的標簽控制信息字段和一個3比特優先權字段。
08、802.11無線鏈路幀
1、幀控制:
類型和子類型用于區分關聯、RTS、CTS、ACK和數據幀,從(form)和到(to)AP字段用于定義不同地址字段的含義(這些含義隨著自組織模式或者基礎設施模式而改變,而且在使用基礎設施模式時,也隨著是無線站點還是AP在發送幀而變化),WEP字段指示了是否使用加密。
2、持續期:
802.11無線網絡中可以預約信道,用于表示預約時長,在數據幀和RTS即CTS幀都存儲,RTS(Request to Send)請求發送幀,CTS(Clear to Send)允許發送幀。
3、RTS和CTS處理隱藏終端:
當站點監聽到信道空閑,等待DIFS(Distributed Inter-Frame Space)分布式幀間間隔后發送RTS,在發送RTS后接收方等待SIFS(Short Inter-Frame Spacing)短幀間間隔后發送CTS,然后發送方收到該CTS,等待SIFS后發送數據,最后接收完數據后接收方等待SIFS后發送ACK。
4、地址字段:
每個地址都是一個MAC地址,地址2是傳輸該幀站點的MAC地址,地址1是要接收該幀的無線站點的MAC地址,地址3是路由器接口MAC地址,地址4是AP(Access Point)接入點自組織模式中互相轉發時使用的地址。
5、有效載荷:包含有效數據,最大為2312字節,通常小于1500字節
6、CRC:循環冗余校驗
09、SSL記錄
前三個字段不加密。
1、類型:指出該字段是握手報文還是包含應用數據的報文,也可以用于關閉SSL連接。
2、版本:版本字段是自解釋的。
3、長度:長度字段用來從到達的TCP自己流提取SSL記錄,SSL記錄是在TCP的上層的。
10、RTP實時傳輸協議
1、有效載荷類型:
7比特,對于音頻流有效載荷類型字段用于指示音頻編碼類型如(PCM、適應性增量調制、線性預測編碼),通過改變類型可以提高語音質量和減少RTP流比特率(相當于降低質量)。
2、序號:16比特,用于檢測丟包和恢復分組序列,每發送一個RTP分組則該序號加1。
3、時間戳:反映RTP數據分組中的第一個字節采樣時刻。
4、同步源標識符:表示RTP流的源,表示發送方的IP地址,而是新的流開始時源隨機分片的一個數。
11、OpenFlow流表
計算機網絡各層協議和操作抽象成匹配加動作轉發表,即匹配某些字段,進行某些操作,如網絡層路由器路由表,匹配IP轉發數據報,都可以抽象為流表。
審核編輯:湯梓紅
-
計算機
+關注
關注
19文章
7614瀏覽量
89915 -
TCP
+關注
關注
8文章
1395瀏覽量
80197 -
UDP
+關注
關注
0文章
330瀏覽量
34396 -
報文
+關注
關注
0文章
39瀏覽量
4137
原文標題:網工們,這11種協議報文格式一定要爛熟于心!
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
百問MQTT協議分析 - MQTT簡述及協議報文格式組成
tcp報文格式詳解

modbusrtu報文格式詳細介紹

路由協議及其工作原理的詳細PPT教程課件免費下載

一種基于粗糙集聚類的報文格式推斷方法

網絡協議棧:MQTT的報文格式解析

UDP協議的報文格式

HTTP協議的報文格式
虹科干貨 | 讀不懂CANopen報文?看完這篇文章你就知道了!

Path延時測量相關報文格式介紹

modbus報文解析,modbus報文格式詳解
CAN的報文格式和發送總流程

評論