MAC地址;地址解析协议(ARP);以太网;链路层交换机

链路层编址

  1. 地址解析协议(ARP),该协议为节点提供了将IP地址转换为链路层地址的机制。
  2. 动态主机配置协议(DHCP)。

MAC地址

并非节点具有链路层地址,而是节点的适配器(网络接口)具有链路层地址(MAC)。 
MAC地址的作用是标识局域网内一个帧从哪个接口到哪个物理相连的其他接口.因此,拥有多个网络接口的主机或路由器将具有与之相关联的多个链路层地址,就像他们也具有多个IP地址一样.需要注意的是,链路层交换机没有MAC地址. 
MAC地址也被称为LAN地址,物理地址. 
MAC地址长度为6个字节,,共有2^48个可能的MAC地址. 
MAC地址空间由IEEE统一管理.当一个公司要生产适配器的时候,他象征性的付一点钱给IEEE,买一个2^24的地址空间.IEEE固定前24位,后24位由各个公司自己生成唯一标识. 
当适配器收到一个帧时,会先检查这个帧的MAC地址与自己的接口MAC是否一致,如果不匹配就丢弃该帧,如果匹配向上传递.这种适配是使用硬件实现的. 

FF-FF-FF-FF-FF-FF是唯一的用来广播的MAC地址

地址解析协议(ARP)

ARP做什么? 

ARP:将32位的IP地址转换为48位的物理地址MAC。

ARP的任务是把网络层的IP地址和链路层的MAC进行转换 
在发送主机的ARP模块将取在相同局域网上的任何IP地址进行输入,然后返回相应的MAC地址 
DNS和ARP很相似,但是DNS和ARP的区别是DNS为因特网上的任何主机解析主机名,而ARP只为在同一个子网上的主机和路由器接口解析IP地址. 
ARP如何工作? 
每台主机或者路由器在它的内存中都有一张ARP表,这张表包含了IP地址到MAC地址的映射关系.ARP表中也有一个寿命(TTL)值,它指示了从表中删除每个映射的时间,一个表项的过期时间一般是20分钟 
这张表不必为该子网上的每台主机和每个路由器都包含一个表项,某些可能从没进入过表,某些可能已经过期 
当主机222.222.222.220要发送一个数据报,该数据报要IP寻址到本子网上另一台主机或路由器.发送主机需要拿到MAC地址然后进行发送.如果ARP表中有这一项,那么直接取即可.如果没有,那么就会发送一个ARP分组. 
一个ARP分组有几个字段,包括发送和接收IP地址和MAC地址.ARP查询分组和ARP响应分组都具有相同格式. 
222.222.222.220使用MAC广播地址FF-FF-FF-FF-FF-FF向它的接口传递一个ARP查询分组,接口在链路层帧中封装这个ARP分组,用广播地址作为帧的目的地址,并将该帧传输进子网中,子网中的每个结点的接口都能收到该帧,并都把该帧中的ARP分组向上传给ARP模块,ARP检查查询分组中的目的IP地址和自己的IP是否一样,其中匹配的那一个给查询主机送回(不是广播)一个ARP响应,然后222.222.222.220更新它的ARP表并发送IP数据报,该数据报被封装在链路层帧中,且该帧的目的MAC就是对先前ARP请求进行响应的MAC地址。

TIP:

  • ARP查询是广播,ARP响应是标准传输
  • ARP是即插即用的,不需要管理员配置
  • ARP是跨越链路层和网络层边界的协议
  • 当向另一个子网中发送数据时,每次都会使用ARP找到下一跳,然后一跳一次的穿过去.不能用ARP直接解析,因根本不在一个子网中

ARP报文格式如下:


硬件类型(16位):指定物理地址的类型,1表示以太网。

上层协议类型(16位):指定要将MAC地址映射成什么协议的地址。0x0800表示IP地址。

MAC地址长度(8位):指定MAC地址的长度,单位是字节。

协议地址长度(8位):指定协议地址的长度,单位为字节。

操作类型:1表示ARP请求、2表示ARP回应、3表示RARP请求,4表示RARP回应。

接下来为发送源的物理地址和协议地址(由于回应时要知道发送给谁,以此来封装以太帧),目的物理地址和协议地址。

封装ARP请求时,发送源除了目的物理地址外都会填写。

当路由器或主机选择了某条路由时,首先会查找ARP缓存,若缓存中有对应IP地址的物理地址,则以此封装以太帧,否则会广播(为二层广播)ARP报文,每个主机接收到ARP请求报文后,会缓存发送源的IP——MAC对到ARP缓存中,目的主机会发送ARP回应(此时为单播),当发送源接收到回应时,会将目的方的IP——MAC对存放在ARP缓存中。在点到点的物理连接中,是不会用到ARP报文的,在启动时双方都会通告对方自己的IP地址,此时物理层的封装不需要MAC地址。windows上可以使用arp -a查看本机的ARP缓存。ARP缓存中的每个条目的最大存活时间为20分钟(从条目创建时开始计时)。

ARP代理:

之前说ARP请求是广播的,我们知道路由器是分割广播域的(这部分在CCNA总结中会讲),如果我们要查询的IP地址在外网怎么办?此时就需要ARP代理,当发送源广播ARP请求时,本地网络上不会有主机回应(因为IP地址是外网的),此时路由器将会回应该请求,则发送源误认为路由器就是目的主机,会将报文全部转发给它,再由路由器转发报文,则该路由器就被称为ARP代理。

