交换机和以太网
目录
一、实验目的
1.能够基于以太网交换机的工作原理设计实验方案并开展实验;
2.能够在交换机的命令行模式下使用基础命令操作交换机,并能够通过实验操作验证、解释交换机的地址自学习和帧转发流程;
3.能够区分MAC单播帧和广播帧,明确帧的类型与MAC地址类别之间的关联关系;
4.能够通过实验验证以太网MAC帧各个控制字段的作用。
二、实验环境
1.实验设备
安装有Packet Tracer6的计算机一台。
2. 实验拓扑
3. IP地址配置
PC | IP地址 | 子网掩码 |
PC0 | 192.168.1.1 | 255.255.255.0 |
PC1 | 192.168.1.2 | 255.255.255.0 |
PC2 | 192.168.1.3 | 255.255.255.0 |
PC3 | 192.168.1.4 | 255.255.255.0 |
PC4 | 192.168.1.5 | 255.255.255.0 |
PC5 | 192.168.1.6 | 255.255.255.0 |
PC6 | 192.168.1.7 | 255.255.255.0 |
PC7 | 192.168.1.8 | 255.255.255.0 |
三、实验内容
1.使用以太网交换机设计实验方案,观察交换机的地址自学习过程;
2.观察交换机处理已知单播帧、未知单播帧、广播帧的过程;
3.捕获以太网MAC帧并分析以太网MAC帧的格式;
4.同一物理网络内MAC帧的发送与捕获,分析以太网单播MAC地址的作用;
5.编辑并发送MAC单播帧和广播帧,分析物理地址的类别和作用。
四、实验原理
一. OSI模型和TCP/IP协议族
1. OSI简介
国际标准化组织(ISO)成立于1947年,它是个多国团体,专门就一些国际标准达成世界范围的一致。网络方面的ISO标准就是OSI(开放系统互连)模型。它是在20世纪70年代后期问世的。
在不需要改变底层硬件或软件逻辑的情况下,OSI模型使两个不同的系统能够较容易地通信。OSI模型并不是协议,它是个灵活的、稳健的和可互操作的模型,用来设计网络体系结构,它使得所有类型的计算机系统可以通信。OSI模型包括7个层次,每一层都定义了通过网络传送信息的一些过程,如下图所示。掌握了OSI模型的基本概念后,就有了学习数据通信较牢固的基础。
图1-1 OSI模型
2. OSI模型中的层次
(1)物理层
物理层协调在物理媒体中传送比特流所需的各种功能。物理层涉及到接口和传输媒体的机械的和电气的规约。它还定义了这些物理设备和接口在传输过程中所必须完成的任务。
(2)数据链路层
数据链路层把物理层(即原始的传输设施)转换为可靠的链路。
(3)网络层
网络层负责把数据包从源点交付到终点,这可能要跨越多个网络。数据链路层是监督在同一个链路上的两个相邻节点之间数据包的交付,而网络层则确保每一个数据包能够从它的源点到达终点。
如果两个节点连接到同一条链路上,那么通常就不需要网络层。但是,如果两个节点连接在不同的网络上,而这些网络是由一些连接的设备连接起来的,那么通常是需要网络层来完成从源点到终点的交付。
(4)传输层
传输层负责把报文进行端到端的交付。网络层虽然负责单个数据包的端到端交付,但它并不考虑这些数据包之间的关系。传输层要确保整个报文原封不动地按序到达,负责从源点到终点这一级的差错控制和流量控制。
(5)会话层
会话层是网络的对话控制器。它建立并维持通信系统之间的交换,并使这些通信系统同步。会话层完成以下任务:
● 对话控制:会话层允许两个节点进行对话状态控制。它允许两个进程之间的通信按半双工或全双工的方式进行。
● 同步:会话层允许进程将若干个同步点插入到数据流中,以完成传输的同步。
(6)表示层
表示层负责两个系统所交换的信息的语法和语义。表示层完成以下任务:
● 转换:在两个系统中的进程所交换的信息的形式通常都是字符串,数字等等。这些信息在传输之前必须变为比特流。由于不同的计算机使用不同的编码系统,所以表示层负责在这些不同的编码方法之间提供互操作性。
● 加密:为了携带敏感信息,一个系统必须确保能够进行保密。加密就是发送端把原始信息转换为另一种形式,然后再把这种形式的报文发送出去。
● 压缩:数据压缩减少了信息中所包含的比特数。在传输多媒体信息时,数据压缩是特别重要的。
(7)应用层
应用层使用户(不管是人还是软件)接入网络,给用户提供了接口,也提供了对多种服务的支持。
3. TCP/IP协议族
TCP/IP协议族是在OSI模型出现之前出现的。因此TCP/IP协议族的层次无法准确地和OSI模型对应起来。TCP/IP协议族由5层组成:物理层、数据链路层、网络层、传输层和应用层。前四层与OSI的前四层相对应,提供物理标准、网络接口、网际互连、以及传输功能。然而OSI的高三层在TCP/IP中则叫做应用层。如下图所示:
图1-2 TCP/IP 和OSI模型
TCP/IP是由一些交互的模块组成的分层次的协议,每个模块提供特定的功能。TCP/IP协议族中的各层包含了一些相对独立的协议,可以根据系统的需要把这些协议混合和配套使用。
在传输层中,TCP/IP定义了3个协议:传输控制协议(TCP)、用户数据报协议(UDP)和流控制协议(SCTP)。在网络层中,TCP/IP定义的主要协议是网际协议(IP)。
二. IEEE802参考模型
1980年2月IEEE(电气和电子工程师协会)成立了802局域网标准委员会,开始了有关局域网标准化的工作。IEEE 802局域网参考模型中只定义了物理层和数据链路层,在模型中较高层次,IEEE 802参照OSI模型,尽可能与其相符合。IEEE标准模型与OSI模型的比较如下图所示:
图1-3 IEEE标准模型与OSI模型比较
在OSI模型中,物理层的任务是为上一层提供一个物理连接,以透明的方式传送比特流。而在IEEE802局域网参考模型中,物理层被分为上下两个子层,分别为:
● 下面的子层是对电缆介质的说明;
● 上面的子层是介质访问单元(MAU)。
电缆可以是各种介质,如双绞线,同轴电缆等。MAU的主要作用是信息编码、信号发送和介质处理等。
在OSI模型中,数据链路层的任务是把物理层转化成可靠的链路,使物理层对上层(网络层)看起来好像是不产生差错的。而IEEE 802标准的数据链路层被分为两个子层:
● 下面的子层是媒体访问控制子层(MAC);
● 上面的子层是逻辑链路控制子层(LLC)。
LLC子层的功能是实现有效的数据传输,负责数据链路层的流量控制和差错控制。MAC子层的功能是保证物理功能和逻辑功能的连续性,还把从LLC子层收到的数据组装成帧,并把帧交给物理层进行编码。
三. 以太网简介
IEEE 802.3所支持的局域网标准最早是由Xerox开发的,后来通过Digital公司、Intel公司和Xerox公司联合扩展为以太网标准,符合以太网标准的局域网络称为以太网。
1. 以太网的分类
数据速率为10Mbps的以太网称为标准以太网,数据速率为 100Mbps的以太网称为快速以太网,数据速率为1000Mbps的以太网称为千兆以太网。目前10G以太网的标准也已正式制定。
2. 以太网的物理地址
以太网上的每一个主机都有自己的网络接口卡(NIC )。网络接口卡通常安装在主机内部,并为主机提供一个6字节的物理地址,如:44-45-53-54-00-00。在遵循IEEE802标准的以太网络中,将这个物理地址称作“MAC地址”。MAC地址是惟一的,任意两个不同的网络接口卡都具有不同的MAC地址。MAC地址中的某些位具有特殊的意义,如下图所示:
图 1-4 以太网的物理地址
I/G比特位表示Individual/Group,当I/G位为0时,地址字段表示单个站地址(单播),为1时表示组地址,用来进行多播。
G/L比特位表示Global/Local,当G/L位为1时是全球管理,保证在全球没有相同的地址,当为0时是本地管理,这时用户可任意分配网络上的地址。
以太网MAC地址可分为三类:单播地址、广播地址和多播地址。单播地址(unicast)是一对一的,该地址是特定主机的MAC地址;广播地址(broadcast):广播地址是一对全体的,该地址为全1,指明数据帧是发送给所有主机的。多播地址(multicast):多播地址是一对多的,指明数据帧是发送给一部分主机的。
I/G比特位表示Individual/Group,当I/G位为0时,地址字段表示单个站地址(单播),为1时表示组地址,用来进行多播。
G/L比特位表示Global/Local,当G/L位为1时是全球管理,保证在全球没有相同的地址,当为0时是本地管理,这时用户可任意分配网络上的地址。
以太网MAC地址可分为三类:单播地址、广播地址和多播地址。单播地址(unicast)是一对一的,该地址是特定主机的MAC地址;广播地址(broadcast):广播地址是一对全体的,该地址为全1,指明数据帧是发送给所有主机的。多播地址(multicast):多播地址是一对多的,指明数据帧是发送给一部分主机的。
四. 以太网访问模式
当多个节点被连接到一条链路上时,叫做多点链路或广播链路。这时就需要一个协议来协调链路的访问,使得同一时刻只有一个节点访问链路。如果发生同一时刻多个节点使用链路的情况,则称为链路发生了冲突。带有冲突检测的载波侦听多路访问(CSMA/CD)是这样一种方案。发送主机在传输过程中仍继续监听信道,以检测是否存在冲突。如果发生冲突,信道上可以检测到超过发送主机本身发送的载波信号的幅度,由此判断出冲突的存在。一旦检测到冲突,就立即停止发送,并向总线上发一串阻塞信号,用以通知总线上其它各有关主机。这样,通道容量就不致因白白传送已受损的帧而浪费,可以提高总线的利用率。以太网使用CSMA/CD作为其访问模式。
五. 以太网的帧格式
1. 以太网的MAC帧格式
以太网的MAC帧格式有两种标准,一种是DIX Ethernet V2标准,另一种是IEEE的802.3标准。但两种帧格式可以在同一以太网络共存。两种帧格式都具有7个域:前导码、帧首定界符、目的MAC地址、源MAC地址、协议类型或数据长度、数据、帧校验序列。如下图所示:
图1-5 以太网的MAC帧格式
两种格式的帧可以依据协议类型或数据长度字段的值进行区分。如果此帧是DIX Ethernet V2标准格式帧,则协议类型或数据长度字段的值大于1536;如果此帧是IEEE 802.3标准格式的帧,则协议类型或数据长度字段的值小于1518。对DIX Ethernet V2 帧来说,此字段的值代表了高层协议的类型;对IEEE 802.3帧来说,它的高层协议一定是LLC,此字段的值代表了数据的长度。
在以太网的MAC帧格式中,各个字段的含义如下:
● 前导码:这是以太网MAC帧的第一个域,包含了7个字节的二进制“1”和“0”间隔的代码,即“10101010……10”共56 位,提示接收方一个数据帧即将到来,同时使接收系统建立起同步时钟。
● 帧首定界符:帧首定界符标记了帧的开始。它是一个字节的“10101011”二进制序列,帧首定界符通知接收方后面所有的内容都是数据,以便接收方对数据帧进行定位。
● 目的MAC地址:目的MAC地址为6个字节,标记了数据帧下一个主机的物理地址。如果数据包的目的地址必须从一个网络穿越到另一个网络,那么目的MAC地址所包含的是连接当前网络和下一个网络的路由器地址。当数据包到达目标网络后,目的MAC地址域换成目的主机的地址。
● 源MAC地址:源MAC地址也是6个字节。它包含了最后一个转发此帧的设备的物理地址。该设备可以是发送此数据帧的主机,也可以是最近接收和转发此数据帧的路由器。
● 协议类型或数据长度:如果该字段的值小于1518,它用于定义后面数据字段的长度;如果字段的值大于1536,它定义一个封装在帧中的数据包的类型。
● 数据:它的长度范围是从46到1500字节之间。46是以太网MAC帧所封装的高层协议数据的最小长度。如果高层协议的数据包小于46字节,则填充到46字节。
● 帧校验序列:最后一个域是帧校验序列,以太网采用32位冗余校验(CRC)。校验范围是除了前导码、帧首定界符和帧校验序列外的所有内容。
2. LLC帧格式
LLC的帧格式如下图所示:
图1-6 LLC帧格式
其中,DSAP(目的服务访问点)和SSAP(源服务访问点)是LLC所使用的地址,用来标识接收和发送数据的计算机上的用户实体。DSAP的第一个比特是用来指明帧是为单地址还是组地址,0表示单地址,1表示组地址。SSAP的第一个比特用来指明帧是命令帧还是响应帧。0表示命令帧,1表示响应帧。
LLC定义了三种帧:信息帧(I-帧)、监控帧(S-帧)和无编号帧(U-帧)。帧的类型可从控制字段识别。对于信息帧和监控帧,控制字段为2字节长,而对于无编号帧,控制字段为1字节长。
下图表示了LLC三类帧的控制字段的比较。
图1-7 LLC 三类帧的控制字段
● N(S):发送序号。
● N(R):接收序号。
● SS:监控功能位,00表示准备接收(RR);10表示未准备接收(RNR);01表示拒绝(REJ)。
● M :修正功能位。
● X:保留,设置为0。
● P/F:Poll/final 位。命令LLC PDU传输/响应LLC PDU传输。
3. LLC-PDU与相邻层的PDU之间的关系
IEEE 802标准为LLC和MAC子层的帧格式作了详细规定。下图描述了网络层PDU、LLC子层PDU和MAC子层PDU的关系。
图 1-8 LLC-PDU与相邻层的PDU之间的关系
LLC帧(即LLC-PDU)与媒体无关,而MAC(即MAC-PDU)则与局域网的媒体访问方式有很大关系,不同的局域网有不同的MAC帧格式。
4. LLC地址与MAC地址
在MAC帧的帧首中,有目的MAC地址和源MAC地址,它们都是6字节长。在LLC帧的帧首中,则设有DSAP和SSAP,该地址是逻辑地址,表示的是数据链路层的不同访问服务点。LLC地址与MAC地址是两个不同的概念,在局域网中,一个主机上的多个服务访问点可以利用同一条数据链路。从这一点可以看出,LLC子层带有OSI网络层的某些功能。
五、实验步骤
练习1 观察单播以太网帧的封装
步骤1:准备工作
1)打开Packet Tracer软件,添加设备进行连接,按照实验要求配置PC的IP地址。
若此时交换机端口指示灯呈橙色,则单击主窗口右下角Realtime(实时) Simulation(模拟)模式切换按钮数次,直至交换机指示灯呈绿色。此步骤可加速完成交换机的初始化。
步骤2:捕获数据包
1)进入Simulation(模拟)模式。设置Event List Filters(事件列表过滤器)只显示ICMP事件。
2)单击Add Simple PDU(添加简单PDU)按钮,在拓扑图中添加PC0向PC2发送的数据包。
3)单击Auto Capture/Play(自动捕获/执行)按钮,捕获数据包。当PC2发送的响应包返回PC0后通信结束,再次单击Auto Capture/Play按钮,停止数据包的捕获。
4)观察并记录实验结果:在捕获的数据中查找主机pc0发送给实验报告的ICMP数据帧,并分析该帧内容,填入下表:
本机MAC地址 | 源MAC地址 | 目的MAC地址 | 是否收到?为什么? | |
主PC0 | 0001.C76C.E356 | 0050.0F3A.871C | 000D.BD61.BAE9 | 是PC0与PC2共享 |
主PC1 | 0001.C76C.E356 | 否 | ||
主PC2 | 0060.2F02.99C4 | 0050.0F3A.871C | 000D.BD61.BAE9 | 是PC0与PC2共享 |
主PC3 | 0001.97EB.25CE | 否 | ||
主PC4 | 0060.7082.CAED | 否 | ||
主PC5 | 0004.9AC0.9C9B | 否 | ||
主PC6 | 000D.BD98.33CD | 否 | ||
主PC7 | 0001.97BB.3802 | 否 |
步骤3:观察以太网帧的封装格式
选择事件列表中PC0到Switch0的数据包,单击其右端Info项中的色块。注意弹出窗口顶端的窗口顶端的窗口信息—PDU Information at Device:Switch0,即当前查看的是交换机Switch0上的PDU信息。在弹出窗口中选择Inbound PDU Details选项卡。观察其中以太网对应封装格式。
步骤4:观察交换机是否会修改以太网帧各字段取值
1)选择事件列表中Switch0到PC2的数据包,单击右端Info项中的色块。注意弹出窗口顶端的窗口信息PDU Information at Device:PC2,即当前查看的PC2接收到的PDU信息。在弹出窗口中选择Inbound PDU Details选项卡。
2)观察其中以太网各字段取值,与前面观察到的比较。
对比观察交换机是否会修改以太网各字段取值? ——不会
练习2 观察广播以太网帧的封装
步骤1:捕获数据包
1)单击窗口下方Delete按钮,删除任务1产生的场景。
2)单击Add Complex PDU(添加复杂PDU)按钮,单击PC0,在弹出的对话框中设置参数:(如下图)。然后单击该对话框下方的Create PDU按钮,创建数据包。
3)单击Auto Capture/Play(自动捕获/执行)按钮,捕获数据包。当不再产生新的数据包时表示通信结束,可再次单击Auto Capture/Play按钮,停止捕获数据
4)在此过程中观察拓扑工作区中动画演示的数据传输过程,该广播帧(即PC0发送的数据帧)被交换机转发给PC1、PC2、PC3、PC4、PC5、PC6 、PC7节点,所有节点接收该广播帧。
步骤2:观察该广播包的以太网封装
1)选择事件列表中PC0到Switch0的数据包,单击其右端Info项中的色块。在弹出窗口中选择Inbound PDU Details选项卡。
2)观察其Ethernet的封装,重点观察DEST MAC。如下图
观察到的DEST MAC是什么?源地址是什么?
练习3 交换机地址学习
步骤1:清空交换机的MAC地址表
1)在交换机的特权模式下执行以下命令:
SW#clear mac-address-table #清除地址表
SW#show mac-address-table #显示地址表
步骤2:PC机间相互访问【图按顺序】
PC0访问PC1,PC2访问PC3。
PC0>ping 192.168.1.2
PC2>ping 192.168.1.4
查看交换机的MAC地址表:
SW#show mac-address-table #显示地址表
步骤3:验证PC机的MAC地址表
查看PC-1和PC-2的MAC地址。
练习4 交换机与集线器
步骤1: 使用“添加简单的PDU”工具,让PC4给PC5发送单播数据包
步骤2:单击该按钮,进行单步模拟,观察数据包的转发过程
步骤3:同时让计算机PC4给PC5,P6给P7同时发送单播数据包,然后进行单步模拟,观察数据包的转发过程。
步骤4:同时让计算机PC0给PC1,P2给P3同时发送单播数据包,然后进行单步模拟,观察数据包的转发过程。
六、思考问题
1. 为什么有的主机会收到ICMP数据包而有的主机收不到ICMP数据包?
ICMP过滤设置:某些防火墙或者安全策略可能会阻止ICMP数据包的接收。
网络配置:网络配置问题可能会导致某些主机无法收到ICMP数据包。
2. 结合练习二的实验结果,主机pc1、pc2、pc3是否可以收到主机pc0的广播帧?简述FFFFFF-FFFFFF作为目的MAC地址的作用。
MAC地址是网卡的物理地址,用于在以太网传输的最底层进行数据的收发。在同一个网络里,不能有两个相同的MAC地址。而广播帧是一种特殊的数据帧,它的目的地址为全1,即FF-FF-FF-FF-FF-FF,用于向同一网络中的所有设备发送数据。因此,主机pc1、pc2、pc3可以收到主机pc0的广播帧。
而FFFFFF-FFFFFF作为目的MAC地址的作用是指定广播帧的目标地址为全1,即向同一网络中的所有设备发送数据。这样做的目的是为了让同一网络中的所有设备都能够接收到广播帧,从而实现网络中的广播通信
3. 说明MAC广播帧的范围?
MAC广播帧是一种数据帧,它的目的地址是全1,即FF-FF-FF-FF-FF-FF。这种数据帧会被发送到同一广播域内的所有设备,包括网关。广播域是指一个网络中所有设备都可以直接通信的范围。因此,MAC广播帧的范围是整个广播域,即同一网络中的所有设备都会收到这个广播帧
4. 在练习一中,Switch0 在转发数据帧时是否修改其源 MAC 地址和目标 MAC 地址?
switch0转发给pc2地数据帧中源MAC地址和目标MAC地址并未进行修改
在交换机的转发过程中,它只会根据数据帧的目标 MAC 地址来决定将数据帧转发到哪个端口。当数据帧到达交换机时,交换机通过查找其 MAC 地址表来决定从哪个端口转发数据帧。在这个过程中,交换机不会修改数据帧的源 MAC 地址和目标 MAC 地址
5. 交换机接收数据帧后,依据什么判断该数据帧是单播还是广播?或依据什么判断向哪个目标结点转发?
交换机在接收数据帧后,主要是根据数据帧的目标MAC地址来判断是单播还是广播,以及向哪个目标结点转发。
单播:如果目标 MAC 地址是特定的某个设备的 MAC 地址,那么这个数据帧就是单播的。交换机接收到这样的数据帧后,会将其转发到对应的端口,也就是目标设备所在的端口。
广播:如果目标 MAC 地址是全 F,那么这个数据帧就是广播的。交换机接收到这样的数据帧后,会将数据帧从所有可用的端口转发出去,也就是发送给所有连接在交换机上的设备。