zoukankan      html  css  js  c++  java
  • Wireshark数据抓包教程之认识捕获分析数据包

    Wireshark数据抓包教程之认识捕获分析数据包

    认识Wireshark捕获数据包

    当我们对Wireshark主窗口各部分作用了解了,学会捕获数据了,接下来就该去认识这些捕获的数据包了。Wireshark将从网络中捕获到的二进制数据按照不同的协议包结构规范,显示在Packet Details面板中。为了帮助用户能够清楚的分析数据,本节将介绍识别数据包的方法。

    在Wireshark中关于数据包的叫法有三个术语,分别是帧、包、段。下面通过分析一个数据包,来介绍这三个术语。在Wireshark中捕获的一个数据包,如图1.45所示。每个帧中的内容展开后,与图1.48显示的信息类似。


    图1.48  数据包详细信息

    从该界面可以看出显示了五行信息,默认这些信息是没有被展开的。各行信息如下所示:

    • q  Frame:物理层的数据帧概况。

    • q  Ethernet II:数据链路层以太网帧头部信息。

    • q  Internet Protocol Version 4:互联网层IP包头部信息。

    • q  Transmission Control Protocol:传输层的数据段头部信息,此处是TCP协议。

    • q  Hypertext Transfer Protocol:应用层的信息,此处是HTTP协议。

    下面分别介绍下在图1.48中,帧、包和段内展开的内容。如下所示:

    (1物理层的数据帧概况

    • Frame 5: 268 bytes on wire (2144 bits), 268 bytes captured (2144 bits) on interface 0               #5号帧,线路268字节,实际捕获268字节

    •     Interface id: 0                                                                                                  #接口id

    •     Encapsulation type: Ethernet (1)                                                                          #封装类型

    •     Arrival Time: Jun 11, 2015 05:12:18.469086000 中国标准时间          #捕获日期和时间

    •     [Time shift for this packet: 0.000000000 seconds]

    •     Epoch Time: 1402449138.469086000 seconds

    •     [Time delta from previous captured frame: 0.025257000 seconds]   #此包与前一包的时间间隔

    •     [Time since reference or first frame: 0.537138000 seconds]              #此包与第一帧的时间间隔

    •     Frame Number: 5                                                                                          #帧序号

    •     Frame Length: 268 bytes (2144 bits)                                                         #帧长度

    •     Capture Length: 268 bytes (2144 bits)                                                      #捕获长度

    •     [Frame is marked: False]                                                                              #此帧是否做了标记:否

    •     [Frame is ignored: False]                                                                              #此帧是否被忽略:否

    •     [Protocols in frame: eth:ip:tcp:http]                                                             #帧内封装的协议层次结构

    •     [Number of per-protocol-data: 2]                                                                          #

    •     [Hypertext Transfer Protocol, key 0]

    •     [Transmission Control Protocol, key 0]

    •     [Coloring Rule Name: HTTP]                                                                       #着色标记的协议名称

    • [Coloring Rule String: http || tcp.port == 80]                                                        #着色规则显示的字符串

    (2数据链路层以太网帧头部信息

    • Ethernet II, Src: Giga-Byt_c8:4c:89 (1c:6f:65:c8:4c:89), Dst: Tp-LinkT_f9:3c:c0 (6c:e8:73:f9:3c:c0)

    • Destination: Tp-LinkT_f9:3c:c0 (6c:e8:73:f9:3c:c0)                                         #目标MAC地址

    •     Source: Giga-Byt_c8:4c:89 (1c:6f:65:c8:4c:89)                                        #源MAC地址

    •     Type: IP (0x0800)

    (3互联网层IP包头部信息

    • Internet Protocol Version 4, Src: 192.168.0.104 (192.168.0.104), Dst: 61.182.140.146 (61.182.140.146)

    • Version: 4                                                                                                                          #互联网协议IPv4

    •     Header length: 20 bytes                                                                               #IP包头部长度

    •     Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00: Not-ECT (Not ECN-Capable Transport))                                                                                                                                   #差分服务字段

    •     Total Length: 254                                                                                           #IP包的总长度

    •     Identification: 0x5bb5 (23477)                                                                    #标志字段

    •     Flags: 0x02 (Don't Fragment)                                                                      #标记字段

    •     Fragment offset: 0                                                                                         #分的偏移量

    •     Time to live: 64                                                                                               #生存期TTL

    •     Protocol: TCP (6)                                                                                            #此包内封装的上层协议为TCP

    •     Header checksum: 0x52ec [validation disabled]                                              #头部数据的校验和

    •     Source: 192.168.0.104 (192.168.0.104)                                                   #源IP地址

    •     Destination: 61.182.140.146 (61.182.140.146)                                       #目标IP地址

    (4传输层TCP数据段头部信息

    • Transmission Control Protocol, Src Port: 51833 (51833), Dst Port: http (80), Seq: 1, Ack: 1, Len: 214

    • Source port: 51833 (51833)                                                                                 #源端口号

    •     Destination port: http (80)                                                                             #目标端口号

    •     Sequence number: 1    (relative sequence number)                                   #序列号(相对序列号)

    •     [Next sequence number: 215    (relative sequence number)]           #下一个序列号

    •     Acknowledgment number: 1    (relative ack number)                         #确认序列号

    •     Header length: 20 bytes                                                                               #头部长度

    •     Flags: 0x018 (PSH, ACK)                                                                             #TCP标记字段

    •     Window size value: 64800                                                                                    #流量控制的窗口大小

    •     Checksum: 0x677e [validation disabled]                                                  #TCP数据段的校验和

    Wireshark分析数据包

    在Wireshark中的数据包都可以称为是网络数据。每个网络都有许多不同的应用程序和不同的网络涉及。但是一些常见的包中,通常都会包括一些登录程序和网络浏览会话。本节以访问Web浏览器为例将介绍分析网络数据的方法。

    通常在访问Web服务器过程中,会涉及到DNS、TCP、HTTP三种协议。由于此过程中来回发送的数据包较为复杂,所以下面将介绍分析Web浏览数据。

    【实例1-3】分析访问Web浏览数据。具体操作步骤如下所示:

    (1捕获访问www.qq.com网站的数据包,并保存该文件名为http-wireshar.pcapng。本例中捕获的文件如图1.49所示。


    图1.49  http-wireshar.pcapng捕获文件

    (2接下来通过该捕获文件中的数据,分析访问Web的整个过程。在该捕获过程中,将包含DNS请求、响应、TCP三次握手等数据。如图1.50所示,在该界面显示了在访问网站之间DNS解析过程。


    图1.50  DNS解析

    (3在该界面31帧,是DNS将www.qq.com解析为一个IP地址的数据包(被称为一个“A”记录)。32帧表示返回一个与主机名相关的IP地址的DNS响应包。如果客户端支持IPv4和IPv6,在该界面将会看到查找一个IPv6地址(被称为“AAAA”记录)。此时,DNS服务器将响应一个IPv6地址或混杂的信息。

    说明:31帧是客户端请求百度,通过DNS服务器解析IP地址的过程。标识为“A”记录。

    • 32帧是DNS服务器回应客户端请求的过程。标识为response.

    (4如图1.51所示,在该界面看客户端和服务器之间TCP三次握手(33、34、35帧)和客户端请求的GET主页面(36帧)。然后服务器收到请求(37帧)并发送响应包(38帧)。

    说明:33帧是客户端向服务器发送TCP请求建立连接。标识为SYN。

    • 34帧是服务器得到请求后向客户端回应确认包的过程。标识为SYN,ACK。

    • 35帧是客户端回应服务器发送确认包的过程,将于服务器建立连接。标识为ACK。

    • 36帧是客户端向服务器发送HTTP请求内容的过程。标识为GET。

    • 37帧是服务器相应客户端请求的过程,收到请求。标识为ACK。

    • 38帧是服务器向客户端回应内容的过程。


    图1.51  TCP三次握手

    (5当客户端从相同的服务器上再次请求访问另一个链接时,将会再次看到一个GET数据包(1909帧),如图1.52所示。


    图1.52  请求另一个元素

    此外,如果链接另一个Web站点时,客户端将再次对下一个站点进行DNS查询(156、157帧),TCP三次握手(158、159、160帧)。如图1.53所示。


    图1.53  请求下一个站点

  • 相关阅读:
    数据结构-树与二叉树-思维导图
    The last packet successfully received from the server was 2,272 milliseconds ago. The last packet sent successfully to the server was 2,258 milliseconds ago.
    idea连接mysql报错Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property
    redis学习笔记
    AJAX校验注册用户名是否存在
    AJAX学习笔记
    JSON学习笔记
    JQuery基础知识学习笔记
    Filter、Listener学习笔记
    三层架构学习笔记
  • 原文地址:https://www.cnblogs.com/yzycoder/p/6902334.html
Copyright © 2011-2022 走看看