Advertisement

《计算机网络-自顶向下方法》读书笔记-链路层篇

阅读量:

《计算机网络-自顶向下方法》读书笔记-链路层篇


链路层概述

链路层主要使用的信道包括:

  • 点对点信道 : 这种信道采用一端到一端的通信方式
    • 广播信道 : 这种信道采用广播式的一对多通信模式,其操作相对较为繁琐.在广播信道中存在大量主机,这就要求我们必须采用专用共享通道协议来统一管理各主机的数据传输.

链路层可能提供的服务

链路层可能提供的服务包括:

服务 描述
成帧 在每个数据报传输时,用链路层帧将其封装起来.一个帧由首部,数据字段和尾部组成.链路层的数据字段就是网络层的数据报
链路接入 媒体访问控制协议(Medium Access Control,MAC)规定了帧在链路上传输的规则.当对端只有一个的时候,可以随便发,MAC不作限制.当出现多路访问的问题的时候,MAC协议协调多个节点传输
可靠交付 表示两个链路层结点之间可以无差错传递帧.使用和TCP类似的确认与重传实现的.一般用于差错比例较大的链路(WiFi等).差错比特较低的链路(光纤等)一般不使用.
差错检测和纠正 差错检测用于检测比特差错,一般用硬件 实现.差错纠正可以纠正出现的比特差错

链路层在何处实现

路由器中的链路层功能由芯片卡完成该过程。相比之下,在主机内部的主要链路层服务依赖于网络适配器(如NVIDIA显卡)来完成大部分工作;然而也有部分任务由软件执行任务如构建寻址信息等操作。网卡的核心配置有一条专门负责管理链路层操作的核心芯片;该模块实现了多种关键服务(如数据分组、连接建立以及错误检测等),其中许多关键功能主要通过硬件模块来完成。

差错检测和纠正技术

汉明距离:二进制码中对应位置数值不同的位数。
字符集的汉明距离:每一对字符码之间计算其对应的汉明距离,则该集合中所有可能组合中的最小值即为该字符集的汉明距离。

如果编码集的汉明距离为ds=r+1,则该差错编码可以检测r位的差错.

示意图

如果编码集的汉明距离为ds=2r+1,则差错纠正可以纠正r位的差错

示意图

奇偶校验

单个比特的奇偶校验

单个比特单元的奇偶性检验机制是在数据传输前为每个数据单元添加一个奇偶校验位。对于奇校验而言,整个编码序列中1的数量必须是奇数;而偶校验则要求1的数量为偶数。由此可见,当数据传输过程中出现成对的比特错误时,该系统的奇偶性检验将无法有效识别这些错误。

二维奇偶校验

将D中的d个比特划分为i行j列。针对每一行计算其相应的奇偶校验值。这些由上述运算得到的共(i + j + 1)个奇偶比特则组成了链路层帧中所包含的信息块,并形成了其对应的差错检测位

二维奇偶校验

在单比特错误发生时,错误的行与列都会受到影响.接收方不仅能识别这些错误,还能利用行列索引来修复它们。
二维奇偶校验能够检测出任意两个比特同时出错的情况,但无法修复这些错误。
如果在同一行内出现两个比特出错,该行的奇偶性检验结果将正常无误;然而会有两处列方向上的检验结果异常.如果这两个出错发生在不同行的位置上,则会引发四处的检验异常情况.无论是哪种异常模式,系统都无法进行纠正操作;但能确定的是存在一些含有偶数个出错位点的情况是二维奇偶校验方法无法覆盖到的情形.
接收方通过检测与修复数据异常的能力实现前向纠错机制。

校验和方法

在校该方法中,接收方接收到一组数据后,系统会将这些连续段依次求总和并取反码得到该组的校验值.随后将所有原始数据位与相应的校验位进行配对比较以确定传输是否出现错误.

与CRC相比,校验和提供的保护能力较弱.
为何传输层选用校验和而非其他协议而链路层采用CRC呢?
1. 传输层通过软件实现,必须采用简单快速的设计方案(即为校验和)
2. 链路层选用硬件支持型协议,CRC具备快速执行的能力.

循环冗余检测(CRC)

编码解码步骤

CRC编码也称为多项式编码,因为该编码能够将要发送的比特串看成系数是0或1的一个比特串,对比特串的操作被解释为多项式算数.
这里不过多讨论多项式理论.
编码步骤如下 :
1. 发送方和接收方实现协商一个r + 1的比特模式(比特串)G,叫做生成多项式.要求G的最高位是1
2. 对于一个给定的数据段D,发送方选择r个附加比特R,并将它们附加到D上.
3. 使得得到的d + r比特模式用模2算数恰好能被G整除.(模2算数就是异或)

