tcpdump(一):观察TCP连接的建立和关闭

tcpdump

tcpdump 是一款经典的网络抓包工具。常用选项:

  • -n 使用 IP 地址而不使用主机名
  • -i 指定要监听的网卡接口
  • port 指定要监听的端口号
环境准备

两个 ubuntu 系统
192.168.8.103 作为服务端,起了一个 redis进程,监听 3306 端口。
192.168.8.103 为客户端,用 telnet 连接服务端3306端口。

三次握手与四次挥手的逻辑在这里插入图片描述
使用 tcpdump 观察三次握手和四次挥手

在服务端运行如下命令:
sudo tcpdump -i ens33 port 6379 -n

客户端运行命令:
在这里插入图片描述

当客户端刚连上时,服务端会打印出前三条信息,即为tcp的三次握手。

当在客户端输入 quit后,主动断开连接,服务端会打印后面三条信息,即为tcp的四次挥手。

如下为服务端打印出的信息:

// 三次握手
12:32:16.894061 IP 192.168.8.102.58072 > 192.168.8.103.6379: Flags [S], seq 656925447, win 29200, options [mss 1460,sackOK,TS val 1768639089 ecr 0,nop,wscale 7], length 0
12:32:16.894104 IP 192.168.8.103.6379 > 192.168.8.102.58072: Flags [S.], seq 220558515, ack 656925448, win 28960, options [mss 1460,sackOK,TS val 1549994474 ecr 1768639089,nop,wscale 7], length 0
12:32:16.894702 IP 192.168.8.102.58072 > 192.168.8.103.6379: Flags [.], ack 1, win 229, options [nop,nop,TS val 1768639090 ecr 1549994474], length 0

// 四次挥手
12:32:20.190935 IP 192.168.8.102.58072 > 192.168.8.103.6379: Flags [F.], seq 1, ack 1, win 229, options [nop,nop,TS val 1768642385 ecr 1549994474], length 0
12:32:20.191577 IP 192.168.8.103.6379 > 192.168.8.102.58072: Flags [F.], seq 1, ack 2, win 227, options [nop,nop,TS val 1549997770 ecr 1768642385], length 0
12:32:20.192604 IP 192.168.8.102.58072 > 192.168.8.103.6379: Flags [.], ack 2, win 229, options [nop,nop,TS val 1768642387 ecr 1549997770], length 0

三次握手:

  1. 首先是客户端(192.168.8.102.58072)向服务端(192.168.8.103.6379)发送了一个包,Flags [S] ,即 SYN,即第一行
  2. 在第二行,服务端返回一个 Flags [S .],即 SYNACK
  3. 第三行,客户端发送一个确认包,Flags[ . ],即 ACK

当连接建立后,在客户端输入 quit,关闭连接,查看四次挥手的情况。

四次挥手:

  1. 第四行,第一次挥手。客户端主动发送 Flags [F . ]包,即 ACKFIN
  2. 第五行,第二次和第三次挥手。当客户端主动断开时,服务端可以将第二次挥手省略,只发送一个 Flags [ F .]包,即 ACKFIN
  3. 第六行,第四次挥手。客户端确认连接断开,发送 Flags [ . ],即 ACK
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值