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