tcpdump的输出分析

本文通过实例分析了tcpdump的使用,展示了如何监听特定端口的TCP连接,并解释了tcpdump输出的详细信息,包括TCP三次握手、数据传输和关闭连接的过程。通过tcpdump的输出,可以深入理解TCP连接的各个环节。

以前在TCP卷一里,看到过tcpdump的使用。当时,没太在意,尤其它输出的格式,因为不熟悉,更不愿去用它。这段时间的开发,用socket比较多。在遇到问题时,仅从socket api函数的返回值,往往看不出问题的实质。

后来,经laser提醒,才知道tcpdump的强大。这里不想介绍tcpdump的选项,我只想举一些实例,以便给自己作个笔记。

使用以下命令,监听15001端口的tcp连接,-X 表示以16进制显示报文,-s 0 表示显示整个ip报的内容(默认为68bytes),但如果太长的话,tcpdump的缓冲区可能不够用而引发丢失报文:

$ tcpdump 'port 15001 and tcp' -X -s 0

例如,使用telnet发起连接:
yunkai@lsyp1002:~/tmp $ telnet 10.111.112.7 15001
Trying 10.111.112.7...
Connected to 10.111.112.7 (10.111.112.7).
Escape character is '^]'.
$W2,53,100,200,057181932602,13656645563,85022088,#
$X2,14,100,1,#^]
telnet> quit

Connection closed. 

tcpdump的输出如下:

root@lsyp1002:~ # /usr/sbin/tcpdump 'port 15001 and tcp' -X -s 0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
13:37:07.448992 IP lsyp1002.xxx.xxxx.com.58939 > 10.111.112.7.15001: S 3188757698:3188757698(0) win 5840 <mss 1460,sackOK,timestamp 870140741 0,nop,wscale 7>
    0x0000:  4510 003c df87 4000 4006 e10b cbd1 fe80  E..<..@.@.......
    0x0010:  3cbf 7307 e63b 3a99 be10 94c2 0000 0000  <.s..;:.........
    0x0020:  a002 16d0 c44c 0000 0204 05b4 0402 080a  .....L..........
    0x0030:  33dd 4b45 0000 0000 0103 0307            3.KE........

  • client(lsyp1002.xxx.xxxx.com.58939)向server(10.111.112.7.15001)发送一个SYN

 13:37:07.486678 IP 10.111.112.7.15001 > lsyp1002.xxx.xxxx.com.58939: S 1646598539:1646598539(0) ack 3188757699

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值