当前位置: 首页 > news >正文

【深入理解计算机网络05】数据链路层:组帧,差错控制,流量控制与可靠传输

目录

组帧

差错控制

流量控制与可靠传输

停止-等待协议(S-W)

后退N帧协议(GBN)

选择重传协议(SR)

三种协议的理想信道利用率


物理链路:传输介质(0层) + 物理层(1层)实现了相邻节点之间的物理链路

物理链路受到噪声的干扰有可能会发生比特的跳变,因此需要逻辑链路

逻辑链路:数据链路层需要基于物理链路,实现相邻节点之间逻辑上无差错的数据链路(逻辑链路)

组帧

其本质是将网络层传递下来的 “无结构数据块” 封装成 “有明确边界的帧(Frame)”,同时为帧添加必要的控制信息,确保数据能在物理链路中可靠、准确地传输。

字符计数法

  • 在每个 帧开头,用一个定长计数字段表示帧长
  • 任何一个计数字段出错,导致后续所有帧无法定界

字节填充法

  • 使用控制字符SOH表示帧的开头,控制字符EOT表示帧的结尾
  • 数据部分可能会有数据和控制字符是相等的,这种数据被称为特殊比特串。因此需要在种数据前加上转义字符ESC来确保其被数据接收方正确识别。同样的道理,如果有数据和转义字符是相等的,也可以在这个数据前面加上转义字符

零比特填充法

  • 特殊比特串表示帧开始和结束
  • 由于数据部分可能出现特殊比特串,因此发送方需要对帧的数据部分进行处理,每遇到连续的5个1,就在其后填充一个0。接受方需要进行逆处理,每遇到连续的5个1,就在其后删除一个0

违规编码法

  • 基于曼彻斯特编码实现,由于曼彻斯特编码规定比特的中间位必须跳变,如果没有跳,可以将其看作违规信号,用来标记帧的开头和结尾
  • 需要物理层的配合,物理层在帧的前后插入一个时钟周期的违规信号

差错控制

为了发现并解决一个帧内部的位错

奇偶校验码

  • 在有效信息位前加一个奇偶校验位称为奇偶校验码。奇(偶)校验确保奇偶校验码中1的个数位奇(偶)数
  • 偶校验的硬件实现:对各信息进行异或运算,得到的结果即为偶校验为

循环冗余校验码

  • 发送方根据待传输数据块,通过特定的数学运算生成一段 “校验码”(CRC 码),并将其附加在数据后一起传输;接收方收到数据后,用同样的运算验证 “数据 + 校验码” 是否符合预设规则,若不符合则判定数据出错,需请求重传
  • 数据发送方和接收方约定一个除数,信息位+校验位作为被除数,需要保证被除数 / 除数的余数位0。若余数为非0说明数据出错

海明校验码

  • 海明码的本质是通过在原始数据中插入若干 校验位(Parity Bit),让每个数据位都被多个校验位共同监督
  • 当数据传输出错时,通过校验位的错误状态,可精准定位错误位置,进而完成纠错

流量控制与可靠传输

停止-等待协议(S-W)
  • 滑动窗口机制:发送窗口 Wt=1,接收窗口 Wr=1
  • 确认机制:
    • 确认帧:ACK_i
    • 若接收方收到 i 号帧,且没有检测出 “差错”,需要给发送方返回确认帧 ACK_i
  • 重传机制:
    • 超时重传
    • 若发送方超时未收到 ACK_i,则重传 i 号帧
  • 帧编号:
    • 仅需 1bit 给帧 “编号”
    • 要求:W_T + W_R ≤ 2ⁿ
后退N帧协议(GBN)
  • 滑动窗口机制:发送窗口 Wt>1,接收窗口 Wr=1
  • 确认机制:
    • 确认帧:ACK_i
    • 若接收方收到 i 号帧,且没有检测出 “差错”,需要给发送方返回确认帧 ACK_i
  • 重传机制:
    • 超时重传
    • 若发送方超时未收到 ACK_i,则重传 i 号帧
  • 帧编号:
    • 为了支持以上机制正确运行,至少需要用 n bit 给帧 “编号”
    • 要求:W_T + W_R ≤ 2ⁿ
  • GBN 的特殊规则:
    • 关于确认帧:接收方可以 “累积确认”。即连续收到多个数据帧时,可以仅返回最后一个帧的 ACK
    • 关于超时重传:若发送方超时未收到 ACK_i,则重传 i 号帧,及其之后的所有帧
    • 收到一个非法帧(即接受方收到的帧超出了当前的窗口),接受方会将此帧丢弃,并返回目前已接受的最后一个正确帧的ACK_i
