计算机网络之链路层

  • 链路层:链路、接入网和局域网
  • 1链路层概述
  • 2 差错监测和纠正技术
  • 3 多路访问链路和协议
  • 4 交换局域网
  • 4.1 链路层寻址和ARP
  • 4.2 以太网
  • 4.3 链路层交换机
  • 5 链路虚拟化:网络作为链路层


链路层:链路、接入网和局域网

1链路层概述

  • 链路层提供的服务:链路层的基本服务是将数据报通过单一通信链路从一个结点移动到相邻结点,此外它还包括:成帧(framing)、链路接入(媒体访问控制(Medium Access Control, MAC)用于多路访问问题)、可靠交付(通过确认和重传取得)、差错监测和纠正。
  • 链路层是是现在路由器的线路卡中的。它的主体部分实在网络适配器(network adapter)中实现的,网络适配器有时也被称为网络接口卡(Network Interface Card, NIC). 网络适配器的核心是链路层控制器,该控制器是一个实现了链路层服务(成帧、链路接入、差错监测等)的专用芯片,链路层控制器的很多功能是用硬件实现的。

2 差错监测和纠正技术

  • 比特差错检测和纠正(bit-level error detection and correction),即对一个结点发送到另一物理上连接的邻近结点的链路层帧中德班item损伤进行检测和纠正,它们通常是链路层提供的两种服务。
  • 在传输数据中检测差错的三种技术:
  1. 奇偶校验。采用单个奇偶校验位(parity bit)来检验;采用二位奇偶校验(two dimensional parity)方案,可以检测到出现单个比特差错的事实,还可以利用奇偶校验差错的列和行的索引来实际识别发生差错的比特并纠正。
  2. 检验和方法。将k比特整数加起来,并用得到的和作为差错检测比特(TCP/UDP即采用这种这种方法)。接收方通过对接收的数据的和取反码,检测结果是否全为1比特即可。
  3. 循环冗余检测(Cyclic Redundancy Check, CRC),也称为多项式编码(polynomail code),该编码能够将要发送的比特串看作为系数是0或1的一个多项式,对比特串的操作被解释为多项式算术。
  • Q:为什么运输层使用检验和而链路层使用CRC呢?
  • A:运输层通常是在主机中作为用户操作系统的一部分用软件实现的。因为运输层差错检测用软件实现,采用简单而快速如检验和这样的差错检验方案是重要的。另一方面,链路层的差错检测在适配器中用专用的硬件实现,它能够快速执行更复杂的CRC操作。

3 多路访问链路和协议

  • 由两种类型的网络链路:点对点链路和广播链路。
  • 点对点链路(point-to-point link)由链路一端的单个发送方和链路另一端的单个接收方组成。
  • 广播链路(broadcast link)能够让多个发送方和接收结点都连接到相同的、单一的、共享的广播信道上。当任何一个节点传输一个帧时,信道广播该帧,每个其他结点都收到一个副本。
  • 多路访问问题(multiple access problem)是为解决如何协调多个发送和接收结点对一个共享广播信道的访问。将任何多路访问协议分为三种类型:
  1. 信道划分协议(channel parititioning protocol). 该协议包括时分多路复用(TDM)、频分多路复用(FDM)、码分多址(Code Division Multiple Access, CDMA)。TDM和FDM分别为结点分配时隙和频率,而CDMAA对每个结点分配一种不同的编码,然后每个结点用它唯一的编码来对它发送的数据进行编码。
  2. 随机接入协议。在该协议中,一个传输节点总是以信道的全部速率进行发送。当有碰撞时,涉及碰撞的每个结点反复地重发它的帧,到该帧无碰撞的通过为止。当每个结点经历一次碰撞时,它在重发该帧之前等待一个随机时延。设计碰撞的每个结点独立地选择随机时延。最常用的随机接入协议有:时隙ALOHA、ALOOHA、载波侦听多路访问(Carrier Sence Multiple Access, CSMA)、具有碰撞检测的CSMA(CSMA with Collision Detecion, CSMA/CD)。
  3. 轮游协议。比较重要的两种轮游协议:第一种是轮询协议(polling protocol),它将某个结点设置为主结点,主结点以轮讯的方式查询每个结点的碰撞情况;第二种是令牌传递协议(token-passing protocol), 在结点间有一个称为令牌(token)的小的特殊帧在结点之间以某种固定的次序交换。

4 交换局域网

4.1 链路层寻址和ARP

  • 主机和路由器的适配器(网络接口)具有链路层地址。具有多个网络接口的主机或路由器具有与之相关联的多个链路层地址。要注意:链路层交换机并不具有链路层地址,因为链路层交换机的任务是在主机与路由器之间承载数据报,主机和路由器不必明确的将帧寻址到其间的交换机,即交换机执行该任务是透明的。
  • 链路层地址有各种不同的称呼:LAN地址、物理地址、MAC地址。、
  • 没有两块适配器具有相同的MAC地址。
  • 因为存在网络层地址(因特网的IP地址)和链路层地址(及MAC地址),所以需要在它们之间进行转换,这就是地址解析协议(Address Resolution Protocol, ARP)。
  • DNS为在因特网中任何地方的主机解析主机名,而ARP只为在同一个子网上的主机和路由器接口解析IP地址。
  • 一个ARP分组具有包含链路层地址的字段,可认为是链路层协议;但它也包含网络层地址,也可认为是网络层协议,所以最好把ARP看成是跨越链路层和网络层边界两边的协议。

4.2 以太网

  • 以太网是目前为止最为流行的有线局域网技术。
  • 以太网帧结构:
  • 所有的以太网技术都向网络层提供无连接服务。以太网技术都向网络层提供不可靠服务。
  • 在今天大多数的安装中,结点经点对点的由双绞铜线或光纤线缆构成的线段与一台交换机相连。

4.3 链路层交换机

  • 交换机的任务是接收入链路层帧并将他们转发到出链路,它自身对于子网中的主机和路由器时透明的:某主机/路由器向另一主机/路由器寻址一个帧(而不是向交换机寻址该帧),顺利地将该帧发进局域网,并不知道某交换机将会接受该帧并将它转发到另一个结点。
  • 过滤(filtering)是决定一个帧应该转发到某个接口还是应当将其丢弃的交换机功能;转发(forwarding)是决定一个帧应该被导向哪个接口,并把该帧移动到那些接口的交换机功能。交换机的过滤和转发借助于交换机表(switch table)完成。
  • 交换机表中的一个表项包含:一个MAC地址;通向该MAC地址的交换机接口;表项放置在表中的时间。
  • 只要交换机的转发表是完整的和准确的,该交换机无需任何广播就向着目的地转发帧。
  • 交换机的转发表的建立是自动、动态、和自治地建立的,即没有来自网络管理员或来自配置协议的任何干扰。换句话说,交换机是自学习(self-l;aerning)的.
  • 交换机是即插即用的(plug-and-play device),因为他们不需要网络管理员或用户的干预;交换机也是全双功的,这意味着为何交换机接口能够同时发送和接收。
  • 交换机与路由器的比较:路由器是使用网络层地址转发分组的存储转发分组交换机;交换机用MAC地址转发分组。

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

  • 多协议标签交换(Multiprotol Label Swithing, MPLS)网络是一种分组交换的虚电路网络。
  • 一个MPLS使能的路由器被称为标签交换路由器,它通过在其转发表中查找MPLS标签,然后立即将数据报传递给适当的输出接口转发MPLS帧。MPLS使能的路由器不需要提取目的IP地址和在转发表中执行最长前缀匹配的查找。
  • MPLS基于标签执行交换,不考虑分组的IP地址。