这几天学了学wireshark,就用几到了几个语法,不着急学命令,先学抓包的思想,最近看得书《wireshark网络分析就这么简单》,因为对路由表新的理解从而爱上了wireshark,所以这篇标题就给了路由表。
语法
1.ip.addr eq 127.0.0.1 找源/目的ip是127.0.0.1的包 2.tcp.port找专门的端口号 3.arp icmp http 查找协议
路由引发的好玩的东西
添加一个路由信息,-host表示这个IP是一台主机。dev后面跟着是那块网卡
route add -host 192.168.8.130 dev wlp1s0
当我们ping的时候抓包会发现,最上面这条很明显是绕过了默认的网关,直接广播找目的地址。 这个小例子就引出了一个好玩的事情,大家都知道arp是局域网协议,毕竟不能广播arp消息,不然肯定会广播风暴啊。但如果配置一条假的路由,他就会觉得我们是在一个局域网中从而不走默认的网关了,从而用的是arp协议了。不走默认网关会遇到什么事情呢?两台电脑分别在两个网段,但这两段网络都是公司内网,却发现两个电脑ping不通,两台电脑干别的、ping别的电脑都正常,就是他俩不能ping通很有可能就是发出ping命令的那台主机有一个错误的路由表,让他以为是同一个子网了,而没有走默认的网关通信,我觉得日后解决这个问题是一个可以加薪的排查方案哈哈哈哈。
我们来模拟一下吧,添加一个假的主机名字
sudo route add -host 192.168.7.24 dev enp3s0f3u3
ping 192.168.7.24
过滤设置arp,不用wireshark抓包,怎么能真正理解这条小小ping背后的操作呢~这ARP都发了这么多也得不到一个回应,真是太可怜了 我们在试试没有假路由去ping一个地址的情况,发现并没有arp协议的参与,也就说直接去默认网关ping去了,证明了和我们想的一样。
对MSS新的理解
我们都知道握手会传win接收窗口大小,我们也知道TCP为了效率不会发送一个包就停下来等一个ACK(如果win太小是等的),但我却没有思考过一个问题,如果TCP可以发送多个包出去,那么怎么判断啊?随着看这本书我思考了这个问题并且解决了,就看这个MSS段,如果win是2920,也就是可以发两个包,一个包1460字节,TCP头部和IP头部不包含在上面。这也说明如果 win的窗口大小是不包含tcp和ip头部的字节大小(写这篇博客意识到的问题)
mss确定一个包可以是多大,win窗口大小是负责一次可以传多少包的,win=16000,假设mss是1000字节,也就是一次可以传16个包,相当于上图一次性发送16个1000seq给目的地。
seq递增规则
下一个seq = 当前seq+ len,ack = 对端发来的包 + len。 举个例子,继续抓自己的小网站,有空可以参观一下哈哈哈个人网站链接
我们看59包和61包,第一列就是包的序号。可以很明显的看到seq递增的规律。
|