**计算机网络(自顶向下方法)**内容重点
第五章 链路层
链路层信道、多路访问网络、交换局域网、虚拟局域网
5.1链路层概述
- 运行链路层协议的任何设备被称为结点,包括主机、路由器、交换机、Wifi接入点。
- 连接相邻结点的通信信道称为链路,数据报必须通过沿端到端路径上的各段链路传输。数据报实际通过的6段链路:发送主机与Wifi接入点之间的Wifi链路,接入点和链路层交换机之间以太网链路,链路层交换机与路由器之间的链路,两台路由器之间的链路,交换机和服务器之间的以太网链路。
- 在通过特定的链路时,传输结点将数据报封装在链路层帧中,并将该帧传送到链路中。
5.1.1链路层提供服务
- 成帧:在数据报从网络层传送到链路层之前,都会被链路层帧封装起来。一个帧由一个数据字段和若干首部字段组成,网络层数据报就插在数据字段中。帧的结构由链路层协议规定。
- 链路接入:媒体访问控制协议规定了帧在链路上传输的规则。在点对点链路MAC协议可以在无论何时,发送方都能够发送帧。MAC协议用于协调多个结点的帧传输。
- 可靠交付:保证无差错地经链路层移动每个网络层数据报。链路层的可靠交付服务通常是通过确认和重传取得的,通常用于易于产生高差错率的链路,其目的是在本地(在差错发生的链路上)纠正一个错误。
- 差错检测和纠正
5.1.2链路层在何处实现
- 链路层的主体部分是在网络适配器(网络接口卡)中实现的,位于网络适配器核心的是链路层控制器。
- 在发送方,控制器取得了由协议栈较高层生成并存储在主机内存中的数据报,在链路层帧中封装该数据报(填写该帧的各个字段),然后遵循链路接入协议将该帧传进通信链路中。
在接收端,控制器接收整个帧,提取出网络层数据报。如果链路层执行差错检测,则需要发送适配器在该帧的首部设置差错检测比特,以及接收适配器执行差错检测。
如果该链路层执行流量控制,则发送控制器和接收控制器交换流量控制信息,使得发送方以接收方能够处理的速率发送帧。
5.2差错检测和纠正技术
- 比特级差错检测和纠错:对从一个节点发送到另一个物理上连接的邻近结点的链路层帧中的比特差错进行检测和纠正。
- 通常要保护的数据不仅包括从网络层传递下来需要通过链路传输的数据报,而且包括链路帧首部中的链路级的寻址信息、序号和其他字段。
- 奇偶校验(用来描述差错检测和纠正背后隐含的基本思想);检验和方法(更多应用于运输层);循环冗余检测(更多应用在适配器中的链路层)
5.2.1奇偶校验
- 单个奇偶校验位原理
- 二维奇偶校验:
原理
能够检测但不能纠正一个分组中两个比特差错的任何组合。 - 前向纠错:接收方检测和纠正差错的能力
可以减少所需发送方重发的次数
允许在接收方立即纠正差错
避免不了不得不等待的往返时延
5.2.2 检验和(checksum)方法
- 原理:数据的字节作为16比特的整数对待并求和。
这个和的反码形成了携带在报文段首部的因特网检验和。接收方通过对接收的数据(包括检验和)的和取反码,并且检测其结果是否为全1比特来检测检验和。如果这些比特中有任何比特是0,就可以指示出差错。
5.2.3循环冗余检测
- 原理:按位异或
5.3多路访问链路和协议
点对点链路:是由链路一端的单个发送方和链路另一端的单个接收方组成。
广播链路:能够让多个发送和接收节点都连接到相同的、单一的、共享的广播信道上。
多路访问协议:节点通过这些协议来规范它们在共享的广播信道上的传输行为。
碰撞:接收方处的节点同时接到多个帧。通常当碰撞发生时,接收节点没有一个能够获得任何有效的传输帧。
5.3.1信道划分协议
- 时分多路复用(TDM):将时间划分为时间帧,并进一步划分每个时间帧为N个时隙。
每个结点被限制于R/N bps的平均速率
结点必须等待它在传输序列中的轮次 - 频分多路复用(FDM):将R bps信道划分为不同的频段(每个频段具有R/N带宽),并把每个频率分配给N个结点中的一个。
限制每个结点只能使用R/N的带宽 - 码分多址(CDMA):对每个结点分配一种不同的编码,可以不同结点同时传输,并且它们各自相应的接收方仍能正确接收发送方编码的数据比特,抗干扰性强。
5.3.2随机接入协议
- 属于媒体接入的另一类控制,是第二大类多访问协议。在随机接入协议中,一个传输结点总是以信道的全部速率进行发送。
- 时隙ALOHA(S-ALOHA)
- 假设:
- 所以帧由L比特组成。
- 时间被划分成长度为L/R秒的时隙(一个时隙只能传输一帧)
- 结点只在时隙起点开始传输帧
- 结点是同步的,每个结点都知道时隙何时开始。
- 如果一个时隙发生碰撞,则所有结点在该时隙结束前检测到该碰撞事件。
- ALOHA操作:
- 当结点有一个新帧要发送时,等到下一个时隙开始并在该时隙传输整个帧。
- 如果没有碰撞,该结点成功地传输帧,则不需要考虑重传该帧。
- 如果有碰撞,该结点在时隙结束之前检测到这次碰撞。该结点以概率p(0-1之间)在后续的每个时隙中重传它的帧,知道帧被无碰撞地传输出去。
- 特点:
- 需要结点对时隙同步;;
- 当多个结点活跃(指该结点有帧要发送),会有一部分时隙被浪费;
- 活跃结点因为概率策略会节制传输,导致有一部分时隙是空闲的;
- 更好有一个结点传输的时隙被称为成功时隙。
效率:设有N个结点,以概率p重传,则任意结点成功传送的概率为Np(1-p)N−1^{N-1}N−1
N趋于无穷时,效率为1/e = 0.37
- ALOHA
- 纯ALOHA:非时隙。完全分散的协议。当帧首次到达,结点立刻将该镇完整地传输进广播信道。如果发生碰撞以概率p立刻重传,否则等待一个帧传输时间,再以概率p重传。
- 一个给定结点成功传输的概率为p(1-p)2(N−1)^{2(N-1)}2(N−1)
N趋于无穷时,最大效率为1/(2e)
- 载波侦听多路访问(CSMA):
- 说话之前先听:载波侦听,即当一个结点在传输前先听信道。如果一个结点的帧正向信道发送,结点则等待直到检测到一小段时间没有传输,然后开始传输。
- 如果与他人同时开口说话,停止说话:碰撞检测,即当一个传输结点在传输时一直侦听此信道。如果检测到另一个结点正在传输干扰帧,就停止传输,在重复“侦听-当空闲时传输”循环之前等待一段随机时间。
- 端到端信道传播时延(信号从一个结点传播到另一个结点所花费的时间)越长,载波侦听结点不能侦听到网络中另一个结点已经开始传输的机会就越大。
- 具有碰撞检测的载波侦听多路访问(CSMA/CD)
- CSMA/CD
以太网还采取一种叫做强化碰撞的措施。这就是当发送帧的站点一旦检测到碰撞,除了立即停止发送帧外,还要再继续发送32比特或48比特的人为干扰信号(Jamming Signal),以便有足够多的碰撞信号使所有站点都能检测出碰撞 - 争用期
- 主机最多经过2τ\tauτ(即δ→0)的时长就可检测到本次发送是否遭受了碰撞。因此,以太网的端到端往返传播时延2τ\tauτ称为争用期或碰撞窗口。
- 经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
- 每一个主机在自己发送帧之后的一小段时间内,存在着遭遇碰撞的可能性。这一小段时间是不确定的。它取决于另一个发送帧的主机到本主机的距离,但不会超过总线的端到端往返传播时延,即一个争用期时间。
- 显然,在以太网中发送帧的主机越多,端到端往返传播时延越大,发生碰撞的概率就越大。因此,共享式以太网不能连接太多的主机,使用的总线也不能太长。
- 10Mb/s以太网把争用期定为512比特发送时间,即51.2pus,因此其总线长度不能超过5120m,但考虑到其他一些因素,如信号衰减等,以太网规定总线长度不能超过2500m。
- 最小帧长
- 以太网规定最小帧长为64字节,即512比特(512比特时间即为争用期);
- 如果要发送的数据非常少,那么必须加入一些填充字节,使帧长不小于64字节。
- 以太网的最小帧长确保了主机可在帧发送完成之前就检测到该帧的发送过程中是否遭遇了碰撞;
- 如果在争用期(共发送64字节)没有检测到碰撞,那么后续发送的数据就一定不会发生碰撞;
- 如果在争用期内检测到碰撞,就立即中止发送,这时已经发送出去的数据一定小于64字节,因此凡长度小于64字节的帧都是由于碰撞而异常中止的无效帧。
- 最大帧长:防止总线被占用时间过长或接收端缓冲区溢出。
- 截断二进制指数退避算法
- 若连续多次发生碰撞,就表明可能有较多的主机参与竞争信道。但使用上述退避算法可使重传需要推迟的平均时间随重传次数而增大(这也称为动态退避),因而减小发生碰撞的概率,有利于整个系统的稳定。
- 当重传达16次仍不能成功时,表明同时打算发送帧的主机太多,以至于连续发生碰撞,则丢弃该帧,并向高层报告。
- 信道利用率

