计算机网络|数据链路层(上)

概念

链路:一个结点到另一个结点的物流线路,中间没有任何其他的交换结点

数据链路:链路+实现通信协议的硬件软件

帧:数据链路层传输和处理数据的单位

数据链路层的三个重要问题

封装成帧:数据链路层给网络层传过来的网络层协议数据单元增加首部(帧头)和尾部(帧尾)

差错检测:出现误码,检测到出错的帧

可靠传输:如果数据链路层提供不可靠服务,将出错的帧丢弃;如果是可靠服务,需要采取方法来确保接收主机重新收到丢弃的帧的正确副本。

分装成帧

定义:数据链路层给上层交付的数据单元添加帧头帧尾

枕头和帧尾:包含有重要的控制信息

帧定界:帧头和帧尾的作用之一,

帧定界标志:上图中PPP帧格式中帧头和帧尾的标志字段就是来实现这个作用的(并不是每一种数据链路层协议的帧都包含帧定界标志)

前导码:以太网的数据链路层封装好MAC帧,然后给了物理层吗,物理层在这个基础上增加前导码。前导码包括八个字节,前七个字节是前同步码(使接收方时钟同步),后一个字节是帧开始定界符(表明其后面紧跟着的就是MAC帧)。

帧间间隔:以太网规定帧间间隔时间为96比特的发送时间,因此MAC帧不需要帧结束符

透明传输

定义:数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样

理解:比如说,如果上层传过来的数据正好有帧定界,然后数据链路层不做任何处理,那么就会导致解析的结果受到影响,那么也就是说这种情况下,上层交付的数据内容对数据链路层产生了影响,根本就不是透明的了,那么就不叫做透明传输。

实现透明传输的方法:字节填充,透明传输

字节填充:面对字节的物理链路使用此方。比如说,扫描数据部分,数据部分一旦有帧定界,就增加一个转义字符。

比特填充:面向比特的物理链路使用此法。比如有的数据链路层使用0比特填充法,即,帧定界为01111110,那么在数据部分就采用,每五个1就添加一个0的方法。那么帧定界就唯一了。

最大传输单元MTU:

为了提高帧的传输效率,应当使帧的数据部分的长度尽可能大些。

定义:考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传输单元MTU。

差错监测

比特差错/误码:比如1变为0,0变为1

差错检测的方法:

差错检验码FCS:检测数据在传输中是否出现了比特差错

奇偶校验

定义:在待发送的数据后面添加一位奇偶校验位,是整个数据中的1的个数为奇数(奇校验)或偶数(偶校验)

循环冗余校验CRC 

原理:

接收方和发送发约定一个生成多项式

发送方用发送的数据 和 生成多项式的计算,然后生成差错监测码(冗余码),然后冗余码和数据一起传输

接收方通过生成多项式来计算接收到的数据是否产生了误码

注意:CRC算法要求必须包含最低次项

 作用:只能监测帧在传输过程中出现了差错,并不能定位错误,因此无法纠正错误。

优点:有很好的的检错能力(漏检率非常低),虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层

计算机网络中太长采用后面的检错重传方式来纠正传输中的差错,或者仅仅是丢弃检错的帧,这取决于传输层向上层提高的是可靠传输服务还是不可靠的传输服务、

可靠传输

发送端发送什么,接收端就要接收什么。

由于有线链路的误码率低,为了减少开销,并不要求数据链路层向上提供可靠传输服务,而是把这项任务交给了上层处理。

但是无线链路易受干扰,误码率高,所以必须数据链路层必须向上层提高可靠传输服务、

差错:比特差错,分组丢失、分组失序以及分组重复

  • 802.11无线局域网,则要求链路层实现可靠传输
  • 以太网不要求数据链路层提供可靠传输
  • IP向上层提供的是无连接、不可传输服务
  • 运输层的TCP:面向连接的可靠传输服务
  • 运输层的UDP:提供不可连接,不可靠的传输服务

三种可靠传输机制:不仅限于数据链路层,可以应用到计网体系中的各层协议中

停止等待协议SW(一个一个来)

三种情况优化这个协议:

误码:学生(发送方)给老师背写课文(发送数据),背完了学生不能走,老师检查之后,如果学生背错了,老师会发一个告诉他背错了(NAK),学生重背,直到老师说你背对了(ACK),才能离开。

丢失分组:学生交过来听写本,然后老师没有收到,学生不能无限期地等着收到老师的正确或者错误的反馈而不做其他的事情,所以需要设置一个等待时间,如果时间到了,还没收到,就把副本重新发一份(只能宠着呗)

分组重复:给数据分组和确认分组进行编号(只需一个比特就可以)。给每份作业写上科目,并且老师交代的时候也说对应的科目。

数据链路层一般不会出现分组迟到的情况,所以数据链路层不需要给ACK分组编号。

信道利用率:传送有用数据的时间 / 总的时间

有用时间为:Td,总时间:Td +RTT + Ta

回退N帧协议GBN(缺一不可)

  • 通信线路不好时,可能还比不上停止等待协议。
  • 发送窗口Wt,取值为(1~2^n-1)
  • 如果Wt超过上限:无法分辨新旧分组,导致分组重复
  • 接收窗口Wr为1(接收方只能按序接收正确到达的分组)
  • 采用累计确认的方式。

流水线的发送方式,发送窗口

累计确认:前几名同学(发送窗口内的分组)排队发出去,然后到达接收方,接收到之后,1到达,老师发回一个1的卷子,然后又发回4、5的卷子,这个时候说明,2、3虽然卷子被丢了,但其实是对的。

有误差的情况:

比如1,2,3,4,5已经到了老师那里,然后6,7,8,9,10排着队去老师这里,结果中途6走丢了,老师举着6的牌子,发现6压根就没来,那么就不要这四个小朋友(真没用,为什么把队长搞丢了),然后让5去喊排队的重新去发,6退回去,让5喊一遍,7退回去,让5喊一遍...

选择重传协议SR(走一个算一个)

  •  需要逐一确认,仅仅重传出现差错的分组
  • 发送窗口Wt序号的取值范围:1~2^(n-1)
  • 接收窗口Wr一般Wr = Wt,其范围是 1~Wt
  • 如果Wt超过上限:无法分辨新旧分组,导致分组重复

过程:发送窗口发送0,1,2,3,接收窗口等待接收0,1,2,3。0过来,则接收窗口往后一个位置,3过来,接收窗口不动,得等着2啊,划过谁,谁合格,同理发送窗口一样,当它接收到0的确认帧,则往后划一个,说明0不用管了,缓存可以删掉,接收窗口也可以将这个分组交给上层处理了。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值