本系列文章为408考研计算机网络知识点整理仅涉及到一些重要的考研知识点并不完全包含全部知识,参考书目和视频资料:谢希仁 计算机网络(第8版),王道考研计算机网络,B站湖科大计算机网络微课堂。

3.5 MAC地址、IP地址、ARP地址

3.5.1 MAC地址

概念

一般情况下,用户主机会包含两个网络适配器:有线局域网适配器(有线网卡)和无线局域网适配器(无线网卡)。每个网络适配器都有一个全球唯一的MAC地址。而交换机和路由器往往拥有更多的网络接口,所以会拥有更多的MAC地址。综上所述,严格来说,MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识。

IEEE 802 局域网的MAC地址格式

MAC地址的发送顺序

字节发送顺序:第一字节→第六字节
字节内的比特发送顺序:b0→b7

MAC地址举例

单播

广播

多播

以太网 V2 的 MAC 帧格式

  • 类型字段用来标志上一层使用的是什么协议,以便把收到的 MAC 帧的数据上交给上一层的这个协议。
  • 数据字段的正式名称是 MAC 客户数据字段。最小长度:64 字节 – 18 字节的首部和尾部 = 数据字段的最小长度(46字节)
  • 当数据字段的长度小于 46 字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的 MAC 帧长不小于 64 字节。

无效MAC帧

  • 数据字段的长度与长度字段的值不一致;
  • 帧的长度不是整数个字节;
  • 用收到的帧检验序列 FCS 查出有差错;
  • 数据字段的长度不在 46 ~ 1500 字节之间。
  • 有效的 MAC 帧长度为 64 ~ 1518 字节之间。

对于检查出的无效 MAC 帧就简单地丢弃。以太网不负责重传丢弃的帧。

3.5.2 IP地址

数据包转发过程中源IP地址和目的IP地址保持不变。
数据包转发过程中源MAC地址和目的MAC地址逐个链路(或逐个网络)改变。

3.5.3 ARP地址

如上图所示,B要给C发送数据报,B知道C的IP地址但是不知道C的MAC地址,需要在主机 B 的ARP高速缓存中查找,ARP高速缓存表如图所示:

没有找到主机C的IP地址对应的MAC地址,则发出ARP请求报文,形式为广播帧,如下图所示:

ARP响应报文(单播)接受过程如下:

注意:ARP协议只能逐段链路进行。

3.6 拓展的以太网

3.6.1 在物理层拓展以太网

由于集线器可以看成一个总线,根据总线的特性,总线上的一个主机要给另外一个主机发送数据帧,则其他主机也都能接受到这个数据帧,即形成一个网络。

优点:

  • 使原来属于不同碰撞域(冲突域)的计算机能够跨碰撞域通信。
  • 扩大了以太网覆盖的地理范围。

缺点:

  • 碰撞域增大了,总的吞吐量未提高。
  • 如果使用不同的以太网技术(如数据率不同),那么就不能用集线器将它们互连起来。

碰撞域又称为冲突域,指网络中一个站点发出的帧会与其他站点发出的帧产生碰撞或冲突的那部分网络。碰撞域越大,发生碰撞的概率越高。

3.6.2 在数据链路层拓展以太网

使用集线器的网络上,一个主机要给另外一个主机发送信息,则其他所有主机也都会收到信息,而使用交换机的网络,其他主机不会接收到这些信息。

集线器和交换机的区别

3.6.3 以太网交换机自学习和转发帧

  • 如下图,有两个以太网交换机,每个交换机上有3台主机,假设各主机已经知道网络中其他各主机的MAC地址(即无需再进行ARP)。
  • 假设A要给B发送帧,该帧从主机A的接口1进入交换机1,交换机1首先进行登记,将该帧的源MAC地址A和对应的接口号记录到帧交换表中,该登记工作称为交换机的自学习
  • 该帧的目的MAC地址为B,在帧交换表中没找到,则对该帧进行盲目转发(也称为泛洪),即将该帧转发给除了该帧进入接口以外的所有接口。
  • 主机B的网卡收到该帧后确认目的地址是自己,所有接受该帧,主机C舍弃该帧。
  • 该帧从交换机2的接口2进入交换机2,交换机2首先进行登记工作,将该帧的源MAC地址A和进入的接口好2记录到帧交换表中。
  • 该帧的目的MAC地址为B,在帧交换表中没找到,则对该帧进行盲目转发,主机DEF都收到并舍弃该帧。
  • 下面主机B给主机A发送帧,该帧从接口3进入交换机1,交换机1记录MAC地址B和对应的接口3。
  • 在帧交换表中查找目的MAC地址A,发现对应的接口为1,于是从接口1转发该帧。
  • 主机1的网卡接收到该帧,其他主机不会收到该帧。

