找回密码
 注册
查看: 2417|回复: 0

tcpdump 抓包分析说明,异常数据分析、常见RST介绍

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2020-6-11 20:57:45 | 显示全部楼层 |阅读模式
一般地,只是单个的一个SYN,它表示的只是建立连接。当出现SYN和ACK可能同时为1,我们认为客户端与服务器建立了一个连接。而当出现FIN包或RST包时,我们便认为客户端与服务器端断开了连接;而RST一般是在FIN之后才会出现为1的情况,表示的是连接重置。
" p/ g& K) V2 H6 M; `
  F. i% p  K+ x- v+ dWireshark 抓包步骤
# w* m6 z# A$ P" _, a% d+ h5 l首先根据域名获取对应的ip,终端输入 ping 域名
5 |6 v: Q# c7 O) ?
* Q. ?% t3 S% t1 Q0 d( {+ [小技巧 也可通过telnet查看端口是否开启telnet ip 端口
% s! ~: X/ ~% P+ s; ^" n) M" H5 A# j$ o& v+ ], d2 v% h
打开Wireshark,首页选择要抓取的通道(Wi-Fi,网卡等),然后设置过滤规则,点击右上角箭头配置过滤规则,或者点击某一条右键选中
* w. E/ g8 p+ V/ T7 N' eApply as Filter,
5 k8 D% s5 W) t" U$ T9 E' l: qip.src==103.219.186.235 or ip.dst==103.219.186.2354 i7 T2 v* M+ ~5 h9 D2 D) k( e

* Y) h6 G! G, q, p# [$ F; Y2 N7 k
# N( x% y, e/ L" D; ^# lTCP三次握手' @5 l$ J" z9 O, J

: V8 t4 t+ B7 t* p' ]; q2 {6 Z* M. D1 i5 ^3 q% ]& |
第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机;
7 r3 i" o) u9 s: q1 q% a* U0 v( ]4 e3 r3 ^3 `
第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包;7 _& |" A& C3 s2 ?4 H
! x7 [% e- m6 s" V3 W) W
第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。6 v* w, S( g( a7 Y+ o

4 E5 t: u' J9 R9 k: O( ?! Q  s, }7 S5 O9 x3 b, C) n

1 g0 Z1 h9 H- ^1. 客户端发送 SYN 报文 到服务器
6 n% {- F/ V; X" w. S
, c" ]( k+ n4 I4 M- Z  a3 q) ?1 ]  U  v1 Q* I- I
2. 服务器接收到后 回复 SYN + ACK 报文6 q6 I- _  j6 S* Y& Z9 L; O0 K9 T( w

- g+ @( @& O+ E9 m& ?) w& K. o/ C" d2 @3 l9 u
3.客户端接收到服务端的 SYN+ACK 报文后,回复 ACK报文
# e* v* p  l1 ?- ^, e$ E" L# S4 `4 r* I5 j
注意:理论上,Syn 应该初始值是个随机数的,后面的要根据初始值增加 ,wireshark为了好区分从0开始的,可以自行设置显示原始Syn
; d/ V3 F+ z3 T! @4 b& Y, w6 D# @7 m6 Q
TCP 四次挥手,简略分析
% {* _% ?" P, N$ A
2 ~9 w: M. A9 c7 Q: V2 I! _" \4 P: N0 {
(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送。$ E9 N( k+ ^3 A$ o# W
(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。
. V( ?  n" z8 J8 r* T1 ~; _; a(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A。5 `2 f+ K1 d; t8 a0 r2 b
(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1。
# G* M9 L; d" f  n' P2 I: P- J/ S9 _% J8 N
抓包异常数据解读
& }1 Q, n9 m8 h4 }1 Z: O1.[TCP Previous segment not captured]丢包
2 g: ^3 w1 ?/ L+ |在TCP传输过程中,同一台主机发出的数据段应该是连续的,即后一个包的Seq号等于前一个包的Seq + Len(三次握手和四次挥手是例
  U$ x! o' s+ J3 r- L8 _外)当后Seq>前Seq +Len,就知道中间缺失了一段数据。& [% l* l, E) j9 _1 i  {, I

! Z$ o1 y- C" E0 ^& ^  C" _2 {7 B6 x* V2 u1 M6 D
[TCP Out-of-Order] 乱序1 d% t& [/ o5 f! V. J
Wireshark在获取包序号26时发现seq=18981,而包序号25的数据包seq = 20441,所以wireshark认为数据包顺序错了8 ^, J; y: c4 U
. v  Z) F4 k" V4 ?
2.[TCP Dup ACK x#y]. Y. ^! O6 Z% E' T2 V3 }
当乱序或者丢包发生时,接收方会收到一些Seq号比期望值大的包。此时就会Ack就说我想获取seq=28852的数据包而你给了我其他包。
* J/ G# _, _6 T5 W' [" @' P) n* n' f% g0 R
. T% V5 @- k( N9 `" k: z

5 Z; h1 F& V5 j. t7 N3、[TCP Spurious Retransmission] 丢包重传5 U! G5 m; j; s6 l' ~

9 i4 @& M0 R1 q- C; a. {& J
4 j" N$ s3 {* ^4、[TCP Fast Retransmission] 快速重传
4 H! m5 t3 P& ~" i6 h* W- C当发送方收到3个或以上[TCP Dup ACK],就意识到之前发的包可能丢了,于是快速重传它(这是RFC的规定)。
- d( y8 e. \6 {/ v* I6 {' O# Z; I
- d. A* g9 w/ Z! k4 g5 s% D
$ l* Q. R: J7 K7 G2 U) Y, @+ V- i' v5 ^
5、[TCP Retransmission] 超时重传
1 v2 q5 _' L  G5 n$ o如果一个包真的丢了,又没有后续包可以在接收方触发[Dup Ack],就不会快速重传,只能超时重传。0 ]5 n" v8 Y9 A7 ~3 j0 Y& c+ S& p
; f- P9 K( X; g  D! _% k( n
' I  A3 O4 T: e! Y, p5 _

+ p5 D2 p* W- _  f& X$ b6、几种TCP连接中出现RST的情况! M; G5 W7 {/ q
1.端口未打开( T: a! i, ~$ p9 }
服务器程序端口未打开而客户端来连接。这种情况是最为常见和好理解的一种了。去telnet一个未打开的TCP的端口可能会出现这种错误。* ]: b9 l* L, C/ }& H4 e
' f) ?: T! H# }1 p9 L9 o" c( h
2. 请求超时% V- k. W  U, i
查看2次包的时间间隔" i! y4 A# c: L  w1 `6 O" k& {
' n+ D, c0 g& ]9 @+ Q
3. 服务端关闭的socket
$ @& P! o7 k. }3 Z) V3 C& Z: c$ _3 ^3 R& ^' B# q4 T, c3 u. a
4. 防护墙拒绝了请求4 L: x6 S4 ]) Q8 g3 @

( s( h/ z2 T  x7 @/ @5. 移动链路# `( P; H3 N8 o4 }. L3 g
% H4 E3 j9 L" E% y, P
      移动网络下,国内是有5分钟后就回收信令,也就是IM产品,如果心跳>5分钟后服务器再给客户端发消息,就会收到rst。也要查移动网络下IM 保持<5min 心跳。
9 j6 D& d0 ^6 c' F/ E: D. u3 z# N2 J. w
6. 负载等设备
8 v  l6 m  G% n- J      负载设备需要维护连接转发策略,长时间无流量,连接也会被清除,而且很多都不告诉两层机器,新的包过来时才通告rst。8 a" d" O! D: [' h, S* h) Y2 g" K
2 D; Y1 {+ E2 G4 Z( `  h, I2 ~
Apple push 服务也有这个问题,而且是不可预期的偶发性连接被rst;rst 前第一个消息write 是成功的,而第二条写才会告诉你连接被重置6 [+ q8 j( O  `4 r, d

; Z# u0 L2 N1 g7 R5 X: q2 T7. 超过超时重传次数、网络暂时不可达
" M  b& l' b3 o% i
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 02:45 , Processed in 0.019353 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表