当前位置:   article > 正文

手撕计算机网络——链路层(二):交换局域网_手撕以太网

手撕以太网

前言

        在这篇文章中,荔枝会从交换局域网比较详细梳理一下有关交换机的知识和一些寻址协议,同时也对以太网帧的知识进行梳理,最后会简单整理一下VLAN和数据中心网络的知识。


文章目录

前言

一、链路层寻址与ARP

1.1 MAC地址 

1.2 地址解析协议——ARP

二、以太网

2.1 以太网帧结构

三、交换机

3.1 交换机转发和过滤

 3.2 自学习

3.3 交换机链路特性 

四、虚拟局域网

五、数据中心网络 

总结


一、链路层寻址与ARP

在前面的网络层的学习中,我们知道路由器中有路由选择算法来设定数据报的传输路径并基于目的地址转发(假设是这样),那么在链路层中我们是如何实现链路层帧的的传输的呢?我们首先还是得清楚如何在链路层中寻址的。

1.1 MAC地址 

        MAC地址,也就是我们所说的链路层地址。LAN地址、物理地址。事实上并不是主机或者是路由器具有链路层地址,而是他们的适配器具有链路层地址,链路层交换机并不具备有与它们的接口相关联的链路层地址,因为在链路层中交换机仅作为承载数据报,主机或者路由器并不需要明确的将帧寻址到交换机中。MAC地址长度为6字节,采用十六进制表示法表示。适配器的MAC地址具有扁平结构,同时不论适配器到哪里用都不会发生变化。

MAC地址应用 

当某适配器要向目的适配器发送一个帧时,发送适配器需要将目的适配器的MAC地址插入到该帧中并将其广播到局域网上。当然了,适配器也可以接受一个并非向它寻址的帧,适配器会将就收到的帧检查其MAC地址是否匹配,如果匹配就会将该帧向上传递,不匹配就会丢弃。当适配器想要让其它所有的适配器处理他所发送的帧时需要在目的地址字段插入一个MAC广播地址——FF-FF-FF-FF-FF-FF。

在协议栈的不同层级中,我们也学习了不同的寻址方案,除了MAC地址,我们还总结了应用层通过主机名寻址、网络层的IP寻址。

1.2 地址解析协议——ARP

        我们知道在协议栈中不同层级之间是有相互关联的,那么网络层和链路层之间也是有地址转换的关系的,所以我们需要能够将IP地址和MAC地址之间实现转换,这就是地址解析协议(ARP)。其实我们前面也学习了类似的解析类型的协议——DNS,但是DNS是将主机名解析为IP地址、而ARP则是将IP地址解析为一个MAC地址, 同时ARP只能在同一个子网中为主机和路由器接口提供IP地址解析服务。

ARP表 

每台主机或路由器在其内存中具有一个ARP表,该表记录了IP地址到MAC地址的一种映射关系,同时每一个表项都有一个TTL(寿命值)。当发送方要发送一个数据报给接收方时,发送方会首先用ARP协议来解析目的地址的IP:首先构造一个ARP查询分组,并且指示适配器用MAC广播地址作为帧的目的地址在链路层帧中去封装该ARP分组并传输进子网。子网中的所有适配器会将该帧的ARP分组向上传递给ARP模块,每一个ARP模块都查询自己ARP表中的IP与目的IP是否匹配,若匹配就会给查询主机发送一个带有所希望映射的ARP响应分组,查询主机就会更新它的ARP表,并向响应的主机或路由器发送链路层帧。

        ARP分组有几个特殊字段,包括了发送和接收方的IP地址和MAC地址,同时ARP查询分组和响应分组的格式基本相同,查询分组主要是询问子网上的主机或者是路由器以确定要解析的IP地址对应的MAC地址。

ARP特性

我们还需要注意ARP的特性:ARP是即插即用的,每一个ARP表是自动建立的,不需要管理员来配置,如果某设备(主机或路由器)离开该ARP的子网,那么该子网的ARP表项会在一段时间后删除该设备映射的表项。

两个子网间通信 

        我们知道,一个路由器对于它上面的每一个接口都会有一个IP地址和MAC地址,对应的也会有一个ARP模块和适配器。那么在两个不同的子网之间进行数据报的传输时,我们先假设两个子网的交换机都连在一个路由器上,那么子网1中的主机A的适配器发送的数据报需要告诉其适配器目的的MAC地址,但这个目的MAC地址不是主机B的MAC地址,而是子网2接在路由器接口上的MAC地址,这其实是为了通过路由器将数据报直接传递到网络层中。


二、以太网

以太网几乎占据了所有的有线局域网的市场,对于本地区域联网的地位是非常重要的。在生活中几乎处处可见我们的以太网的应用,比如你用一根网线接在你的电脑上,这其实就是以太网接入。

2.1 以太网帧结构

下面我们先来可靠以太网的帧结构:

  • 数据字段:承载IP数据报,以太网的最大传输单元(MTU)为1500字节
  • 目的地址:包含目的适配器的MAC地址
  • 源地址:包含了传输该帧到局域网上的适配器的MAC地址
  • 类型字段:允许以太网复用多种网络层协议
  • CRC:辅助接收适配器进行循环冗余检测,检测是否有比特差错
  • 前同步码:前同步码的前7个字节用于“唤醒”接收适配器,并将他们的时钟与发送官方的时钟同步, 第8个字节的最后两个比特可以用来“警告”重要的内容 

        直至今天,以太网采用的是基于交换机的星型拓补结构,采用的是存储转发分组交换,在这个体系结构中离不开的就是交换机。交换机协调其帧的传输,现代的交换机是全双工的,并在任何时候绝不会往同一个接口转发超过一个帧,这使得一台交换机和一个节点能够在向对方发送帧而不会产生干扰,也不会出现碰撞,这时候的MAC协议就显得没有那么重要了。 


