wireshark 使用技巧:
1、Linux 在使用SSH进行登录时,有时会有约10秒种的停顿时间,
使用wireshark探知原因:
在SSH服务器收到SSH登录请求时,会去查询客户端IP地址所对应的DNS的PTR记录。一共尝试2次,每次约5秒种时间,若尝试失败,则不再尝试。
在SSH配置文件 /etc/ssh/ssd_config 中,有一句:
UseDNS yes
在这里起了这样的作用,若改成no 则不会尝试2次。
2、wireshark 性能三板斧
Statistics/Summary
Analyze/Expert infos
Statistics/TCP streamGraph/TCP Sequence Graph(stevens)
3、wireshark 的提示信息
1、packet size limited during capture
表示 包没有被抓全,抓包大小,有时会被限制,如tcpdump 可限定抓包的字节大小数
tcpdump -i eth0 -s 1000 -w /tmp/tcpdump.cap
2、TCP previous segment not captured
表示TCP包的本应该带有某个序列号的包没有抓到。
或是真丢包,或是抓包工具漏了
3、TCP ACKed unseen segment
TCP 的ACK包没抓到。
4、TCP out of order
TCP 序号乱序了
5、TCP dup Ack
重复回复。
6、TCP fast retransmission
发送方,发现有重传,也就是意味着之前包丢了,于是快重传包
7、TCP retransmission
发送方,到了时间还没有收到确认
8、TCP zerowindows
窗口大小为0 表示服务端缓冲区已满,客户端不能再接受数据
9、TCP windows Full
发送方,暂时没办法发送数据。
10、TCP segment of a reassembled PDU
11、Continuation to #
12、Time to live exceeded ( Fragment reassembly time exceeded)
分片重组由于某些原因没能重组成功。
有时,会因为UDP无法确认传送,而由UDP上的应用层协议来重传它。
4、UDP TCP 的区别:
UDP与TCP 两位搬运工 前者的风格就是盲目苦干,搬运过程丢了东西也不管; 而后者却小心翼翼,丢了多小的东西都要回去捡。
于是语音与视频适合UDP
例如: “ 这是我的头像,牛吧 ” 如果因为延迟 则变成了“这是我的头,像牛吧” 哈哈,(回复你一句:“很像”)
5、关于数据包的 MTU
ping 192.168.0.1 -l 1473 -f -n 1
这样,ICMP 头8字节,IP头20字节 ,总长,1473+20+8=1501字节。
而 -f -n 则设置 了DF 字段,也就是(Don't Fragment不要分段)
这样的包,对于MTU=1500的路由来说,就会被丢弃。
但如果不设置DF ,则对于MTU=1500的路由来说,就会被分段。
packet needs to be fragmented but DF set.
Windows下检测网关mtu值的命令如下
ping -l <size> -f <gateway>
linux下检测网关mtu值的命令
ping -s <size> -M do <gateway>
windows 下:
可查看MTU netsh interface ipv4 show subinterfaces
可修改MTU netsh interface ipv4 set subinterface 本地连接 mtu=1400 store=persistent
Linux 下:
可查看MTU
ifconfig <name>
可修改MTU
ifconfig eth0 mtu 1400