考虑以下这种理想情况:- 各主机发送帧都不会产生碰撞;
- 总线一旦空闲就有某个主机立即发送帧;
- 发送一帧占用总线的时间为T0_{0}0+ τ\tauτ,而帧本身的发送时间是T0_{0}0。
极限信道利用率:


- 帧发送流程

- 帧接收流程

5.3.3轮转协议
- 第一种:主结点向所有结点发送报文,告知其他结点能够传输帧的最多数量
- 消除了困扰随机接入协议的碰撞和空时隙;
- 引入轮询时延,即通知一个结点“可以传输”的时间。
- 第二种令牌传递协议(Token):没有主结点,一个称为令牌的小的特殊帧在结点之间以某种固定的次序进行交换。
- 当一个结点收到令牌时,仅当有一些帧要发送时,才持有令牌;
- 否则立即将令牌转发给下一结点。
- 特点:
- 如果一个结点故障会导致整个信道崩溃;
- 如果一个结点偶然忘记释放令牌,必须调用恢复步骤使令牌返回循环中。
5.4交换局域网
5.4.1链路层寻址和ARP
- MAC地址
- 链路层交换机不具备链路层地址。
- 交换机的任务是在主机与路由器之前承载数据报。
- 链路层地址可以被叫做:LAN地址、物理地址、MAC地址。
- MAC地址的长度为6字节,每个字节被表示为一对十六进制数。
- 带有以太网接口的设备总具有相同的MAC地址(软件可以改),无论到哪里IP地址可能会发生改变,但是MAC地址 不会发生改变。
- 当某适配器向某些目的适配器发送一个帧时,发送适配器将目的适配器的MAC地址插入到该帧中,并将该帧发送到局域网中。
- 当适配器收到一个帧时,将检查该帧中的目的MAC地址是否与自己的MAC地址匹配。如果匹配,该适配器提取出封装的数据报,并将该数据报沿协议栈向上传递。如果不匹配,该适配器丢弃该帧。
- 如果要让局域网内所有其他适配器来接收并处理它打算发送的帧,就在目的地址字段插入一个特殊的MAC广播地址。
- 使用点对点信道的数据链路层不需要使用地址。
- 使用广播信道的数据链路层必须使用地址来区分各主机。
- 当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址。
- 在每个主机发送的帧中必须携带标识发送主机和接收主机的地址。由于这类地址是用于媒体接入控制MAC(Media Access Control),因此这类地址被称为MAC地址。
- 一般情况下,用户主机会包含两个网络适配器:有线局域网适配器(有线网卡)和无线局域网适配器(无线网卡)。每个网络适配器都有一个全球唯一的MAC地址。而交换机和路由器往往拥有更多的网络接口,所以会拥有更多的MAC地址。综上所述,严格来说,MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识。
- MAC地址格式


