抓包分析
CONTENTS
5 TCP协议抓包分析 5.1 TCP协议格式及特点 5.2实例分析 6 UDP协议的抓包分析 6.1 UDP报文格式及特点 6.2流媒体播放时传输层报文分析
Word资料
5 TCP协议抓包分析
5.1 TCP协议的格式及特点
行 D ...... 4 ...... S.. 1D ......... 16
-1 I ... 源端口 « STCpO27t
…确认号 .&ck_非q
目的端口. dst-poit.....
2 .......... . ...... . 序列号,吕卯 .............. ......... .......
4 首部长度|.保留(6). . |R|C|S|S|¥|1| .......... window
・,・》*>■*・
L A P R S F >■*・*・ I ■ »*>■*・*・ I ■ b * H * I- -fa ■■ I I- k- k- 4- I- -fa
|
..doff., > |. . ■ . *. . G K H T \\ X . ........ ......... .... .............. ....
5 ................. 校验和.ch«ck^ ...... .......................................... 紧急指针.|
I .......... 迭项 ........................... 填充字节一.|
图1 TCP协议报头格式
源端口:数据发起者的端口号; 目的端口:数据接收方的端口号;32bit序 列号,标识当前数据段的唯一性;32bit的确认号,接收数据方返回给发送方的 通知;TCP头部长度为20字节,若TCP头部的Options选项启用,则会增加首 部长度,因此TCP是首部变长的传输层协议;Reserved、Reserved、Nonce、CWR、 ECN-Echo:共6bit,保留待用。
URG: 1bit紧急指针位,取值1代表这个数据是紧急数据需加速传递,取值 0代 表这是普通数据;
ACK: 1bit确认位,取值1代表这是一个确认的TCP包,取值0则不是确认包;
PSH: 1bit紧急位,取值1代表要求发送方马上发送该分段,而接收方尽快的将 报文交给应用层,不做队列处理。取值 0阿迪表这是普通数据;
RST: 1bit重置位,当TCP收到一个不届于该主机的任何一个连接的数据,则向 对方发一个复位包,此时该位取值为1,若取值为0代表这个数据包是传给自己 的; SYN: 1bit请求位,取值1代表这是一个TCP三次握手的建立连接的包,取值为 0就代表是其他包;
FIN: 1bit完成位,取值1代表这是一个TCP断开连接的包,取值为0就代表是 其他包;
Window Size : 16bit窗口大小,表示准备收到的每个 TCP数据的大小;
Checksum: 16bit的TCP头部校验,计算TCP头部,从而证明数据的有效性; Urgent Pointer : 16bit紧急数据点,当功能bit中的URG取值为1时有效;
Options : TCP的头部最小20个字节。如果这里有设置其他参数,会导致头部增 大; Padding :当TCP头部小于20字节时会出现,不定长的空白填充字段,填充容 都是0,但是填充长度一定会是32的倍数;
Data:被TCP封装进去的数据,包含应用层协议头部和用户发出的数据。
5.2请求网页文件时传输层报文分析
下面结合具体的 Wireshark的抓包分析TCP报文的特点。如图2所示
IrariLiis^lfln Conrrol Frctoccl, Src Fori; iLpsin: .1S6&。,DET Pcit: hTip 以。i, S*q: G, L«n: 0 恿 □,? : 11 ps i nc (19^/ 目的怀口号:htm・0O) .5*reai] in;ex; 0.
Scqjtn^e n^ubsr; 3
Header length: 32 fcytes tJ Mass: Cte02 3心)
■ T^lative ^ctjjcnce nunb:r>
000 ...................... = Reserved: Not set
_ 0 ....................... = Ncunce: Not set
....。-…,...=Cocifcst i un Vindov, Reduced (CVR) : Not srt
一一,,0.. *... = EC^-Echc: Not set ….,,.0. ..,. - Ur取砒:Xbt set
................ C ,.. . = AcknorTled^eneiit: Kot set
... ........... 0.,. 一 FusJi: N©t set
--+ .,, -. - Q, + = : Kot set …,.……。=Fin; Nel ter 订海河: 3192
niecksum:队了理照 [validation di^aM^d' 1 Options; (12 bytrs)
)la^inua scincnt SLEC: 14€0 b\"tcs NOF
Winds’ ;寸旦1B; 2 inultiply ay 4) NOP NOF
TCP SACK FerrnRred Option: True
图2 TCP协议中请求建立连接
首先,注意到该报文的SYN字段为1,因此该报文为建立连接的报文。 窗口 个数为8192。Option字段中指明了最长字段长度为1460字节
Iran:flii£5:on Comrol Frot^tol, Src Port: st:p (83),处i Port: li^incl 匚969), SECI: 0r Ack: 1. Len: Q 源的口号:http < 50) effiaa^:iipfiinci(i969) :Stre与m 1] CSE典 一(X 日… m Urgent」此t sut .=;\"1= 如:千5?1福鼓11日顷《<£> .・.・■.一 ・・□... = Push: Net 「二■土 .■,・_* ■ 0. ■ = RewuT;_NcH 5蚌T 曰… = Svii: LEzpcrt In.fG (.Chia'i ■- SequentrJ : Conxie^ tioiu establ Ish ac knofflcd^e (SYN\"AC?! : =crver port ht tp_ iMe = 5£.^^ : Conne-ct ion rst abl i sh. acknOTled^r, {SYK-ACKJ : Errv-r pert hitp2 'Severity level:匚hat: _CT二up: Sequence\" …….-“ ..B 工。二 FIn: Not set Fz ndo-ff size: S192 u Checksan: OK53ac [vfilidation disabled! =i Qpt ion:: (lz trtes) /alHiruci stetent size: 13B0 tyies XOP NOF 图3服务器返回请求建立连接的确认 图3表示出了服务器向用户返回请求建立连接报文的确认字段, 其中SYN为 1, ACK为1。传送的数据序列号为0。窗口大小仍然为8192。图3即为TCP协 议建立连接过程中的三次握手中的第二次握手。 Tmiiirsloa Csnrrol Frcrocol, 5rc Fort; 谆 lipslnc: (1969) 目的■□号:http (BO) [5LHE f h : 1 . 1 巽qu(1969J. Crt Port: 3V:D 茂0* SSQ: 1, Ack: 1, Len: C 朗g miibem 1 (reLailHequem匚宣 nuaibEr 胃 a F1BI>: Oi:G (ACK) 000* … 0. r Hf■pTjtn: TO b\"『- = Rtacrvcd: 5砒 s?t D, =ycnce: Ng MI =CDDEesTio^ Tindo- r.=c^ced =AckuCTwlcdgEncnt z ScT =Not get ~ .TT15 一 .V -:二二& set a __ =i 如i iet _. . 7b_.pin: Not ^'index'兵M: iW56「 3 CbKkiti^ oiiTLTS [Validation disabled] 王'SEC' ACE 3^1dlrp;l:' 图4建立连接的“第三次握手” 上图中,图2、图3、图4代表了 TCP协议建立连接时的三次握手。同时, 从图4中可以看出窗口长度是一个变量。并且首部长度字段为 字段 TrarLsmlsslon Cotitrfll Prototol, Src Part: 11^9Lncl (19fl9h Dfit Pori: httj ugj 7也好虹: 0 ■fi ilipsiriil'.1969: WNWCZ号;把T?郁。】 20,没有option 上TTciiin index: 1] Sequence ftunit-ri: TQfi re:aTl;e jequence ntnber 4 ^cknai'ledvciiicnt nunber; E;6 relative ack nubci\" Hesjcrlcnnth: TC \"s thclJ (FIN, ACK) 000, ................. = Reserved^ Not set …。 ....................... -Nonce: Net set ConfCition ftindzw Keztd (t^E. : Nct i-rt ECN-EtM: Not sei [frgent: NOT set ,・ Aw kn口si取I?宣■宣nt E Set + ri a * i! 4 Ii - ■ 0i! ■ ■ ™ *・・■■■ B i a- *■ r ^3 ■ n ・・■■■ ・・■!!■ ■‘・ 0 a , '■ , , ■■ ■ J ■ , ■,■ ~ Viodm size; .1E2B5 Pu-Ehi Not “t Reset: :tot set Sym Xpi set -Fin- 5eT> K. _ LJ, ■ 5 J i Ch^ilcsut: Jrtstfi lYalidflticin 出遂 〃 iBHQ-调:anal: :1 -i Trinsmissian Central Frctcefll, Srt Port: hits 的m, Dst Pert. Iip3:n=l (1 驻mK_.__箜尹 27Gr A;k: TpJ二>“ 0 天凭匚 目即 St口号 illpslncl 1BW) [StredM index; 1L sequence numtcr: rclB^i^c sequence nvmccr: kncrl ad jemen t numb e r !■ 707 i reZBTive ack nuMber' HeadeT leagihi 20 b.tem ODO a. K a x Ke^trved; Net set ■ ■一 0 •一土 OKII 板1 乂 ACK Non;e: Ntit set Conge si ion Ifndo^1 deduced (CTR3: Not 珀 T ECN-Echo: Not sei trffent s Kot ACt Ac kn QTI edigri ent Set _ ■ rCL_ S\"z: Not set FL扫:Noi ?t Ee^et: Not 5&t 1 = Pin: S«T T 7indCT size: 7050 ffl Checksm.b 0x92L 3 [vdlidailor; dljabled] 图5 TCP关闭连接的过程 ~ranonl55i.cn Control FroToecl, Src Pert: Ilr'lncl (19F91T DST Porr : HTJ (501707, ALU^^TTPLen: 0 站 MO-^:lla£lnjcl<1969.: 旦的厦口号:httpCeo) 'Stieam. indcTt: 1] Sequence nun^er; 707 ■relative sequence nunbcr1 AckiiGTlcdgw?nt nontcr; 277 (relative ack inniibcr Header Length: 20 b^tes 二 Flags: CtelO .* * 0 …,一 « B a u« ■ Nance; JSct set CL … ……■ Cange^Tlan Window Reduced (Cli'R} ■ HE set —二一 —0 ° …―MH set in; Noi sei -7EknEledgeaent; Set 二+ ・*,・ +…,…土 *・・■ 0・-F = Push: Kat set F....・・..0.. = Reset: Kot ser »., . »... .. 0. = Syn 2 Kct sei _ 0 = Finr 阮t set Cinder size: 16385 -Chet k^dn: O^6eb5 IvalLiitldn dl^dblcd. -:SEQ/ACK 图6 TCP关闭连接时的第三次握手 图5,图6分别是TCP关闭连接时的三次握手。图5中上半部分是用户发起结束 TCP连接的请求报文,同时用户对收到的服务器数据做出响应, 并返回服务器的 请求容。图5中下半部分为服务器的结束连接部分,其余响应与用户相同。图 6 中用户返回最终确认报文,结束连接。 6 UDP协议的抓包分析 6.1 UDP报文格式及特点 图7中给出了 UDP报文格式。可以看出,UDP是一种固定格式的协议,其 头部共64bit,包含4个等长的部分,分别表示原端口号、目的端口号、 文段长度以及校验和 UDP头部格式 UDP报 16-bit source port 16-brt UDP length Data 16-bit destination port 16-bit UDP checksum 图7 UDP协议格式 利用Wireshark抓取流媒体播放时的UDP报文协议如图8所示。协议头部 包含4部分,其中目的端口号为13777,源端口号为:13000,校验和为0x989e, 整个协议长度为:43字节,从数据部分的长度为35字节也可以看出头部为8字 节,刚好是16*4bits。校验和后面[validation disaled]部分意思不明确。 User Datag;rajii Protocol, Src Port: 13000 (13000), Dst Port: 13777 (13777) Source port: 13000 (13000) Dcstinarion port: L3777 (13777) Length: 43 E Checksum: 0x989e [validation di sabled] Data (35 bytes) Data: 77020008000100b9e4103f0001D004090o0178dcg4061350... [Length: 35] | 图8 Wireshark UDP 抓包结果 根据UDP首部固定长度的特点,其长度字段最大能表示 65536字节,那么 一个UDP协议最多能够包含的数据长度即为 65528字节。 6.2流媒体播放时传输层报文分析 图9为使用千千静听播放歌曲时 Wireshark所抓数据包的UDP部分。 2637 15, 221250 26 J 3 17.33489} 264D 20. 3脆古吨 2641 30. 4罚打9 192. L6S. 1. JOCI 123. 123,113.135 feBO::£B.?:6586:s£2启 ££02::c ftEO:: cat: &566: ffD2 ::c 192.163. 1. :34 1 虱 18SLL 场 192.163. :. 101 192. 1&8.1.255 f«80 WE 6SS6: d62e ffD2! s c fe8D;:cafl;6366id62e f 印蔚;c fcEC:: CBC:6S66:C;62C ffO Zz:c 192. 1&S. 1- 102 1S2, 166. J. 100 feSC::cae::6566:d62e f切2::c 192. IBS. 1B 100 228. 255. 255- ESC 1&2. l&fl, :. 100 22D. 1&6二& 30 192. Jb^. 1. 100 220.166.18. 30 1 鬼.IB土 :.:睫 220. 165.28.30 U>? SSDP SSDP UDP Source pori: L3000 11 SEARCH Hllr. 1.1 M-SEARCE1 * HTTF/1.) Scur;e »on: f6J6 DeBTlnsriflr. gt: 13777 Lnailcn port4 6646 2&42 20, S593U 2643 24a 33D977 2Ei6 27. 33M7? 2647 3Q- 3知廿卯 2652 3L 109639 笠W 3*处\"3 265S 35- 492479 2667 3& &fI443 266S 36. 974194 海勺 3&.97?an^ ERE兑ELotal ikster Arc^unEeaent 2011 20Z2O42ZHS. SSDP M-SE ABCH * HTTF/1. 1 SSDP 55DF UUF 5 SUP 5'EDP M-SEAHOi * HTTFA,1 M-5EARCH * HTTF/1. I port: SO7S6 M-SE^HCH t HHP/1,1 M-SEAFEH + HTTP/J. I Scarce port: 13000 S匚vice port: 1300D Eeuree MfT: L3QQD Stektce- grt: 1300 D L _ L _ _ port 13000 T Source port: LSO'O DesTlnaticin port: P R FT 2M. ]66. 18, SO 192. 1G3. :. :30 220. Ib5. IE. 30 2670 S6.984D9B 192. IBS. I. 100 宜 1 如.I), JO-U 既3U VHP LDP tDF 2672 37. 0*1164 192. 365. 1. :0Q LBP roF De st Inst ion p^rl: IhrEt loaticn port: st ■ nnt i-dn : ^ssilcidtlon p jrt: festitiatictt f; 1 : ??3 IHM 比-r^ri : - ZSCOG 13COO 13CO0 13000 13000 13000 图9 \"千千静听'Wireshark抓包结果 观察图10,不难发现一个奇怪现象,在前面几个 UDP协议时本地IP地址是 变动的。同时SSDP以及不知名协议在传输层均是使用 UDP协议。SSDP协议具 体容如图10 Frjjn* 1860: 20S bvits on irt 0664 bi208 byita capturtd (16^4 biia) EttieiMt II. SK;'QuaRtaM;_13:3d.;2f (ZO:7c :8f; 13:3d:2f)P Dst: IFvGmcait.OO:00:00:0c (3S:33:00:00:Og:£k) 1 Internet PTotcml VVTIIOTII 6B Src: feSO\" * CM:S5&6:dG2e:4al3 CftSO: :c&e:656G:d62e* falS) P Dst: ff02::c (ffG2 : ■ E Us^r Ua ■a gran Frot occl, arc Fort: 5970T 597Q7), Dst Fort: ssdp (19GO) 1 Source pciri: 59?07 (59707) De^ t inatian port: =sd|p (1SD0* LeEis-th^l54 Hypeztext Twa三ter FIQIQCSI p M-SEARCH * HTTF/L Host; :FF02;:;C:;1900\\r\\n □:T: urn.::Jlicrosoft: ¥indcra-s F二皿 u Rrzciutisn Prct^sc&l: V4: IF-'& :LinkLDCffliL' r 3 Man: *5 5dtP: d 1 sco v er^ \\r \\n MX:. 3 \\r \\BI \\r\\n 图10 SSDP协议 根据SSDP协议的具体容,除了看出其应该是应用层协议以外,没有其他的 额外信息。但是值得注意的是,UDP长度字段指示为154字节,出去8字节的 首部长度还应该有146字节的数据部分,说明HTP部分就是整个数据字段。 同时还有一个值得注意的现象,如图11所示 Frame 2733: 04 byort wire '.-672 bits.)s 84 bytes captured (i672 bits) Ethernet II, 9toe: Tp^Linkl_22jO6:c4 (f4!ec!3S:22:0€:e4); Dit: Qi:antaMl_l3:3d2 2f (^0:7c:Bf:19:3d:2f) J nt erne t Protocol, Src: LJO, 136.156.171 (H0.166, )56,171), Dst: 192, L63. L 100 (192,166, 1.100) User Daracram Prot:eol. Src Fort: dbeoctrrol-oti: 1158;, U二t Port: 13000 (13C00. Source nori: dbc:n7rcl-on2 1133J Inuiluii purl: 13C00 U3O8G ~ CheckitEi: 0xD323 Lval IdAtion disfibled] Data (42 b^Ttt) DM fl: 7 r QOQO @005006224 0 CflO 0 01 c 0013 d£4c c 9c05 c Be ft f.». [Length: 42? FwaiiM 2734: 92 bytcs 口口 (73C biisj j 92 bvtcs captured (79B bi 气0逍二取n Ellmnet II, Sre: Quanlalll_5 3:3d:2f (M:7r :flf :lS:3d:2P), Dst: rp-LlnkT_22:06:e4 (f4:n::Sa:22:flB;eU Internet PtotocaL Src: 成 168. LUM) (192.1B& 1,100). Dst: 110. IHEu 15& 171 (110- )86.356.171) User Dstagram ProtccoL, ETC Pwtf 13000 U300C\\ D3t Perte cibcsntroL-or3 1L58> Scur:e port: 13X0 (130C0) Desii^ailon pcru dbcontrsl-oni 1155; n藏Si* 旧 Checkeu■: O^acda [vaZldailon d控able迫 Data (50 by OBTA: 7700000005()062£4000000240&]!1<±24=(:^^£040£^^ .. [Length: 50? 图11奇怪的现象 图11中奇怪之处已用红色椭圆标出。首先上面的报文是接收报文,下面的 报文是发送报文。首先,就数据部分而言,上下报文只有一个字符的差异e和f, 即1110和1111。同时UDP协议中长度字段之差为8字节刚好为UDP首部长度。 不得不使人猜想,用户乂将服务器发送来的数据加上头部打包发回给服务器。 但 是UDP是无确认机制的服务,如果报文错误,将被直接丢弃不会返回错误的响 应。上图中的现象还有待进一步确认。 总结 通过抓包分析,加深了对TCP建立连接以及关闭连接时三次握手的认识。 但是TCP传输层协议的具体实现过程,由丁抓的包太多没有能够具体分析,因 此对课本的理解还有待加强。 关丁 UDP协议,其校验和后的[validation disabled] 是否能够说明其快速的传输是建立在舍弃最大正确概率的基础上, 这一点仍不是 很活楚。但是在TCP协议抓包时校验和后也出现了同样的字段,是否乂说明是 计算机设置的问题。 因篇幅问题不能全部显示,请点此查看更多更全内容