循环冗余检验CRC

2024-03-21 00:12
文章标签 循环 检验 crc 冗余

本文主要是介绍循环冗余检验CRC,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、数据链路层

二、数据链路层的三个基本问题

1. 封装成帧

2. 透明传输

3. 差错检验

4. CRC计算​编辑

三、参考书目和视频


一、数据链路层

  从物理层传来的比特(实际上就是物理层表示数据的特殊名称),会在数据链路层封装成帧(实际上就是数据链路层表示数据的特殊名字),之后在网络层变成包,在传输层变成段,最后在会话层、表示层、应用层变为报文。

截图来源互联网数据传输原理 |OSI七层网络参考模型_哔哩哔哩_bilibili

二、数据链路层的三个基本问题

1. 封装成帧

  封装成帧就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
  帧就是数据链路层的数据传送单元,首部和尾部的一个重要作用就是进行帧定界(即确定帧的界限)。

2. 透明传输

  透明传输指的是一种数据传输方式,什么样子的字符都可以放在这样的帧中传输过去,其中传输的数据在传输过程中不会被修改,网络设备(如交换机和路由器)对数据的传输不施加任何影响,使得发送端和接收端看起来就像是直接连接的一样。
  什么样子的字符都可以放在这样的帧中传输过去就带来了透明传输的问题,那就帧开始字符(SOH)、帧结束字符(EOT)就会被放入数据部分,这样就会导致数据被当作无效帧丢弃。

  为解决这个问题,出现了字节填充(字符填充),即在 "SOH" 或 "EOT" 的前面插入一个转义字符 "ESC",而在接收端的数据链路层在把数据送往网络层之前删除这个插入的转义字符

3. 差错检验

现实的通信链路都不会是理想的。这就是说,比特在传输过程中可能会产生差错:1可能会变成0,而0也可能变成1。这就叫作比特差错。比特差错是传输差错中的一种。因此,为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。目前在数据链路层广泛使用了循环冗余检验 CRC(Cyclic Redundancy Check)的检错技术。

4. CRC计算

三、参考书目和视频

谢希仁. 计算机网络(第8版). 中国工信出版集团, 2021

互联网数据传输原理 |OSI七层网络参考模型_哔哩哔哩_bilibili

【计算机网络期末复习】5分钟左右让你明白CRC循环冗余校验_哔哩哔哩_bilibili

https://www.youtube.com/watch?v=Ilk7UXzV_Qc

这篇关于循环冗余检验CRC的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/831194

相关文章

python实现最简单循环神经网络(RNNs)

Recurrent Neural Networks(RNNs) 的模型: 上图中红色部分是输入向量。文本、单词、数据都是输入,在网络里都以向量的形式进行表示。 绿色部分是隐藏向量。是加工处理过程。 蓝色部分是输出向量。 python代码表示如下: rnn = RNN()y = rnn.step(x) # x为输入向量,y为输出向量 RNNs神经网络由神经元组成, python

C语言 while循环1

在C语言里有3种循环:while循环    do  while 循环    for循环 while语句 //while语法结构while(表达式)循环语句; 比如在屏幕上打印1-10 在while循环中 break用于永久的终止循环 在while循环中,continue的作用是跳过本次循环 continue后边的代码,直接去判断部分,看是否进行下一次循环 //getcha

Linux网络编程之循环服务器

1.介绍 Linux网络循环服务器是指逐个处理客户端的连接,处理完一个连接后再处理下一个连接,是一个串行处理的方式,比较适合时间服务器,DHCP服务器.对于TCP服务器来说,主要阻塞在accept函数,等待客户端的连接。而对于UDP服务器来说,主要阻塞在recv函数. 2.循环服务器模型 TCP循环服务器: 算法如下:          socket(...);

数据分析:置换检验Permutation Test

欢迎大家关注全网生信学习者系列: WX公zhong号:生信学习者Xiao hong书:生信学习者知hu:生信学习者CDSN:生信学习者2 介绍 置换检验是一种非参数统计方法,它不依赖于数据的分布形态,因此特别适用于小样本数据集,尤其是当样本总体分布未知或不符合传统参数检验的假设条件时。置换检验的基本思想是通过随机置换样本来评估观察到的统计量是否显著不同于随机情况下的预期值。最初真正认识置换检

nlp基础-文本预处理及循环神经网络

1 认识文本预处理 1 文本预处理及其作用 定义:文本送给模型之前,提前要做的工作 作用:指导模型超参数的选择 、提升模型的评估指标 举个例子: 思路常识,打造成 X Y关于Y:10分类标签是否均衡关于X:数据有没有脏数据 数据长度(512)样本不够! 文本预处理 工作 结束 的标志:准备出来X和Y 能送给模型 2 文本预处理的主要环节 1 文本处理的基本方法 分词:按照一定规

初步组装的杂合基因组如何去冗余

redundans的目标是辅助杂合基因组的组装,输入文件可以是组装的contig,测序文库以及额外的参考基因组,最后用于搭建出scaffold级别的纯合基因组组装结果。包括如下几个步骤: 从头组装: 它会调用Platanus、SSPACE3进行组装去冗余: 从最初组装中去除冗余的序列scaffolding: 利用双端测序将contig进行搭接gap closing: 即填补scaffold中的N

fot循环语句

概念: 循环是一种重复执行一段代码的结构,只要满足循环的条件,会一种执行这个代码。 循环条件:在一定范围内,按照指定的次数来执行循环 循环体:在指定的次数内,执行的命令序列。只要条件满足,循环体会被一直执行。 循环和遍历: 遍历指的是对数据结构中每个元素进行一次访问的过程,通常和循环一起使用。 访问的目的就是为了执行特定的操作 循环是操作,遍历就是输出 循环的作用: 1)*重

用for和while循环求e的值[e=1+1/1!+1/2!+1/3!+1/4!+1/5!+...+1/n!]

/*编写程序,根据以下公式求e的值。要求用两种方法计算:1)for循环,计算前50项2)while循环,直至最后一项的值小于10-4e=1+1/1!+1/2!+1/3!+1/4!+1/5!+...+1/n!*/#include<stdio.h>//=====================================================//用for求e的值doubl

利用一个正则表达式的一个例子来讲解Java中的两种for循环。

package 正则表达式;public class Rudolph {public static void main(String[] args) {// TODO Auto-generated method stubString[] str = new String[]{"Rudolph","[rR]udolph","[rR][aeiou][a-z]ol.*","R.*"};for(Strin

RNN循环卷积神经网络

1.定义 RNN (Recurrent Neural Network,RNN)循环卷积神经网络,用于处理序列数据。 序列数据:按照一定的顺序排列的数据,可以是时间顺序、空间顺序、逻辑顺序。 eg:电影、语言 2.特点 传统神经网络模型无法处理可变长度的输入。 传统神经网络模型 传统神经网络模型无法处理可变长度的输入,但是RNN通过循环的方式对当前输入和历史输入进行处