tcpdump
来源:互联网 发布:淘宝满减退款漏洞 编辑:程序博客网 时间:2024/06/10 19:11
常用用法(这里用sudo因为当前帐号无权使用tcpdump,这里仅以一个tcp的例子来说明):sudo /usr/sbin/tcpdump tcp port 80 and host 172.23.1.69 -ieth1 -n
每一行中间都有这个包所携带的标志: S=SYN,发起连接标志 P=PUSH,传送数据标志 F=FIN,关闭连接标志 ack 表示确认包 RST=RESET,异常关闭连接 . 表示没有任何标志
常用参数:
Tcp/udp/arp等:指定协议类型。
(src/dst)Host:指定源端或者目的端ip。
(src/dst)port:指定源端或者目的端
-i:指定网卡。
-n:显示ip,而不是主机名。
-c:指定抓多少个包后退出。
-A:以ASCII方式显示包内容,这个选项对文本格式的协议包非常有用。
-s:指定抓包显示一行的宽度,-s0表示显示完整的包,经常和-A一起用。
-x/-xx/-X/-XX:以十六进制显示包内容,几个选项只有细微的差别,详见man手册。
上图示例的过程详解:
第一行:17:40:10这个时间,从172.17.66.27(client)的临时端口49376向172.23.1.66(server)的9500监听端口发起连接,client初始包序号为1350828479,滑动窗口大小为5840字节(滑动窗口即tcp接收缓冲区的大小,用于tcp拥塞控制),mss大小为1460(即可接收的最大包长度,通常为MTU减40字节,IP头和TCP头各20字节)。
第二行:server响应连接,同时带上第一个包的ack信息,为client端的初始包序号加1,1350828480,即server端下次等待接受这个包序号的包,用于tcp字节流的顺序控制。Server端的初始包序号为258050143,mss也是1460。
第三行:client再次确认,三次握手完成。
第四行:client发请求包,包长度91字节。
第五行:server响应ack。
第六行:server回包,包长度21字节。
第七行:client响应ack。
第八行:client发起关闭连接请求。
第九行:server响应ack,并且也发送FIN标志关闭。
第十行:客户端响应ack,关闭连接的四次握手完成。
通过这个来理解tcp协议也挺好的,连接关闭过程,字节流顺序控制,拥塞控制,tcp状态转换等。不过这里就不详述了。
- tcpdump
- TCPDUMP
- tcpdump
- tcpdump
- tcpdump
- TCPDUMP
- tcpdump
- tcpdump
- tcpdump
- tcpdump
- TCPDump
- Tcpdump
- TCPDUMP
- tcpdump
- tcpdump
- tcpdump
- tcpdump
- tcpdump
- 将窗口移动到前端, BringWindowToTop() 的问题
- 通过valgrind、gdb定位程序问题的几个方法小结
- spring http invoker 高级篇
- 在Solaris中使用NAT上网
- LDAP中CN,OU,DC的含义
- tcpdump
- 7月7果然名不虚传
- C++内存泄漏
- Damage :after normal block:
- Windows Mobile 6 SDK 中的 Cellular Emulator
- $.getJson方法与缓存问题
- 希望能忙起来___也希望老吴那个项目接下来好好做!
- 使用Axis编写webservice客户端
- ReSIProcate如何建立调试环境