- 与IP地址关系


数据包转发过程中源IP地址和目的IP地址保持不变;
数据包转发过程中源MAC地址和目的MAC地址逐个链路(或逐个网络)改变。
- 地址解析协议(ARP)
- 尽管IP地址和ARP协议属于TCP/IP体系结构的网际层(而不属于数据链路层),但是它们与MAC地址存在一定的关系,并且我们日常的网络应用都离不开MAC地址、IP地址以及ARP协议。因此,我们将这三者放在一起讨论。
- ARP写协议只能在一段链路或一个网络上使用,而不能跨网络使用。

- 通常源主机只知道目的主机的IP地址而不知道MAC地址,获取对方的MAC地址流程如下:
- 发送ARP请求报文,封装在MAC帧中,目的地址为全1的广播地址;
- 报文包括
- 我的IP地址是***
- 我的MAC地址是***
- 想知道IP地址为***主机的MAC地址是多少
- 接收到请求报文的主机将报文交付上层处理,如果IP地址不匹配则不理会,否则进行响应。
- 将源主机的IP地址和MAC地址记录到自己的高速缓存表中。
- 然后向源主机发送ARP响应报文,已告知自己的MAC地址。
- ARP响应报文封装在MAC帧中,目的地址为源主机MAC地址,并且以单播帧发送,报文包括:
- 我的IP地址是***
- 我的MAC地址是***
- 高速缓存表

