计算机网络——链路层-交换局域网

计算机网络系列博文——目录

交换局域网

链路层寻址和ARP

MAC地址

  • 又称LAN地址,物理地址;
  • 主机,路由器具有链路层地址。事实上,主机或路由器上的网络适配器具有链路层地址;
  • 具有多个网卡的主机或路由器将具有多个链路层地址(同时也具有多个网络层地址,即IP);
  • 链路层交换机的接口不具有链路层地址;(网络层交换机即路由器的接口具有网络层地址即IP)
  • 对大多数局域网,MAC地址长度为6字节,常用十六进制数表示,,用“-”分隔每个字节;
  • MAC被设计为永久的,但用软件改变一块网络适配器的MAD地址是可能的;
  • 网络适配器的MAC地址是唯一的;
  • IEEE管理MAC地址空间,网络适配器厂商在生产适配器之前,需向其象征性地支付费用以获得一块地址空间,该地址空间的前24Bit固定;后24bit由厂商为自己的适配器分配;
  • 适配器的MAC地址具有扁平结构而非层次结构;
  • 发送帧时,网卡目的网卡的MAC地址插入帧中,并将该帧发生到局域网;

  • 接收帧时,网卡检查收到的帧的目的MAC地址是否与自身匹配,若不匹配则丢弃;

  • MAC广播地址 特殊目的MAC地址,表明该帧发给局域网内的所有网卡。6字节MAC局域网中,广播地址为FF-FF-FF-FF-FF-FF;

主机和路由器网卡双地址
网卡同时具有IP地址和MAC地址,为什么?

  1. 局域网为任意的网络层协议而设计,并非仅限于IP协议和因特网;
  2. 使用可变的网络层地址会造成麻烦;
  3. 若不使用任何链路层地址,而将链路层帧的数据直接交付给网络层,由网络层负责匹配,这样做会给上层带来较大负担(对每个帧都要中断网络层);

地址解析协议(Address Resolution Protocol,ARP)

ARP服务

  • 因特网通过地址解析协议实现网络层地址(IP)和链路层地址(MAC)间的转换;
  • 端系统的ARP模块将其所在局域网上的任一IP地址作为输入,将相应MAC地址作为输出;
  • ARP为同一个子网上的主机和路由器解析IP地址;
  • ARP协议跨越网络层和链路层边界;
  • ARP协议即插即用,通过ARP解析自动建立,无需管理员配置;

ARP表

  • 每台主机或路由器在内存中存放一张ARP表,该表包含IP地址到MAC地址的映射;
  • 表项包含IP地址,MAC地址,寿命TTL(过期时间,时长常为20分钟)三个字段;
  • ARP表事实上是一个缓存,它缓存了ARP解析的数据;

ARP解析

假定要主机A要查询IP Ib 的MAC

  1. 检查ARP表中有无 IP Ib 的表项,若有,返回相应地址;若无,进入2;
  2. 向网卡传递一个ARP查询分组,该分组的源包括主机A的IP和MAC,该分组的目的地包括IP Ib和MAC广播地址;
  3. ARP查询分组在子网中传播,被每个其它网卡接收;
  4. 每个网卡接收该查询分组并将数据交付各自的ARP模块,ARP模块检查查询分组中的目标IP,若目标IP不匹配则丢弃,若匹配,则向查询主机发送一个ARP响应分组,通过自身的MAC;
  5. 主机A收到ARP响应,更新ARP表;

跨子网数据报

  • 当向其它子网发送数据报时,发送主机不可能知晓最终目的地的MAC地址,因为ARP协议只解析同一子网内的IP;
  • 事实上,发送主机设置数据报的目标IP是最终目的主机,但目标MAC却是同一子网内的第一跳路由器在该子网一侧的网卡的MAC,该MAC也是通告ARP获得;
  • 路由器接收到来自子网A的数据报后,为之设置恰当的源和目的MAC地址并转发到另一个子网中的接口;

你可能感兴趣的:(计算机网络——链路层-交换局域网)