数据链路层

数据链路层的必要性


  为了尽可能避免数据传输过程中的损坏和丢失问题 因为物理层只是关心原始比特流的传送,不考虑所传输信号的意义和信息结构,所以物理层不可能识别或判断数据在传输过程中是否出现了损坏或丢失,从而也谈不上采取相应的措施去补救。
  收发双方的接收速率和发送速率不匹配引发的数据丢失问题。当数据发送方的能力大于接受方的数据接收能力时,接收方会因为来不及接收而产生数据溢出导致数据丢失,物理层不会考虑发送站点与接收站点速度。
  总而言之,数据链路层拥有为了避免数据传输中的损失、丢失和维持传输速度的能力。


帧与成帧(数据控制)


  数据链路层采用被称为帧的协议数据单元作为数据传输逻辑单元。

  帧-> 帧开始 | 地址 | 长度/类型/控制 | 数据 | FCS(帧校验序列) | 帧结束

  引入帧机制可以实现相邻结点之间的可靠传输,有助于提高数据传输的效率。

作用:
  使用帧的主要作用是数据被分成可恢复的区块并且可以很容易地检查这些区块是否被破坏。
  传输过程中的故障会破坏某些帧。只有丢失的帧而不是整组数据需要重新传输。“错误检测和纠正”中论述了错误的检测和纠正。帧是一系列标准化的数据位,是网络通信的基本单元。
  为了达到处理传输错误的目的,数据链路层要将数据流分成帧并且计算每帧的校验和,接收方对校验和进行检验;为了调节数据流的快慢,数据链路层要将数据分帧发送,当接收方速度过慢时,数据链路层可以停止发送下一帧并保持数据的完整性。


成帧过程


  发送方的数据链路层可以将从网络成接收到的分组封装成帧的功能,为来自上层的分组加入必要的帧头与帧尾部分,称为成帧

帧同步

四种定界方法(规定好的拆包格式)
  网络中是以帧为最小单位进行传输的,所以接收端要正确的接收到帧,必须要清楚该帧在一串比特流中的开始和结尾,所以在组帧的时候既要加首部,也要加尾部。PS(而分组,即IP数据报仅仅是包含在帧的数据部分,所以不需要加尾部来定界,只需要添加首部就行了)

帧同步的方法有以下四种:
1.字符计数法
2.字节填充的首尾界符法:
3.比特填充的首尾标志法:
4.物理编码违例法:


差错控制


差错

  指接收端收到的数据与发送段实际发出的数据出现不一致的现象。

差错控制

  采用可靠的有效的编码以减少或消除计算机系统中传输差错的方法,用于提高传输质量。

奇偶校验码、循环冗余校验码

  检错码本身不提供自动的错误纠正功能,需要一种与之相配套的错误纠正机制(反馈重发)

1. 停止-等待方式

  发送段发送出一帧后必须停下来等待接收端的对发送帧的确认。如果发送方未收到应答,则一直等待,所以有相应的控制机制使发送方能继续进行,不会出现无尽的等待,造成发送的死锁,所以要使用超时重发技术,每发送一个帧,启动一个超时定时器,超时则重新传输。

2. 连续ARQ协议

  发送方维持着一个一定大小的发送窗口,位于发送窗口内的所有分组都可连续发送出去,而中途不需要等待对方的确认;这样信道的利用率就提高了。而发送方每收到一个确认就把发送窗口向前滑动一个分组的位置。

  • 停止-等待Stop-and-Wait ARQ:发送窗口 = 接收窗口 = 1;效率低下。
  • SR协议(选择重传):当发送方接受到接受方的状态报告指示报文出错时,发送方只发送出错的报文。因此必须在接受端加大缓存,以备所有序号都收到且连续然后一并交给主机。
  • GBN(回退N帧)协议:发送端发送完一个数据分组后,并不停下来等待确认消息,而是连续发送N个数据分组消息。当发送方接受到接受方的状态报告指示报文出错,发送方将重传过去的n个报文。该方法比停等式减少等待时间,提高吞吐率;但是一帧出错,必须重传其帧和后面n-1帧,增加了系统开销,在信道越差时,有待于确认的帧越多,可能要退回来重发很多帧,所以此方法性能不一定比停等式优越。

流量控制


  由于系统性能不同,会导致发送方与接收方的处理数据速度有所不同,对于数据链路层来说,控制的是相邻两结点之间的数据链路的流量(传输层控制的是源端到目的端之间端到端的流量)

滑动窗口协议实现流量控制与可靠性传输

  本质:在收到一确认帧之前,对发送方可发送的帧的数目加以限制(是由发送方调整保留在重发表中的待确认帧的数目来实现的)
如果接收方来不及对新到的帧进行处理,则停发确认信息,此时发送方的重发表就会增长,当达到重发表限度是,发送方就不再发送新的帧,知道再一次收到确认信息为止。
在这里插入图片描述


关于MAC地址:


  MAC地址是用来识别数据链路层中相连的结点
  MAC地址长度为48位, 6个字节,一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
MAC地址在网卡出厂时就确定了, 不能修改。 MAC地址通常是唯一的(虚拟机中的MAC地址不是真实的MAC地址可 能会冲突,也有些网卡支持用户配置MAC地址)
为什么存在MAC地址还需要IP地址去标识互联网中的一台主机呢?

  在数据链路层,存在多种异构的网络,比如以太网、令牌环网等,也就是数据链路层存在多种MTU,既多种不同的传输信道,如果只有MAC地址,在不同的网络之间是每有办法传输的,只能在MAC地址上封装一次抽象的IP地址来封装底层各种不同的网络。


MAC地址和IP地址的对比


  一个数据报中的源IP地址和目的IP地址是为了标识这个数据的起点和终点。源MAC地址和目的MAC地址是为了标识上一站的地址和下一站的地址
在一个数据报的传输过程中,IP一直不变,而MAC地址是一直在变的
关于MTU(最大传输单元): MTU相当于在发寄快递的时候对包裹的限制,这个限制是不同的链路层对应的物理层的限制。

  MAC帧中的数据长度规定为46-1500字节,ARP(地址解析协议)数据包的长度不够46字节要在后面补填充位,如果大于1500字节,必须要求网络层进行分片。
最大值1500称为以太网的最大传输单元(MTU)不同的网络类型有不同的MTU
如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU,则需要对数据包进行分片。
MTU对IP协议的影响: 由于链路层存在MTU的限制,导致网络层的报文如果超过1500字节,就必须要对齐进行分片发送。

  将较大的IP包分成多个小包, 并给每个小包打上标签,每个小包IP协议头的 16位标识(id) 都是相同的,这样在重组的时候就知道这个小包来自于哪个报文。每个小包的IP协议头的3位标志字段中, 第2位MF置为0, 表示允许分片, 第3位DF来表示结束标记(当前是否是后一个小包, 是的话置为1, 否则置为0)。
到达对端时再将这些小包按顺序重组, 拼装到一起返回给传输层。一旦这些小包中任意一个小包丢失,接收端的重组就会失败,但是IP层不会负责重新传输数据。

包, 是的话置为1, 否则置为0)。
到达对端时再将这些小包按顺序重组, 拼装到一起返回给传输层。一旦这些小包中任意一个小包丢失,接收端的重组就会失败,但是IP层不会负责重新传输数据。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值