首页 > 代码库 > 跟我学网络原理之(数据链路层)数据链路层基本概念及三个基本问题
跟我学网络原理之(数据链路层)数据链路层基本概念及三个基本问题
信道:
n 点对点信道
n 广播信道
链路: 一条点到点的物理线路。一条链路只是一条通路的一个组成部分
数据链路: 将控制数据传输的通信协议的硬件和软件加到链路上,形成数据链路。
最常用的是用网卡实现协议的硬件和软件。
一般的适配器都包括数据链路层和物理层的功能。
我的理解:假设我要去从宿舍到银座买东西,我经过的宿舍、公路、银座这条马路是一条实实在在的物理路,叫链路。当我出宿舍的时候,宿舍阿姨让我打扮一下,如果我不打扮的漂亮点就不让我出宿舍门,我只好遵守规则。到了公路以后,需要遵守交通信号灯,到了银座之后需要把包存起来。这些在物理链路上存在的规则组成一条逻辑上的规则链路,也是需要遵守的协议,叫数据链路。
帧:
帧是数据链路层传输的单位 将网路层的IP数据报加上头部和尾部形成帧 |
数据链路层需要关心和解决的三个基本问题
n 封装成帧
加上头和尾来进行帧定界 MTU(最大传输长度的长度<=1500 个字节 帧首部:SOH 帧尾部 =EOT |
n 透明传输
发送方发给接收方,在传输的过程中,不知道怎么传,但是发送什么,接收方接受什么
当传输的二进制与SOH和EOT相同时,造成定界混乱。用字节填充法/字符填充法解决透明传输问题
当传输数据中出现于EOT和SOH相同的二进制时,在前面插入一个转义字符ESC(1B),当接收端收到转
义字符时就将其后的EOT和SOH不解释为控制字符。然后将其去掉,作为普通数据。
当传输的数据与转义字符相同时,仍然在这个数据前加ESC。
n 差错检测
传输过程中产生比特差错,0变成1,1变成0的错误
误码率(BER):在一段时间内,传输错误的比特 / 总比特数
与信噪比有很大关系
CRC循环冗余校验
例题:发送方要发送信息M=101001。生成式=X的三次方+X的平方+1, 求发送方发送的真实信息MM?
根据生成式(1*X的3次方+1*X的2次方+0*X的1次方+1*X的0次方)前的系数,可得P(除数)=1101。
则 发送的真实MM=M+R(冗余 码)=101001 001 冗 余码叫做帧检验序列FCS。 |
接收端收到MM=101001 001后,用MM除以P,如果得到R=0,则证明数据无差错。
v CRC只是是一种常见的检错方法,FCS可以通过包括CRC在内的多种检错方法得出。
v CRC是一种无比特差错,而不是无传输差错的检测机制。无传输差错是理想化。不被接受
v CRC是只能无差错接收,只能知道比特位有没有错误,但不能纠错。
v 如果要做到可靠传输,就必须加上确认和重传机制(帧重复、帧丢失、帧乱序情况)。
v 需要注意的是: 可能出现这种情况:传输的比特位错了好几位,但恰好算出来R依然是等于0的。但这种情
况发生的概率很小。与除数有关系的。除数越大,检查错误的概率越高,反之,则反。可见,CRC并不是
100%的可靠。
本文出自 “赵玉强的博客” 博客,请务必保留此出处http://zhaoyuqiang.blog.51cto.com/6328846/1569880
跟我学网络原理之(数据链路层)数据链路层基本概念及三个基本问题