链路层:链路、接入网和局域网
概述
链路层提供的服务:
-
成帧(framing):网络层数据报 → \rightarrow →链路层帧
-
链路接入
**媒体访问控制(MAC)**协议——规定帧在链路上的传输规则
- 点对点链路:闲时发送
- 多结点共享单个广播链路(多路访问问题)
-
可靠交付
-
差错检测和纠正
实现:
- 路由器:线路卡
- 主机:网络适配器,有时也称为网络接口卡(NIC),其中核心是链路层控制器,它是一个实现了许多链路层服务的专用芯片
3种差错检测和纠正技术
-
奇偶校验
-
单比特奇偶校验
-
二维奇偶校验
前向纠错(FEC):接收方检测和纠正差错的能力,FEC技术可以减少所需的发送方重发的次数,允许在接收方立即纠正差错。
-
-
检验和方法
这种方法的分组开销相对小,但和CRC相比差错保护相对较弱
-
循环冗余检测
CRC编码(多项式编码)
原理:
-
发送方和接收方首先协商一个r+1比特模式G(称为生成多项式,具有国际标准)
-
数据段D(d比特) + r个附加比特,记作R —> d+r比特模式
这个附加比特R要使d+r比特模式能被G整除(整除的过程中加法不进位、减法不借位——等价于按位异或)
-
接收方用G去除接收到的d+r比特。如果余数为非零,则出现了差错;否则认为数据正确而被接收
-
如何计算R(那r个附加比特)?
-
D ⋅ 2 r ⊕ R = n G D \cdot 2^r\oplus R= nG D⋅2r⊕R=nG
-
D ⋅ 2 r = n G ⊕ R D \cdot 2^r = nG \oplus R D⋅2r=nG⊕R
-
R = r e m a i n d e r D ⋅ 2 r G R = remainder \frac{D\cdot 2^r}{G} R=remainderGD⋅2r
-
-
多路访问链路和协议
多路访问问题:如何协调多个发送和接收结点对一个共享广播信道的访问。
解决:多路访问协议——规范协调,避免碰撞而消耗带宽
可以类比“在一间教室中,老师们和同学们共享相同的、单一的广播媒体”,“制定”协议规定:“给每个人一个讲话的机会” ;“该你讲话时你才说话”;“不要一个人独占整个谈话”; “如果有问题请举手”; “当有人讲话时不要打断”;“当其他人讲话时不要睡觉”。
当碰撞发生时,没有一个接收节点能够有效地获得任何传输的帧,涉及此次碰撞的所有帧都丢失了,在碰撞时间间隔中的广播信道被浪费了。
信道划分协议
- 时分多路复用(TDM)——为结点分配时隙
- 频分多路复用(FDM)——为结点分配频率
- 码分多址(CDMA)——为结点分配一种不同的编码
随机接入协议
-
时隙ALOHA
假设:
- 所有帧由L比特组成
- 时间被划分为长度为L/R秒的时隙(一个时隙等于传输一帧的时间)
- 结点只在时隙起点开始传输帧
- 结点是同步的,以在每个时隙开始时开始传输
- 如果在一个时隙中有两个或者更多个帧碰撞,则所有节点在该时隙结束之前检测到该碰撞事件
发生碰撞后,在下一个时隙以概率p重传
N个结点中任意一个结点成功传送的概率为Np(1-p)N-1——时隙ALOHA的效率
取极限,最大效率为 p ∗ p^* p∗ = 1/e = 0.37
-
ALOHA
非时隙、完全分散的协议,经历碰撞后节点立即以概率p重传
N个结点中任意一个结点成功传送的概率为p(1-p)2(N-1)
最大效率:1/(2e),刚好是时隙ALOHA的一半
-
载波侦听多路访问(CSMA)
- 载波侦听——一个结点在传输前先听信道
- 碰撞检测——当一个传输结点在传输时一直在侦听此信道
有了载波侦听为什么还会发生碰撞——信道传播时延
-
具有碰撞检测的载波侦听多路访问(CSMA/CD)
检测到碰撞后,适配器终止传输,等待一个随机时间量:
碰撞的两个结点等待时间量的间隔的设置:
- 当碰撞结点数量较少时,时间间隔较短
- 当碰撞结点数量较大时,时间间隔较长
解决:二进制指数后退算法
当传输一个给定帧时,在该帧经历了一连串的几次碰撞后,节点随机地从 { 0 , 1 , 2 , … , 2 n − 1 } \{0,1,2,…,2^n-1\} {0,1,2,…,2n−1}中选择 一个K值。因此,一个帧经历的碰撞越多,K选择的间隔越大。对于以太网,一个节点等待的实际时间量是K*512比特时间(即发送512比特进入以太网所需时间量的K倍),n 能够取的最大值在10以内。
效率:
1 1 + 5 d p r o p d t r a n s \frac{1}{1+5d_{prop}d_{trans}} 1+5dpropdtrans1
轮流协议
ALOHA和CSMA协议不能满足“当M个节点活跃时,每个活跃节点的吞吐量接近R/M bps”
-
轮询协议
指定一个主结点,主结点以循环的方式轮询每个结点
主节点首先向节点1发送一个报文,告诉它(节点1) 能够传输的帧的最多数量。在节点1传输了某些帧后,主节点告诉节点2它(节点2)能 够传输的帧的最多数量。
例子:802.15协议和蓝牙协议
-
令牌传递协议
一个称为令牌的小的特殊帧在结点之间以某种固定的次序进行交换
DOCSIS:用于电缆因特网接入的链路层协议
综合上述三大类协议的一个实例
- 下行网络段:使用FDM划分为多个信道,因为仅有单一的CMTS在下行信道上传输,不存在多路访问问题;
- 上行网络段:使用FDM划分为多个信道,多个电缆调制解调器共享CMTS的同一上行信道,可能会出现碰撞;进一步将每条上行信道用TDM进行划分;一个调制解调器在专门用于的一组微时隙间隔内向CMTS发送微时隙请求帧,这些微时隙请求帧以随机接入方式传输,故可能相互碰撞,者通过随机接入协议来解决。
交换局域网
链路层寻址和ARP
-
MAC地址
6字节(48bit),每个字节用一对十六进制数表示;
扁平结构(不同于IP地址的层次结构)
MAC广播地址:FF-FF-FF-FF-FF-FF
-
地址解析协议(ARP)
将IP地址转换为MAC地址
区别:DNS协议 vs ARP协议——DNS为在因特网中任何地方的主机解析主机名,而ARP只为在同一个子网上的主机和路由器接口解析IP地址
实现
-
查询:主机或路由器内存中的ARP表;
-
ARP表的更新维护<自动建立——“即插即用”>:ARP查询分组(使用MAC广播地址)和接收到ARP查询分组的所有适配器向上传递给ARP模块,他们检查分组中IP地址是否与自己匹配,只有匹配的主机返回一个响应ARP分组(使用源主机的MAC地址)
-
-
发送数据报到子网以外
考虑:一个由一台路由器互联两个子网所组成的简单网络
主机111.111.111.111向主机222.222.222.222发送一个IP数据报:
发送主机向它的适配器传递数据报,指示的目的MAC地址不能是接收主机的MAC地址,而是第一跳路由器的MAC地址(E6-E9-00-17-BB-4B)
以太网
目前最流行的有线局域网技术
-
以太网帧结构
- 数据字段(46-1500字节):承载了IP数据报,以太网的最大传输单元(MTU)为1500字节
- 目的地址(6字节)
- 源地址(6字节)
- 类型字段(2字节):允许以太网复用多种网络层协议
- CRC(4字节):循环校验,检测差错
- 前同步码(8字节):前7个字节都是“10101010”——使发送方和接收方时钟同步;第八个字节“10101011”的最后两个比特——警告接收方“重要的内容”到来
以太网技术都向网络层提供无连接服务、不可靠服务
-
以太网技术
不同以太网技术的首字母缩写词:速率+”BASE“+物理媒体
发展:初始<同轴电缆总线,节点直接附着在电缆上>—>基于集线器的星形拓扑—>基于交换机的星形拓扑(基于交换机的以太局域网不会有碰撞)
基于交换机的以太局域网不会有碰撞(没必要使用MAC协议了)的原因:
交换机协调其传输,在任何时候 决不会向相同的接口转发超过一个帧。此外,现代交换机是全双工的,这使得一台交换机 和一个节点能够在同时向对方发送帧而没有干扰。
-
链路层交换机——“即插即用设备”
-
交换机转发和过滤——使用交换机表
过滤:决定一个帧应该转发到某个接口还是应当将其丢弃
转发:决定一个帧应该被导向哪个接口,并把该帧移动到那些接口的交换机
-
自学习——交换机表的创建
-
性质
- 没有碰撞
- 异质的链路:交换机将链路彼此隔离,局域网中可以有不同的链路
- 易于管理
-
交换机和路由器的比较
-
-
虚拟局域网
每个部门一个交换局域网,各个部门通过一个交换机等级结构互联(如图6-15),这样的配置存在三个缺点:
- 缺乏流量隔离:一些广播流量没有进行隔离
- 交换机的无效使用
- 管理用户困难
解决:支持**虚拟局域网(VLAN)**的交换机
支持VLAN的交换机的端口由管理员划分为组,每个组构成一个VLAN。
-
互联VLAN交换机——VLAN干线连接
问题:一个交换机如何知道到达干线端口的帧属于某个特定的VLAN?
解决:拓展以太网帧格式——802.1Q,增加VLAN标签