精炼计算机网络——数据链路层(一)

news2024/9/23 7:28:42

文章目录

  • 前言
  • 3.1 数据链路和帧
    • 3.1.1 数据链路和帧
    • 3.1.2 三个基本问题
  • 总结


前言

上篇文章,我们一同学完了物理层的全部内容,在本篇文章中,我们初步学习数据链路层,理解数据链路和帧的相应概念,知晓封装成帧,透明传输,差错检测的含义。


3.1 数据链路和帧

3.1.1 数据链路和帧

链路是从一个节点到相邻节点的一段物理线路,而中间没有任何其他的交换节点。

数据链路则不同。这是因为当需要在一条线路上传送数据时,除了必须有一条物理线路外,还必须有一些必须要的通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路,现在最常用的方法是使用网络适配器来实
现这些协议。

也有人采用另外的术语。这就是把链路分为物理链路和逻辑链路。物理链路就是链路,逻辑链路就是数据链路,是物理链路加上必要的通信协议。

早起的数据通信协议层叫做通信规程。

点对点信道的数据链路层的协议数据单元——帧。

数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。在互联网中,网络层协议数据单元就是IP数据报(或简称为数据报、分组或包)。

点对点信道的数据链路层在进行通信时的主要步骤如下:
(1) 节点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧。
(2) 节点A把封装好的帧发送给节点B的数据链路层。
(3) 若节点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报交给上面的网络层;否则丢弃这个帧。

3.1.2 三个基本问题

三个基本问题是:封装成帧、透明传输和差错检测
1、封装成帧
封装成帧就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
在这里插入图片描述
图中表示用帧首部和帧尾部封装成帧的一般概念

网络层的IP数据报传送到数据链路层就称为帧的数据部分。在帧的数据部分的前面和后面分别添加上首部和尾部,构成一个完整的帧。这样的帧就是数据链路层的数据传送单元。一个帧的帧长等于帧的数据部分长度加上帧首部和帧尾部的长度。首部和尾部的一个重要作用就是进行帧定界。此外,首部和尾部还包括许多必要的控制信息,在发送帧时,是从帧首部开始发送的。各种数据链路层协议都对帧首部和帧尾部的格式有明确的规定。

为了提高帧的传输效率,应当使帧的数据部分长度尽可能地大于首部和尾部的长度。但是,每一种链路层协议都规定了所能传送的帧的数据部分长度上限——最大传送单元MTU。

当数据是由可打印的ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符。

由于使用了帧定界符,接收端就知道前面收到的数据是个不完整的帧。

2、透明传输
由于帧的开始和结束的标记使用专门指明的控制字符,因此,所传输的数据中的任何8比特的组合一定不允许和用作帧定界的控制字符的比特编码一样,否则就会出现帧定界的错误。
在这里插入图片描述
如图:如果数据中的某个字节的二进制代码恰好和SOH或EOT这种控制字符一样,数据链路层就会错误地“找到帧的边界”,把部分帧收下,而把剩下的那部分数据丢弃。


总结

这周前几天身体不适,先发出一部分,明天争取更完。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/510846.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

信号完整性分析基础知识之传输线和反射(五):较短阻抗不连续的传输线、残桩和末端容性负载引起的反射

首先来一首定场诗:难难难,道德玄,不对知音不可谈。对了知音谈几句,不对知音枉费舌尖。 较短不连续点引起的反射 很多时候,板载走线的宽度必须要收窄,特别是经过PF区域或者拥挤区域。如果传输线的某一小段…

eSIM证书要求-证书验证-EID

SM-DP 和 SM-DS 应该验证 EUM 和 eUICC 证书中限制的 IIN 和 EID 的一致性(参见第 4.5.2.1.0.2 和 4.5.2.1.0.3 节),并考虑 SGP.29 [ 89]。 根据 SGP.29 [89] 颁发的 EID 没有 SGP.02 [2] 中定义的 8 位 IIN。 相反,它们具有可变长…

【计算机视觉 | Python】十个 Python 图像处理工具,建议点赞收藏

文章目录 一、前言二、常见的库2.1 scikit-image2.2 NumPy2.3 SciPy2.4 PIL / Pillow2.5 OpenCV-Python2.6 SimpleCV2.7 Mahotas2.8 SimpleITK2.9 pgmagick2.10 Pycairo 一、前言 这些 Python 库提供了一种简单直观的方法来转换图像并理解底层数据。 今天的世界充满了数据&am…

linux【网络编程】之UDP网络程序模拟实现

linux【网络编程】之UDP网络程序模拟实现 一、开发环境二、服务端实现2.1 接口认识2.1.1 socket创建网络通信套接字2.1.2 bind:绑定Ip和端口号2.1.3 sockaddr_in结构体2.1.4 IP地址转换函数:inet_addr、inet_ntoa2.1.5 recvfrom:读取数据 2.2…

大语言模型进化树重磅发布,感慨技术方向选择的残酷,文末有彩蛋

文 / 高扬(微信公众号:量子论) 今天说点有深度的内容。五一假期,学习了一篇论文《Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond》。 这篇论文来自 Amazon 以及 Texas A&M University 研究团队&…

【2023 · CANN训练营第一季】应用开发深入讲解——第五章 端到端案例讲解

学习资源 样例介绍 使用DVPP加速预处理网络输入,并通过模型转换使能静态AIPP功能,使能AIPP功能后,YUV420SP_U8格式图片转化为RGB,然后减均值和归一化操作,并将该信息固化到转换后的离线模型中,对ResNet50…

