计算机网络——第六章:链路层和局域网

参考书目《计算机网络:自顶向下方法(第七版)》

链路层概述

链路层提供的服务:

  • 成帧
    将网络层数据报封装成链路层帧。一个帧由一个数据字段和若干首部字段组成
  • 链路接入
    媒体访问控制(Medium Access Control, MAC)协议规定了帧在链路上的传输的规则。
    对于点对点链路(PPP)MAC协议比较简单,当链路空闲时发送方都能发送;对于广播链路,即所谓的多路访问问题,MAC协议用于协调多个节点的帧传输
  • 可靠交付
    链路层可靠交付服务通常用于易于产生高差错率的链路,如无线链路,其目的是本地纠正一个差错,而不是通过运输层或应用层协议迫使进行端到端的数据重传
    对于低比特差错的链路,链路层可靠交付服务可能会认为是一种不必要的开销,因此许多有线的链路层协议不提供可靠交付服务
  • 差错检测和纠正
    链路层的差错检测通常更复杂,并且用硬件实现
    差错纠正使得接收方检测出帧中出现的比特差错,而且能定位并纠正它们

链路层的主体部分是在*网络适配器(network adapter)中实现的,网络适配器有时也被称为网卡(Network Interface Card, NIC)


差错检测和纠正技术

使用差错检测和纠正技术仍有可能有未检出比特差错,因而需要选择一个方案使得这种事情的发生概率很小
传输数据中检测差错的三种技术:奇偶校验检验和方法(更多用于传输层)、循环冗余检测(通常用于适配器中的链路层)

奇偶校验

单比特奇偶校验只能用于单比特差错检测,而实际中经常以聚集地方式出现
二维奇偶检验可以检测到单比特差错并且定位纠正错误比特,但对于多比特差错则只能检测而不能纠正

接收方检测和纠正差错的能力被称为前向纠错
通过请求发送方重传出错的数据称为后向纠错

检验和方法

因特网检验和(checksum)就基于这种方法,以16比特为单位求取检验和
为什么运输层使用检验和而链路层使用CRC?

  • 传输层差错检测用软件实现,简单而快速如检验和这样的方案是重要的
  • 链路层差错检测在适配器中有专用硬件,能够快速执行更复杂的CRC操作

循环冗余检测

循环冗余检测编码(CRC)也称为多项式编码
CRC前提:对于$d$比特的数据$D$,发送方和接收方事先协商一个$r+1$比特的$G$(称为生成多项式(generator)),并且要求$G$的最高位为1
CRC核心思想:对于一个给定的$D$,发送方要选择$r$个附加比特R将其附加到D后面,使得得到的长为$d+r$的比特模式用模2算术恰好能被$G$整除
CRC检测过程:接收用G去除接收到的$d+r$比特,如果余数不为0,则说明出现了差错
$R$的计算方法:

CRC能检测小于$r+1$比特的突发差错,这意味着所有连续的$r$比特或者更少的差错都可以检测到


多路访问链路和协议

点对点链路的链路层协议有:PPP(点对点)协议和HDLC(高级数据链路控制)协议
对于广播链路需要使用多路访问协议,可划分为三种类型:信道划分协议随机接入协议轮流协议

信道划分协议

常见的有三种:时分多路复用TDM、码分多路复用FDM、码分多址CDMA
TDM和FDM的优点:它避免了碰撞,并在N个节点之间公平的划分了带宽;缺点:现在一个节点只能使用R/N的带宽,从而链路利用效率不高
CDMA为每个节点分配一种不同的编码,然后每个节点用它唯一的编码来对它发送的数据进行编码。CDMA的特性在于不同节点能够同时传输,并且他们各自相应的接收方仍能正确接收
CDMA例子

随机接入协议

