数据链路层

来源:互联网 发布:sql中查询的功能节点 编辑:程序博客网 时间:2024/06/18 11:12

数据链路层


一、链路层概述

运行链路层协议的设备称为结点,相邻结点间的通信信道称为链路,数据被封装在链路层帧中.

链路层提供的服务

  • 成帧(framing)
  • 链路接入 媒体访问控制(Medium Access Control,MAC)协议规定了帧在链路上的传输规则。
  • 可靠交付
  • 差错检测和纠正

链路层在何处实现

链路层的主体部分是在网络适配器(network adapter)上实现的,网络适配器有时也称作网络接口卡。位于网络适配器核心的是链路层控制器,该控制器通常是一个实现了许多链路层服务(成帧、链路接入、差错检测等)的专用芯片。因此,链路层的许多功能是由硬件实现的。

二、差错检测和纠正技术

奇偶校验

在偶校验方案中,发送方只需包含一个附加的比特,选择它的值,使得数据中的1的总数是偶数。奇校验中,选择校验比特使得有奇数个1.
在二维奇偶校验中,通过检测出现比特差错的行和列定位到发生差错的比特并纠正

检验和方法

在检验和技术中,d比特数据被作为一个k比特整数序列处理。一个简单的检验和方法就是将这k比特整数加起来,并且用所得到的和作为差错检测比特。

因特网检验和就是基于这种方法,即数据的字节作为16比特的整数对待并求和。这个和的饭码形成了携带在报文段首部的因特网检验和。接收方通过对接受的数据(包括检验和)的和取反码,并且检测其结果是否全为1比特来检测检验和。如果这些比特中有任何比特是0,就可以指示出差错。

循环冗余检测

考虑d比特的数据D, 发送节点要将它发送给接收节点, 首先协商一个 r+1 比特模式, 将其表示为G, 要求G的最高位为1. CRC编码的思想如下:

对于要传输的数据D, 其含有d比特数据, , 发送方要选择 r 个附加比特, 将它们附加到D上, 使得这 d+r 比特能恰好被 G 整除.

如此, 用CRC进行差错检测的过程为: 接收方用 G 去除接收到的 d+r 比特, 如果余数为零, 则正确接收; 反之余数不为零, 则说明出现了差错.


三、多路访问链路和协议

数据链路层使用的信道主要有两种类型:点对点链路广播链路

点对点链路:由链路的一端单个发送方和链路的另一端的单个接收方组成

广播链路:能让多个发送方和接收点都连接到相同的、单一的、共享的广播信道上。

多路访问问题:如何协调多个发送和接收点对一个共享广播信道的访问。

多路访问协议:结点通过这些协议来规范他们在共享的广播信道上的传输行为。有三类多路访问协议:信道划分协议随机接入协议轮流协议

信道划分协议

时分多路复用(TDM)

TDM将时间划分为时间帧,并进一步划分每个时间帧为N时隙。然后把每个时隙分配给N个结点中的一个。结点只能在每个时间帧分给其的时隙内发送数据。

TDM的特点是,每个结点在每个帧时间内得到了专用的传输速率R/N bps。每个结点被限制与R/N bps的平均速率,结点总是等待它在传输序列中的轮次

频分多路复用(FDM)

FDM将R bps信道划分为 N 个不同的频段(每个频段具有 R/N 带宽),并把每个频率分配给 N 个结点中的一个。
FDM也公平地划分了带宽,但每个结点的带宽也最多为 R/N

码分多址(CDMA)

CDMA为每个结点分配一种不同的编码。每个结点用它唯一的编码来对它发送的数据进行编码,不同结点能够同时传输。


随机接入协议

在随机接入协议中,一个传输结点总是以信道的全部速率进行发送。当有碰撞时,涉及碰撞的每个结点反复地重发它的帧,直到无碰撞地通过为止。在一个结点经历一次碰撞后,不必立即重新发送,而是等待一个随机时延。因为每个帧是独立选择随机时延的,因此有几率能够无碰撞地将它的帧在信道中发出。

