tcp報(bào)文格式詳解
TCP(Transmission ControProtocol)傳輸控制協(xié)議是一種面向連接的、可靠的、基于字節(jié)流的傳輸層協(xié)議。
tcp報(bào)文格式詳解TCP報(bào)文是TCP層傳輸?shù)臄?shù)據(jù)單元,也稱為報(bào)文段。
TCP報(bào)文首部格式
源端口號(2字節(jié)):
d5 df(54751)
目的端口號(2字節(jié)):
22 b8(8888)
TCP報(bào)頭中的源端口號和目的端口號同IP數(shù)據(jù)報(bào)中的源IP與目的IP唯一確定一條TCP連接
序號(4字節(jié)):
37 59 56 75
用來標(biāo)識TCP發(fā)端向TCP收端發(fā)送的數(shù)據(jù)字節(jié)流
確認(rèn)序號(4字節(jié)):
由于該報(bào)文為SYN報(bào)文,ACK標(biāo)志為0,故沒有確認(rèn)序號(ACK標(biāo)志為1時(shí)確認(rèn)序號才有效)
一旦連接建立,該值將始終發(fā)送(同ACK標(biāo)志)
首部長度(4位):報(bào)文頭長度(單位:位)/32
1000(轉(zhuǎn)化為10進(jìn)制為8,8*32/8 = 32,該報(bào)文報(bào)頭長度為32個(gè)字節(jié))
存在該字段是因?yàn)門CP報(bào)頭中任選字段長度可變
報(bào)頭不包含任何任選字段則長度為20字節(jié);4位所能表示的最大值為1111,轉(zhuǎn)化為10進(jìn)制為15,15*32/8 = 60,故報(bào)頭最大長度為60字節(jié)
標(biāo)志位(12位):
0000 00010010
Reserved:
000~ ~~~~~~~~
ECN(Explicit Congetsion Notification):
~~~0 ~~~~~~~~ = N / NS / Nonce Sum:有效排除潛在的ECN濫用,RFC 3540
~~~~ 0~~~~~~~ = C / CWR(CongesTIon Window Reduced):擁塞窗口減少標(biāo)志
~~~~ ~0~~~~~~ = E / ECE / ECN-Echo:ECE / ECN標(biāo)志
ControBits:
~~~~ ~~0~~~~~ = U / Urgent:緊急指針有效性標(biāo)志
~~~~ ~~~1~~~~ = A / Acknowledgment:確認(rèn)序號有效性標(biāo)志,一旦一個(gè)連接建立起來,該標(biāo)志總被置為1,即除了請求建立連接報(bào)文(僅設(shè)置Syn標(biāo)志位為1),其它所有報(bào)文的該標(biāo)志總為1
~~~~ ~~~~0~~~ = P / Push:Push標(biāo)志(接收方應(yīng)盡快將報(bào)文段提交至應(yīng)用層)
~~~~ ~~~~~0~~ = R / Reset:重置連接標(biāo)志
~~~~ ~~~~~~1~ = S / Syn:同步序號標(biāo)志
~~~~ ~~~~~~~0 = F / Fin:傳輸數(shù)據(jù)結(jié)束標(biāo)志
窗口大?。?字節(jié)):TCP流量控制通過連接的每一端聲明窗口大小進(jìn)行控制(接收緩沖區(qū)大小)
20 00(00100000 00000000)= 8192
由于2字節(jié)能夠表示的最大正整數(shù)為65535,故窗口最大值為65535
檢驗(yàn)和(2字節(jié)):檢驗(yàn)和覆蓋整個(gè)TCP報(bào)文段;強(qiáng)制字段,由發(fā)送端計(jì)算存儲,由接收端進(jìn)行驗(yàn)證
2e 2f
緊急指針(2字節(jié)):當(dāng)Urgent標(biāo)志置1時(shí),緊急指針才有效
00 00
任選字段(0 - 40字節(jié)):