传统IDC服务器迁移上云流程

上云是趋势,越来越多企业的IDC服务器选择迁移上云,迁移上云的方式有很多,阿里云提供服务器迁移中心SMC来帮助用户迁移上云。使用SMC服务器迁移中心,将您的源服务器方便快捷地迁移至阿里云,支持的迁移源类型包括IDC服务…

【Java EE 初阶】锁策略以及CAS问题

目录 1.常见的锁策略 1.乐观锁 vs 悲观锁 2.读写锁 3.重量级锁 vs 轻量级锁 4.自旋锁(Spin Lock) 5.公平锁 vs 非公平锁 6.可重入锁 vs 不可重入锁 7.Synchronized实现了哪些锁策略? 1.是乐观锁也是悲观锁 2.既是轻量级锁也是重量级…

K_A37_005 基于STM32等单片机驱动ADS1115 ADC模块 串口与OLED0.96双显示

K_A37_005 基于STM32等单片机驱动ADS1115 ADC模块 串口与OLED0.96双显示 所有资源导航一、资源说明二、基本参数参数引脚说明 三、驱动说明IIC时序对应程序: 四、部分代码说明1、接线引脚定义1.1、STC89C52RCADS1115 ADC模块1.2、STM32F103C8T6ADS1115 ADC模块 五、基础知识学习…

解决“未在本地计算机注册“OraOLEDB.Oracle.1”提供程序“问题

由于本地使用Oracle.ManagedDataAccess批量插入问题,连接数据库时报错 : ProviderOraOLEDB.Oracle;Data Sourceorcl;User IdQueueDp;PasswordQueueDp 此问题之前解决过没记录,又遇到了,忘了怎么解决,试了很多没效果 解决办法一、…

用好git stash,工作超nice

一、介绍 如果修改后的内容还不想commit,就可以用git stash命令。它会将工作区和暂存区中的修改(也就是还没commit的内容)都会被保存到堆栈里,并在之后恢复到任意指定的分支上。 二、应用场景 1、在分支a进行开发feature 1时,突然需要紧急…

2、Orangepi Zero2刷机和系统启动

目录 2.1 工具安装 2.2 刷机 2.3 登录系统 2.4 修改登陆密码 2.5 网络配置 2.6 SSH登陆开发板 就像买了电脑,出厂带有 windows 操作系统,才算是正在的电脑,开发板需要烧写对应的系统固件,才 能正常发挥作用 工具 Orangepi Zero2…

【异常解决】浏览器无法访问此网站ERR_UNSAFE_PORT/网页可能无法连接,或者它已永久性地移动到了新网址问题解决方案

浏览器无法访问此网站ERR_UNSAFE_PORT问题解决方案 一、问题描述二、问题原因三、解决方案3.1 方案1修改服务器访问端口号(推荐)3.2 方案2修改浏览器设置3.2.1 Chrome浏览器3.2.2 Firefox浏览器3.2.3 Edge浏览器 一、问题描述 访问某一个特定的网址之后…

Flume系列:Flume Channel使用

目录 Apache Hadoop生态-目录汇总-持续更新 1:Kafka Channel 2:File Channel 3:Memory Channel Apache Hadoop生态-目录汇总-持续更新 系统环境:centos7 Java环境:Java8 1:Kafka Channel Kafka Chan…

vim键位图+vim基本操作命令表

前言:本章末vim的基本操作命令总结的比较全,建议收藏起来,方便后面使用时作字典查找。 目录 一、什么是vi(vim)? vim键盘 二、vim工作模式 1)命令模式 2)编辑模式 3)末行模式 4&#xf…

「2024」预备研究生mem-等差数列基础

一、等差数列基础 二、课后练习题 思路,知道a1和d ,就可以知道an,sn

Kafka 集成 SpringBoot, 快速入门

一、kafka的生产者和消费者 1. 生产者发送消息的流程 2. 消费者接收消息的流程 二、 java 代码实现 1. 添加依赖&#xff1a; <dependency><groupId>org.apache.kafka</groupId><artifactId>kafka_2.12</artifactId></dependency>2. 实现…

回溯算法例题(剪枝策略)

目录 1.组合1.77. 组合2.216. 组合总和 III3.17. 电话号码的字母组合4.39. 组合总和5.40. 组合总和 II 2.分割1.131. 分割回文串2.*93. 复原 IP 地址 3.子集1.78. 子集2.90. 子集 II 4.排列1.46. 全排列2.47. 全排列 II 5.棋盘问题1.51. N 皇后2.37. 解数独 6.其他1.491. 递增子…

系统移植 5-10

1.进入linux内核源码目录下&#xff0c;打开Makefile文件&#xff0c;搜索vmlinux&#xff0c;找到cmd_link-vmlinux命令&#xff0c; 1179 cmd_link-vmlinux \ 1180 $(CONFIG_SHELL) $< "$(LD)" "…

不同应用场景瑞芯微RK3568主板方案定制

随着物联网和智能设备的迅猛发展&#xff0c;瑞芯微RK3568主板方案作为一种高性能的系统System-on-a-chip&#xff08;SoC&#xff09;&#xff0c;已经成为嵌入式系统、智能家居设备和工业自动化设备等应用场景的首选方案。定制瑞芯微RK3568主板方案可以满足不同应用场景的需求…