Tcpdump抓包

Tcpdump抓包

参考链接https://linux.cn/article-10191-1.html

  • 首先先用 sudo tcpdump -D来列出可以抓包的网络接口,其中特

    殊接口-any可用于抓取所有活动的网络接口的数据包。

  • 可以用命令sudo tcpdump -i any对any接口进行抓包。(按ctrl c

停止抓包)。

  • 用命令sudo tcpdump -i any -c N

N为抓包的数量,用此命令可以用于限制tcpdump抓包的数量。

在上面实例中,tcpdump默认是将ip地址和端口号解析为对应的接口名以及服务协议名称。而在网络故障排查中,使用ip地址和端口号更便于分析问题;

  • 用命令sudo tcpdump -i any -c5 -nn

    用-n选项显示ip地址,-nn选项显示端口号

  • 理解抓取的报文

02:55:59.132801 IP 180.149.135.236.443 > 192.168.206.132.41000: Flags [P.], seq 2089184909:2089185211, ack 1391525977, win 64240, length 302

第一个字段02:55:59.132801 是该数据报文被抓取的系统本地时间戳。

IP是网络层协议类型。180.149.135.236.443是源ip地址和端口号,紧跟在其后的“192.168.206.132.41000”的是目的ip地址和其端口号。

在源 IP 和目的 IP 之后,可以看到是 TCP 报文标记段 Flags [P.]

接下来是该数据包中数据的序列号。对于抓取的第一个数据包,该字段值是一个绝对数字,后续包使用相对数值,以便更容易查询跟踪。例如此处为seq 2089184909:2089185211代表该数据包包含该数据流的第196到568字节。

接下来是 ack 值:ack 1391525977。该数据包是数据发送方,ack 值为 1391525977。在数据接收方,该字段代表数据流上的下一个预期字节数据,例如,该数据流中下一个数据包的 ack 值应该是 2089185211。

接下来字段是接收窗口大小 win 64240,它表示接收缓冲区中可用的字节数,后跟 TCP 选项如 MSS(最大段大小)或者窗口比例值。

最后,length 302 代表数据包有效载荷字节长度。这个长度和 seq 序列号中字节数值长度是不一样的。

posted @ 2021-02-10 10:48  小滢小滢考第一名  阅读(387)  评论(0编辑  收藏  举报