计算机网络理论:3.数据链路层

第三章:数据链路层

数据链路层所处的地位

§3-1-1 数据链路层的功能

一.封装成帧(组帧)

1. 主要问题

(1).帧定界

如何让接收才能够确定帧的界限

(2).透明传输

接收方要能够去除"帧定界"的附加信息,把帧"恢复原貌"

2. 四种组帧方法

(1).字符计数法
(2).字节填充法

如果帧的数据部分包含"特殊字符",则发送方需要在这些"特殊字符"前填充"转义字符ESC"(接收方要做逆处理)

(3).零比特填充法

在每个帧的首位分别添加一个特殊比特串01111110,表示帧的开始/结束

  • 发送方每遇到连续5个1,就填充一个0

  • 接收方每遇到连续5个1,就删掉后面的0

(4).违规编码法

二.差错控制

1. 检错编码

(1).奇偶校验码
  • 奇校验码:所有位中"1"的个数为奇数
  • 偶校验码:所有位中"1"的个数为偶数

注:偶校验在实际应用中运用的比较多,因为可以用异或门实现校验位的计算
发送方 :求偶校验位,直接对所有信息位进行异或运算,得到的结果就是校验位的值
接收方:进行偶校验,所有位进行异或,若结果为0则正确,结果为1说明出错

奇偶校验码仅能检测出奇数位错误,无纠错能力


(2).循环冗余校验码(CRC码)
①.原理

数据发送、接收方约定一个"除数"(二进制)
发送方 :K个信息位 + R个校验位作为"被除数",添加校验位后需保证除法的余数为0
接收方:收到数据后,进行除法检查余数是否为0,若余数非0说明出错

KKK 个信息位,RRR 个检验位,若生成多项式选择得当,且 2R≥K+R+12^R \ge K+R+12R≥K+R+1,则 CRC 码可纠正 1 位错(实际应用中一般只用来 ''检错'')

理论上可以证明循环冗余校验码的检错能力有以下特点:

  1. 可检测出所有奇数个错误;
  2. 可检测出所有双比特的错误;
  3. 可检测出所有小于等于校验位长度的连续错误;
②.例题

设生成多项式为G(x)=x3+x2+1,信息码为101001,求对应的CRC码。

  1. 确定K、R以及生成多项式对应的二进制码

    • K=信息码的长度=6

    • R=生成多项式最高次幂=3

    • 校验码位数N=K+R= 9

    • 生成多项式G(x)=1·x3+1·x2+0·x1+1·x0,对应二进制码1101

  2. 移位

    信息码左移R位,低位补0

    101001000

  3. 相除

    对移位后的信息码,用生成多项式进行模2除法,产生余数对应的CRC码:101001001

    • 被除数:补0后的信息码(101001 000)

    • 除数:生成多项式系数(1101)

      根据当前最高位判断是商0还是商1

    • 最高位为0 -> 商0

    • 最高位为1 -> 商1

    • 剩余三位进行异或运算

    • 最后得到的余数即为校验位

  4. 检错和纠错

    发送: 101001001 记为 C9C8C7C6C5C4C3C2C1C_9C_8C_7C_6C_5C_4C_3C_2C_1C9C8C7C6C5C4C3C2C1

    若接收: 101001001用1101进行模 2 除 →\rightarrow→ 余数为 000,代表没有出错

    若接收:101001011用1101进行模 2 除 →\rightarrow→ 余数为 010,代表 C2C_2C2 出错(也可能是C8C_8C8)

    对于确定的生成多项式,出错位与余数是相对应的

2. 纠错编码

(1).海明校验码
①.原理

海明码设计思路:将信息位分组进行偶校验 →\rightarrow→ 多个校验位 →\rightarrow→ 多个校验位标注出错位置

②.海明码求解步骤

确定校验位数量 →\rightarrow→ 确定校验位的分布 →\rightarrow→ 求校验位的值 →\rightarrow→ 检错纠错

