差错控制
- 差错的种类:
- 位错(比特错):0变1、1变0(这类差错是本节所探讨的差错)
- 帧错:帧丢失、帧重复、帧失序(这类差错只在提供可靠传输的数据链路层中才进行修复)
- 要记的编码(数据链路层可使用只检测差错的编码,也可使用纠错编码)
- 检错编码:
- 奇偶校验码:只能检测出奇数个错误,不能检测出偶数个错误
- 循环冗余码CRC:带r个校验位(多项式长度为r+1)的多项式编码可以检测到所有长度小于或等于r的突发性错误。如“多项式长度为4的循环冗余码可以发现所有3比特错”
- CRC校验可以使用硬件来完成,速度较快
- FCS(Frame Check Sequence)帧检验序列:即CRC得到的r位余数(即r位校验码)
- 举个CRC的过程例子
- 纠错编码:
- 海明码:
- 若要检测d位错,其需要的码距(海明距离)是 d + 1 d+1 d+1;若要纠正d位错,需要的码距是 2 d + 1 2d+1 2d+1;为了纠正t个位错,同时检测出e个位错(e>t),海明距离至少为 e + t + 1 e+t+1 e+t+1
- 常规海明码可以检1位错、纠1位错。数据位数n和校验位数k应满足
n
+
k
≤
2
k
−
1
n+k\le 2^k-1
n+k≤2k−1
- 若使海明码能纠1位错,海明码的校验码必须要能表现1个无误状态+码长个1位错状态
- 海明码校验流程(举个例子就能唤起回忆了)
- 海明码:
- 检错编码:
- 数据链路层使用差错检测,只是为了检测帧在传输过程中是否产生误码,若有误码则将其丢弃,做到的只是“无差错接收”。而可靠传输是指,无论出现哪种传输差错(误码、丢失、失序、重复),通过某种措施,使得接收方最终能正确接收发送方发来的帧
流量控制与可靠传输机制
- 关于累计确认:停止等待协议否,回退N帧协议GBN是,选择重传协议(做到一个题是“是”,可能真正的还是要看题目)
- 关于窗口大小和帧序列号个数:在GBN中,所需要的帧序列号的个数要>=发送窗口大小+1。帧序列号的位数则需要
l
o
g
2
(
帧序列号的个数
)
log_2{(帧序列号的个数)}
log2(帧序列号的个数)
实际上是:发送窗口大小+接收窗口大小<=帧序号个数
选择重传协议下,要保证效率最高,应发送窗口=接收窗口
后退N帧协议和选择重传协议都属于滑动窗口协议 - 数据链路层通过滑动窗口、帧的确认、超时重传机制实现了可靠传输。而注意以太网的MAC协议提供的是无连接的不可靠服务。可以理解为整个数据链路层既提供了不可靠服务的选择,也提供了可靠服务的选择。而以太网只是一种局域网技术,其在数据链路层采用了不可靠的服务。(局域网802标准定义了MAC子层和LLC子层,IEEE在这个阶段将给帧加序号的功能放在了LLC子层,后续以太网作为主流的局域网后,压根儿不加LLC子层了,现在的网卡很多只有MAC协议,所以导致以太网不给帧编号)。与以太网相不同的,802.11无线局域网就是要求可靠的,就是有重传机制的。
- 使用PPP的数据链路层,向上提供的是不可靠数据传输服务:接收方每收到一个PPP帧,就进行CRC检验(PPP帧的尾部包含FCS),若CRC检验正确就收下这个帧,否则就丢弃这个帧。
(以太网的)MAC帧格式
- 前导码:数据链路层将封装好的MAC帧交付给物理层进行发送,物理层在发送MAC帧前,还要在前面添加8字节的前导码(分为7字节的前同步码+1字节的帧开始定界符)
- 满足最小帧长64B的要求(6+6+2+46+4=64)
关于帧的格式
- 封装成帧的意思:就是指数据链路层给上层交付下来的协议数据单元PDU添加一个首部和一个尾部,使之成为帧。即把“数据”变成“帧首部+数据+帧尾部”
- 下面是两个典型的MAC帧格式例子:“以太网v2的MAC帧”和“PPP帧”。如下图可知,数据链路层添加的帧首部和帧尾部的各字段都有什么作用
- 关于帧定界:上图PPP帧的“标志”字段的作用就是帧定界,下图1很形象的展示了这一作用。
而以太网MAC帧却没有标志字段,这是因为数据链路层将以太网MAC帧交付给物理层时,物理层会自动为其添加8B的前导码,然后再将该比特流转化成电信号发送。前导码(8B)=前同步码(7B)+帧开始定界符(1B),作用是使接收方的时钟同步+帧定界。另外以太网还规定了帧间间隔时间为96比特的发送时间,因此MAC并不需要帧结束定界符
以太网的一些零碎知识点
- 以太网的特点:无连接不可靠的服务
- 采用无连接的工作方式:传输数据之前不用建立连接
- 对发送的帧不进行编号,也不要求发确认帧:因为局域网的信道质量非常好,产生错误的概率非常小
- 根据速率不同,其通信方式也不同
- 以太网、局域网等概念辨析:
以太网是目前最流行的一种局域网组网技术,其他常见的局域网组网技术还有令牌环局域网、无线局域网、ATM局域网。以太网技术的正式标准是IEEE 802.3标准。
以太网是一种技术,局域网、广域网是一种网络。局域网是同一网段的主机所组成的,它们之间传递信息不需要路由的选择转发,因为都是相同的,所以一般指涉及物理层和数据链路层。 - 以太网的发展
- 10Mb/s传统以太网:
- 争用期51.2微秒(规定的)
- 总线长度不能超过2500m
- 100BASE-T以太网:
- 以太网最小帧长64字节
- 网段最大电缆长度为100m
- 争用期为5.12微秒
- 帧间最小间隔为0.96微秒
- 若为使用集线器的共享式以太网,则需要使用CSMA/CD协议进行碰撞检测;若为使用以太网交换机的交换式以太网,则工作在全双工方式下,不用使用CSMA/CD
- CSMA/CD就是针对总线型网络提出来的方案,是面向单一信道上的多终端的冲突问题,所有终端都在一个冲突域,而交换机等设备隔离开了冲突域,因此不需要使用这种协议
- 吉比特以太网(千兆以太网):
- 速率为1Gb/s
- 同上支持半双工方式(使用CSMA/CD)和全双工方式(不使用CSMA/CD)
- 当工作在半双工方式时,由于传输速率提高,为了使得CSMA/CD正常,要么应该将网段最大长度减小到10m,要么应该将最小帧长增加。而前者会导致网络太小没有价值,后者会导致当上层交付的待封装的PDU很短时开销很大。所以千兆以太网都不考虑,网段最大长度仍保持100m,最小帧长仍保持64字节,其措施是1)载波延伸:只要发送的MAC帧长度不足512字节,就在MAC帧尾部填充特殊字符到512字节;2)分组突发:当有很多64字节短帧连续发送时,只将第一个短帧用载波延伸的方法进行填充,而其后面的短帧直接发送,之间只需空开必要的帧间最小间隔即可。
- 工作在全双工方式时,不用CSMA/CD,也不用上面的载波延伸和分组突发
- 10吉比特以太网(万兆以太网):
- 并非简单地将千兆以太网速率提高10倍,而是将以太网从局域网范围(校园网或企业网)或栈道城域网与广域网,增加了支持城域网和广域网的物理层标准
- 速率为10Gb/s
- 只工作在全双工方式,不需要CSMA/CD,传输距离不受碰撞检测的限制
- 40/100吉比特以太网
- 40Gb/s用于计算应用,100Gb/s用于汇聚应用
- 只工作在全双工,不用CSMA/CD
- 10Mb/s传统以太网:
- 争用期、最小帧长:
- 争用期(又称碰撞窗口):站点从发送帧开始,最多经过时常
2
τ
2\tau
2τ 就可以检测出所发送的帧是否遭遇了碰撞(
2
τ
2\tau
2τ为总线端到端的往返传播时延)
- 10 Mb/s共享总线以太网(即传统以太网)规定:争用期 2 τ 2\tau 2τ 的值为512比特的发送时间,即 51.2 μ s \mu s μs。这一规定考虑了:信号的传播时延、网络中转发器所可能带来的时延、产生碰撞时又可能继续发送32或48比特人为干扰信号所持续的时间等。因此实际的端到端往返传播时延会小于这个规定值51.2 μ s \mu s μs
- 在2016年36题中,争用期包含“信号端到端的传播时延”+“Hub双向再生比特流的时间”,如下图
- 最小帧长:为保证共享总线以太网上的每个站点在发送完一个完整的帧之前能够检测出是否产生碰撞,帧的发送时延就不能少于一个争用期
2
τ
2\tau
2τ
- 对于10 Mb/s共享总线以太网,由于其争用期 2 τ 2\tau 2τ规定为51.2 μ s \mu s μs,因此其最小帧长为512b,即64B。
- 当帧大于64B时,若前64B没有遭遇碰撞,则帧的后续部分也不会遭遇碰撞
- 发送站点边发送边检测碰撞,若检测到碰撞,则此时已发送的数据一定小于64B。一旦检测到碰撞,发送站立刻终止帧的发送,因此接收站点收到长度小于64B的帧,就知道这是一个遭遇了碰撞而异常终止的无效帧,直接丢弃即可
- 争用期(又称碰撞窗口):站点从发送帧开始,最多经过时常
2
τ
2\tau
2τ 就可以检测出所发送的帧是否遭遇了碰撞(
2
τ
2\tau
2τ为总线端到端的往返传播时延)
点对点PPP协议
- PPP协议的组成:
- 一套网络控制协议NCPs
- 一个网络层PDU封装到串行链路的方法
- 一个链路控制协议LCP
- PPP帧格式
- PPP的工作状态:
- LCP协商内容:包括最大帧长等
交换机
一般交换机都采用存储转发方式,但为了减小交换机的转发时延,某些交换机采用直通交换方式。
- 直通式交换机和存储转发式交换机
- 直通式:在接收帧的同时就立即按帧的目的MAC地址决定该帧的转发接口,然后通过其内部基于硬件的交叉矩阵进行转发,而不必把整个帧先缓存后再进行处理
- 无法支持不同速率端口的交换
- 转发时延只需要考虑MAC地址的长度,即 6 × 8 交换机的速率 ( b p s ) \dfrac{6\times 8}{交换机的速率(bps)} 交换机的速率(bps)6×8
- 存储转发式:除了目的MAC地址,还检查正误
- 先缓存下来整个帧,再检查正误
- 先缓存下来整个帧,再检查正误
- 直通式:在接收帧的同时就立即按帧的目的MAC地址决定该帧的转发接口,然后通过其内部基于硬件的交叉矩阵进行转发,而不必把整个帧先缓存后再进行处理
- 数据链路层设备和物理层设备的区别:
数据链路层设备有网桥、交换机,因为它们工作在数据链路层,因此具有数据链路层范畴的相关能力,如:- 可以识别帧的结构
- 可以根据帧首部中的目的MAC地址和自身的帧转发表来转发或丢弃所收到的帧
- 网桥(交换机)的接口在向其连接的网段转发帧时,会执行相应的媒体介入控制协议,对于共享式以太网就是CSMA/CD协议
- 透明网桥的生成树协议STP:
- 出现背景:为提高以太网的可靠性,有时需要在两个以太网之间使用多个透明网桥来提供冗余链路。而这就引入了环路,网络中的广播帧会在环路中永久兜圈,造成广播帧充斥整个网络,网络资源白白浪费,正常主机反而无法通信
- 生成树协议STP:网桥之间通过交互网络协议单元BPDU,找出原网络拓扑的一个连通子集(即生成树),在这个子集里整个连通的网络中不存在环路。当首次连接网桥或网络拓扑发生变化时,网桥都会重新构造生成树,以确保网络的连通
虚拟局域网VLAN
- 要点:
- 属于同一VLAN的站点之间可以直接进行通信,不同VLAN中的站点不能直接通信
- 不同VLAN中的主机可以通过路由器进行通信
- 连接在同一交换机上的多个站点可属于不同VLAN,而属于同一VLAN的多个站点可连接在不同交换机上,如下图
- 实现机制:
- 基于以太网交换机的接口来实现VLAN,需要以太网交换机能够:1)处理带有VLAN标记的帧(即IEEE 802.1Q帧);2)交换机的各接口可以支持不同的接口类型(不同类型的接口对帧的处理方式有所不同)
- IEEE 802.1Q帧:在以太网V2的MAC帧基础上,在源地址字段和类型字段之间插入了4字节的VLAN标签字段。VLAN标签中包含“虚拟局域网标识符VID”,是802.1Q帧所属VLAN的编号,设备利用VID来识别帧所属的VLAN。广播帧只在同一VLAN内转发,这样就将广播域限制在了一个VLAN内。
- 当交换机收到普通以太网MAC帧时,会给其插入4字节的VLAN标签使之成为802.1Q帧;当交换机转发802.1Q帧时,可能会删除其4字节的VLAN标签使之成为普通的以太网MAC帧(是否去标签取决于交换机的接口类型)
- 交换机的接口类型:
- Access:该接口连的是一个主机,
- Trunck:该接口连的是另一个交换机
- 基于以太网交换机的接口来实现VLAN,需要以太网交换机能够:1)处理带有VLAN标记的帧(即IEEE 802.1Q帧);2)交换机的各接口可以支持不同的接口类型(不同类型的接口对帧的处理方式有所不同)
802.11无线局域网
- 802.11无线局域网的组成
- 有固定基础设施的
- 关联服务:移动站与接入点AP建立关联的方法有以下两种:
- 被动扫描:主机被动等待接收(AP发的)信标帧
- 主动扫描:主机发出探测请求帧,AP回应探测响应帧
- 重建关联服务和分离服务:若一个移动站要把与某个接入点AP的关联转移到另一个AP,就可以使用重建关联服务;若要终止关联服务,就应使用分离服务
- 关联服务:移动站与接入点AP建立关联的方法有以下两种:
- 无固定基础设施的(自组织网络ad hoc network)
- 转发站需要具备路由功能。802.11无线局域网的ad hoc模式允许网络中的各站点在其通信范围内直接通信,也就是支持站点间的单跳通信,而标准中并没有包括多跳路由功能,因此802.11无线局域网的ad hoc模式应用较少
- 自组织网络组网方便,不需要基站,并且具有非常好的生存性,这使得自组织网络在军用和民用领域都有很好的应用前景
- 有固定基础设施的
- 802.11无线局域网使用CSMA/CA协议的原因
- CSMA/CD:为了解决各站点争用总线的问题,共享总线以太网使用了一种专用协议CSMA/CD,而同样使用广播信道的无线局域网却不能使用这个协议,原因如下:
- 由于无线信道的传输环境复杂且信号强度的动态范围非常大,在802.11无线网卡上接收到的信号强度一般都远远小于发送信号的强度,信号强度甚至相差百万倍。因此,如果要在802.11无线网卡上实现碰撞检测,对硬件的要求非常高
- 即使能够在硬件上实现碰撞检测功能,但由于无线电波传输的特殊性(存在隐蔽站问题),还会出现无法检测到碰撞的问题,因此实现碰撞检测并没有意义
- CSMA/CA:由上,无线局域网不能简单照搬共享总线以太网(有线局域网)使用的CSMA/CD协议,而是不再实现碰撞检测CD功能,但在CSMA的基础上增加碰撞避免CA功能,即使用CSMA/CA协议
- CSMA/CD:为了解决各站点争用总线的问题,共享总线以太网使用了一种专用协议CSMA/CD,而同样使用广播信道的无线局域网却不能使用这个协议,原因如下:
- CSMA/CA协议的基本工作原理
- 几个缩写:
- DCF:Distributed Coordination Function,分布式协调功能。在DCF方式下,没有中心控制站点,每个站点使用CSMA/CA协议通过争用信道来获取发送权。DCF方式是802.11定义的默认方式(必须实现)
- DIFS:帧间间隔,长度为128微秒。等待DIFS间隔是考虑到可能有其他的站有高优先级的帧要发送
- 几个缩写:
- 802.11无线局域网的MAC帧
。。。待续