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

计算机网络:数据链路层 —— 数据链路层概述

文章目录

    • 数据链路层
      • 主要功能
    • 基本概念
      • 链路
      • 数据链路

数据链路层

在计算机网络中,链路层(Data Link Layer)是网络协议栈中的一层,负责管理和控制链路的建立、维护和释放,以及处理链路层的数据帧传输和错误控制等功能。各种协议和技术(如以太网PPP 点对点协议等)都在链路层进行操作,以实现可靠的数据传输和链路的有效利用。

主要功能

  • 帧同步:数据链路层负责将来自网络层的数据分割成合适大小的数据帧,并在接收端重新组装这些帧。帧同步确保每个帧的开始和结束可以被正确识别。

  • 差错检测与控制:使用校验和(checksum)或循环冗余校验(CRC, Cyclic Redundancy Check)等技术来检测传输过程中的错误。如果检测到错误,则数据链路层会要求重发受影响的数据帧。

  • 流量控制:避免发送方发送数据的速度超过接收方处理的能力,通常采用滑动窗口(sliding window)等机制来控制数据流。

  • 拥塞控制:当网络中的数据量过大时,数据链路层会采取措施减少数据发送量,防止网络拥塞。

  • 介质访问控制(MAC):确定何时以及如何访问共享介质(如以太网中的电缆)。常用的访问控制方法有 CSMA/CD(载波监听多址/碰撞检测)和 CSMA/CA(载波监听多址/冲突避免)。

  • 地址分配:分配唯一的硬件地址(如MAC地址)给网络上的每个设备,以便正确地寻址和转发数据帧。

  • 链路管理:建立、维护和终止数据链路连接,确保链路的有效性和可靠性。

基本概念

链路

链路(Link)是指用来连接两个节点(例如计算机、路由器等)的物理或逻辑路径。它提供了节点之间的通信通路。即从一个节点到相邻节点的一段物理线路(有线或无线),而中间没有任何其他的交换节点。

![[Link Model.png]]

链路的可靠性和带宽是网络连接的重要指标。可靠性指链路传输数据的稳定性和抗干扰能力,带宽则表示链路能够承载的数据传输速率。链路的性能和限制会根据具体的物理介质和网络设备而有所不同。

数据链路

数据链路(Data Link)是基于链路的。当在一条链路上传送数据时,除需要链路本身,还需要一些必要的通信协议来控制这些数据的传输,把实现这些协议的硬件和软件加到链路上,就构成了数据链路。

![[Pasted image 20241009201554.png]]

数据链路负责将原始的比特流转化为有结构的数据帧,并管理数据的传输和错误控制数据链路层的主要作用是提供可靠的点对点数据传输,并检测和纠正数据传输中出现的错误

计算机中的网络适配器(俗称网卡)和其相应的软件驱动程序就实现了这些协议。一般的网络适配器都包含了物理层和数据链路层这两层的功能。

帧(Frame)是数据链路层中的基本传输单位。它是由数据链路层定义的,存储了一个或多个数据字段,包括数据和控制信息。即,数据链路层对等实体之间在水平方向进行逻辑通信的协议数据单元PDU。每个帧通常包含了帧头(Frame Header)和帧尾(Frame Trailer)等控制字段,用于标识帧的开始和结束,并提供错误检测和纠正的机制。

在数据链路层的传输过程中,发送节点将数据进行分帧,并添加帧头和帧尾,形成完整的帧。接收节点通过接收到的帧进行帧解析,提取出数据和控制信息,并进行错误检测、纠正和确认。

帧在数据链路层的传输中起着重要的作用,它通过将数据划分为较小的块,并添加控制信息,实现了数据链路层的功能,如流量控制、差错检测和处理等。帧的具体结构和字段的定义会根据不同的数据链路协议而有所不同,例如以太网PPP 协议(Point-to-Point Protocol)等。


http://www.kler.cn/news/340413.html

相关文章:

  • java脚手架系列1--模块化、多环境
  • 百度文心智能体平台开发萌猫科研加油喵
  • FFMpeg源码分析,关键结构体分析(一)
  • 20241008深度学习动手篇
  • 如何避免 JavaScript 模块化中的函数未定义陷阱
  • 使用正则表达式删除文本的奇数行或者偶数行
  • k8s之ingress-nginx-controller安装
  • 04. prometheus 监控 Windows 服务器
  • JavaScript 中的异步
  • Qt开发环境的搭建
  • 【Matlab】Matlab 导入数据.csv或者.xlsx文件,然后使用这些数据来绘制图表
  • 从opencv-python入门opencv--GUI功能之图像和视频操作
  • 前端反接保护:实用方案解析与探讨
  • 红帽操作系统Linux基本命令2( Linux 网络操作系统 06)
  • Spring Cache 的说明及常用注解
  • 《C++跨平台开发:突破界限,释放无限可能》
  • leetcode 刷题day35动态规划Part04 背包问题(1049. 最后一块石头的重量 II 、494. 目标和、474.一和零)
  • 猫玖破密啦
  • 人工智能之机器学习
  • 多模态简单了解