例:信息位:1010

  1. 确定校验位数量

    2k≥n+k+12^k \ge n+k+12k≥n+k+1;n=4→k=3n=4 \rightarrow k=3n=4→k=3

    设信息位 D4D3D2D1D_4D_3D_2D_1D4D3D2D1 (1010),共 4 位,校验位 P3P2P1P_3P_2P_1P3P2P1,共 3 位,对应的海明码为 H7H6H5H4H3H2H1H_7H_6H_5H_4H_3H_2H_1H7H6H5H4H3H2H1。

  2. 确定校验位的分布

    校验位Pi放在海明位号为2i-1的位置上;信息位按顺序放到其余位置。

  3. 求校验位的值

  4. 纠错

③.补充: 检错、纠错能力

三.流量控制和可靠传输(三种协议)

  • 补充: 与滑动窗口机制

###1. 停止-等待协议(S-W)

(1). 滑动窗口机制

发送窗口 WT=1W_T=1WT=1,接收窗口 WR=1W_R=1WR=1

(2). 确认机制

若接收方收到i号帧,且没有检测出"差错",需要给发送方返回确认帧 ACK_i

(3). 重传机制
  • 超时重传:若发送方超时未收到 ACK_i,则重传i号帧
(4). 帧编号

要求: WT+WR≤2nW_T + W_R \le 2^nWT+WR≤2n(n代表用n bit给帧标号)

停止-等待协议仅需1bit给帧"编号";

(5).基础概念
(6).实际情况
  1. 正常情况

  2. 数据帧丢失

  3. 确认帧丢失

    如果没有"帧序号''接收方无法判别"重复帧"!

  4. 数据帧有"差错"

2. 后退N帧协议(GBN)

(1). 滑动窗口机制

发送窗口 WT>1W_T > 1WT>1,接收窗口 WR=1W_R = 1WR=1

发送方可连续发送多个帧,但接收方一次只能按顺序接收 1 个帧。


(2). 确认机制(ACK)

累积确认(Cumulative ACK)

  • 若接收方连续收到了多个正确的帧,只需返回最后一个正确帧的 ACK(如 ACK_i)
  • ACK_i 表示: 接收方已正确收到 i 号帧及其之前所有帧

若接收方收到"非法帧"(包括: 落在窗口外的帧、检测出差错的帧),

则: 接收方丢弃该帧,并返回当前已成功接收的最后一个正确帧的 ACK_i,以提醒发送方回退重传。


(3). 重传机制
  • 超时重传: 若发送方超时未收到 ACK_i,则必须重传 i 号帧及其"之后的所有帧"。

GBN 的核心: 只要有一个帧出现问题,则从该帧开始全部回退重发。


(4). 帧编号

为了支持滑动窗口与确认机制,需使用 至少 n bit 给帧编号,满足:

WT+WR≤2nW_T + W_R \le 2^nWT+WR≤2n


(5). GBN 的特殊规则与要点

① 非法帧处理

接收方只接收按序帧,遇到非法帧 → 丢弃、并返回 ACK_i(最后正确帧)。

② 缺点

若接收方处理慢,或信道误码率高,可能导致发送方频繁"后退"重传,降低效率。


3. 选择重传协议(SR)

(1). 滑动窗口机制

发送窗口 WT>1W_T > 1WT>1,接收窗口 WR>1W_R > 1WR>1

在实际应用中,通常取WT==WR


(2). 确认机制

若接收方收到i号帧,且没有检测出"差错",需要给发送方返回确认帧 ACK_i(必须一帧一确认)


(3). 重传机制
  • 超时重传: 若发送方超时未收到 ACK_i,则重传i号帧

  • 请求重传: 若发送方收到 NAK_i,则重传 i 号帧


(4). 帧编号

为了支持滑动窗口与确认机制,需使用 至少 n bit 给帧编号,满足:

WT+WR≤2nW_T + W_R \le 2^nWT+WR≤2n**(若不满足会导致发送方和接收方无法正确判别"重复帧")**


(5). SR 的特殊规则
  • 否认帧: NAK_i
    • 若接收方收到i号帧,但检测出 i 号帧有"差错",需要丢弃该帧,并给发送方返回否认确认 NAK_i
  • 窗口大小要求
    • 要求: WR≤WTW_R \le W_TWR≤WT,即接收窗口不能大于发送窗口
  • SR 协议不支持"累计确认",必须一帧一确认