三、交换机

        交换机的任务就是接收入链路层帧并将他们转发到出链路,与路由器有点类似。在前面我们提到交换机对于主机和路由器是透明的,也就是说当主机和路由器在寻址帧并将该帧送进局域网时并不知道某交换机将会接收并转发该链路层帧。

3.1 交换机转发和过滤

        过滤是决定一个帧应该转发到某个接口还是应当将其丢弃的交换机功能;转发是决定一个帧应该被导向哪个接口,并将该帧移动到那些接口的交换机功能。交换机的过滤和转发是通过交换机的交换机表完成。交换机表中的一个表项包括:MAC地址、通往该MAC地址的交换机接口、表项在表中可以放置的时间。下面我们需要了解这几种交换机在过滤和转发时可能出现的情况:

  • 广播:当交换机表中没有我们需要的MAC地址对应的接口这一表项,交换机就会广播该帧;
  • 丢弃:当交换机表中接口接收到其它接口对应的MAC地址后会将该帧丢弃以实现过滤功能;
  • 转发:交换机通过将传输过来的帧放在对应的接口前面的输出缓存完成转发功能。

 3.2 自学习

        交换机有一个惊人的特性,那就是它的交换机表是自动、动态和自治地建立的,换句话说,交换机是自学习的。 交换机表初始时为空,对于每个接口接收到的入帧,交换机会在其表中存储:该帧源地址字段中的MAC地址、该帧到达的接口以及当前的时间。局域网中每一个主机发送一个帧,那么在该交换机的交换机表中就会有记录,当然了,这个记录也是有过期时间的。

3.3 交换机链路特性 

相比于总线或基于集线器的星形拓补那样的广播链路,使用了交换机的具有如下几个优点:

  • 消除碰撞:在使用交换机构建的局域网中,不存在因碰撞而浪费的带宽,这是因为交换机会缓存帧并在同一个网段上不会同时传输超过一个帧;
  • 异质的链路:交换机将彼此链路隔离开来;
  • 管理:除了提供强换的安全性,交换机也易于进行网络管理;

        我们知道,路由器是使用网络层地址转发分组的存储转发分组交换机,而交换机则是采用MAC地址转发分组的。现代交换机能够转发基于帧的目的MAC地址第二层帧,也能够转发使用数据报目的IP地址的第三层数据报,交换机是即插即用的,具有较高的分组过滤和转发速率;但它也会有缺点,交换机对于广播风暴并无保护措施。通常来说,对于只有几百台主机组成的小网络,交换机基本就够用了,但在更大的网络中,我们会一起选用路由器和交换机。


四、虚拟局域网

        我们在构建现代的局域网中会发现理想状态先一个交换机等级结构与其他工作组的交换局域网互联能很好地工作,但现实总会暴露出一些问题:缺乏流量管理(广播流量仍然必须跨越整个机构网络)、交换机无效使用、不同交换机间管理用户比较困难。这时候就需要选用支持虚拟局域网(VLAN)的交换机来解决这个问题。支持VLAN的交换机允许经一个单一的物理局域网的基础设施来定义多个VLAN,在一个基于端口的VLAN中,交换机的端口有管理员划分为组,每个组构成一个VLAN,每个VLAN中的端口形成一个广播域。换句话说,其实支持VLAN的物理交换机可以通过将端口划分给不同的广播域组成多个VLAN。那如何将两个交换机中的端口互联呢?我们采用一种更具拓展性的方法——VLAN干线连接,干线端口中的所有权属于所有VLAN,发送到任何VLAN的帧经过干线链路转发到其它的交换机中。用来跨越VLAN干线的帧就是在标准一台网帧中加进4字节的VLAN标签,VLAN标签承载着该帧所属的VLAN标识符,一个VLAN标签有2个字节的标签协议标识符(TPID)字段、一个2字节的标签控制信息字段和一个3比特的优先权字段组成。


五、数据中心网络 

        云应用的数据中心网络是我们听说过但没有实际了解过的内容。数据中心的主机一般被称之为刀片,一般是包括CPU、内存、磁盘存储的商用主机,这些主机被堆叠在机架上,每个机架的顶部都有一台交换机——机架顶部交换机(TOR),每台TOR交换机有人外的端口能够与其它TOR交换机连接,每台主机也都有自己的IP地址。数据中心网络包括了机架、边界路由器和负载均衡器,每一个数据中心的内部,外部请求都会被定向到一个负载均衡器来均衡主机间的负载。数据中心也通常采用路由器和交换机等级结构(即采用多层交换机,不同层级的交换机没有交叉连接),但现在也有一种趋势:采用全连接拓补来替代交换机和路由器的等级结构。


总结

        通过这两篇文章的整理我们对于链路层体系结构和帧的传输有了一个大致的了解,同时也结束了有线局域网的知识梳理,后面的链路层文章我们再一起梳理WIFI和蜂窝通信的相关知识,一起加油吧哈哈哈哈

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/88527
推荐阅读
相关标签