计算机网络笔记:数据链路层

时间:2024-04-14 16:37:59

数据链路层

链路层概述

1、链路层协议:通过单段链路,点到点传送上层数据报链路两端结点间交互的帧格式,发送和接收帧时的操作
2、两种网络链路类型:点对点链路和广播链路
3、链路层环境重要特点
(1)一条路径上的不同链路可运行不同的链路层协议
(2)链路层协议提供的服务可能不同
(3)通信环境较为简单
4、链路层功能在哪里?
网络适配器和驱动程序
5、面向比特的协议:
(1)把帧看成比特的集合
(2)比特填充 (bit stuffing)法(用于发送前/接收后):
①发送方:报文中5个连续1,插入0
②接收方:收到5个连续1:后为0 ,去掉;为1,后为0,则帧结束;否则出错
6、点对点协议(PPP) :家庭主机点对点链路的链路层协议
7、面向字节的协议:
(1)每帧都看成是字节的集合
(2)保留一组字符为控制字符

差错检测和纠正技术

1、处理帧差错两种方法
①检错重发(detect and retransmission)
②前向纠错(Forward Error Correction, FEC)

2、奇偶校验
(1)单个比特的奇偶校验 (检测单个比特差错)
单个比特的奇偶校验是指在要发送的数据最后附加一个奇偶校验位。奇校验的意思就是整个编码中的1的个数要是奇数.偶校验就是1的个数是偶数.。计算机网络笔记:数据链路层

(2)二维比特奇偶校验(检测和纠正单个比特差错)
D中的d个比特被划分为i行j列.对每行每列计算奇偶值.产生的i + j + 1奇偶比特就构成了链路层帧的差错检测比特.
计算机网络笔记:数据链路层
当出现单个比特差错时,发生错误的行和列都会出现差错.接收方不仅可以检测差错,还可以根据行列索引来纠正它。

3、互联网检验和

  • 目标:检测传输段中的“差错”(如比特翻转) (注意: 仅用于运输层)
  • 发送方:
    (1)将段内容作为16比特整数序列来处理
    (2)检验和: 段内容相加(补码和)
    发送方将检验和的值放入 UDP 检验和字段
  • 接收方:
    (1)计算接收到段的检验和
    (2)检查是否计算的检验和等于检验和字段的值:
    NO – 检测到差错
    YES – 没有检测到差错,仍可能有错

4、循环冗余检测(CRC)
CRC编码也称为多项式编码,因为该编码能够将要发送的比特串看成系数是0或1的一个比特串,对比特串的操作被解释为多项式算数.

发送方的编码步骤如下 :
①将数据比特D看作一个二进制数,发送方和接收方实现协商一个r+1的比特模式(比特串)G,叫做生成多项式.要求G的最高位是1(一般情况下,G是给定的)
②对于一个给定的数据段D,发送方选择r个附加比特R,并将它们附加到D上,使得得到的d + r比特模式用模2算数恰好能被G整除(模2除法本质是异或运算)。

接收方的解码步骤如下:
用G去除收到的d+r比特.如果余数非0,则出了差错.否则认为数据被正确接收.

计算附加比特R的方式:
R =(D * 2^r )% G}
上式的含义为:D左移 r 位(即:右端补0)后除以G,余数就是R。

可靠数据传输原理

1、设计可靠数据传输协议:SW0协议,SW1协议,SW2协议,SW3协议
2、两种流水线协议: 回退N步(go-Back-N), 选择性重传(S-R)
3、恢复流水线差错的两种基本方法:
(1)回退N步(Go-Back-N,GBN)

  • 发送方:
    在分组首部需要K比特序号,2k=N
    ①“窗口”最大为N, 允许N个连续的没有应答分组
    ②ACK(n): 确认所有的(包括序号n)的分组 - “累计ACK”
    ③对每个传输中的分组用同一个计时器
    ④timeout(n): 若超时,重传窗口中的分组n及所有更高序号的分组
    计算机网络笔记:数据链路层
    注意:
    ①接收方根据滑动窗口的序号按序接收分组
    ②窗口中失序分组及后面将被丢弃
    ③发送方采用超时机制来重传出现丢失或差错的分组
    ④接收方采用累积确认的方式
    ⑥GBN协议的接收窗口的长度为1

(2)选择重传(Selective Repeat, SR)

  • 发送方:
    ①上层传来数据 :如果窗口中下一个序号可用, 发送报文段
    ②timeout(n):重传分组n, 重启其计时器
    ③ACK(n) 在[发送基,发送基+N]:标记分组 n 已经收到,如果n 是最小未收到应答的分组,向前滑动窗口基指针到下一个未确认序号
  • 接收方:
    ①分组n在 [接收基,接收基+N-1]:
    发送 ACK(n)
    失序: 缓存
    按序: 交付 (也交付所有缓存的按序分组),向前滑动窗口到下一个未收到报文段的序号
    ②分组n在[接收基-N,接收基-1]:ACK(n)
    计算机网络笔记:数据链路层

注意:计算机网络笔记:数据链路层

多路访问协议

1、多路访问:多个发送/接收结点同时使用广播信道,协调它们共享一个信道的方式。
2、碰撞:如果结点同时接收到两个或更多信号
3、多路访问MAC协议
1)信道划分
①信道划分MAC协议: TDMA
②信道划分 MAC协议: FDMA

2)轮流
①令牌传递(无中心)
②轮询(有中心)

3)随机访问

以太网

1、LAN地址=物理地址=MAC地址