[笔记] [计算机网络 · 自顶向下方法] [5.4 交换局域网]

5.4.1 链路层寻址和 ARP

由4台交换机连接起来的某机构网络

1. MAC地址

链路层地址的称呼有很多种:LAN地址(LAN address)、物理地址(physical address)或MAC地址(MAC address)。

  • 属性:长度为6byte(48bit),用12个16进制数表示。
  • 特性:没有两块适配器具有相同的地址,MAC地址由IEEE授权(但通过软件改变一块适配器的MAC地址是可能的)
  • 类比:IP地址类似于邮政地址——搬家了以后就要换一个邮政地址;MAC地址类似于社会保险号——不管你搬到哪里,都不会变。

注意: 并不是主机或路由器具有链路层地址,而是他们的适配器(即网络接口)具有链路层地址。

MAC地址


思考:为什么主机和路由器接口除了网络层地址之外还有MAC地址?(书P309)

2. 地址解析协议

地址解析协议(Address Resolution Protocol,ARP
  • 作用:在网络层地址(如因特网的IP地址)和链路层地址(即MAC地址)之间进行转换。
  • 限制:ARP只为在同一个子网上的主机和路由器接口解析IP地址。
  • 注意:
    • ①查询ARP报文是在广播帧中发送的,而响应ARP报文是在标准帧中发送;
    • ②ARP是即插即用的,即一个ARP表是自动建立的,不需要系统管理员来配置。并且如果某主机与子网断开连接,它的表项最终会从留在子网中的结点的表中删除掉。
  • 每台主机或路由器在其内存中具有一个ARP表(ARP table),包含了IP地址到MAC地址的映射关系。
    局域网上的每个接口都有一个IP地址和MAC地址

APR表:
在主机222.222.222.220中的一个可能的ARP表


问:如果ARP表中当前没有该目的主机的表项,该怎么办?(此为两台主机在相同子网内的情况)

答:假设222.222.222.220要向222.222.222.222发送数据报,发送方会用ARP协议来解析这个地址

首先,发送方构造一个成为ARP分组(ARP packet)的特殊分组,一个分组有几个字段,包括发送和接收IP地址以及MAC地址。ARP查询分组和响应分组都具有相同的格式。ARP查询分组的目的是询问子网上所有其他主机和路由器,以确定对应于要解析的IP地址对应的MAC地址。

222.222.222.220将向它的适配器传递一个ARP查询分组,并且指示适配器应用该MAC广播地址(即FF-FF-FF-FF-FF-FF)来发送这个分组。适配器在链路层帧中封装这个ARP分组,用广播地址作为帧的目的地址,并将该帧传输进子网中。


类比
一次ARP查询等价于一个人在某公司(比方说AnyCrop)的一个拥挤的房间大喊:“邮政地址(IP地址)是加利福尼亚州帕罗奥图市AnyCrop公司112房间13室的那个人的社会保险号(MAC地址)是什么?“包含该ARP查询的帧能被子网上的所有其他适配器接收到,并且(由于广播地址)每个适配器都把在该帧中的ARP分组向上传递给ARP模块。这些ARP模块中的每个都检查它的IP地址是否与ARP分组中的目的IP地址相匹配。匹配则给查询主机发送发送回一个带有所希望映射的响应ARP分组。然后查询主机222.222.222.220能够更新它的ARP表,并发送它的IP数据报(封装在一个链路层帧中),并且该帧的目的MAC就是对先前ARP请求进行响应的主机或路由器的MAC地址。

3. 发送数据报到子网外

由一台路由器互联的两个子网
图5.19中需要注意几件有趣的事情:

扫描二维码关注公众号,回复: 1668209 查看本文章
  • 每台主机仅有一个IP地址和一个适配器。
  • 一台路由器的每个接口都有一个IP地址,(在路由器中)也有一个ARP模块和一个适配器。(网络中的每个适配器都有自己的MAC地址)

问:如何发送数据报到子网外呢?例如,假设主机A(111.111.111.111)要向主机B(222.222.222.222)发送一个IP数据报。

①该适配器应该使用什么MAC地址呢?
首先,通过查询两者的IP地址的网络号可知,他们不在同一子网中,因此A不会执行ARP查询来发现B的MAC地址。然后,数据报会先发给路由器接口C(111.111.111.110),因为它是通往最终目的地路径上的第一跳路由器的IP地址,故应该使用路由器接口C的MAC地址,即E6-E9-00-17-BB-4B。最后,发送适配器将创建一个帧(包含了寻址到B的IP地址的数据报),并发送到子网1中。路由器适配器接收到该链路层帧,并传递给路由器的网络层。

②数据报怎么通过路由器传递到另一个子网?
通过查询路由器中的转发表,可知该数据报通过路由器接口D(222.222.222.220)转发。然后该接口把这个数据报传递给它的适配器,适配器把该数据报封装到一个新的帧中,并且发送到子网2中。这时,该帧的目的MAC地址就是最终目的地的MAC地址了(通过ARP获得的该MAC地址)。

5.4.2 以太网

1. 以太网帧结构

以太网帧结构

  • 前同步码(8字节)。以太网帧以一个8字节的前同步码(Preamble)字段开始,该前同步码的前7字节的值都是10101010;最后一个字节是10101011.前同步码字段的前7字节用于“唤醒”接收适配器,并且将它们的时钟和发送方的时钟同步。 前同步码的第八个字节的最后两个比特(第一个出现的连续两个1)警告适配器B,“重要的内容”要来了。
  • 数据字段(46-1500字节)。这个字段承载了IP数据报。
  • 目的地址(6字节)。这个字段包含目的适配器MAC地址。
  • 源地址(6字节)。这个字段包含了传输该帧到局域网上。
  • 类型字段(2字节)。类型字段允许以太网复用多种网络层协议。事实上,一台给定的主机可以支持多种网络层协议,以对应不同的应该采用不同的协议。
  • CRC(4字节)。(CRC)循环冗余检测字段的目的是使得接收适配器检测帧中是否引入了差错。

2. 以太网技术

通过使用转发器(repeater)能够得到更长的运行距离,而转发器是一种物理层设备,它能在输入端接收信号并在输出端再生该信号。

5.4.3 链路层交换机

交换机的任务是:接收入链路层帧并将它们转发到出链路

1. 交换机转发和过滤

  • 过滤(filtering):决定一个帧应该转发到某个接口还是应当将其丢弃。
  • 转发(forwarding):决定一个帧应该被导向哪个接口,并把该帧移动到那些接口。

交换机的过滤和转发借助交换机表(switch table)完成。

交换机表中的一个表项包含:
  1. 一个MAC地址;
  2. 通向该MAC地址的交换机接口;
  3. 表项放置在表中的时间。

图5-15中最上面交换机的交换机表的一部分

交换机的特点:
  • 帧转发不同于数据转发,两者的一个重要差异是交换机转发分组基于MAC地址而不是IP地址。
  • 交换机自身对子网中的主机和路由器是透明的(transparent),即某主机/路由器向另一个主机/路由器寻址一个帧(而不是向交换机寻址该帧),顺利地将该帧发送进局域网,并不知道某交换机将会接收该帧并将它转发到另一个结点。
  • 交换机是即插即用设备(plug-and-play device),因为它们不需要网络管理员或用户的干预。
  • 交换机是双工的,任何交换机接口能够同时发送和接收。
交换机工作时会遇到的三种情况:
  • 没有对于目的地址的表项,交换机广播该帧。
  • 有对于目的地址的表项,但对应转发接口x与该帧到达接口x相同,交换机丢弃该帧执行过滤功能。
  • 有对于目的地址的表项,且对应转发接口y与该帧到达接口x不同,交换机将该帧放到接口y前面的输出缓存完成转发功能。

2. 自学习

自学习(self-learning)= 交换机表是自动、动态和自治地建立地,即没有外来网络管理员或来自配置协议的任何干预。

自学习的能力通过如下方式实现:
  1. 交换器初始表为空。
  2. 对于每个接口收到的每个入帧,该交换机在表中存储:
    ①在该帧源地址字段中的MAC地址;
    ②该帧达到的接口;
    ③当前时间。
  3. 如果在一段时间(称为老化期(aging time))后,交换机没有接收到该地址作为源地址的帧,就在表中删除这个地址。

3. 链路层交换机的性质

交换机的优点:
  • 消除碰撞。在使用交换机(不使用集线器)构建的局域网中,没有因碰撞而浪费的带宽。
  • 异质的电路。交换机将链路彼此隔离,因此局域网中的不同链路能够以不同的速率运行并且能够在不同的媒体上运行。
  • 管理。除了提供强化的安全性,交换机也易于进行网络管理。

5.4.4 虚拟局域网(Virtual Local Network, VLAN)

VLAN原理:

在一个基于端口的VLAN中,交换机的端口(接口)由网络管理员划分为组。每个组构成一个VLAN,在每个VLAN中的端口形成一个广播域(即来自一个端口的广播)。

支持VLAN的交换机允许经一个单一的物理局域网基础设施定义多个虚拟局域网。
配置了两个VLAN的单台交换机

VLAN互联:
情况1:完全隔离(物理空间上的隔离,如EE在一栋楼,CS在另一栋楼)的两个VLAN如何互联?

解决方案:
过程:从EE发往CS的数据报将首先跨越EE VLAN达到路由器,然后由该路由器转发跨越CS VLAN达到CS主机
原理:将VLAN交换机的一个端口与一台外部的路由器相连,并且将该端口配置为属于EE VLAN 和 CS VLAN,即使EE和CS共享相同的物理交换机。其逻辑配置看起来也放佛是EE和CS具有分离的经路由器连接的交换机。

情况2:没有完全分离开来,某些EE和CS的教职员工位于同一座建筑中,两台机器如何互联?

解决方案:
① 在每台交换机上定义一个属于CS VLAN的端口(对EE VLAN 也类似处理),并且如下图所示将这两个端口彼此互联起来。
缺点:这种方案不具有扩展性,每天交换机上N个VLAN将要求N个端口直接互联这两台交换机。
连接具有两个VLAN的两台VLAN交换机

②一种更具有扩展性互联VLAN交换机的方法为VLAN干线连接(VLAN trunking)。该干线端口属于所有VLAN,发送到任何VLAN的帧经过干线链路转发到其他交换机。

新的问题是,一个交换机如何知道达到干线端口的帧属于某特定的VLAN呢?IEEE定义了一种扩展的以太网帧格式——802.1Q,用于跨越VLAN干线的帧。该帧由标准以太网帧与加进首部的4字节VLAN标签(VLAN tag)组成。
初始的以太网帧(上部),802.1Q标签以太网VLAN帧(下部)

猜你喜欢

转载自blog.csdn.net/ill__world/article/details/79709362