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

计算机网络——数据链路层的功能

目录

物理链路

逻辑链路

封装成帧(组帧)

帧定界

透明传输

SDU

差错控制

可靠传输

流量控制

介质访问控制


 主机需要实现第一层到第五层的功能,而路由器这种节点只需要实现第一层到第三层的这些功能

假设左边用户需要给右边用户发送数据,那这些数据会经过上面这些层次的逐层处理,到网络层这块,会把数据拆分成IP数据报,也就是拆分成分组,接下来网络层会把分组交给数据链路层进行传输,也就是数据链路层需要为网络层提供服务,需要把网络层的分组加上首部尾部的控制信息,封装成一个帧,紧接着数据链路层又会请求物理层的服务,让物理层把这些帧,也就是二进制数据,传输给下一个相邻的结点,那下一个结点的物理层会收到这些二进制比特串,并把这些二进制比特串交给第二层,数据链路层进行处理,那这个数据链路层实体需要还原IP数据报的信息,并且把IP数据报交给第三层的实体

总之数据链路层的对等实体之间,以为单位进行数据传输,但是帧的传输依赖于物理层提供的“比特传输”服务

数据链路层又会为上一层网络层提供服务,把网络层的IP数据报(分组)加上相应的控制信息封装成,然后以帧为单位,传输给下一个相邻节点对应的实体

物理链路

就是传输介质(0层)和物理层(1层)实现了相邻结点之间的“物理链路

那相邻结点之间有了物理链路就可以实现二进制比特的传输

逻辑链路

那数据链路层需要基于“物理链路”,进一步实现相邻结点之间逻辑上的无差错的“数据链路(逻辑链路)

一条物理链路受到环境噪声的干扰,有可能会在传输的过程中发生比特跳变,比如说1跳变成0,或者0跳变成1,那我们的数据链路层需要确保这些比特错误可以被发现,才能确保第二层实体给第三层提交的数据报没有错误

封装成帧(组帧)

把网络层交给它的数据封装成一个“帧”

帧定界

如何让接收方确定一个帧的界限,从哪开始,从哪结束,因为物理层只会传输二进制比特串,这些二进制比特串中有可能只会包含一个帧,有可能会包含多个帧,所以接收方的物理层实体把一系列二进制比特串,交给第二层时,第二层就要从一系列二进制串中,分辨出帧和帧的边界在哪,这就是帧定界要解决的问题

透明传输

接收方的链路层需要能从帧里面恢复原始的SDU

SDU

某一层的SDU+这一层的协议控制信息=这一层的协议数据单元

对于数据链路层来说,网络层委托给它传输的这坨IP数据报(分组),就是数据链路层的SDU,那这层的SDU数据被封装成帧后,首先会增加首部,尾部,这些控制信息,另外这个SDU内部有可能还要进行一些改造

对于接收方而言,它需要从帧中把SDU恢复原样,然后再交付给第三层的实体,对于网络层来说,他们并不能感知数据链路层对我的这个数据分组做的这些处理,也就说组帧和拆帧对于网络层来说是透明的,因此我们把这功能称为透明传输

差错控制

数据的接收方需要发现并解决一个帧里面的“位错”,比如0变1,1变0这种位错误

想要发现一个帧的位错误,可以采用检错编码的技术

解决这种位错误有两种方案

第一种最常用的方案是如果发信了比特错误之后,就直接把这个帧丢弃,然后想办法让发送方重新传输这个帧

而第二种方案是由接收方的数据链路层发现并纠正比特错误(需采用纠错编码

纠错编码技术是检错编码技术的进阶

检错编码只能检测比特错误

纠错编码既能检测比特错误,还能找到是哪些比特发生的错误,然后对这些比特进行纠正

可靠传输

这个要求数据的接收方能够发现并解决“帧错

帧错有三种情况,分别是帧丢失,帧重复,帧失序

流量控制

控制发送方发送帧的速率别太快,让接收方来得及接收

介质访问控制

这的介质指的是物理传输介质,通常来说“广播信道”需要实现介质访问控制的功能,因为广播信道在逻辑上是总线型的拓扑,会出现多个节点争抢传输介质的使用权,这个时候就需要通过数据链路层的某些协议,去决定这个传输介质的使用权或访问权,到底先分配给哪点节点,这就是介质访问控制要解决的问题

点对点信道通常不需要实现此功能,因为点对点信道意味着两个节点之间会有专属的传输介质,两个节点可以同时使用这个信道不用抢

相关文章:

  • [快乐学坊_2] 后端api测试
  • 如何修改进程的优先级
  • 重温Ubuntu 24.04 LTS
  • STM32基础篇(五)------TIM定时器比较输出
  • sgpt 终端使用指南
  • 轻松认识 SQL 关键字,打开数据库操作大门
  • JavaWeb基础-HTTP协议、请求协议、响应协议
  • 【凸优化】分式规划
  • 编程题记录2
  • 如何解决微服务调用链性能问题(优化 JVM 配置,降低 Full GC 频率)
  • SpringCould微服务架构之Docker(1)
  • 【解决】XCode不支持旧版本的iOS设备
  • Spring Boot项目快速创建-开发流程(笔记)
  • MySQL颠覆版系列————MySQL新特性(开启数据库的新纪元)上篇
  • 【AI部署】Ollama与vLLM深度对比:大模型部署框架的技术演进与实践指南
  • [c语言日寄]数据输入
  • 【论文#目标检测】You Only Look Once: Unified, Real-Time Object Detection
  • unity开发效率提升笔记
  • 系统掌握scikit-learn:核心功能与实践指南
  • AIGC 新势力:探秘海螺 AI 与蓝耘 MaaS 平台的协同创新之旅
  • 纽约市长称墨西哥海军帆船撞桥事故已致2人死亡
  • 多图|多款先进预警机亮相雷达展,专家:中国预警机已达世界先进水平
  • 长三角体育节回归“上海时间”,首次发布赛事旅游推荐线路
  • 烤肉店从泔水桶内捞出肉串再烤?西安未央区市监局:停业整顿
  • 阿里上财年营收增6%,蒋凡:会积极投资,把更多淘宝用户转变成即时零售用户
  • 打击网络侵权盗版!四部门联合启动“剑网2025”专项行动