TcpDump
tcpdump抓包命令
网络报文的参数非常多,在实际抓包的时候都是采用条件过滤的选项来获取我们关心的报文。
1.基于IP地址过滤:host
tcpdump host 192.168.10.100
数据包的ip可以细分为源ip和目标ip两种:
# 根据源ip进行过滤
tcpdump -i eth2 src 192.168.10.100
# 更具目标ip进行过滤
tcpdump -i eth2 dst 192.168.10.200
2.基于网段进行过滤:net
若ip范围是一个网址,可以直接这样指定
tcpdump net 192.168.10.0/24
网段也可以再细分为源网段和目标网段
# 根据源网段进行过滤
tcpdump src net 192.168
# 根据目标网段进行过滤
tcpdump dst net 192.168
3.基于端口进行过滤:port
使用port就可以指定特定端口进行过滤
tcpdump port 8888
端口也可再细分为源端口,目标端口
# 根据源端口进行过滤
tcpdump src port 8088
# 根据目标端口进行过滤
tcpdump dst port 8088
# 通知过滤两个端口
tcpdump port 80 or port 8088
tcpdump port 80 or 8088
# 抓取一定范围内端口
tcpdump portrange 8000-8080
tcpdump src portrange 8000-8080
tcpdump dst portrange 8000-8080
# 针对一些常见协议的默认端口,也可以直接使用协议名,而不用具体的端口号
# 比如http == 80,https == 443
tcpdump tcp port http
4.基于协议进行过滤:proto
# 只想查看icmp的包
tcpdump icmp
# 只查看tcp的包
tcpdump tcp
5.将网络报文写入pcap文件
# 抓取eth0上的所有报文并写入.pcap文件中
tcpdump -i eth0 -w /data/test1.pcap
# 抓取eth0上的所有报文并写入.pcap文件,再后台运行
tcpdump -i eth0 -w /data/test1.pcap &
抓取结束后kill -2 tcpdmp-pid,取处pcap文件,放入wireshark中解析
6.过滤规则组合
# 抓一个来自10.5.2.3,发往任意主机的3389端口的包
tcpdump src 10.5.2.3 and dst port 3389
参考文章:
肝了三天,整了一份全网最全(中文) tcpdump 抓包指南_tcpdump抓broadcast-CSDN博客
Wireshark
Wireshark提示
1 . Tcp previous segment lost(tcp先前的分片丢失)
2 . Tcpacked lost segment(tcp应答丢失)
3 . Tcp window update(tcp窗口更新)
4 . Tcp dup ack(tcp重复应答)
5 . Tcp keep alive(tcp保持活动)
6 . Tcp retransmission(tcp重传)
7 . Tcp ACKed unseen segument (tcp看不见确认应答)
8 . tcp port numbers reused(tcp端口重复使用)
9 . tcp retransmission(tcp重传)
10 . tcp fast retransmission (tcp快速重传)
11 . TCP Previoussegment lost(发送方数据段丢失)
12 . tcp spurious retransmission(tcp伪重传)
Wireshark着色规则
Wireshark默认有一组着色规则,可以在Packet Details面板中展开包的帧部分,查看着色规则。
在View | Coloring Rules中,打开着色规则窗口,可以自己创建、删除、选中、去除。
Wireshark抓取TCP三次握手和四次挥手
三次握手建链
四次挥手断链
参考:
(图文并茂,权威最详细)Wireshark抓包分析 TCP三次握手/四次挥手详解-腾讯云开发者社区-腾讯云 (tencent.com)
Wireshark异常情况
1.[TCP Spurious Retransmission]
TCP虚假重传:
发送端认为发送的package已经丢失了,所以重传了,尽管此时接收端已经发送了对这些包的确认。
实际上并没有超时,但看起来超时了,导致虚假超时重传的原因有很多种:
1.对于部分移动网络,当网络发生切换时会导致网络延时突增
2.当网络的可用带宽突然变小时,网络rtt会出现徒增的情,这会导致虚假超时重传
3.网路丢包(原始和重传的包都有可能丢包)会导致虚假重传超时
2.[TCP Retransmission]
超时引发的数据重传
3.[TCP Dup ACK xxx#y]
重复应答seq=xxx的表示报文到哪个序号丢失,y表示第几次丢失。
当package发生乱序或者丢失时,接收端会收到一些seq比期望值更大的package。每收到一次这种package就ack一次期望值,用以提醒发送方。
4.[TCP Out-Of-Order]
次序颠倒:
出现这个信息的原因时因为数据在传输过程中顺序乱了,也就是后一个packet的seq会小于前一个package的seq+Len
5.[TCP Fast Retransmission]
快速重传:
当发送接收到3个或以上的[TCP dup Ack],就意识到之前发的包可能丢了,于是快速重传package
6.[TCP segment of a reassembled PDU]
在用Wireshark抓包的时候,经常会看到TCP segment of a reassembled PDU,字面意思是要重组的协议数据单元(PDU:Protocol Data Unit)的TCP段。比如由多个数据包组成的HTTP协议的应答包,如下
这里的分段是指:上层协议HTTP的应答由多个分段组成,每个分段都是TCP协议的。TCP本身没有分段的概念,它的sequence number和acknowledge number 是使TCP是基于流的协议的支撑,TCP segment of a reassembled PDU的出现是因为Wireshark分析了其上层的HTTP协议而给出的摘要,如果配置Wireshark不支持HTTP协议解析
那么,同样的数据包就会变成下面的样子
每个TCP数据包都是这条流中的自身完整的一部分,TCP segment应该表述为分段是TCP协议,而不应该是TCP分段。
7.[TCP Keep-Alive]
保持连接特性 socket 发起方发包
8.[TCP Keep-Alive ACK]
保持连接特性 socket 应答方发包
数据包详细信息
1.Frame
物理层数据帧概况
2.Ethernet II
数据链路层以太网帧头部信息
3.802.1Q Virtual LAN
4.Internet Protocol Version4
互联网层IP包头部信息
IP包头:
5.Transmission Control Protocol
传输层数据段头部信息,此处是TCP协议
TCP包头:
6.Hypertext Transfer Protocol
应用层信息,此处是HTTP协议
标签:重传,端口,tcp,TCP,wrieshark,tcpdump,port,调试 From: https://www.cnblogs.com/Wangzx000/p/16595636.html