在随机接入协议中,每个传输节点总是以信道的全部速率进行发送。当有碰撞时,每个节点等待一个随机时延后再次重发该帧,直到该帧无碰撞的通过为止
常用的有ALOHA协议载波侦听多路访问协议(CSMA)
时隙ALOHA需要节点之间同步时钟,其的最大效率为$\frac{1}{e} \approx 0.37$
纯ALOHA不需要节点间的同步,其最大效率为$\frac{1}{2e} \approx 0.18$
在CSMA中,广播信道的端到端信道传播时延(信号从一个节点传播到另一个节点的时间),决定了最小帧长线缆长度,因为该时延越长,一个待发送节点不能侦听到另一个已经开始传输的节点的概率越大
CSMA/CD运行流程:

  1. 适配器从网络获得一条数据报,准备链路层帧,并将其放入帧适配器缓存中
  2. 如果适配器侦听到信道空闲(侦听96比特时间表示空闲,同时也是为了保证帧间最小间隔,目的为了使刚刚收到数据帧的站可及时处理完接收缓存),它开始传输帧。若适配器侦听到信道正在忙,它将等待直到它判断信道空闲时才传输帧
  3. 在传输的过程中,适配器监视是否其他节点也在使用广播信道
  4. 若整个传输过程中都没有监测到其他适配器的信号能量,则代表该帧传输完成。若检测到来自其他适配器的信号能量,它在传输完强化冲突帧(32或48比特时间)之后中止传输,传输强化冲突帧是让为了确保所有用户都知道发生了碰撞
  5. 中止传输后,适配器等待一个随机时间量,然后返回步骤2

CSMA/CD使用二进制指数后退算法来决定碰撞后等待的随机时间量。假设传输一个给定帧,该帧经历了$n$次碰撞,节点随机的从${ 0, 1, … , 2^n-1 }$中选取一个$K$值,则该节点的等待的实际时间量为$K \bullet 512$,可看到$K$的可选集合长度随着碰撞次数呈指数增长,从而节点间再次碰撞的概率越小
CSMA/CD效率定义为:*当有大量的活跃节点,且每个节点有大量的帧要发送时,帧在信道中无碰撞地传输的那部分时间在长期运行时间中所占的份额。令$d{prop}$表示信号能量在任意两个适配器之间传播所需的最大时间,$d{trans}$表示传输一个最大长度的以太网帧的时间

轮流协议

  • 轮询协议:节点之一被指定为主节点,主节点以循环的方式轮询(poll)每个节点(问XX节点:“你现在要发送帧吗?”)
  • 令牌传递协议:没有主节点,一个称为令牌(token)的小的特殊帧在节点间以某种固定的次序进行交换,拥有令牌的节点才能发送帧

交换局域网

适配器的MAC地址具有扁平结构,并且不论适配器到哪里都还不会发生变化
IP地址具有层次结构(即分为网络号和主机号),当主机移动时,主机的IP地址需要改变,即改变它所连接到的网络
主机和路由器接口除了网络层地址之外还有MAC地址的原因

  1. 局域网是为任意网络层协议而设计的,而不只是用于IP和因特网,使用MAC地址,可以保持兼容性
  2. 如果适配器使用网络层地址不使用MAC地址的话,网络层地址必须存储在适配器的RAM中,每次适配器移动(或上电)时要重新配置

ARP协议

地址解析协议(Address Resolution Protocol, ARP),实现IP地址到MAC地址之间的转换
每台主机或路由器在其内存中具有一个ARP表,这张表包含IP地址到MAC地址的映射关系,其中TTL指示了从表中删除每个映射的时间。举例如下

IP地址 MAC地址 TTL
222.222.222.221 88-B2-2F-54-1A-0F 13:45:00

关于ARP

  • 查询ARP报文是在广播帧中发送的,而响应ARP在一个标准帧中发送
  • ARP是即插即用的,也就是说ARP表是自动建立的,即它不需要系统管理员来配置

以太网帧结构

  • 数据字段(46~1500字节);这个字段承载了IP数据报。以太网的最大传输单元MTU是1500字节,数据字段的最小长度是46字节(如果IP数据报小于46字节则必须被填充到46字节)
  • 目的地址(6字节);包含目的适配器的MAC地址
  • 源地址(6字节);包含传输该帧到局域网上的适配器的MAC地址
  • 类型字段(2字节);类型字段允许以太网复用多种网络协议。适配器根据该字段选择将数据字段的内容传递给哪个网络层协议。该字段和网络层中数据报中的协议字段、运输层报文段中的端口号相类似,都是为了把一层中的某协议与上一层的某协议结合起来
  • CRC(4字节);用于CRC循环冗余检测
  • 前同步码(8字节);以太网帧以一个8字节的前同步码字段开始,该字段前7个字节用于“唤醒”接受适配器,并将它们的时钟和发送方的时钟同步

