用到的Tcpdump
开发中,要定位具体问题,特别是网络问题的时候,多数是要晋出tcpdump
,遗憾的是我略懂皮毛,有必要深入一些。
简单说下我常用的 TcpDump的方法
1 | tcpdump -i eth0 -Xxn port 80 -s 0 -c 1024 |
如果仅仅是看manual 多数时候还是会忘记,好记性不如烂笔头,上述的选项是我认为很有用的
1 | -i 指定网卡 |
如果希望将抓包过程中保留下来,可以在上述命令尾部加上 -w trace.cap
这种格式的文件,文本编辑器是无法理解,需要特殊的软件才能回复,比如 wireshark
Tcpdump 中的 flag 有必要提下:
- PSH 代表要求发送立即发送缓冲区内的其他对应数据包,无需缓冲区满才发送
- RST 如果RST=1表示连接马上结束,无需等待终止确认手续,发送端已经断线
- SYNC 表示主动连接到对方,建立连接
- FIN 表示传送结束,发送方等待对方响应
通过 wireshark 可以再现所谓的三次握手和四次挥手过程。