信道:

点对点信道

广播信道

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

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

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

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


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%的可靠。



【解惑心得】:

(本心得只表示个人看法,可能并不是正规解释,只供参考理解)

 

 心得一:   关于数据链路层的“路”问题

   链路是一条实实在在的物理通路,它是指两个节点之间的通路,中间不经过任何的其它节点。而一条通路确

是多条这样的链路组成。

wKiom1RToJLhufkqAAEaKMLaK8I652.jpg 

如上图: 链路可能是局域网中的实实在在的路,也可能是广域网中实实在在的线路。所以说链路就是一条存在的

实际线路

 图中,主机H1向主机H2发送发送数据。

wKioL1RToPaQPKwaAAFcmLgNCzg397.jpg 

主机H1的数据通过应用层到运输层分解,到网路层加IP协议,到数据链路层封装成帧,到物理层转换成比特流,然后在线路上进行传输,到R1的物理层到链路层到网路层,然后由网路层到物理层再传输。

   我们说,数据链路层需要诸多的协议,也就是规则,规定数据需要遵守的规则。这些规则协议是由加在两个节点(图中的H1和R1R1R2等)上的交换机或者其他硬件设备提供的。把这些规则加载到实在的物理链路上,串成一条线而形成逻辑协议链路,这条由协议组成的路叫数据链路。

  从上图的这个过程中,我们也不能看出,虽然数据在实际线路上传输,但每一个设备的链路层横向可以看成是一条路(图中蓝色箭头所示),我们可以将那串由协议组成的数据链路想成是这条横向的路。因为分层是不需要考虑其他层的,所以单看数据链路层,我们就形象的认为:加到链路(物理实际线路)上的数据链路(协议成串组合的一条路)

是每个设备的同一层的横向通路。

是否对“协议”的概念十分模糊

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

和数据链路的理解。 而我打扮,遵守红绿灯,存包这些行为是我遵守的协议。协议就是要求我们所用遵守的规定。

同样的,数据在线路上发送需要遵守的一些规定也是由双方制定的规定,这就是约定的协议。

  l 关于透明传输

   什么叫透明传输,透明并不是对用户透明,而是对计算机或者网络是透明的。发送方发送的是什么,接收方就能接受到什么,用户不需要管中间过程发生了什么。比如:A要给B发送一件衣服,在过程中这件衣服可能被包装过了,可能被各种过了,但是送到B手中时,衣服依然是当初A发送时候的样子,既没有包装也没有其他的。B并不知道中间发生了什么,也不需要知道。