• TCP/IP(十八)TCP 实战抓包分析(二)TCP 三次握手和四次挥手


    一  TCP三次握手和四次挥手

    1. 说明: 本文'三次握手和四次挥手' 无异常情况下的'分析'
    2. 目标: 通过'抓取和分析' HTTP 协议网络包,理解 TCP '三次'握手和'四次'挥手的工作'原理'

    ①  抓包和测试准备

    1. 1、 服务端'事先'执行 'tcpdump' 抓包 --> '172.25.2.100'
    2. tcpdump -i br0 tcp and host 172.25.2.157 and port 80 -w http.pcap
    3. 注意: 待'curl 请求'后,按下 'Ctrl+C' 停止 tcpdump 才能生成'http.pcap'文件
    4. 2、 客户端执行'curl'抓包 --> '172.25.2.157'
    5. curl nginx.wzj.com/ok
    6. 备注: 'curl''tcpdump'用不同主机'分析'

    3、使用 Wireshark 打开'http.pcap'后,你就可以在 Wireshark 中,看到'如下'的界面: 

     

    遗留: 留下一个'悬念',为什么是'三次'挥手,而不是'四次挥手'呢?

    ②  时序图的方式显示数据包交互的过程

    1. 1、从最上面'菜单栏'中 --> 点击 '统计 Statistics' -> '流量图 Flow Graph'
    2. 2、然后,在弹出的界面中的'流量类型' 选择 'TCP Flows',可以看到整个过程中'TCP 流'的执行过程
    3. 建议: 最好'不要'使用同一个机器'否则'看不到具体的'现象'

    ③  思考:为什么三次握手连接过程的 Seq 是 0 ?

    1. 细节: 在任意一个'数据包'右击
    2. 协议首选项: 'Protocol Preferences'

     

    取消'后',Seq 显示的就是'真实'值了:

     

     

    1. tcpdump -S : 使用'绝对'序列号,而'不是'相对序列号
    2. 备注:前面说过 ack '有时' 就会是'相对'序列号,可以使用'-S'来使用'绝对'序列号

    ④  回顾 TCP 三次握手和四次挥手的流程

    1. 备注: 本文并'没有'对每个'TCP'包的字段信息进行'拆解'讲解
    2. 个人建议: 对'tcp'包拆解了解每个'字段'的含义

    ⑤  思考:为什么抓到的 TCP 挥手是三次,而不是书上说的四次

    TCP 延迟确认机制

  • 相关阅读:
    Go : golang发布三方包流程简介
    记一次Netty堆外内存溢出OutOfDirectMemoryError
    进程切换及一些常见概念(面试必问)
    我国数据泄露事件超5100万起,全球排名第三
    第一章Hadoop概述
    Nacos2.0.3集群搭建
    【C++--类和对象】开篇
    【雕爷学编程】Arduino动手做(105)---压电陶瓷振动模块
    Tauri+Vite+Vue3创建项目步骤
    新时代背景下智慧城市的建设与5G技术有何关联
  • 原文地址:https://blog.csdn.net/wzj_110/article/details/133881429