一个简单的tcpdump抓包过程。主要抓包观察三次握手,四次挥手的数据包
有两个程序:客户端和服务器两个程序
服务器端的ip地址使用的是回环地址127.0.0.1 端口号使用的是6000
tcpdump -i 指定用哪个网卡等,dst+ip地址+端口指定抓取目的地址为此的包
一、启动服务器
二、客户端连接服务器,进行三次挥手
三、客户端连接后,来观察抓包信息
tcpdump输出 Flags[S],表示该 TCP 报文段包含 SYN 标志,因此它是一个同步报文段。如果 TCP报文段包含其他标志,则tcpdump也会将该标志的首字母显示在“Flags”后的方括号中。
seq是序号值。因为该同步报文段是从客户端IP地址和端口号到服务器IP地址和端口号这个传输方向上的第一个TCP报文段,所以这个序号值也就是此次通信过程中该传输方向的ISN值。并且,因为这是整个通信过程中的第一个TCP报文段,所以它没有针对对方发送来的TCP报文段的确认值(尚未收到任何对方发送来的 TCP 报文段)。
win 是接收通告窗口的大小。因为这是一个同步报文段,所以win值反映的是实际的接收通告窗口大小。
options是TCP选项,其具体内容列在方括号中。mss是发送端(客户端)通告的最大报文段长度。通过ifconfg命令查看回路接口的MTU为16436字节,因此可以预想到TCP报文段的MSS为16396(16436-40)字节。sackOK表示发送端支持并同意使用SACK选项TS val是发送端的时间戳。ecr 是时间戳回显应答。因为这是一次 TCP 通信的第一个 TCP报文段,所以它针对对方的时间戳的应答为0(尚未收到对方的时间戳)。紧接着的nop是一个空操作选项。wscale指出发送端使用的窗口扩大因子为6。
四、客户端先断开连接,此时观察tcpdump抓包信息
图中多了两条信息,分别是客户端发送FIN报文后,服务端返回了ACK报文,此时客户端处于FIN_WAIT2状态。
五、关闭服务器,在观察tcpdump抓包信息。
三次握手,四次挥手信息都在
tcpdump -i lo 选用回环地址,-i主要指定的是网卡,dst是客户端连接的目的地址是127.0.0.1