5.4.2以太网
- 以太网帧结构
- 数据字段:承载IP数据报,以太网的最大传输单元MTU是1500字节,最小长度是46字节。主机可以切片或填充,网络层根据IP数据报首部的长度字节来去除填充部分。
- 目的地址:包含目的是适配器MAC地址。当一个适配器接收到一个目的地址为自己MAC地址或全1广播地址的以太网帧时,将数据字段的内容传递给网络层,其他MAC地址丢弃。
- 源地址包含传输该帧到局域网上的适配器的MAC地址。
- 类型字段
- CRC:循环冗余检测,使得接收适配器检测帧中是否引入了差错。
- 前同步码:前7字节用于“唤醒接收适配器,并且将时钟和发送方的时钟同步。
5.4.3链路层交换机
- 过滤:决定一个帧应该转发到某个接口还是应当将其丢弃的交换机功能。
- 转发:决定一个帧应该被导向哪个接口,并把该帧移动到哪些接口的交换机功能。
- 交换机的过滤和转发借助于交换机表完成。该交换机表包含某个局域网上某些主机和路由器的但不是全部的表项。
- 一个表项包括:
①一个MAC地址
②通向该MAC地址的交换机接口
③表项放置在表中的时间
- 自学习
- 交换机表初始为空。
- 每个接口接收到的每个入帧,在交换机表中存储
①该帧源地址字段中的MAC地址;
②该帧到达的接口;
③当前时间。 - 如果在一段时间(老化期)后,交换机没有接收到以该地址为源地址的帧,就在表中删除这个地址。
- 交换机是即插即用设备,不需要网络管理员或用户的干预。
- 交换机switch与集线器hub比较
- 使用双绞线和集线器HUB的星型以太网
- 使用集线器的以太网在逻辑上仍是一个总线网,各站共享总线资源,使用的还是CSMA/CD协议;
- 集线器只工作在物理层,它的每个接口仅简单地转发比特,不进行碰撞检测(由各站的网卡检测);
- 集线器一般都有少量的容错能力和网络管理功能。例如,若网络中某个网卡出了故障,不停地发送帧。此时,集线器可以检测到这个问题,在内部断开与出故障网卡的连线,使整个以太网仍然能正常工作。
- 使用集线器HUB在物理层扩展以太网
- 交换机与集线器



