首页 > 代码库 > 跟我学网络原理之(数据链路层)数据链路层基本概念及三个基本问题

跟我学网络原理之(数据链路层)数据链路层基本概念及三个基本问题

信道:

点对点信道

广播信道

链路: 一条点到点的物理线路。一条链路只是一条通路的一个组成部分

数据链路: 将控制数据传输的通信协议的硬件和软件加到链路上,形成数据链路。

            最常用的是用网卡实现协议的硬件和软件。

            一般的适配器都包括数据链路层和物理层的功能。

我的理解:假设我要去从宿舍到银座买东西,我经过的宿舍、公路、银座这条马路是一条实实在在的物理路,叫链路。当我出宿舍的时候,宿舍阿姨让我打扮一下,如果我不打扮的漂亮点就不让我出宿舍门,我只好遵守规则。到了公路以后,需要遵守交通信号灯,到了银座之后需要把包存起来。这些在物理链路上存在的规则组成一条逻辑上的规则链路,也是需要遵守的协议,叫数据链路。


wKiom1RSQlyiNo0_AACeW-E9wQk121.jpg

帧是数据链路层传输的单位        

 将网路层的IP数据报加上头部和尾部形成帧

数据链路层需要关心和解决的三个基本问题

封装成帧

wKiom1RSQnLwVUUGAACVDHvaDeE368.jpg

加上头和尾来进行帧定界 

   MTU(最大传输长度的长度<=1500 个字节      帧首部:SOH

   帧尾部 =EOT                                                                                               

  透明传输

     发送方发给接收方,在传输的过程中,不知道怎么传,但是发送什么,接收方接受什么

     当传输的二进制与SOHEOT相同时,造成定界混乱。用字节填充法/字符填充法解决透明传输问题

     wKioL1RSQvaCu6E2AAEt1xd9m6A291.jpg

      当传输数据中出现于EOT和SOH相同的二进制时,在前面插入一个转义字符ESC(1B),当接收端收到转

义字符时就将其后的EOTSOH不解释为控制字符。然后将其去掉,作为普通数据。

    当传输的数据与转义字符相同时,仍然在这个数据前加ESC

差错检测

     传输过程中产生比特差错,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

wKiom1RSQqjh4PUsAAD5O7DZ1DM250.jpg

 则  发送的真实MM=M+R(冗余 码)=101001 001

  余码叫做帧检验序列FCS                                                                                              

接收端收到MM=101001 001后,用MM除以P,如果得到R=0,则证明数据无差错。

CRC只是是一种常见的检错方法,FCS可以通过包括CRC在内的多种检错方法得出。

CRC是一种无比特差错,而不是无传输差错的检测机制。无传输差错是理想化。不被接受

CRC是只能无差错接收,只能知道比特位有没有错误,但不能纠错。

如果要做到可靠传输,就必须加上确认和重传机制(帧重复、帧丢失、帧乱序情况)。

需要注意的是: 可能出现这种情况:传输的比特位错了好几位,但恰好算出来R依然是等于0的。但这种情

    况发生的概率很小。与除数有关系的。除数越大,检查错误的概率越高,反之,则反。可见,CRC并不是

    100%的可靠。

本文出自 “赵玉强的博客” 博客,请务必保留此出处http://zhaoyuqiang.blog.51cto.com/6328846/1569880

跟我学网络原理之(数据链路层)数据链路层基本概念及三个基本问题