• 三次握手wireshark抓包分析,成功握手和失败握手


    启动
    点击start出现下面的对话框

    wireshark是捕获机器上的 某一块网卡的网络包,当机器上有多块网卡的时候,需要选择一个网卡进行捕获操作。
    选择网卡
    >主页面上,直接点击选中后start
    >capture->interfaces,选择后start

    窗口介绍

    1. Display Filter(显示过滤器), 用于过滤已经捕获到的数据
       PS:过滤器分为显示过滤器和捕获过滤器。捕获过滤器用来过滤捕获的封包,以免捕获到过多的数据。
           捕获过滤器的设置方式,capture->capture filters
    2. Packet List Pane(封包列表), 显示捕获到的封包, 有源地址和目标地址,端口号。 颜色不同,代表不同的协议。
    3. Packet Details Pane(封包详细信息), 显示封包中的字段
        各行信息说明如下:
             Frame:  物理层的数据帧概况
              Ethernet II:  数据链路层以太网帧头部信息
              Internet Protocol Version 4:  互联网层IP包头部信息
             Transmission Control Protocol:  传输层T的数据段头部信息
              Hypertext Transfer Protocol:  应用层的信息
    4. Dissector Pane(16进制数据)
         16进制数据查看面板,也叫做解析器。这里显示的内容与“封包详细信息”中相同,只是改为以16进制的格式表述。
    5. Miscellanous(地址栏)

    三次握手抓包过程分析
       首先来一张三次握手经典图解

    下面使用wireshark实际分析三次握手过程
    1.打开wireshark,打开浏览器输入网址blog.csdn.net/hello_yz并访问;
    2.停止捕获 ,红方块。不停止的话后面一直抓一直抓......;
    3.在封包列表中可以找到下图数据:
      
    在图中可以看到,访问blog.csdn.net/hello_yz网站过程中,wireshark截获到了三次握手的三个数据包,第四个包才是http的。这也说明http确实是使用TCP建立连接的。

    下面进行三个数据包的详细分析。
    首先对 封包详细信息分析说明
    选中一条TCP协议数据包,它的封包详细信息如下图:

    第一次握手数据包,可以看到客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接。如下图:

    第二次握手数据包,可以看到服务器发回确认包, 标志位为 SYN,ACK. 将确认序号ACK设置为1.如下图:

    第三次握手数据包,可以看到客户端再次发送确认包(ACK) ,标志位为ACK,将sequence+1.如下图:

    经过上述三次握手过程,即建立了HTTP连接。

    当三次握手无法顺利进行时,也就不能建立连接。
    为了避免抓到过多冗余数据,可以进行捕获过滤器设置
    在host文件中添加如下数据便于测试
    102.54.94.97      www.oa.com
    捕获过滤器设置如下图:
    capture->capture filter->new

    Filter name自己随意取,host www.oa.com表示只捕获主机名为www.oa.com的数据包
    然后,capture->option,选好之后start

    抓到的数据包如下所示,可以看到在客户端发出第一次握手的请求后,没有得到服务器的应答,握手失败,无法建立连接。

  • 相关阅读:
    C++中数字与字符串之间的转换
    关于安卓启动eclipse错误:找不到元素‘d:devices'的声明
    linux相关解压命令
    泛型
    CRUD工程师---番外篇---反射
    CRUD工程师---设计模式
    AOP切面日志
    CRUD工程师---InnoDB存储引擎
    CRUD工程师---InnoDB存储引擎2
    CRUD工程师---InnoDB存储引擎4(表)
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3192083.html
Copyright © 2020-2023  润新知