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