所有的以太网技术都向网络层提供无连接服务:发送帧前没有握手的过程
以太网技术都向网络层提供不可靠服务:当适配器收到一个帧时,不论是否通过CRC校验,该适配器并不回复发送方它是否正确收到,因此发送方根本不知道它发送的帧是否到达了接收方并通过了CRC校验

以太网技术

以太网从10M到10G是如何发展的?

  • 在100mbs的以太网中采用的是保持最短帧长不变,但将一个网段的最大电缆长度减小到100m,帧时间间隔从原来的9.6us改为现在的0.96us。
  • 吉比特以太网,仍保持一个网段最大长度为100m,但采用“载波延伸”技术,使得最小帧仍为64字节(保持兼容性),如果数据帧不超过512字节,则在FCS域后面添加“载波延伸”域。为了避免载波延伸延伸浪费,又使用了“分组突发”技术。当很多短帧要发送时,第一个短帧采用“载波延伸”方法进行填充,后面的一些短帧可以一个接一个发送,它们之间只要留必要的帧间最小间隔即可。这样就形成一串分组突发,直到达到1500字节或稍多一些为止。从而提高链路的利用率。
  • 10吉比特网仍保持标准规定的以太网最小最大帧长,为了保持兼容。由于数据率很高,吉比特以太网不再使用铜线而只使用光纤作为传输媒体。减小时间间隔。

以太网帧结构从始至终一直保持不变
现代交换机是全双工的,这使得一台交换机和一个节点能够同时向对方发送帧而没有干扰。也就是说,在基于交换机的以太局域网中,没有碰撞,因此可以没必要再使用MAC协议

链路层交换机

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

  • 过滤:决定一个帧应该转发到某个接口还是应当将其丢弃
  • 转发:决定一个帧应该被导向哪个接口,并把该帧移动到那些接口

交换机的优点

  • 消除碰撞,没有因碰撞而浪费的带宽
  • 异质的链路,局域网中的不同链路能够以不同的速率(如100Mbps和1Gbps)并且能够在不同的媒体(如铜线和光纤)上运行
  • 管理,易于进行网络管理
  • 自学习的,是即插即用设备

交换机和路由器比较

  1. 都是存储转发的设备
  2. 路由器维持一个路由表,使用路由算法
  3. 交换机维持一个交换表,使用过滤、自学习算法
  4. 交换机是即插即用的,而路由器需要管理人员的配置
  5. 优化路由,路由器有,交换机无
  6. 交换机的活跃拓扑限制为一棵生成树。而路由器则没有生成树限制从而可以产生多条活跃链路
  7. 路由器提供了更健壮的流量隔离方式和对广播风暴的控制,而交换机对广播风暴不提供任何保护

虚拟局域网

传统局域网的3个缺点

  1. 缺乏流量隔离
  2. 交换机的无效使用
  3. 管理用户

支持虚拟局域网(VLAN)的交换机允许一个单一的物理局域网基础设施定义多个虚拟局域网
在一个基于端口的VLAN中,交换机的接口由网络管理员划分为组,每个组构成一个VLAN,在每个VLAN中的接口形成一个广播域


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

多协议标签交换(MPLS)和VPN


问题与思考

差分曼切斯特编码比曼切斯特编码的变化要少,因此更适合与传输高速的信息,被广泛用于宽带高速网中。但这两种编码的效率仅可达到50%左右,因为频率增加了一倍但传输的信息量却没有增加

冲突域是如何决定最小帧长的?

  • 发送的帧的最短长度应当保证在发送完毕之前,必须能够检测到可能最晚来到的冲突信号,故而帧发送时间应该大于2倍的信道传播时延