网络 | 05. MAC与IP地址、ARP协议、集线器与交换机、虚拟局域网
250710 MAC地址、IP地址、ARP协议
MAC地址
基本概念
- MAC地址是以太网的MAC子层所使用的地址,属于数据链路层
- IP地址是TCP/IP体系结构中网际层所使用的地址,属于网际层
- ARP协议属于TCP/IP体系结构的网际层,其作用是已知设备所分配到的IP地址,使用ARP协议可以通过该IP地址获取到该设备的MAC地址
- 尽管IP地址和ARP协议属于网际层,但他们与MAC地址存在一定的关系,并且日常的网络应用都离不开这三个东西,因此放在一起讨论
MAC地址
- 使用点对点信道的数据链路层不需要地址(一条线连接两个机器时)
- 使用
广播信道 的数据链路层(一个总线连接多个主机)必须使用地址来区分各主机 - 每个主机必须有一个唯一的标识(即数据链路层地址),从而搞清楚发送主机和接收主机是谁
- 在每个主机发送的帧中,必须携带标识发送主机和接收主机的地址,由于这类地址是用于
媒体接入控制 (MAC,Media Acess Control),因此这类地址被称为MAC地址 - MAC地址一般被固化在网卡(网络适配器)的电可擦、可编程、只读存储器EEPROM中,因此MAC地址也被称为硬件地址
- MAC地址有时也被称为物理地址,但这并不意味着MAC地址属于网络体系结构中的物理层
- 一般情况下,用户主机会包含两个网络适配器:有线局域网适配器(有线网卡)和无限局域网适配器(无线网卡),每个适配器都会有一个全球唯一的MAC地址
- 而交换机和路由器往往拥有更多的网络接口,所以会拥有更多的MAC地址
- 综上,严格来说,MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识
IEEE 802局域网的MAC地址格式
-
由48比特构成,每8个比特为1个字节,共6个字节
-
前三个字节是组织唯一标识符OUI,生产网络设备的厂商需要向IEEE的注册管理机构申请一个或多个
-
后三个字节是获得OUI的厂商自由分配的
-
这种地址标识符称为扩展的唯一标识符EUI,对于48比特的MAC地址,可称为EUI-48
-
MAC的标准表示方法,是将每4个比特写成一个十六进制的字符,共12个字符;将每两个字符为一组,共6组,组之间用短线或冒号连接
-
每个人可以拥有几个全球管理的单播MAC地址?
- 电脑上的以太网接口、wifi接口、蓝牙接口都分配有全球单播的MAC地址
- 而每台交换机和路由器都拥有多个网络接口,就拥有多个全球单播的MAC地址
- 对于使用EUI-48空间的应用程序,IEEE的目标寿命为100年(直到2080年),但是鼓励采用EUI-64作为替代
MAC地址的发送顺序
-
字节发送顺序是第一字节到第六字节,字节内比特的发送顺序为b0到b7,例如举例说明功能
-
给主机配置多播组列表时进行私有应用时,不得使用公有的标准多播地址
-
http://standards.ieee.org/develop/regauth/grpmac/public.html
随机MAC地址
- 据斯诺登报道,美国安全局有一套通过监视电子设备MAC地址,来跟踪城市中每个人的行动
- 因此,苹果率先在iOS设备扫描网络时,采用随机MAC地址技术
- 随后,Win10、安卓6.0、内核版本3.18的Linux也陆续提供随机MAC地址技术
IP地址(网络层)的作用
-
IP地址是因特网上的主机和路由器所使用的地址,用于表示两部分信息
- 网络编号:标识因特网上数以百万计的网络
- 主机编号:标识同一网络上不通主机(或路由器各接口)
- 同一个网络上的各主机和路由器上的各接口IP地址的网络号应该是相同的,而主机号部分则应该各不相同
- 因特网中不同网络的网络编号必须各不相同
- 至于哪些数字标识网络,哪些数字标识主机,其在不同场景下不同
- MAC地址不具备区分不同网络的功能
- 如果只是一个单独的网络,不接入因特网,可以只使用MAC地址(这不是一般用户的应用方式)
- 如果主机所在的网络需要接入因特网,则IP地址和MAC地址都需要使用
-
从网络整体结构看IP地址和MAC地址
-
习题
ARP协议(地址解析协议ARP,怎么根据IP地址找到MAC地址)
-
问题引入
-
ARP高速缓存表中都有两种类型,
- 动态类型是指,记录是主机自己主动获取的,其生命周期默认为2分钟(当生命周期结束时,该记录将自动删除)。因为MAC地址和IP地址的关系并不是永久性的,例如当主机的网卡坏了,更换新的网卡后,主机的IP地址并没有变化,但MAC地址改变了
- 静态类型是由网络维护人员手动配置的,不同操作系统下其生命周期不同(例如系统重启后不存在或系统重启后依然有效)
-
ARP协议只能在
一段链路或一个网络中使用 ,不能跨网络使用,如下的网络结构中,主机H1不能通过ARP协议获取到H2的IP地址 -
除了ARP请求和响应报文外,ARP协议还存在其他类型的报文,如用于检查IP地址冲突的“无故ARP、免费ARP”等
-
ARP协议没有安全验证机制,存在ARP欺骗(攻击)问题
250713 集线器与交换机
集线器和交换机的区别
- 早期的总线型以太网使用集线器
- 最早使用粗同轴电缆作为传输媒体,后来演进到使用价格相对便宜的细同轴电缆
- 当初认为,这种链接方法既简单又可靠
- 那个年代认为,有源器件不可靠,无源的电缆线才是可靠的
- 但实际上,使用无源电缆和大量机械接头的总线型以太网,并不像想象中那么可靠
- 后来,以太网发展出了一种,使用大规模集成电路,可靠性非常高的设备,叫做集线器
以太网交换机
- 在集线器互连而成的共享总线式以太网的某个主机,要给另一个主机发送单播帧时,该单播帧会通过共享总线传输到总线上的各个主机
- 使用交换机互连而成的交换式以太网上的某个主机,要给另一个主机发送单播帧时,该单播帧进入交换机后,交换机会将该单播帧转发给目的主机,而不是网络中的其他各个主机(假设忽略ARP过程、且交换机的帧交换表已经配置好了)
- 以太网交换机通常都有多个接口,每个接口都可以直接与一台主机或另一个以太网交换机相连,一般都工作在全双工方式(发送和接收同时进行)
- 集线器下的网络,各主机需要共享总线的,需要使用CSMA/CD协议来协调各主机争用总线,只能工作在半双工模式(收发不能同时进行)
- 以太网交换机具有并行性,能同时链接多对接口,使多对主机能同时通信,而无碰撞(不使用CSMA/CD协议)
- 以太网交换机一般都具有多种速率的接口,例如10Mb/s、100Mb/s、1Gb/s、10Gb/s接口的多种组合
- 以太网交换机工作在数据链路层(也包括物理层),它收到帧后,在帧交换表中查找目的MAC地址所对应的接口号,然后通过在接口转发该帧
- 以太网交换机是一种即插即用的设备,其内部的帧交换表时通过自学习算法,自动、逐步建立起来的
- 帧有两种转发方式
- 存储转发
- 直通交换
- 不必缓存后再处理,而是在帧接收的同时,就立即按目的MAC地址,决定帧的转发接口,因而提高了帧的转发速率
- 采用基于硬件的交叉矩阵(交换时延非常小,但不检查帧是都有差错)
对比集线器和交换机
-
主机发送帧的情况:不同机器在相同的广播域,使用起来没有区别
-
多台主机同时发送帧时
- 集线器下会发生碰撞,遭遇碰撞的帧也会传播到总线上的各主机
- 但在交换机的交换式以太网中,
交换机收到多个帧时,会将他们缓存起来 ,然后根据目的地址,逐个转发给目的主机,不会产生碰撞
-
扩展以太网的区别
-
小结
三层交换机
-
市面上有
包含部分网络层功能 的交换机,称为三层交换机,其工作在数据链路层(也包括物理层) -
以太网交换机收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发该帧
-
以太网交换机是一种即插即用的设备,刚上电启动时,内部的帧交换表时空的;随着网络中各主机间的通信,以太网交换机通过自学习算法,自动逐渐建立起来帧交换表
-
- 如图所示,每个交换机通过接口分别连接了3台主机
- 为了简单起见,各主机中网卡上固化的MAC地址,仅用一个大写字母表示,各主机互不相同
- 为了将重点放在以太网交换机自学习和转发帧的流程上,假设各主机知道网络中其他各主机的MAC地址(无需进行ARP)
- 当A给B发送帧时,帧通过接口1进入交换器1后,交换机1首先执行登记操作,将该帧重点源MAC地址A和接口1记录到帧交换表中,该操作称为自学习
- 随后对该帧进行转发,该帧的目的MAC地址为B,则在帧交换表中查找地址B,找不到时,则对该帧进行盲目地转发(盲目泛洪) ,即向除该帧进入交换机的接口外的全部接口转发该帧;在该阶段,交换机的帧交换表并不完善,其只能盲目地进行转发
- 主机B收到该帧后,根据该帧的目的MAC地址B确认该帧是发送给自己的帧,于是接受该帧;主机C确认其不是发送给自己的,就丢弃该帧;
- 该帧通过交换机1的接口4发出,到交换机2的接口2,交换机2接收该帧后,首先登记该帧的源MAC地址A和接口号2到帧交换表中,随后进行转发,在帧交换表中无法找到目的MAC地址B后,就进行盲目转发,主机DEF都会收到该帧,并在验证后丢弃该帧
- 若现在B要给A发送帧,其将帧发送到交换机1中时,首先登记源MAC地址B和接口3到帧交换表,随后在帧交换表中查找目的MAC地址A,在已知其接口的情况下,则进行明确的转发
- 若主机E要对A发送帧,其首先发送到交换机2,登记E的相关信息后,可以在帧交换表中找到主机A的MAC地址,按照其对应的接口号2,明确转发该帧给交换机1;交换机1登记E的相关信息后,查找A的接口,明确转发
-
-
以太网交换器丢失帧的情况
-
当网络中各主机都发送过帧后,网络中的各交换机就可以学习到各主机的MAC地址,以及他们与自己各接口的对应关系
-
值得注意的是,帧交换表中的每条记录,都有自己的有效时间,到期自动删除(因为该关系不一定是永久性的)
-
习题
以太网交换器的生成式协议STP
-
如何提高以太网的可靠性?
-
为了可以在增加冗余链路来提高网络可靠性的同时,避免网络环路带来的各种问题,以太网交换机使用
生成树协议STP(Spanning Tree Protocol) 来解决该问题-
不论交换机之间采用怎么的物理连接,交换机都能够自动计算并构建出一个逻辑上没有环路的网络,其拓扑结构必须是树形的(无逻辑环路)
-
举例
- 当机器如图进行物理连接后,就会形成多个环路
- 实际上,各交换机之间,按照生成树协议中规定的生成树算法,交互一些参数后,每个交换机就可以判断出自己应该阻塞自己的哪些接口,如右图所示,形成没有环路的网络
- 当然,最后生成的树形拓扑结构必须要确保能够连通整个网络
- 当首次连接交换机,或网络的物理拓扑发生变化时(有可能是人为改变或故障),交换机都将进行生成树的重新计算
- 生成树算法STA
软考备考 | 生成树协议
-
250714 虚拟局域网VLAN
-
虚拟局域网VLAN概述
-
使用一个或多个以太网交换机互连起来的交换式以太网,其所有站点都属于同一个广播域
-
随着交换式以太网规模的扩大,广播域也相应扩大
-
巨大的广播域会带来很多弊端,如
-
如何分隔巨大的广播域?
-
虚拟局域网VLAN(Virtual Local Area Network)是一种将局域网内的设备分成与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求
-
-
VLAN的实现机制
-
VLAN技术可以在交换机上进行实现,但需要交换机具备如下两个功能
-
识别带有VLAN表示的帧 IEEE 802.1Q帧
-
也称为Dot One Q帧,其是对以太网MAC帧格式进行了扩展,插入了4字节的VLAN标记
-
VLAN标记的最后12比特称为VLAN表示VID,它唯一标志了以太网帧属于哪一个VLAN
-
VID的取值范围是0-4095($2^{12}-1$)
-
0和4095都不用来表示VLAN,因此VID的有效取值范围是1-4094
-
802.1Q帧是**由交换机来处理**的,而不是用户主机
- 当交换机收到普通的以太网帧时,会将其插入4字节的VLAN标记,转变为802.1Q帧,简称“打标签”
- 当交换机转发802.1Q帧时,可能会删除其4字节的VLAN标记,转变为普通的以太网帧,简称“去标签”
-
-
VLAN帧中的其他内容,对我们理解VLAN划分机制没有什么帮助,这里不在赘述
-
-
交换机的各端口可以支持不同的端口类型(不同类型的端口,对帧的处理方式不同)
-
交换机端口类型有以下三种:Access、Trunk、Hybrid(思科交换机没有该端口)
-
交换机各端口的缺省VLAN ID
- 在思科交换机上称为本征VLAN(Native VLAN);当用户没有配置VLAN时,都默认为VLAN1,即所有端口的本征VLAN都是VLAN1
- 而在华为交换机上将其称为“端口VLAN ID”(Port VLAN ID),简称为PVID
- 交换机的每个端口,有且仅有1各PVID
-
Access端口
-
Trunk端口
-
练习
-
Hybrid(华为特有的)
-
-
-