免费ARP:

在主机开机配置时,会发送一个目的IP地址为自己IP地址的ARP请求报文,该报文称为免费ARP,其作用如下:

1、让主机确认本地网络上是否有与自己IP地址相同的主机,若有,则ICMP错误报文被返回。

2、若接收主机ARP缓存中本身就有发送源主机的IP——MAC对,则会更新,否则,会缓存发送源的IP——MAC对。

以太网

以太网是一种局域网技术. 
以太网现行的主要结构是星型拓扑,不再使用集线器,而是使用交换机. 
交换机不仅是无碰撞的,而且是名副其实的存储转发分组交换机.交换机运行在第二层.

以太网帧结构

|–前同步码–|–目的地址–|–源地址–|–类型–|–数据–|–CRC–|

字段 描述
数据字段(46-1500字节) 这个字段承载IP数据报.以太网的最大传输单元(MTU)是1500字节.如果超过就要分片.最小是46字节,如果不足,就要填充.网络层使用IP数据报标记的长度来确定去掉填充的字节.
目的地址(6字节) 目的接口的MAC地址.只有本接口地址和广播地址,帧中的数据字段才会被接收方送到网路层.
源地址(6字节) 发送者的MAC地址
类型字段(2字节) 不一定数据一定是IP数据报.可能是各种不同的网络协议.比如ARP,AppleTalk等.用来标记网络层协议类型,以正确分发给网络层
CRC(4字节) 使接收接口检测帧中是否引入了差错
前同步码(8字节) 前七个字节(10101010)用来”唤醒”接收适配器,并且同步时钟频率(为了支持不同的以太网速率总会产生漂移).第8个字节(10101011)最后两个比特(第一个连续出现的1)用来警告网卡:”数据马上到来”

以太网面向无连接,都向网络层提供不可靠服务.当使用CRC检测到帧错误后,它只是简单的丢掉,不会确认重传

链路层交换机

交换机的任务是接收入链路层帧并将它们转发到出链路。交换机自身对子网中的主机和路由器是透明的。

交换机转发和过滤

过滤是决定一个帧应该转发到某个接口还是应当将其丢弃的交换机功能. 
转发是决定一个帧应该被导向哪个接口并且导向这个接口的功能. 
转发和过滤通过交换机表来完成 
交换机表项有:

  • MAC地址
  • 通向该MAC地址的接口号
  • 表项放在表中的时间

交换机转发的分组和路由器不一样,交换机转发的分组基于MAC地址 
当一个目的地址发来时,交换机做这样的处理:

  • 表中没有该表项时,交换机广播(除了来源接口)
  • 查表得来源接口和目的接口一样,交换机丢弃分组(已经在包含目的地的局域网网段广播过了)
  • 查表得有一个表项匹配,且不是来源接口,交换机转发分组过去.

自学习

交换机是这样自学习的:

  • 交换机初始为空
  • 每个入帧到达,交换机会存储1.该帧源地址2.该帧到达的接口3.当前时间
  • 如果过了老化期后,交换机没有收到同一个源地址的帧,交换机就删除这个表项.(防止接口上的一台PC被另一个替换)

交换机是即插即用的;是双工的,任何交换机接口能够同时发送和接收

链路层交换机的性质

交换机的几个优点:

  • 消除碰撞:使用交换机的局域网没有因碰撞浪费的带宽.交换机缓存帧,并且同一时刻只发一个.最大聚合带宽是所有接口之和
  • 异质的链路:交换机将链路彼此隔离
  • 管理:交换机易于进行网络管理

TIP:交换机毒化

  • 攻击者向交换机发送大量具有不同源MAC地址的分组,用伪造表项填满交换机表项.让正常的分组没办法传输,交换机只能广播大部分的帧,这些帧能够由嗅探器俘获到

交换机与路由器比较

交换机的优点和缺点 
优点 :

  • 即插即用
  • 具有相对较高的分组过滤转发速率

缺点:

  • 大型交换网络要求主机和路由器上有大的ARP表,这将生成可观的ARP流量和处理量.
  • 交换机对于广播风暴不提供任何保护措施,如果主机出故障不停广播帧,交换机会转发所有帧,让以太网崩溃

路由器的优点和缺点 
优点:

  • 路由器没有生成树限制,所以路由器允许以丰富的拓扑结构构建因特网
  • 路由器对第二层的广播风暴提供了防火墙保护

缺点:

  • 不是即插即用的
  • 处理分组时间长

链路虚拟化:网络作为链路层

多协议标签交换的目标是:对于基于固定长度标签和虚电路的技术,在不放弃基于目的地IP数据报转发的基础设施的前提下,当可能是通过选择新的标识数据报并允许路由器基于固定长度的标签(而不是目的地IP地址)转发数据报来增强功能 
MPLS分组只能在MPLS使能的路由器之间发,因为MPLS首部位于链路层和网络层首部之间,普通路由器不认识. 
MPLS使能的路由器会通告其他路由自己能到达的目的地A,并且通告MPLS的某个标签可以到达目的地A. 
当一个MPLS分组到达时,路由器解析入标签,查MPLS表,然后把标签换成表中的出标签,发送到表中标记的接口中(类似虚电路). 
MPLS可以配置一条预计算的无故障的路径来应对链路故障.


猜你喜欢

转载自blog.csdn.net/qq_22238021/article/details/80569617