I.IP 协议分析

概述:利用Wireshark 工具抓取网络数据,分析IP 数据报中各个字段的内容,分析IP 数据报的分片

过程与细节

  1. 抓取数据包

    • 启动wiresharkimage-20220423124257462

    • 启动pingplotter,输入gaia.cs.umass.edu地址后,# of times to Trace设置为3(新版pingplotter设置不了,只能手动),把数据包的大小调整为56bytes

      image-20220423130035554
      image-20220424131900910

    • 同样,抓取2000字节的数据包
      image-20220423130245945

    • 抓取3500字节的数据包
      image-20220423130639223

  2. 分析抓取的数据包并回答相关问题
    当时问了我一个问题,为什么IP分片发送的包是1514个字节?

    因为网络层MTU的大小是1500字节,也就是规定了网络层的ip头加上ip报文的内容总共是1500字节,传递到链路层的时候,还要加上14字节的帧头。所有最大传输就是1514字节

  3. IP 分片

    • 单击Time 栏,按时间先后顺序排列数据报,找到在pingplotter 中将分组大小改为2000 字节后的第一个ICMP Echo Request 报文
      image-20220424150152682

    • 分析IP 数据报分片信息
      看下面的分片的抓包,ipv4就显示了,当前最后分片的包,这个包显示的主要信息有:该ICMP包分为了2块,一块是0到1479,另一块是1480到1979,也就是当前的包。

      image-20220501134609112

抓包的时候,发现了ICMP包和IPv4包,它们的关系如下。

互联网在数据传输时,必定会发生差错,有些差错是不可知的,但有些却是可以知道的。TCP/IP协议包含一个专门的用于发送差错报文的协议,这一协议即为ICMP(Internet控制报文协议)。它是TCP/IP协议族的一个IP层子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。
一个标准的IP协议中,ICMP是不可少的。ICMP的主要功能包括:确认IP包是否成功送达目标地址,通知在发送过程当中IP包被废弃的具体原因,改善网络设置等。同时ICMP的这种通知消息会使用IP进行发送,收到ICMP包的主机会分解ICMP的首部

II.Ethernet&ARP 协议分析

概述:

抓取并分析Ethernet 数据帧的内容,观察ARP 协议在现实网络中如何工作

过程和细节:

  1. 抓取Ethernet 数据帧并进行分析
    使用wireshark抓包链接http://gaia.cs.umass.edu/wireshark-labs/HTTP-ethereal-lab-file3.html下的内容,通过ip过滤

    下面分析包含了 HTTP GET 数据的 Ethernet frame 的内容

    image-20220424134525465

    Ethernet II, Src: Chongqin_86:10:5f (ec:5c:68:86:10:5f), Dst: NewH3CTe_d4:70:02 (44:1a:fa:d4:70:02)
        Destination: NewH3CTe_d4:70:02 (44:1a:fa:d4:70:02)
        Source: Chongqin_86:10:5f (ec:5c:68:86:10:5f)
        Type: IPv4 (0x0800)
    

    由上图可知,我所在主机的以太网地址是 Chongqin_86:10:5f,即ec:5c:68:86:10:5f。以太网 Frame 中目标主机48位地址是:NewH3CTe_d4:70:02(44:1a:fa:d4:70:02)。它不是gaia.cs.umass.edu服务器的以太网地址,而是路由器的以太网地址。然后我们可以看到 Frame 头部 Type 字段的值为IPv4(0x0800),字段的值的含义是帧类型/长度,当该字段的值大于或等于 0x0800 时,表示上层数据使用的协议类型,8 表示以太网。

  2. ARP 协议分析

    • Windows 操作系统进入 CMD 下,使用 ARP 命令,分析 ARPcache的内容
      首先查看arp命令
      image-20220424141008052

      下面显示ARP表

      image-20220424140751745

    • 键入 arp -d *命令,清除 ARPcache内容
      image-20220424141240363
      发现权限需要提升,就以管理员身份运行cmd,重新尝试
      image-20220424141423697

    • 打开浏览器,打开wireshark,抓取链接http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-lab-file3.html下面的请求,使用arp过滤

      image-20220424141603451

      使用eth.addr eqeth.addr eq来过滤对应的mac地址

      image-20220424143031810

      image-20220424143517438

    • 分析其中的内容
      很显然,里面的arp抓包的内容,包含了链路层的一些具体信息,主要的在以下

      image-20220424144405734
      很显然,里面的arp抓包的内容,包含了链路层的一些具体信息,主要的在以下
      image-20220424144405734

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