1. 时隙ALOHA

简单点来说就是,信道中的每个结点按照一定的时隙发送数据,发生碰撞后,在下一个时隙以概率 p 重新发送,再遇到碰撞,再在下一个时隙以概率 p 重发,重复这个过程,直到没有碰撞发生,数据顺利发出。
当有N个活跃结点时,时隙 ALOHA 的效率是 Np(1p)N1

2. ALOHA

在纯 ALOHA 协议中,当一帧首次到达(即一个网络层数据报在发送节点从网络层传递下来),结点立刻将该帧完整地传输进广播信道。如果一个帧与其他帧发生了碰撞,这个结点将立即以概率 p 重传,或者以概率 (1-p)在另一个帧时间等待。一个结点成功传输一次的概率是p(1p)2(N1).

3. 载波侦听多路访问(CSMA)

载波侦听:几个结点在传输前先听信道。如果来自另一个结点的帧正在向信道上发送,结点则等待, 直到检测到一小段时间没有传输,然后开始传输。

4. 具有碰撞检测的载波侦听多路访问(CSMA/CD)

碰撞检测:即当一个传输结点在传输时一直在侦听此信道。如果它检测到另一个结点正在传输干扰帧,他就停止传输,在重复“侦听-当空闲时传输”循环之前等待一段随机时间。流程:

1. 网络适配器从网络层获取一条数据报, 准备链路层帧, 并将其放入帧适配器缓存中2. 如果监听到信道空闲, 开始传输帧; 如果监听到信道忙, 则等待, 直到信道空闲.3. 传输过程中, 适配器始终监听信道, 如果始终没有来自其他适配器的信号能量, 则将帧顺利发送; 一旦监听到有其他信号能量, 立即中止传输;4. 中止传输后, 适配器等待随机时间量, 然后继续步骤2.

轮流协议

轮询协议:主结点能够通过观察在信道上是否缺乏信号,来决定一个结点何时完成了帧的发送。主结点依次向其他结点发送报文,告诉其能传输的帧的最多数量。主结点以循环的方式轮询了每个节点。

轮询协议消除了困扰随机接入协议的碰撞和空时隙,但是有两个缺点:

  1. 当只有一个结点活跃时,其传输速率小于R,因为主结点必须轮询所有其他结点;
  2. 主结点一旦有故障,整个信道变得不可操作。

令牌传递协议:一个称为令牌的小的特殊帧在结点之间以某种固定的次序进行交换。当一个结点收到令牌时,仅当它有帧要发送时才持有令牌,否则立即向下一个结点转发令牌。缺点:当一个结点故障时可能导致整个信道的崩溃;一个结点忘记释放令牌,必须调用某些恢复步骤使令牌返回到循环中来。


四、交换局域网

工作在链路层的交换机称为 链路层交换机; 工作在网络层的交换机称为 路由器;

路由器使用IP地址转发IP数据报

链路层交换机使用链路层地址MAC转发链路层帧

链路层寻址和 ARP

1. MAC地址

MAC地址长度6个字节,由 IEEE 分配:固定一个 MAC 地址的前24比特,让公司自己为每个适配器生成后24比特的唯一组合。 因此每个适配器所拥有的MAC地址是唯一的.

某适配器要向某些目的适配器发送一个帧时,发送适配器将目的适配器的MAC地址插入到该帧中,并将该帧发送到局域网上。

一个链路层帧中包含一个目的MAC地址, 当一个适配器收到一个帧时, 检查其目的MAC地址是否和自己的地址一致, 然后将数据取出移交上层, 否则丢弃.而对于广播地址则是照单全收.

MAC广播地址: 48个bit全为 1

2. **地址解析协议ARP

地址解析协议 ARP 完成网络层地址(如 IP 地址)和链路层地址(MAC 地址)之间的转换。

每台主机或者路由器在其内存中具有一个 ARP 表,这张表包含 IP 地址到 MAC 地址的映射关系。