在解码过程中, 使用生成矩阵G计算接收到的数据流d + r的模运算. 如果计算结果为非零值, 接收端能够识别传输错误. 反之则认为传输过程无误.

怎么计算R

要使得R对于n有: D * 2 r XOR R = nG.
两边同异或R得: D * 2 r = nG XOR
所以 R = remainder {D * 2r / G}

多路访问链路和协议

信道划分协议

TDM(时分多路复用)

TDM将时间段划分为时间段框,并对每个时间段框进一步划分为N个时段片(slot). (这里的时间段框与网络层交换的单元时段框概念不同)

TDM的缺点
1. 在单用户场景下,其最大传输速率为R/N bps。
2. 每个节点始终需要等待时间窗分配,并可能对缓存等资源产生影响。

FDM(频分多路复用)

FDM通过将Rbps信道分割为不同的频段(每个频段均具有R/N带宽),并将这些频段分配给N个节点中的一个来进行处理.该方法最终实现了在N个较大的信道中生成出N个较小规模的R/N信道

FDM的缺点和TDM相同,限制了每个结点只能使用R/N带宽.

码分多址

也被称作CDMA,本文不做详细讲解.如同TDM中的时隙和FDM中的频段,能够分配给多个接入信道的用户.

随机接入协议

时隙ALOHA

时隙ALOHA的原则是

  • 当节点收到一个新数据包要在发送前等待下一空闲时间窗口,并在此期间完整地发送这个数据包。
  • 若无冲突,则能顺利完成数据传输。
  • 在发生冲突后,在冲突被感知之前会尝试再试一次发送;直到成功发送出数据包为止。

优点:

  • 当该节点处于唯一活跃状态时,时隙ALOHA可实现全速数据传输.
    • 该协议采用时隙机制来管理冲突.

缺点: 在大规模节点负载下,最多仅有37%的有效时段用于数据传输.由此可见,在现有配置下信道传输速率仅为0.37Rbps.

ALOHA

ALOHA是一种无争 Optical Medium Access协议.在接收到数据帧后,Aloha系统立即开始传输该数据帧.在发生冲突的情况下,Aloha网络会尝试以概率P再发送一次该数据帧.否则,Aloha节点需等待一个完整的数据帧传输时间后才重新发送下一包数据.

因为ALOHA的分散,所以ALOHA的最大效率仅为1/(2e).仅为时隙ALOHA的一半.

载波侦听多路访问(CSMA)

载波侦听的功能体现在以下两个方面:

  1. 在发出信息前进行探测:每个节点在发送数据前必须探测信道状况,在此期间若已有用户正在传输数据,则需等待其完成传输过程。
  2. 若发现有用户正在传输数据,则立即停止当前的操作。

为什么会各个节点都进行载波检测,却仍然会发生冲突呢? 由于通信介质传输过程中存在延迟(尽管整体传输速度接近光速).

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

在纯CSMA机制下,即使发生了冲突,节点仍会发送完整个数据包.采用CSMA/CD机制时,节点一旦检测到冲突便立即停止发送当前数据帧,从而避免发送无效数据,有助于提高协议效能.

CSMA/CD的工作流程如下:
1. 适配器从网络层接收数据报,并将其封装成帧后存入帧适配器缓存。
2. 当适配器检测到信道空闲时会发送数据;若信道繁忙,则会等待直至信道空闲。
3. 若在发送过程中未检测到其他节点发出信号,则完成发送;若检测到冲突,则停止发送。
4. 发送冲突后会等待随机时间(采用二进制指数退避)并重新开始。

如果每个节点都等待相同的时长T,则可能导致持续的冲突。为了缓解这一问题,通常采用二进制指数退避算法。
二进制指数退避算法:在发送数据帧时,若经历了一系列n次冲突后,节点会随机等概率地从[0, 1, 2,… ,2n−1]范围内选择一个K值,并等待K乘以512比特的时间(例如,在1Gbps速率下此时间为5.12微秒)后再进行再传。
此处存在疑问:这个时间具体是如何计算的?使用的是1千还是1千多?从秒到毫秒再到微秒时是以千为间隔跳跃变化的吗?而数据为一千零二十六的情况下为何结果会是一个整数?

当发生10次碰撞之后,如果再发生碰撞,则稳定的从[0 , 1 , 2 , 3 … 1023]中选K

CSMA/CD的属性 : 假设条件 包括 网络带宽设定为R比特每秒 传输介质的最大承载能力定义为R比特每秒 数据帧最小长度设定为Lmin位 信号在介质中传播的速度限制在V米每秒 信道的最大传输距离设定为dmax米 而数据帧在信道两端往返所需的时间即为RTT

