tcpdump抓包理解(tcp三次握手+http请求+tcp四次挥手)

实验环境
192.168.192.128 虚拟机
47.99.57.252 阿里云服务器

192.168.192.128主机访问47.99.57.252的url
192.168.192.128主机安装tcpdump工具(yum安装)并通过终端获取47.99.57.252的html页面

tcpdump -i ens33 -S host 192.168.192.128 and 47.99.57.252

-i 指定网卡
-S 目的是获取ack绝对值(不加该参数ack相对值为1)
host < ip > and < ip > 截获两个ip对应主机之间的通信

在这里插入图片描述
在还未访问时可以发现双方没有数据包传输

在这里插入图片描述
再开一个192.168.192.128的终端ping47.99.57.252
在这里插入图片描述
tcpdump有数据包传输(ICMP应答报文)
说明实验环境正常

在这里插入图片描述
curl命令访问47.99.57.252的html文件并得到结果

在这里插入图片描述
看到tcpdump抓包情况
红色框为tcp连接三次握手
黄色框为http请求以及响应
蓝色框为tcp断开四次挥手

在这里插入图片描述

tcp三次握手

1.[S.]代表SYN包表示主动连接,生成seq为一个随机数x
2.生成一个seq=y 给客户端发送ack,ack的值为x+1
3.客户端给服务端发送ack,ack的值为y+1

http请求与响应

1.客户端发送http请求,此次请求为get方式
2.服务端发送ack确认
3.服务端返回数据包和状态码(因为时get方式,所以数据包和状态码在一个数据包内,如果是post请求会分别发送状态码和数据包)
4.客户端发送ack确认

tcp断开连接四次挥手

1.[F.]为FIN包表示主动断开,生成seq为n
2.服务端返回ack=n+1
3.服务端返回seq=m,ack=n+1
4.看客户端返回ack=m+1

总结

通过这个实验可以看出访问网页时tcp的大致流程
tcp连接——http请求——http响应——tcp断开
因为tcp是可靠传输协议并且面向连接,所以双方收到数据包后都会向对方传输ack确认包
http请求方式多数为get,post,响应状态码200为成功
tcp断开连接为四次握手,因为要保证数据传输全部完成才能断开

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值