调试网络程序时,通常需要抓包分析。Linux下的tcpdump就很好。Ubuntu下默认已经安装。下面先举个实际的例子:比如我有一个C++程序监听本地端口8889, 另一个newlisp程序通过TCP和其通信。首先可以检查一下有几个网络接口。root@ www.linuxidc.com :~# tcpdump -D
1.eth0
2.any (Pseudo-device that captures on all interfaces)
3.lo由于是本机运行,都是通过lo接口,因此后面参数用-i 3.-i 3 代表监控的是网络接口lo。 现在启动tcpdumptcpdump -i 3 tcp port 8889 -v -XX-XX表示用16进制和ASCII文本显示网络包的数据。21:19:40.151304 IP (tos 0x0, ttl 64, id 37956, offset 0, flags [DF], proto TCP (6), length 56)
localhost.8889 > localhost.55131: Flags [P.], cksum 0xfe2c (incorrect -> 0x8dc0), seq 41:45, ack 117, win 342, options [nop,nop,TS val 728981 ecr 723761], length 4
0x0000: 0000 0000 0000 0000 0000 0000 0800 4500 ..............E.
0x0010: 0038 9444 4000 4006 a879 7f00 0001 7f00 .8.D@.@..y......
0x0020: 0001 22b9 d75b 5a53 9f4c d8c4 bded 8018 .."..[ZS.L......
0x0030: 0156 fe2c 0000 0101 080a 000b 1f95 000b .V.,............
0x0040: 0b31 0100 3355 首先显示了时间,然后可以看到数据传输方向,从C++->newlisp程序。还可以看到应用层传输的字节数目是4.最后可以看到0100 3355 就是发出来的4个字节。其他很多字节应该是TCP协议自身需要的数据。不做深究。相关阅读:
Linux下抓包工具tcpdump使用 http://www.linuxidc.com/Linux/2012-11/75080.htm最后给一个文章,演示了很多好的用法。 http://www.linuxidc.com/Linux/2013-06/86710p2.htm
Linux下重新生成xorg.conf在Solaris系统加磁盘、分区、挂载和开机自动挂载相关资讯 Tcpdump tcpdump抓包 Linux抓包
- 结合tcpdump命令对traceroute深入 (03月28日)
- tcpdump “osi_print_cksum()”内 (03/31/2015 16:53:49)
- tcpdump拒绝服务漏洞(CVE-2015- (03/24/2015 19:24:59)
| - Linux下Tmux与tcpdump使用总结 (09/08/2015 05:33:20)
- tcpdump拒绝服务漏洞(CVE-2015- (03/24/2015 19:25:34)
- tcpdump拒绝服务漏洞(CVE-2015- (03/24/2015 19:21:31)
|
本文评论 查看全部评论 (0)