(6).实际情况
①.数据帧丢失

窗口第一个帧收到确认帧,窗口就可以右移;每个帧被发出时设置计时器,如果超时未收到对应的ACK,就重传这个帧。

②.数据帧因差错而被丢弃

窗口第一个帧收到确认帧,窗口就可以右移;如果接收方收到一个有差错的帧,就将此帧丢弃,并返回对应的否认帧NAK_i,主动请求发送方重传i号帧

③.确认帧丢失

首先发送端超时重传,若在接收端窗口外就是重复帧,收到重复帧就返回该帧的ACK

四.介质访问控制

  • §3-1-3到§3-1-5具体讲解三种方法

广播信道"需要实现此功能。广播信道在逻辑上是总线型拓扑,多个结点需争抢传输介质的使用权

点对点信道"通常不需要实现此功能。点对点信道通常意味着两个结点之间有专属的传输介质,不用抢

§3-1-2 信道利用率

零.术语补充

1. 滑动窗口协议

滑动窗口协议: 后退N帧协议(GBN), 选择重传协议(SR)

2. ARQ协议,连续ARQ协议

ARQ协议: 停止-等待协议(S-W), 后退N帧协议(GBN), 选择重传协议(SR)

连续ARQ协议: 后退N帧协议(GBN), 选择重传协议(SR)

一.S-W协议

1. 确认帧长度不可忽略

2. 确认帧长度可以忽略

**例题: **

二.GBN,SR协议

三.例题

例1:

例2:

§3-1-3 (介质访问控制)信道划分

一.引入

多个节点共享同一个"总线型"广播信道时,可能发生"信号冲突"。如何减少或避免该冲突?

二.时分复用

1. 常规时分复用(TDM)

  • (TDM,Time Division Multiplexing)

将时间分为等长的"TDM帧",每个"TDM帧"又分为等长的m个"时隙",将m个时隙分配给m对用户(节点)使用

  • **缺点: **

    每个节点最多只能分配到信道总带宽的1/m

    如果某节点暂不发送数据,会导致被分配的"时隙"闲置,信道利用率低

2. 统计时分复用(STDM)

  • (STDM,Statistic Time Division Multiplexing)

在TDM的基础上,动态按需分配时隙

  • **优点: **

    如果需要时,一个节点可以在一段时间内获得所有的信道带宽资源

    如果某节点暂不发送数据,可以不分配"时隙",信道利用率更高

三.频分复用(FDM)

  • (FDM,Frequency DivisionMultiplexing)

频分复用是将信道的总频带划分为多个子频带,每个子频带作为一个子信道,每对用户使用一个子信道进行通信。

  • 优点

    各节点可同时发送信号,充分利用了信道带宽

  • 缺点

    只能用于模拟信号的传输

四.波分复用(WDM)

  • (WDM,WavelengthDivision Multiplexing)

波分复用就是光的频分复用

Tips: 光信号的频带范围(带宽)非常大,因此很适合采用波分复用技术,将一根光纤在逻辑上拆分为多个子信道

五.码分复用(CDM)

1. 给各节点分配专属"码片序列"

  • "码片序列"包含 mmm 个码片(信号值),可看作"mmm 维向量"
    • (mmm 维向量的分量通常取 1-1)
  • **要求: ** 各节点的"mmm 维向量"必须相互正交
  • **注: **相互通信的各节点知道彼此的"码片序列"

2. 发送方如何发送数据

  • 节点发出 m 个信号值与"码片序列"相同 ,表示比特 1
  • 节点发出 m 个信号值与"码片序列"相反 ,表示比特 0

3. 信号在传输过程中"叠加"

  • 当多个发送方同时发送数据时,信号值会叠加(注: 本质是多个m维向量的加法)

4. 接收方如何接收数据

  • 接收方收到的是"叠加"信号,需要从中"分离"出各发送方的数据
  • 叠加信号发送方的码片序列 作"规格化内积 "
    • 结果为 1 ,表示比特 1
    • 结果为 -1 ,表示比特 0

5. 例题

§3-1-4 (介质访问控制)随机访问

一.ALOHA协议

1. 纯ALOHA(非重点)