- 以太网交换机通常都有多个接口。每个接口都可以直接与一台主机或另一个以太网交换机相连。一般都工作在全双工方式。
- 以太网交换机具有并行性,能同时连通多对接口,使多对主机能同时通信,无碰撞(不使用CSMA/CD协议)。
- 以太网交换机工作在数据链路层(也包括物理层),它收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。
- 帧的两种转发方式:
- 存储转发
- 直通交换:采用基于硬件的交叉矩阵(交换时延非常小,但不检查帧是否右差错)
- 交换机switch与路由器router比较
- 路由器:使用路由算法计算表,使用IP地址转发分组,在网络层
- 交换机:学习转发表使用泛洪,自学习,使用MAC地址转发分组,在链路层

5.4.4虚拟局域网
- 以太网交换机工作在数据链路层(也包括物理层)
- 使用一个或多个以太网交换机互连起来的交换式以太网,其所有站点都属于同一个广播域。
- 随着交换式以太网规模的扩大,广播域相应扩大。巨大的广播域会带来很多弊端:
- 广播风暴:会浪费网络资源和各主机的CPU资源
- 难以管理和维护
- 潜在的安全问题
- 网络中会频繁出现广播信息,TCP/IP协议栈中的很多协议都会使用广播:
- 地址解析协议ARP(已知IP地址,找出其相应的MAC地址)
- 路由信息协议RIP(一种小型的内部路由协议)
- 动态主机配置协议DHCP(用于自动配置IP地址)
- 使用路由器可以隔离广播域,但路由器的成本较高
- 虚拟局域网VLAN(Virtual Local Area Network)是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求。
- IEEE 802.1Q帧(也称Dot One Q帧)对以太网的MAC帧格式进行了扩展,插入了4字节的VLAN标记。

- 802.1Q帧是由交换机来处理的,而不是用户主机来处理的。
- 当交换机收到普通的以太网帧时,会将其插入4字节的VLAN标记转变为802.1Q帧,简称“打标签”。
- 当交换机转发802.1Q帧时,可能会删除其4字节VLAN标记转变为普通以太网帧,简称“去标签”。
- 端口类型
- Access端口

- Trunk端口

- Access端口
- Hybrid端口

5.5点对点PPP协议
- PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成:
- 对各种协议数据报的封装方法(封装成帧)
- 链路控制协议LCP(用于建立、配置以及测试数据链路的连接)
- 一套网络控制协议NCPs(其中的每一个协议支持不同的网络层协议)

- 帧格式

- 透明传输——面向字节的异步链路采用插入转义字符的字节填充法

- 发送方的处理:
- 出现的每一个7E(PPP帧的定界符)字节转变成2字节序列(7D,5E)。
- 出现的每一个7D(转义字符)字节转变成2字节序列(7D,5D)。
- 出现的每一个ASCII码控制字符(数值小于0x20的字符),则在该字符前面插入一个7D字节,同时将该字符的编码加上ox20。
- 接收方的处理:进行反变换即可恢复出原来的帧的数据部分
- 透明传输——面向比特的同步链路采用插入比特0的比特填充法

- 发送方的处理:
- 对帧的数据部分进行扫描(一般由硬件实现)。只要发现5个连续的比特1,则立即填充1个比特0。
- 接收方的处理:
- 对帧的数据部分进行扫描(一般由硬件实现)。只要发现5个连续的比特1,就把其后的1个比特0删除。
- 差错检测
接收方每收到一个PPP帧,就进行CRC检验。若CRC检验正确,就收下这个帧;反之,就丢弃这个帧。使用PPP的数据链路层向上不提供可靠服务。 - 工作状态

链路层详解:帧封装、差错检测与多路访问协议
本文深入探讨了计算机网络中的链路层,包括帧的成帧、链路接入、可靠交付、差错检测技术如奇偶校验、检验和及循环冗余检测。此外,讲解了多路访问协议,如信道划分(TDM、FDM、CDMA)、随机接入协议(ALOHA、CSMA/CD)以及轮转协议。还介绍了以太网帧结构、地址解析协议ARP、交换局域网与虚拟局域网(VLAN)的概念。最后,简述了点对点PPP协议的帧格式、透明传输和差错检测。
602

被折叠的 条评论
为什么被折叠?



