实验目的
- 深入理解以太网技术及其框架结构。
- 分析MAC地址和以太网帧的构成,以及通过WireShark软件抓取和分析MAC数据包。
- 掌握以太网的基本工作原理和数据包在网络中的传输过程。
实验原理
以太网是一种广泛应用的计算机局域网技术,基于IEEE 802.3标准。它包括物理层连线、电子信号传输和介质访问层协议。
以太网利用MAC地址进行设备识别,采用总线型拓扑结构和CSMA/CD技术。
MAC地址(Media Access Control address)是网络设备在网络层面进行通信时使用的一个唯一标识符。它与设备的物理网络接口紧密关联,通常是在制造时预先烧录到网络硬件(如网卡或以太网接口)中的。MAC地址由48位(6个字节)组成,常常以12个十六进制数字表示,通常按每两个数字分隔,如
00:1A:2B:3C:4D:5E
。前24位(前3个字节)称为OUI(Organizationally Unique Identifier),由IEEE指派给制造商。后24位(后3个字节)是由制造商指定的,确保其旗下每个网络接口的唯一性。实验中还将涉及到以太网帧结构的详细分析,包括前导码、帧开始符、源地址、目标地址、以太类型字段、帧校验码等。
实验设备
- 操作系统:Windows 11
- 网络环境:局域网
- 软件:Cisco Packet Tracer虚拟实验环境
实验步骤
- 按照下图所示,连接电线构成网络
- 配置路由器Router0的接口
可以在CLI中输入以下命令进行配置,也可以使用图形化界面
- 在Router0中输入以下命令,以配置DHCP左右两边的网络
- 点击模拟ICMP包,查看相关数据,分析在Packet tracer中模拟ICMP(ping 命令),ICMP数据包转发过程中MAC地址变化情况
- 点击Simulation,在PC0的终端中输入
ping 192.168.2.11
即PC2的地址,之后点击Capture/Forward
单步执行,也可以使用Auto Capture/Play
进行自动执行 - 点击Even List的Info可以查看相关信息
- 安装WireShark
- 查看本机的MAC地址
在本机命令行中输入ipconfig/all即可看到本机的MAC地址(物理地址)
- 用WireShark抓取MAC数据包:打开WireShark,选择需要抓包的方式(本机使用WLAN连接网络,故在此处选用WLAN)
- 查看MAC数据包字段内容,并解读
点击相应的条目即可得到其MAC数据包
实验现象
- 模拟ICMP包,查看相关数据
- 第一幅:显示了从PC0到Router0的入站PDU细节
- Layer 1: 数据包在物理层通过FastEthernet端口接收。
- Layer 2: 数据包的以太网II帧头信息,包括源MAC地址和目标MAC地址。
- Layer 3: IP层的信息,显示了源IP地址和目的IP地址,以及ICMP消息类型。
- 第二幅:展示了在Router0的PDU格式,解释了以太网II帧的结构
- 以太网II帧: 有前导码、目标MAC地址、源MAC地址、类型、数据和帧校验序列(FCS)。
- IP: 包含头部长度、服务类型、总长度、标识、标志、片偏移、生存时间(TTL)、协议、头校验和、源IP和目的IP。
- ICMP: 显示了类型、代码、校验和、标识符和序列号。
- 第三幅:展示了Router0处理完入站PDU后,它将如何创建出站PDU,并将其发送到下一个目标
- Layer 2: 目标MAC地址已经被更新为下一个目标设备的MAC地址。
- Layer 3: IP层信息保持不变,这表明IP层是端到端的,不会在通过路由器传输时改变。
- ICMP数据包转发过程中MAC地址变化情况(PC0 ping PC2的情况)
其中DEST MAC是目的MAC地址,SRC MAC是源MAC地址
NO | Last Device | At Device | DEST MAC | SRC MAC |
1 | -- | PC0 | 000A.419D.4601 | 0060.479E.44D7 |
2 | PC0 | Switch0 | 000A.419D.4601 | 0060.479E.44D7 |
3 | Switch0 | Router1 | 0005.5ED9.6CAA | 000A.419D.4602 |
4 | Router1 | Switch1 | 0005.5ED9.6CAA | 000A.419D.4602 |
5 | Switch1 | PC2 | 000A.419D.4602 | 0005.5ED9.6CAA |
6 | PC2 | Switch1 | 000A.419D.4602 | 0005.5ED9.6CAA |
7 | Switch1 | Router1 | 0060.479E.44D7 | 000A.419D.4601 |
8 | Router1 | Switch0 | 0060.479E.44D7 | 000A.419D.4601 |
9 | Switch0 | PC0 | 0060.479E.44D7 | 000A.419D.4601 |
10 | PC0 | Switch0 | 000A.419D.4601 | 0060.479E.44D7 |
... | ... | ... | ... | ... |
- MAC数据包字段内容的解读
- Frame (帧信息)
- Number: 数据包编号,这里为12。
- Length: 数据包长度,显示为54字节。
- Protocols in frame: 数据包所包含的协议层,这里是以太网(Ethernet II)、IP(Internet Protocol)和TCP(Transmission Control Protocol)。
- Ethernet II (以太网II)
- Destination MAC Address: 目标MAC地址
XIAOMIElectr_d2:9b:5b
,指定了数据包的目的物理地址。 - Source MAC Address: 源MAC地址
IntelCor_93:6f:c5
(本机MAC地址),指定了发送数据包的设备的物理地址。 - Type: 数据包类型,这里是IPv4 (0x0800),表示这是一个IPv4网络层数据包。
- Internet Protocol Version 4 (IPv4)
- Source IP Address: 源IP地址
192.168.31.20
,发送数据包的设备的逻辑地址。 - Destination IP Address: 目的IP地址
175.6.93.46
,数据包的目的地的逻辑地址。 - Total Length: 整个IP数据包的总长度。
- Time To Live (TTL): 数据包在网络上的生存时间,这里是128,表示数据包在被丢弃前可以经过的最大路由跳数。
- Transmission Control Protocol (TCP)
- Source Port (源端口):
50176
,这是发送数据包的设备使用的本地端口号。 - Destination Port (目的端口):
80
,这是数据包目标设备上的端口号,端口80通常与HTTP服务关联。 - Sequence Number (序列号):
1
,这是数据包的序列号,它用于确保数据的有序接收。 - Acknowledgment Number (确认号):
1
,这是接收方期望接收的下一个序列号,同时也是确认收到发送方的特定序列号的一个信号。 - Header Length (头部长度):
20 bytes (5)
,指TCP头部的长度,20字节,或称为5个32位字。 - Flags (标志):
0x011 (FIN, ACK)
,这是TCP头部中的控制位,其中: FIN
: 表示发送方已经完成发送数据,并想要结束连接。ACK
: 表示这个段是一个确认响应,通常是对先前收到的段的回应。- Window (窗口大小):
32329
,这是接收窗口的大小,表示接收方还可以接收的字节数,用于流量控制。 - Checksum (校验和):
0xec0b
,这是一个用于错误检测的校验值,未经验证表示该数据包的校验和尚未被确认是否正确。 - Urgent Pointer (紧急指针):
0
,用于指出数据包中的紧急数据,数值为0表示数据包中没有紧急数据。
这是一个连接终止请求,同时包含了一个对之前收到的TCP段的确认。是TCP连接终止握手过程中的一部分,表明发送方想要关闭连接。
分析讨论
- MAC地址与IP地址的区别与联系
- 区别:
- 地址类型:MAC地址是硬件地址,与设备的物理网络接口相关;IP地址是逻辑地址,与网络拓扑结构相关。
- 作用范围:MAC地址主要用于局域网内的数据链路层;IP地址用于跨网络的网络层。
- 分配方法:MAC地址由制造商分配且通常不变;IP地址可以是静态分配的也可以是动态分配的(如通过DHCP)。
- 联系:
- 相互依赖:在数据从一个设备传输到另一个设备的过程中,通常会同时使用MAC地址和IP地址。例如,当数据包离开一个设备时,它会具有源和目标的IP地址,以及当前网络段内的源和目标MAC地址。
- 协同工作:网络上的设备使用ARP(地址解析协议)将IP地址转换为MAC地址,以便在本地网络层内正确地发送数据包。
MAC媒体访问控制地址(Media Access Control address),唯一标识一个网络接口在局域网(LAN)内的地址;IP互联网协议地址(Internet Protocol address)
简而言之,MAC地址和IP地址都是网络通信中不可或缺的部分,它们使得网络设备能够在复杂的网络环境中进行精准的数据交换。
- 产生ICMP数据包转发过程中MAC地址变化情况的原因
- 当数据在同一网络层内转发时(例如,从PC0到Switch0,然后到Router1),源MAC保持不变,而目的MAC会更新为下一个设备的MAC地址。
- 当数据通过路由器传送到另一个网络层时(例如,从Switch0到Router1再到Switch1),源MAC和目的MAC都会发生变化,因为路由器在不同网络层间转发数据包时会更改这些值。
上图为PC0的IPv6的链接本地地址,其采用
EUI-64
格式的自动配置方法,在EUI-64方法中,MAC地址被分成两部分,中间插入了FFFE
(在某些情况下可能是其他值),并且MAC地址的第七位(从左边数的第二位)会被反转(如果是1变成0,如果是0变成1),经过逆变换后,47FF:FE9E:44D7
可以变为0060.479E.44D7
NO | Last Device | At Device | DEST MAC | SRC MAC |
1 | -- | PC0 | Switch0接口的MAC地址 | PC0的MAC地址 |
2 | PC0 | Switch0 | Switch0接口的MAC地址 | PC0的MAC地址 |
3 | Switch0 | Router1 | Router1的MAC地址 | Switch0的MAC地址 |
4 | Router1 | Switch1 | Switch1接口的MAC地址 | Router1的MAC地址 |
5 | Switch1 | PC2 | PC2的MAC地址 | Switch1接口的MAC地址 |
6 | PC2 | Switch1 | PC2的MAC地址 | Switch1接口的MAC地址 |
7 | Switch1 | Router1 | PC0的MAC地址 | Switch0接口的MAC地址 |
8 | Router1 | Switch0 | PC0的MAC地址 | Switch0接口的MAC地址 |
9 | Switch0 | PC0 | PC0的MAC地址 | Switch0接口的MAC地址 |
10 | PC0 | Switch0 | Switch0接口的MAC地址 | PC0的MAC地址 |
... | ... | ... | ... | ... |