选择重传协议(SR)
  • 滑动窗口机制:发送窗口WT>1;接收窗口WR>1
  • 确认机制:
    • 确认帧:ACK_i
    • 若接收方收到 i 号帧,且没有检测出 “差错”,需要给发送方返回确认帧 ACK_i,SR 协议不支持 “累计确认”,必须一帧一确认
  • 重传机制:
    • 超时重传
    • 若发送方超时未收到 ACK_i,则重传 i 号帧
  • 帧编号:
    • 为了支持以上机制正确运行,至少需要用 n bit 给帧 “编号”
    • 要求:WT+WR≤2n
  • SR 的特殊规则:
    • 否认帧:NAK_i
      • 若接收方收到 i 号帧,但检测出 i 号帧有 “差错”,需要丢弃该帧,并给发送方返回否认帧 NAK_i
    • 请求重传
      • 若发送方收到 NAK_i,则重传 i 号帧
    • 要求:WRWT,即接受窗口不能大于发送窗口
三种协议的理想信道利用率
  • S-W:U=TD / TD+RTT+TATD
    • TD:一个数据帧的传输时延(发送时延)
    • TA:一个 ACK 确认帧的传输时延(发送时延)
    • RTT:往返时延,即两倍的单向传播时延
  • GBN、SR:U=N*TD / TD+RTT+TANTD
    • N 表示发送窗口大小
    • 注意:信道利用率不能超过 1
    • 常结合 “帧编号” 考察
      • n bit 给帧 “编号”,要求 WT+WR≤2^n
      • GBN 协议 WR=1,SR 协议 WR>1。因此,同样 n bit 给帧编号,GBN 的发送窗口 WT 更大,GBN 的信道利用率也会更高
http://www.dtcms.com/a/449950.html

相关文章:

  • 夜神模拟器安装burp证书实现微信小程序抓包
  • 交互设计 网站推荐清美未来广告设计公司
  • 叮当快药网站谁做的网站改版 升级的目的
  • 佛山免费网站设计阿里云搭建wordpress
  • 大模型之用LLaMA-Factory微调Deepseek-r1-8b模型实践
  • 【C语言】寻找数组中唯一不重复的元素
  • 大数据成矿预测系列(三) | 从统计模型到机器学习:为何机器学习是成矿预测的新前沿?
  • UNIX下C语言编程与实践34-UNIX 守护进程:概念、特点与应用场景
  • 专项行业项目资源与源码
  • 《基于电阻抗断层成像的实时软触觉传感器中的深度神经网络方法》IROS2019论文解读
  • 网页设计第5次作业
  • 吃透大数据算法-霍夫曼编码(Huffman Coding)
  • 唐山自助建站软件app网站开发合同
  • 河北三河建设局网站哪个软件可以做明星视频网站
  • GESP2025年9月认证C++二级( 第三部分编程题(2)菱形)
  • 【大模型实战篇】AgentScope引入Sequential thinking mcp server实现顺序思考的React Agent
  • HashLfuCache
  • XSLFO 流:深入解析与实际应用
  • vscode 一键导出导入所有插件
  • 网站登录验证码显示不出来软件网站排名
  • 找人做一个网站要多少钱包头移动的网站建设
  • 网站设计师培训学校建网站建设网站
  • Linux 目录结构,远程登录 CentOS 服务器 和 远程文件传输 详解(Xshell, PuTTY, Xftp)
  • 外贸网站样式修改wordpress登陆后台
  • FFN、CNN和RNN对比
  • springboot3 怎么用@DS 实现多数据源
  • 平湖市住房建设局网站安全证四川省建设厅官方网站
  • 利用CodeBuddy CLI 辅助Unity游戏开发,提高开发效率
  • MATLAB计算标准径流指数(Standard Runoff Index,SRI)
  • pion/webrtc v4.1.5 更新详情与改动说明