如果准备好数据帧,就立刻发送


2. 时隙ALOHA协议(非重点)

  • 时隙大小固定 = 传输一个最长帧所需时间
  • 只有在每个时隙开始时才能发送帧

二.CSMA协议

  • CSMA(Carrier Sense Multiple Access)协议,即载波监听多路访问协议

CSMA协议在ALOHA协议基础上提出改进: 在发送数据之前,先监听信道是否空闲,只有信道空闲时,才会尝试发送

1. 1-坚持CSMA协议

  • 优点: 信道利用率高。信道一旦空闲,就可以被下一个节点使用
  • 缺点: 当多个节点都已准备好数据时,一旦信道空闲,会有多个节点同时发送数据,冲突概率大。

2. 非坚持CSMA协议

  • 优点: 降低冲突概率。放弃监听信道一段时间可使各节点"错开"发送数据
  • 缺点: 信道利用率降低。(信道刚恢复空闲时,可能不会被立即利用)

3. p-坚持CSMA协议

  • 优点: 属于1-坚持CSMA、非坚持CSMA的折中方案,降低冲突概率的同时,提升信道利用率

三.CSMA/CD协议(有线以太网)

  • CSMA/CD (Carrier Sense Multiple Access with Collision Detection) 协议,即载波监听多路访问/冲突检测协议

用于早期的有线以太网 (总线型)

1. 协议要点

  • 先听后发,边听边发,冲突停发,随机重发
(1).如何随机重发
  • 截断二进制指数退避算法:

    随机等待一段时间 = r 倍争用期,其中 r 是随机数("争用期"是一段固定大小的时间)

  1. 如果 k≤10k \le 10k≤10,在 [0,(2k−1)][0, (2^k - 1)][0,(2k−1)] 区间随机取一个整数 r

  2. 如果 k>10k > 10k>10,在 [0,(210−1)][0, (2^{10} - 1)][0,(210−1)] 区间随机取一个整数 r

(2). 特别注意
  • 第10次冲突,是"随机重发"的分水岭
  • 第16次冲突,直接躺平,放弃传帧,报告上级(网络层)

2. 争用期

  • 争用期 = 2×2 \times2× 最大单向传播时延 (考虑距离最远的两个节点)
    • 若争用期内未发生冲突,就不可能再冲突
    • CSMA/CD 没有ACK机制,若发送过程中未检测到冲突,就认为帧发送成功,多有线使用(误码率较低)

3. 最短帧长

  • 最短帧长 = 2×2 \times2× 最大单向传播时延 ×\times× 信道带宽
  • 若收到的帧小于最短帧长,视为无效帧
  • 如果实际要发送的数据很少, 可填充至合法长度后再发送

4. 最长帧长

  • 规定最长帧长可防止某些节点一直占用信道

5. 以太网规定

  • 最短帧长 = 64B;最长帧长 = 1518B

四.CSMA/CA协议(无线局域网)

  • [非重点]

  • CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance) 协议,即载波监听多路访问/碰撞避免协议

0. 补充

无线局域网(WiFi)面临的新问题

1. 协议要点

  1. 发送方: 先听后发,忙则退避

    • 若信道空闲,间隔DIFS后,再发送帧(一口气发完,发送过程中不用检测冲突)
    • 若信道不空闲,则进行"随机退避"
  2. 随机退避原理

    • 用二进制指数退避算法确定一段随机退避时间(倒计时)
    • 发送方会保持监听信道,只有信道空闲时才"扣除倒计时",倒计时结束后立即发送帧(此时信道"听起来"一定空闲)
  3. 接收方: 停止等待协议

    • 每收到一个正确数据帧都返回ACK;若发送方超时未收到ACK,则进行"随机退避"

2. 信道预约机制(可选功能)

解决隐藏站问题

key:先预约,再发送

  1. 发送方广播RTS控制帧(先听后发,忙则退避)

  2. AP广播CTS控制帧

    注: 需在RTS、CTS中指明预约时长

  3. 其他无关节点收到CTS后自觉"禁言"一段时间(即: 虚拟载波监听机制);发送方收到 CTS后,就可以发送数据帧

  4. AP收到数据帧后,进行CRC校验,若无差错就返回ACK帧