B—>A

  • 下面主机E给主机A发送帧,首先该帧从接口3进入交换机2,交换机2登记MAC地址E和接口3。
  • 在交换表中查找MAC地址A对应的接口为2,则帧转发到接口2,从交换机1的接口4进入交换机1。
  • 交换机1先进行登记工作,记录E的接口为4,然后查找A的接口为1。
  • 交换机1转发该帧到接口1,主机A接受该帧。

E—>A

  • 假设交换机1的接口1又连接了一台主机G,主机G给A发送帧。
  • 该帧通过总线进行传输,主机A和交换机1的接口1都能收到该帧,主机A的网卡收到该帧后接受该帧,交换机1收到该帧先进行登记操作,再进行转发。
  • 交换机1在帧交换表中查找发现MAC地址A的接口为1,但是该帧就是从接口1进入交换机1,所以交换机1不再从该接口转发出去,所以丢弃该帧。

随着网络中各主机都发送了帧,则交换机学习到了所有主机对应的MAC地址和对应的接口,但是每条记录都存在有效时间,因为MAC地址和交换机接口不是永久对应的,比如更换网口或者连接了其他的主机,这些都会导致交换机接口和MAC地址改变。

3.6.4 以太网交换机的生成树协议STP

STP协议的必要性

如图所示的以太网,如果发生链路故障,则主机之间就无法进行通信,那么如何可以提高以太网的可靠性呢?添加冗余链路可以提高以太网的可靠性,如下图。

但是冗余链路也会造成很多负面影响,比如:

  • 造成广播风暴
    • 主机H1发送广播帧,交换机B接受到帧后从其他的接口发送该帧,该帧到达交换机A和C。
    • 交换机A收到B发送来的广播帧后从其他接口转发该帧,同时交换机C收到该帧后也从其他接口转发该帧。
    • 交换机C又收到了来自交换机A的广播帧,从其他接口转发该帧,交换机A收到来自交换机C的广播帧,同样进行转发。
    • 如此进行,就会出现无穷无尽的转发,大量消耗网络资源。
  • 主机收到重复分广播帧,大量消耗主机资源。
  • 交换机的帧交换表震荡(漂移),由于广播风暴,一个交换帧会多次进入同个交换机,交换机进行多次记录操作,发生错误。

STP协议概念

以太网交换机使用生成树协议STP(Spanning Tree Protocol)可以在增加冗余链路来提高网络可靠性的同时又避免网络环路带来的各种问题。
不论交换机之间采用怎样的物理连接,交换机都能够自动计算并构建一个逻辑上没有环路的网络,其逻辑拓扑结构必须是树型的(无逻辑环路)
最终生成的树型逻辑拓扑要确保连通整个网络:当首次连接交换机网络物理拓扑发生变化时(有可能是
人为改变或故障),交换机都将进行生成树的重新计算。

3.7 虚拟网络VLAN

3.7.1 VLAN的必要性

3.7.2 VLAN概念

3.7.3 划分虚拟局域网的方法

基于交换机端口的方法:

直接根据端口号划分,最简单、也是最常用的方法。属于在第 1 层划分虚拟局域网的方法。

缺点:不允许用户移动。

基于计算机网卡的 MAC 地址的方法:

根据用户计算机的 MAC 地址划分虚拟局域网。属于在第 2 层划分虚拟局域网的方法。允许用户移动。

缺点:需要输入和管理大量的 MAC 地址。如果用户的 MAC 地址改变了,则需要管理员重新配置VLAN。

基于协议类型的方法:

根据以太网帧的第三个字段“类型”确定该类型的协议属于哪一个虚拟局域网。属于在第 2 层划分虚拟局域网的方法

基于 IP 子网地址的方法:

根据以太网帧的第三个字段“类型”和 IP 分组首部中的源 IP 地址字段确定该 IP 分组属于哪一个虚拟局域网。

属于在第 3 层划分虚拟局域网的方法。

基于高层应用或服务的方法:

根据高层应用或服务、或者它们的组合划分虚拟局域网。更加灵活,但更加复杂。

3.7.4 VLAN实现机制

IEEE 802.1Q帧

交换机的端口类型

交换机的端口类型有以下三种:
Access
Trunk
Hybrid
交换机各端口的缺省VLAN ID
在思科交换机上称为Native VLAN,即本征VLAN。
在华为交换机上称为Port VLAN ID,即端口VLAN ID,简记为PVID.

Access端口:

Trunk端口:

举例