当传输层提供错误控制时,数据链路层的错误控制需求是什么?两个错误控件之间有什么区别?
我无法理解丑陋的声音术语" 循环冗余校验 " 的概念和工作原理.我正在参加计算机网络大学课程,我已经迷路了.
麻烦的是我对数学的理解非常有限(很久以前在学校学过数学而忘记了大部分数学)我无法得到例如生成多项式到底是什么,多项式与CRC有什么关系总结一下 - 所有这些对我来说似乎完全不可理解.
我读过CRC上的wiki条目,但它对我没有帮助,因为我不擅长数学,所有这些符号和数学术语对我来说都像中文.
我知道CRC在网络上发送数据时用于错误检测但从那时起我就输了.
任何人都可以帮助我用简单的术语解释这个概念,并可能举一个例子吗?
在上一次讲座中,教授开始画出所有这些和零,分开,我不知道什么,我只是盯着和感觉愚蠢.
我很感激任何人都可以帮助我理解!
我正在阅读一个阅读的例子
比特填充.假设数据链路层从网络层接收到以下位串:01110111101111101111110.位填充后的结果字符串是什么?加粗已添加的每一位.
回答:
0111011110111110011111010
^ ^
Run Code Online (Sandbox Code Playgroud)
这个答案是如何达成的?我的理解是位填充通过在帧的开头和结尾插入特定的位序列(称为标志值)来工作.我没有得到的是:
附加信息:我认为这个网络是以太网.
附加信息2:位标志是01111110
老实说,我认为我理解,但不是不完整的答案,因为他们没有将旗帜01111110添加到最后或be?他们只是在消息中出现这种位模式时进行处理.
其他例子:这里他们也这样做.
我最近参加了一些网络课程(CCNA 1到4),所以我理解其背后的大部分理论.我现在要做的就是把我所拥有的知识运用到一些小应用程序的形式中.
我一直在阅读MSDN上关于如何做到这一点的一些文章,但它们似乎只涵盖了第3层或第4层及以上的网络编程,IIRC.我正在寻找的是一些简单的例子,说明如何处理主机之间的第二层连接(即框架),甚至只是像如何执行以太网广播这样简单的事情.
我对C#和C++有一点经验,所以使用其中任何一种语言的例子都很棒.
谢谢.
我有一个发送数据单元的假设情况,每个数据单元都有一千个字节.故障率很少,但是当发生错误时,它不太可能是单个位错误,并且更可能是连续几位中的错误.
起初我想过使用校验和,但显然可能会错过大于一位的位错误.奇偶校验也不起作用,因此CRC可能是最佳选择.
使用循环冗余校验是否有效千字节?或者还有其他方法可以更好地运作吗?
checksum data-link-layer crc error-detection telecommunication
我正在解决一些与基于 CRC 生成器的单位错误检测相关的问题,并试图分析哪些生成器检测单位错误,哪些不检测单位错误。
假设,如果我有一个 CRC 生成多项式为 x 4 + x 2。现在我想知道它是否能保证检测到单位错误?
1) 如果对于误差多项式 x k k=1,2,3,则在多项式除以生成多项式 x 4 + x 2的情况下,余数将分别为 x,x 2 ,x 3,并且根据参考文献,如果生成多项式如果有多项且x 0的系数为1,则可以捕获所有单位错误。但它并没有说如果 x 0的系数的系数不为1则不能检测到单位错误。意思是“在循环码中,那些能被 g(x) 整除的 e(x) 错误不会被捕获”。
2)我必须检查 E(x)/g(x) 的余数,其中 E(x)(假设是 x k),其中 k=1,2,3,... 是误差多项式,g( x) 是生成多项式。如果余数为零,那么我无法检测到错误,而当它非零时,我可以检测到它。
所以,根据我的说法,生成多项式 x 4 +x 2保证了基于上述两点的单位错误的检测。请确认我是否正确。
以太网帧校验序列始终附加到数据链路层中帧的末尾.为什么它被附加到帧的末尾而不是其他地方?
我考虑过它并认为它可能与如何计算CRC校验和有关,如果帧的结构是头+有效载荷+ crc而不是header + crc + payload,则更容易由硬件执行.
CRC执行形式(数据+填充)/除数的XOR除法,对于最终帧,填充由余数替换.接收器然后计算(数据+余数)/除数,并在结果为0时接受帧.
据说CRC(循环冗余校验和)可以检测到小于r +1位的突发错误,其中r是多项式的次数。此外,以1 – 2 -r的概率检测到长度大于r + 1位的突发。
有人可以指导我提供相同的证明吗?
是否有一个库允许我对传入和传出数据包执行链路层数据包修改?
基本上我想根据传入的MAC地址,IP地址,端口等对数据包进行一些转换(例如,更改IP有效负载).我还希望能够对传出的数据包执行相同的操作,即修改数据包在他们离开系统之前.
据我了解,在传输层和数据链路层都采用了流量控制和错误控制。如果数据链路保证了数据包的无错传递,那么传输层会捕获什么样的错误?
另外,在 TCP 中处理的 UDP 中可能会发生什么样的错误?
data-link-layer ×11
networking ×7
crc ×5
checksum ×2
ethernet ×2
bitstuffing ×1
c# ×1
c++ ×1
flow-control ×1
packet ×1
proof ×1
protocols ×1
tcp ×1