3. 帧间间隔IFS

  1. DIFS,最长的IFS

    • 每次"帧事务"开始之前需要等待的时间
  2. SIFS,最短的IFS

    • 收到一个帧后需要预留的一段处理时间
  3. PIFS,中等长度的IFS

    • 考研可不关注PIFS

时间长度:DIFS >PIFS >SIFS

§3-1-5 (介质访问控制)轮询访问

一.令牌传递协议

1. 协议要点

(1). 令牌帧
  1. 需指明当前获得令牌的节点编号(MAU分配的)
  2. 只有获得令牌 (Token) 的节点才能往信道上发送数据帧
  3. 如果获得令牌的节点没有数据要发送 ,就将令牌传递下一个节点 (注:此时若有数据发送,则进行"发送数据时转换")
(2). 数据帧
  1. 需指明数据帧的 源地址/目的地址是否已被接收获得令牌的节点编号
  2. 数据帧从源结点发出,"传递一圈"后回到源节点
  3. 数据帧"传递一圈"的过程中,会被 目的节点复制一份数据 ,并将数据帧标记为"已接收"
  4. 数据帧回到源结点后,如果发现 异常状况 ,就尝试 重发 ;若 无异常,就将令牌传递下一个节点

2. 其他补充

  1. 无论是令牌帧还是数据帧,都只能沿单向传递
  2. 获得令牌的节点,每次只能发一帧,发完就释放令牌
  3. 需要用专门的网络设备 (MAU) 实现 集中控制
  4. 令牌传递协议很适用于 负载较高 的网络(不会发生冲突,效率高)

二.数据帧和令牌帧

三.MAU一令牌环网的集中控制站

§3-2-1 局域网

一.局域网和IEEE 802

二.局域网(LAN)的特点

  1. 覆盖较小的地理范围
  2. 较低的时延和误码率
  3. 局域网内的各节点之间以"帧"为单位进行传输
  4. 支持单播、广播、多播

三.局域网(LAN)的分类

关注三要素 (出题点)

  1. 拓扑结构
  2. 传输介质
  3. 介质访问控制方式

1. 有线局域网

(1).令牌环网(Token Ring)
  1. 环形
  2. 同轴电缆或双绞线
  3. 令牌传递协议
(2).以太网/802.3(Ethernet)

物理层采用曼彻斯特编码

①.同轴电缆以太网(废弃)

10Base5,1982年

  1. 总线形
  2. 同轴电缆(可用中继器连接多个同轴电缆网段)
  3. CSMA/CD协议
②.光纤以太网

10BaseF,1993年**(用于扩大以太网覆盖范围)**

  1. 点对点(用于中继器/集线器/交换机之间的传输,也就是说通常不会直接连接终端节点)
  2. 光纤
  3. NULL(用两条光纤实现全双工通信,没有信道争用)
③.双绞线以太网

10BaseT,1990年

用集线器连接

  1. 物理上星形,逻辑上总线形
  2. 双绞线(用集线器连接)
  3. CSMA/CD协议(半双工)

用交换机连接

  1. 物理上、逻辑上都是星形

  2. 双绞线(用交换机连接)

  3. CSMA/CD协议或NULL

    半双工模式下,采用CSMA/CD 争抢信道

    全双工模式下,不用争抢信道,也就不需要使用CSMA/CD协议

2. 无线局域网/802.11(WLAN)

  1. IEEE802.11定义为星形(1个AP+N台移动设备)
  2. .无线(Wireless)
  3. CSMA/CA协议

§3-2-2 以太网802.3

LLC名存实亡,可以任务MAC层就是数据链路层。

一.以太网物理层

1. 做题技巧

  • 同轴电缆网段: 仅支持半双工
  • 双绞线网段
    • 如果连接集线器,就只能工作在半双工模式下
    • 如果连接交换机,就默认工作在全双工模式下
  • 光纤网段(很少考): 仅支持全双工

二.以太网MAC层

使用曼彻斯特编码(跳0反跳1看中间,中必变)

1. V2标准的以太网MAC帧

2. 802.3标准的以太网MAC帧