考虑这样一种情况,A和B在信道结点最长的两端.结点A首先发送数据,在将要传输到B,然而还没有传输到B的极限情况.B马上开始发送,则B可以马上检查到碰撞,B停止发送.而A则要等待B的信号到达时才能检测到B的信道.
如果A在B的信号到达之前就已经结束发送,则不会监听信道,那么这次传输实际上是失败的,而A不知道.
所以要求: Lmin / R = 2dmax/V
Lmin / R = RTTmax
具体推导过程参见网易云课堂上的课程

CSMA/CD协议的效率:计算公式为效率等于一除以括号内一加五倍的dprop除以dtrans;其中变量dprop代表信号能量在任意两个适配器之间传播所需的最长时间单位,dtrans则代表传输一个最大长度以太网帧所需的时间单位;观察此公式可知,当变量dprop趋近于零时,系统的运行效率将趋近于理想状态

轮流协议应用不多,这里不作展开

交换局域网

链路层寻址和ARP

MAC地址

MAC地址的作用是在本地网中标识一个帧通过哪个接口连接到其他物理相连的设备。当一台主机或路由器配置了多个网络接口时,它会对应生成多个链路层地址(如同IP地址),这些链路层地址帮助数据在不同网络路径间传输。特别指出:链路层交换机本身并不具备MAC地址。

MAC地址也被称为LAN地址,物理地址.

MAC地址长度为6个字节,,共有248个可能的MAC地址.

MAC地址空间由IEEE组织统一管理。当一家公司想要生产适配器时,他们仅向IEEE支付象征性费用以获得一个特定的MAC地址范围(如第56位)。这种情况下,在IEC/ANSI标准下 MAC 地址被划分为两部分:IEC指定前缀为0xx系列(如0xx-001到0xx-511),而后续部分则由各企业自行定义。

当适配器接收到一个帧时,会首先确认该帧的MAC地址与本接口的MAC地址是否一致;如果不匹配则丢弃该帧;如果匹配则将其转发给上层网络层.这种数据传输处理机制主要通过硬件设备来完成.

FF-FF-FF-FF-FF-FF是唯一的用来广播的MAC地址

地址解析协议(ARP)

ARP做什么?

ARP的任务是把网络层的IP地址和链路层的MAC进行转换

发送主机上的ARP模块会接收所有位于同一局域网内的IP地址请求,并生成相应的MAC地址

DNS与ARP之间具有诸多相似之处,然而两者存在显著差异性,主要体现在功能定位上: DNS能够将全球任意主机映射至其对应的主机名,而仅限于同一网络域内的主机与路由器接口进行IP地址解析

arp协议是如何工作的呢?所有主机和路由器都将在其内存中维护一张arp表。这张表格上记录了ip地址与对应mac地址之间的对应关系。此外,在arp表中还有一个超时时间字段(通常称为ttl),它决定了该条目在表格中的存活期限;一般情况下,单个条目的超时时间为20分钟。

该张表格无需为所有主机和路由器都包含一条目;有些主机或路由器从未访问过该表;有些已退出该列表。

当设备IP为194.194.194.194时需执行特定操作,请确保其能够正确识别目标网络上的设备或路由器位置。为了完成此操作需获取本地设备的MAC地址后进行通信操作。若目标网络中已存在对应信息则可直接引用;否则将发起一个 ARP 请求包
一个 ARP 请求包包含多个字段如源/目的 IP 地址与 MAC 地址等信息;同时 ARP 查询包与 ARP 应答包格式完全一致。
当目标主机 194.194.194.194 通过广播接口发送 ARP 请求包至全网广播地址 FF-FF-FF-FF-FF-FF 时;网络内所有设备均会转发该请求包至本地的 ARP 检测模块;该模块会验证请求包中的 IP 地址与自身信息是否匹配;若匹配成功则将响应信息返回给请求者(而非作为广播数据);随后目标主机更新本地 ARP 表并将相关数据传输至相应端口。

TIP:

  • ARP请求属于多播广播信息流(ARPs),而每个ARPs都是以标准传输方式被处理。
  • 该协议无需管理员干预即可部署。
  • 该协议能够跨越网络接口层与网络层之间的边界进行通信。
  • 每当向另一个子网发送数据时,在目标主机上主动发起ARPing会返回其所在的一端口信息;在目标主机上等待一段时间后主动发起ARPing会返回另一端口信息;依次类推直到找到目标主机所在的下一 hop 接口端口为止。因为目标主机不在同一个子网内无法直接通过arp解析得到相关信息.

