网络层协议IP/ICMP/DHCP/ARP/TCP数据的捕获与分析

本实验报告详细介绍了如何使用Wireshark捕获与分析网络层的IP, ICMP, DHCP, ARP及TCP协议数据。实验涉及设置过滤器、理解协议头字段、校验和验证、分段原理以及连接建立与释放过程。通过实验,对TCP/IP协议栈关键协议有了深入理解。" 40391857,1116714,"C# LINQ 聚合操作详解:Sum, Average, Min, Max, Aggregate

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

计算机网络实验二实验报告

网络层协议数据的捕获与分析

实验任务、内容、环境

实验任务

本次实验主要包含下列内容:

  • 使用Wireshark 软件捕获在使用ping 命令时产生的ICMP 消息;
  • 分析网络层IP 包头格式,理解各字段的作用,对于分段和校验和进行验证;
  • 使用Wireshark 软件捕获在使用ARP 消息,分析其消息格式,理解其工作原理;
  • 使用Wireshark 捕获DHCP 消息,分析其消息序列,理解DHCP 的功能和操作原理;
  • 使用Wireshark 捕获TCP 消息,分析TCP 报文段头格式,理解连接建立和释放的原理,差错控制原理、序号和窗口管理的原理。

通过本实验学生可以深入理解分层体系结构,理解和掌握TCP/IP 协议栈的代表协议——IP、TCP、
UDP、ICMP、ARP 和DHCP 协议的要点。

实验环境

本次实验在Windows10平台下,使用Wireshark-win64-2.2.7进行协议的捕获与分析。

