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


    一  TCP 三次握手异常情况实战分析

    说明: 本文是'TCP 三次握手异常'系列之'一'

    ①   异常场景

    1. 接下里我用'三个实验案例',带大家一起探究探究这'三种异常'
    2. 关注: 如何'刻意'练习模拟'上述'场景 以及 'wireshark'现象

    ②  实验环境

    ③  实验一:TCP 第一次握手 SYN 丢包

    1. 思考: 如何模拟 TCP '第一次'握手 'SYN 丢包'的情况? --> "采用2"
    2. 方式1: 拔掉'服务器'的网线后,'立刻'在客户端执行 curl 命令
    3. 备注: 不建议因为'抓不住'时机,可能导致网络就'不通'
    4. 方式2: 在'服务器'的防火墙,屏蔽'客户端' TCP 报文中标志位是 'SYN' 的包

    删除iptables中的规则 

    1. 1、看 iptables 中的规则,找到'要删除的规则'的'编号':
    2. iptables -t '表名' -L -n --line-numbers
    3. 2、删除'指定编号'的'规则':
    4. iptables -t [table] -D [chain] [rule-number]

      iptables扩展匹配条件之 --tcp-flags

    1. 说明: 下面的三种'等价'命令匹配到的报文是'第一次握手'的报文 --> 采用'最后一个'
    2. iptables -I INPUT -s 172.25.2.157 -m tcp -p tcp --tcp-flag ALL SYN -j DROP
    3. iptables -I INPUT -s 172.25.2.157 -m tcp -p tcp --tcp-flag \
    4. SYN,ACK,FIN,RST,URG,PSH SYN -j DROP
    5. iptables -t filter -I INPUT -p tcp -s 172.25.2.157 -m tcp --syn -j DROP
    6. 备注: filter表是iptables的'默认表',上面省略了'-t filter'

    1. 2、在客户端执行 'curl -kv nginx.wzj.com' 命令
    2. 备注: 加上'-kv'参数刻意看到'DNS解析'、'SSL握手'、'HTTP请求'详细过程
    3. 备注: 过了'一会 [大约127 s]',curl 返回了'超时连接'的'错误'
    4. 分析: 从 date 返回的时间,可以发现在超时'127 s'的时间后,curl '返回'了'错误'

    1. 3、其间在'客户端'的 tcpdump 抓包
    2. tcpdump -nni any tcp and host 172.25.2.100

     

    1. tcpdump -nni any tcp and host 172.25.2.100 -w tcp_sys_timeout.pcap
    2. 接着: 把 'tcp_sys_timeout.pcap 文件'用 'Wireshark' 打开'分析',显示'如下图':
    3. 备注: 'TCP Retransmission' --> 'tcp 重传' --> wireshark '黑色背景,红色字体'

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

    /proc/sys/net/ipv4/tcp_syn_retries

     

    小结: 'tcp_syn_retries 为 5'的 场景,关抓如下的'原理图'

    RTT 和 RTO 

    1. RTT(Round Trip Time):一个连接的往返时间,即数据'发送'时刻到接收到'确认'的时刻的'差值'
    2. RTO(Retransmission Time Out):重传超时时间,即从数据发送时刻算起,超过这个时间便执行重传
    3. RTT和RTO 的关系是:由于网络波动的'不确定性',每个RTT都是动态变化,所以RTO也随着RTT动态变化
  • 相关阅读:
    python 视频硬字幕去除 内嵌字幕去除工具 vsr
    MATLAB神经网络编程(五)——BP神经网络的模型结构与学习规则
    React 入门:key 的作用及使用方法技巧
    第一位女性商业程序员玛丽库姆斯去世,享年 93 岁
    ArrayList集合2
    find /root -type f -mtime +30 -exec rm {} ;的含义
    HarmonyOS线上Codelabs系列挑战赛第二期:调用三方库,制作酷炫的视觉效果
    hadoop组成
    如何准确高效的对电商数据进行分析
    Jvm基础面试题
  • 原文地址:https://blog.csdn.net/wzj_110/article/details/133911926
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号