3. 单播帧/广播帧如何传播

E到F交换机也会收到

4. 冲突域/广播域

三.VLAN(虚拟局域网)

1. 大型局域网面临的问题

  1. 局域网内任何一个节点发出的广播帧,都会被广播至所有节点。可能出现"广播风暴"。
  2. 不安全,局域网内可能会有一些敏感节点

2. VLAN(虚拟局域网)

3. VLAN划分方式:

(1).基于接口
(2).基于MAC地址
(3).基于IP地址

注:这种方式可以让VLAN范围跨越路由器,让多个局域网的主机组成一个VLAN(需要网络层功能支持)

4. 802.1Q帧的作用

主机与交换机之间,传输标准以太网帧
交换机与交换机之间,传输 802.1Q 帧

5. 802.1Q帧的结构

§3-2-3 无线局域网802.11

一.基本概念

二.802.11帧的分类

1. 数据帧

2. 控制帧

如 ACK、RTS、CTS帧

3. 管理帧

如 探测请求/探测响应帧(说人话:用于发现 wifi)

三.数据帧格式

1. 格式

2. 例题

注:

  • 1.802.11帧用于无线链路传输,通常是AP与移动站之间的传输;
  • 2.在有线链路上通常使用太网帧格式,AP与AP之间、AP与路由器之间、AP与以太网交换机之间使用有线链路;

AP通常具备"帧格式转换"功能。可以将在无线链路上传输的802.11帧格式,与有线链路上传输的以太网帧格式相互转换.

四.拓展:RTS,CTS,ACK帧格式

§3-2-4 以太网交换机

一.特点

  1. 交换机 = 多端口网桥(408大纲已删除网桥)
  2. 交换机工作在数据链路层,可以根据目的MAC地址转发帧

二.自学习功能(支持即插即用)

1. 交换表

  • 初始为空,记录(MAC地址,端口号)的对应关系

2. 更新机制

  • 每收到一个帧,就将"发送方"的(MAC地址,端口号)更新到交换表

3. 转发机制

(1). 不知道"接收方"在哪
  • 就把帧广播到除入口外的其他端口
(2). 知道"接收方"在哪
  • 就把帧精准转发至某个端口

4. 维护机制

  • 交换表中每个表项都有"有效时间",过期表项自动作废(以防某些节点拔线跑路)

三.两种交换方式

1. 直通交换

  1. 只检查帧的目的MAC地址,以决定帧的转发端口
  2. 优点: 转发时延低
  3. 缺点: 不适用于需要速率匹配、协议转换或差错检测的线路

2. 存储转发交换

  1. 先把帧完整地接收到交换机内部的高速缓存中,进行差错检测等必要处理,再根据交换表决定从哪个端口转发出去
  2. 优点: 适用于需要速率匹配、协议转换或差错检测的线路
  3. 缺点: 转发时延高
  • 例题

相关推荐
电商API&Tina2 小时前
淘宝商品视频的采集需要注意哪些问题||item_video-获得淘宝商品视频
大数据·网络·数据库·人工智能·python·音视频
上海云盾-小余2 小时前
高防集群架构深度解析:从流量清洗到业务无感防护实战
网络·安全·web安全·架构·ddos
Amy187021118232 小时前
基站光储能源系统 实现绿色基站 让每一度电都“光”芒四射
网络·能源
BioRunYiXue2 小时前
甘油不够了,能用植物油保存菌种吗?
java·linux·运维·服务器·网络·人工智能·eclipse
好多渔鱼好多2 小时前
【网络协议】P2P技术
网络·网络协议·p2p
小江的记录本2 小时前
【JWT】JWT(JSON Web Token)结构化知识体系(完整版)
前端·网络·web安全·http·网络安全·json·安全架构
加密狗复制模拟3 小时前
软件加密狗中时间限制机制的破解
开发语言·网络·安全·php·软件工程·个人开发
Predestination王瀞潞3 小时前
CentOS7虚拟机安装过程中没有打开网卡,ip addr无法查看es33这个情况下的解决方法
服务器·网络·tcp/ip
FreeBuf_3 小时前
为何安全验证正迈向Agentic时代
网络·安全