实验步骤

  1. CMD使用ipconfig\all命令,获取本机ipmac地址。本机情况如下:

    以太网适配器 以太网:

    连接特定的 DNS 后缀 … … . :
    描述… … … … … : Realtek PCIe GBE Family Controller
    物理地址… … … … . : 50-7B-9D-78-A7-84
    DHCP 已启用 … … … . . : 是
    自动配置已启用… … … . : 是
    IPv6 地址 … … … … : 2001:da8:215:81f4:f859:d651:c5dd:16cb(首选)
    临时 IPv6 地址… … … . : 2001:da8:215:81f4:8889:7f1f:8074:748a(受到抨击)
    临时 IPv6 地址… … … . : 2001:da8:215:81f4:acf4:c8d7:cce0:6944(首选)
    本地链接 IPv6 地址… … . . : fe80::f859:d651:c5dd:16cb%10(首选)
    IPv4 地址 … … … … : 10.120.10.49(首选)
    子网掩码 … … … … : 255.255.255.192
    获得租约的时间 … … … : 2017年6月6日 20:50:39
    租约过期的时间 … … … : 2017年6月8日 20:50:46
    默认网关… … … … . : fe80::761f:4aff:fe28:4b8b%10
    默认网关… … … … . : 10.120.10.1
    DHCP 服务器 … … … . . : 10.120.10.1
    DHCPv6 IAID … … … . . : 55606173
    DHCPv6 客户端 DUID … … . : 00-01-00-01-20-47-F1-BC-50-7B-9D-78-A7-84
    DNS 服务器 … … … . . : 10.3.9.4
    DNS 服务器 … … … . . : 10.3.9.5
    TCPIP 上的 NetBIOS … … . : 已启用

  2. 下载wireshark并进行设置。

    启动Wireshark,设置捕获接口(Interface)为本机网卡,选中混杂模式(promiscuous mode
    捕获选项,设置合适的捕获过滤器(Capture Filter):

    • 对于 ping 命令,设置过滤器为icmp
    • 对于 DHCP 消息,设置过滤器为udp port 67
    • 对于 ARP 消息,设置过滤器为arp
    • 对于通过网页浏览应用来捕获TCP消息,设置过滤器为tcp port 80

    开始捕获。

  3. 捕获数据。

    • 捕获ICMP协议数据
      • 运行ping命令(例如:ping 192.168.0.1),远程主机地址可以是本机地址、网关路由器地址,也可以是域名。将捕获到的数据保存为文件。
      • 使用Windowsping命令的-l选项(例如:ping -l 8000 192.168.0.1),生成大于8000字节的IP包并发送,捕获后分析其分段传输的包结构。
    • 捕获 DHCP 协议数据
      • 使用 ipconfig 命令释放计算机的IP 地址(ipconfig -release);
      • 使用 ipconfig 命令重新申请IP 地址(ipconfig -renew)。
      • 此时 wireshark 窗口中可以捕获到完整的DHCP 地址分配的流程,将捕获到的数据保存为文件。
    • 捕获ARP协议数据
      • 采用与上一段相同的方法释放IP地址并重新申请,在wireshark窗口中可以捕获到ARP请求和响应消息,保存为文件。
    • 捕获TCP协议数据
      • 打开浏览器,输入一个页面内容较简单的网页的URL,如www.baidu.com;网页全部显示后关闭浏览器。
  4. 进行协议数据的分析

IP协议分析

这里写图片描述

这里写图片描述

  1. 找出IP包头个字段并分析

    IP 包头分析:对于采用ping-l 命令选项捕获的ICMP 消息,对承载ICMP消息的IP 包进行分析。

    取了某次ping的第三个包,对于包头各字段,列表如下:

    字段 报文(16进制) 内容
    版本 4 表示报文是IPv4报文
    首部长度 5 首部长度为5*4字节=20字节
    服务类型 00 表示普通服务,无特殊需求
    总长度 05dc 总长度1500字节
    标识 7604 数据报标号为30212
    标志 001(二进制) 表示可以分片,且该片后面还有其他片
    片偏移 2172(二进制下高三位不计算) 片偏移370*8=2960字节
    生存时间 80 生存时间是128跳
    协议类型 01 协议01,表示由ICMP协议处理
    首部校验和 7489 校验和0x7489
    源地址 0a 78 0a 31 源地址:10.120.10.49
    目的地址 0a 78 0a 01 目的地址:10.120.10.1
  2. 描述IP包校验原理,并对上述IP包头进行校验。

    发送方将校验字段置为全0,然后对包头所有字段计算反码算数求和,结果即为校验码部分。

    反码求和:将待运算数作为16bit二进制数,然后做带进位加法,将进位作为一个16bit二进制数,加在结果的低位上,重复运算直到没有进位,最后将结果取反。

    接收方将每一个16bit二进制数做同上的反码相加,得到结果若是FFFF,则校验通过。

    4500+05dc+7604+2172+80017489+0a78+0a31+0a78+0a010001+fffe+=0001fffe=ffff

    校验通过。

  3. 描述IP包分段原理,并验证。

    • 当一个较大的数据包通过一个支持最大数据包长度较小的网络时,会被分段,每一段单独生成一个数据包。
    • 分段中的每一段都具有相同的标识,使用MF与DF以及偏移来确定该包的相对位置。
    • MF表示当前包是否是最后一个包(MF=1表示还有分片,MF=0表示已是最后一个分片),DF表示是否允许分片,DF=0表示允许分片。
    • 分段中除了最后一段,每一段长度必须是8的整数倍。
    • 片偏移k表示这个分片的第一字节是原始数据包的第8*k字节。

    在本次实验,网络环境是以太网,支持的最大帧长度为1514字节。

    分析后,发现第一个包偏移量为0,第二个包偏移量1480字节,第三个包偏移量2960字节。而一个数据链路层的帧长1514字节,去掉数据链路层的目的地址6字节,源地址6字节,2字节类型,剩余留给IP数据报的长度为1500字节,再去掉20字节的IP头,每个包实际包含数据1480字节,所以第三个包正好偏移2960字节。后面的包以此类推,略去。因为ping包长度8000字节,所以每一次ping有6个分片片段。

    同时也可知道,数据链路层使用以太网V2 MAC帧

ICMP协议分析

这里写图片描述

这里写图片描述

  1. 理解ICMP协议的功能

    为了提高 IP 数据报交付成功的机会,在网际层使用了因特网控制报文协议 ICMP (Internet Control Message Protocol)。ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。

    ICMP是一个工作在网络层,使用IP数据报封装自己的协议,主要为主机报告差错与异常使用。ICMP报文分为差错报告报文和询问报文。

    ICMP 差错报告报文共有 5 种
    • 终点不可达
    • 源站抑制
    • 时间超过
    • 参数问题
    • 改变路由(重定向)

    ICMP 询问报文有四种
    • 回送请求和回答报文
    • 时间戳请求和回答报文
    • 掩码地址请求和回答报文
    • 路由器询问和通告报文

    ICMP可以应用在ping上,检查目的主机是否联通;可以用来测试到达目的主机的路径和跳数等。

  2. 记录各字段的格式

    选取了上图的1号包和2号包进行分析。

    这里写图片描述

    字段 报文(十六进制) 内容
    类型 08/00 08表示是一个回显请求报文,00表示回显回复报文
    代码 00/00 表示是一个回显报文
    校验和 4d42/5542 整个ICMP部分的校验和
    标识符 0001/0001 表示上层进程ID号
    序列号 0019/0019 包的序列号,该包是25号
    • ICMP不同的报文类型号不同,比如08代表回显请求,00代表回显应答等。

      这里写图片描述

    • 校验和做的是整个ICMP部分的校验,采用与IP数据报一样的反码求和运算,以1号包为例:

      0800+4d42+0001+0019
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值