码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • TCP/IP(二十一)TCP 实战抓包分析(五)TCP 第三次握手 ACK 丢包


    一  实验三:TCP 第三次握手 ACK 丢包

    第三次握手丢失了,会发生什么?

    注意: ACK 报文是'不会有重传'的,当 ACK '丢失'了,就由'对方重传'对应的报文

    ①  实验环境

    ②  模拟方式

    1. 1、 服务端配置'防火墙'
    2. iptables -t filter -I INPUT -s 172.25.2.157 -p tcp --tcp-flag ACK ACK -j DROP
    3. 备注: 'DROP'策略就是'不响应'
    4. iptables -t nat -D INPUT [$Num] --> "记得还原"
    5. 注意:'$Num' 指的是需要删除的num,删除规则后,下方的'其他规则'会'补位',num会发生变更
    6. ​
    7. +++++++++++++++++ "分割线" +++++++++++++++++
    8. 2、 客户端执行'tcpdump'命令抓包
    9. tcpdump -nni ens3 tcp and host 172.25.2.100 and port 80 -w tcp_third_ack.pcap

    ③  客户端发起请求

    1、客户端向'服务端'发起 telnet,因为 telnet 命令是会'发起 TCP 连接',所以用此命令做测试

    2、此时由于服务端'收不到第三次握手' 客户端的 ACK 包,所以一直处于 'SYN_RECV' 状态

     

    3、而客户端是'已完成 TCP 连接'建立,处于 'ESTABLISHED' 状态:

    4、继续过了 '1' 分钟后,观察发现'服务端'的 'TCP 连接'不见了

    5、过了 '20' 分钟,'客户端'依然还是处于 'ESTABLISHED' 状态

    6、接着,在刚才'客户端建立的 telnet 会话',输入 '123456' 字符,进行'发送'

    1. 7、持续 '好长'一段时间,客户端的 telnet 才'断开'连接
    2. 备注: 等待的时间'太长'

    ④  疑惑点

    ⑤  分析

    我们把'刚抓'的数据包,用 'Wireshark' 打开分析,显示的'时序图'如下:

    1. +++++++++++++ 上图的流程'文字'分析 +++++++++++++
    2. 关注点: '服务端'的 TCP 连接'主动'中止了,所以刚才处于'SYN_RECV 状态'的 TCP 连接'断开'了
    3. 备注: 这里指'重传次数达到',但是还是'没有'收到对应报文,重传方'主动'断开连接

    ⑥  思考1

    1. 1、TCP 第'一次'握手的 SYN 包超时重传最大次数是由 'tcp_syn_retries' 指定
    2. 2、TCP 第'二'次握手的 SYN、ACK 包超时重传最大次数是由 'tcp_synack_retries' 指定
    3. 3、思考1: 那 TCP 建立连接后的'数据包最大超时重传次数'是由'什么参数'指定呢?

     tcp_retries2 设置了 15 次,并不代表 TCP 超时重传了 15 次才会通知应用程序终止该 TCP 连接

    疑问: 那 TCP 的'数据报文'具体'重传'几次呢?

    每一轮的 RTO '增长'关系'如下'表格:

    ⑦   思考2

    思考: 那如果客户端'不发送'数据,什么时候才会断开处于 'ESTABLISHED' 状态的连接?

    备注: 这个时间是'有点长'的,所以如果我'抓包足够久','或许'能抓到'探测'报文

    TCP 保活机制 

    ⑧   小结

  • 相关阅读:
    Web服务器解析:从基础到高级的全面指南
    Mac下搭建Texstudio+Textlive(Mactex)
    隆云通烟雾传感器
    07.自定义指令传参小窍门
    [附源码]java毕业设计冷链物流管理系统论文
    leetcode_168 Excel表列名称
    1688商品详情API接口(item_get-获得1688商品详情接口),1688API接口系列
    思维方式-SMART、5W2H、SWOT、4P、六顶思考帽、金字塔原理
    SpringCloud之nacos
    【无标题】
  • 原文地址:https://blog.csdn.net/wzj_110/article/details/133915788
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号