工做中的经常使用用法
1、tcpdump经常使用用法:缓存
1,-i 指定网口 -vnn 经常使用选项,显示详细信息而且不解析IP,端口 ;
抓取某个网口上发往或来自某个IP的报文tcpdump -i ethX host 192.168.1.100 -vnn
服务器
2,能够用or 或者and 链接多个过滤条件,port前的tcp表示tcp协议,也可为udp;
抓取某个网口上发往或来自某个IP、而且指定端口的报文tcpdump -i ethX host 192.168.1.100 and tcp port 22(端口号) -vnn
网络
3, -c 指定抓取报文的数量, 用 -w 把抓取的数据包写入文件;
抓取某网口50个包并写入dump.cap(为何是 .cap?由于wireshark识别此扩展名)文件:tcpdump -i ethX -c 50 -w /root/dump.cap
tcp
4,能够用关键字 src 或者 dst 表示 源 或者 目的;
抓取源端口号为22(tcp协议)的报文tcpdump -i ethX tcp src port 22(端口号) -vnn
ide
以上为经常使用用法,能够根据实际状况灵活组合。code
2、wireshark分析报文:it
1,淡紫色数据包为正常数据包,包括数据包和ACK包io
2,黑色为异常包,包括丢包ACK、重传等ast
2.1 Packet Size limited during capture 这个标志说明数据包并没被彻底抓到,而只是抓到了一部分。这种状况多数是因为抓包方式引发,在某些系统中tcpdump只抓每一个帧的前96个字节。咱们能够”-s”参数来指定想要的字节数。 2.2 TCP previous segment not captured TCP传输过程当中同一台主机发出的数据应该是连续的,即后一个数据包的Sequence应该等一前一个数据包的sequence+len,若是后面捕捉到的数据包不符合这样的规律,即sequence比前一个包的sequence+len大的话,咱们就能够认定中间的数据包就没有抓到,致使这个数据包没有按时到达的缘由可能有乱序或者丢包致使。 2.3 TCP ACKed unseen segment 当WireShark发现被ACK的那个包没被抓到,就会提示[TCP ACKed unseen segment],这种提示通常没有什么问题,就是WireShark漏抓了。 2.4 TCP Dup ACK 当出现乱序或者丢包等状况的时候,原本应该收到的数据包没有收到,反而收到了一些Sequence号比较大的数据包,这时候客户端就会回复一个ACK,ACK本应该收到却没有收到的包,若是后面来的还不是所指望的数据包,那么客户端每收到一个其余数据包就会回复一个ACK,因为这些ACK是重复的,因此就会提示[TCP Dup ACK]。 2.5 TCP Out-of-Order TCP传输过程当中数据包的Sequence号应该是持续递增的,也就是说每一个数据包之间应该只差一个Len的数据,可是在传输过程当中若是Sequence比较大的数据包比Sequence比较小的数据包先到达的话,就会触发[TCP Previous Segment not cpatured],而后若是在后续收到了“迟到”的数据包,就会被标记[TCP Out-of-order]。 2.6 TCP Fast Retransmission 当服务器收到3个或以上的[TCP Dup ACK]后就会断定所ACK的包丢失了,哪怕尚未超过定时器的规定,都会当即从新发送,客户端收到后会标记为[TCP fast retransmission]。 2.7 TCP Retransmission 通常来讲一个数据包丢失后又没有足够的后续数据包来触发[TCP Fast Retransmission]的话,超过定时器的时限后就会触发超时重传,这时候客户端收到的数据包就会被标记[TCP Retransmission]。 2.8 TCP Zerowindow 在TCP数据包中,Info那一栏的中的”win=XX”中XX表明了接收窗口的大小,表明了这个信息的源地址的主机还有多少数据能够接收,或者说缓存区还有多少空间。当win=0的时候就会给相应ACK打上[TCP Zerowindow]的标志,告诉发送方我没有数据能够接收了。 2.9 TCP window full 当出现这个标志的时候证实发送方已发送的但尚未确认的数据包已经达到了接收方接收窗口的上限,也就是说这个时候发送方就会中止发送数据,而不是等接收方回复[TCP Zerowindow]后才中止发送。因此[TCP window full]针对的是发送方无法发送数据,而[TCP Zerowindow]指的是接收方无法接收数据,无论出现哪种状况,都会中断数据的传输,直到缓存区有新的空间存放数据。
3,数据包的标签从左到右依次为:
数据包编号---时间---源地址---目标地址---协议类型---长度---总长度---数据包序号---下一个数据包序号---ACK号---身份识别码---RTT---一些窗口参数class
4,再点击一个报文后,咱们在WireShark的下端能够看到更为详细的信息:分别对应OSI七层模型的,数据链路层、网络层、传输层、应用层