以太网

以太网是一种局域网技术.

以太网现行的主要结构是星型拓扑,不再使用集线器,而是使用交换机.

交换机不仅具有低冲突性,而且符合预期地实现了分组存储转发型网络设备.它运行在数据链路层.

以太网帧结构

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

字段 描述
数据字段(46-1500字节) 这个字段承载IP数据报.以太网的最大传输单元(MTU)是1500字节.如果超过就要分片.最小是46字节,如果不足,就要填充.网络层使用IP数据报标记的长度来确定去掉填充的字节.
目的地址(6字节) 网卡的MAC地址.只有本接口地址和广播地址才会被接收方送到网路层.
源地址(6字节) 发送者的MAC地址
类型字段(2字节) 不一定数据一定是IP数据报.可能是各种不同的网络协议.比如ARP,AppleTalk等.用来标记网络层协议类型,以正确分发给网络层
CRC(4字节) 用来纠错
前同步码(8字节) 前七个字节用来”唤醒”接收适配器,并且同步时钟频率(为了支持不同的以太网速率总会产生漂移).第8个字节最后两个比特(第一个连续出现的1)用来警告网卡:”数据马上到来”

以太网在没有连接的情况下向网络层发送不可靠的服务数据。一旦通过CRC检测发现数据帧存在错误时,系统仅会简单地丢弃该数据帧而不进行重传确认。

链路层交换机

交换机转发和过滤

判断 是否将一个帧发送到指定的网络接口或者丢弃它。
发送至该接口 是将一个帧分配给指定网络接口的功能。

转发和过滤通过交换机表 来完成

交换机表项有:

  • MAC地址
  • 通向该MAC地址的接口号
  • 表项放在表中的时间

交换机转发的分组和路由器不一样,交换机转发的分组基于MAC地址

当一个目的地址发来时,交换机做这样的处理:

  • 当表格中不存在对应的项目时,交换机会执行广播操作但不包括来自源端口的帧.
  • 经过查询发现结果表明源端口与目的端口一致的情况下,交换机会丢弃该数据包并已确认目标所在的子网段内已进行了广播.
  • 经过查询发现存在一个匹配项且该表项不是源端口后,交换机会将数据包转发到目标网络上.
自学习

自学习型网络设备采用以下机制实现自主管理:每当一个数据包到达时,网络设备会自动完成以下操作:记录数据包的目的地址、接收端口以及接收时间;定期检查网络拓扑关系;在检测到异常时将相关信息提交给上级设备进行处理。</段落>
支持即时连接配置的特点使其具备了灵活扩展的能力。</段落>

链路层交换机的性质

交换机的几个优点:

优点 描述
消除碰撞 使用交换机的局域网没有因碰撞浪费的带宽.交换机缓存帧,并且同一时刻只发一个.最大聚合带宽是所有接口之和
异质的链路 交换机将链路彼此隔离
管理 交换机易于进行网络管理

TIP:交换机毒化

攻击实体向交换机发送成百上千具有不同源MAC地址的数据流量

通过填充交换机的表格项,使得正常的数据包无法成功发送出去

交换机会广播大量的数据包,这些数据包被嗅探器捕获

交换机和路由器比较

交换机的优势与不足

路由器具有显著优势与不足之处:
优点方面:
1. 路由器无生成树限制,从而支持复杂的网络架构
2. 提供第二层广播风暴防护机制,有效保障网络稳定运行
缺点方面:
1. 无法实现即时连接配置
2. 数据包处理速度较慢

虚拟局域网

交换机现有配置存在不足之处

通过具备支持虚拟局域网的交换机能够有效地解决这些问题

针对虚拟化后导致的交换机接口不足的问题, 可以通过使用干线网络实现互联交换机的扩展。

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

多协议标签交换的目标在于:针对采用固定长度标签与虚电路技术的应用场景,在维持基于目的地IP数据包转发基础架构的前提之下,在可能的情况下支持采用新的标识数据包,并让路由器根据固定长度标签(而非目的地IP地址)转发数据包的方式以增强功能

仅限于那些具备MPLS使能功能的路由器间进行转发
由于其头信息嵌入于链路层与网络层之间的位置
普通的非MPLS路由器无法识别

该路由器会通知其他路由它们能够到达的目的地A,并且会通知某些MPLS标签能够到达该目的。
当一个MPLS分组抵达时,路由器解析输入标记并查询其对应的路径长度信息后,
将其转换后的标记转发至相应输出端口(类似于建立虚通道).

MPLS可以配置一条预计算的无故障的路径来应对链路故障.

全部评论 (0)

还没有任何评论哟~