1. 假设主机1发送一个数据报,但是 ARP 表中没有目的主机的 MAC 地址,这时发送方构造一个称为 ARP 分组的特殊分组,包括发送和接受主机的 IP 地址和发送主机的 MAC 地址。2. 发送主机的适配器在链路层帧中封装这个 ARP 分组,用 MAC 广播地址(FF-FF-FF-FF-FF-FF)发送这个帧。3. 目的主机收到该 ARP 分组后,将自己的 MAC 地址封装进一个 ARP 分组发送给发送主机1(具有确定的MAC地址).

注意, ARP 表中的表项是有期限的, 不同系统和设备拥有不同的期限值, 并且此值可以进行修改

以太网

1. 以太网帧结构

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

以太网技术都想网络层提供不可靠服务,特别是当适配器B收到一个来自适配器A的帧,其对该帧执行 CRC校验,但是不管当该帧是否通过校验,适配器B都不会发送确认帧。

2. 链路层交换机

交换机转发和过滤

交换机的过滤和转发借助于交换机表完成,表项包含

地址 接口 时间 62-FE-F6-11-98-A3 1 9:32 … … …

假定地址为 add (DD-DD-DD-DD-DD-DD)的帧从交换机接口 x 到达,交换机用 MAC 地址索引他的表,有三种可能的情况:

1. 表中没有对于 add 的表项。在这种情况下,交换机向除接口 $x$ 外的所有接口前面的输出缓存转发该帧的副本。换言之,如果没有对于目的地址的表项,交换机广播该帧。2. 表中有一个表项将 add 与接口 $x$ 联系起来。在这种情况下,该帧从包括适配器 MAC 地址的局域网来,无需将该帧转发到任何接口,交换机通过丢弃该帧执行过滤功能。3. 表中有一个表项将地址 add 与接口 $y \neq x$ 联系起来。这种情况下,该帧被转发到 $y$ 接口相连的局域网网段。交换机通过将该帧放倒接口 $y$ 前面的输出缓存完成转发功能。

自学习

交换机是自学习的,通过以下方式实现:

  • 交换机表初始为空
  • 对于每个接口接收到的入帧,交换机在表中存储:1,帧源 MAC 地址;2,帧到达的接口;3,当前时间
  • 一段时间后,交换机没有接受到以该地址作为源地址的帧,就在表中删除这个地址

链路层交换机的性质

  • 消除碰撞
  • 异质的链路
  • 管理

交换机和路由器的比较

  集线器 路由器 交换机 流量隔离 无 有 有 即插即用 有 无 有 优化路由 无 有 无

虚拟局域网

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


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

多协议标签交换(MPLS)

多协议标签交换的目标是:对于基于固定长度标签和虚电路的技术,在不放弃基于目的地 IP 数据报转发的基础设施的前提下,当可能时通过选择性地表示数据报并允许路由器基于固定长度的标签(而不是目的地 IP 地址)转发数据报来增强其功能。

MPLS帧结构

PPP或以太网首部 MPLS首部 IP首部 链路层帧的其余部分

MPLS 首部字段包括:标签;3 比特的实验字段;单比特 S 字段用于指示一系列“成栈”的 MPLS 首部的结束;以及寿命字段

标签   实验 S TTL

一个MPLS加强的帧仅能在两个均为 MPLS 使能的路由器之间发送。一个 MPLS 使能的路由器常被称为标签交换路由器,因为它通过在其转发表中查找 MPLS 标签,然后立即将数据报传递给适合的输出接口来转发 MPLS 帧。因此, MPLS 使能的路由器不需要提取目的 IP 地址和在转发表中执行最长前缀匹配查找。

MPLS 真正的优点在于 MPLS 使能的新的流量管理能力。IP 路由选择只会指定单一最小费用的路径,而 MPLS 提供了沿着多条路由转发分组的能力。。网络运行者能够超越普通的 IP 路由选择,迫使某些流量沿着一条路径朝着某给定的目的地引导,并且朝着相同目的地的其他流量沿着另一条路径流动。