计算机网络学习笔记——第三章

  •      本文是[计算机网络](https://www.bilibili.com/video/BV1c4411d7jb?spm_id_from=333.999.0.0)的笔记,图片也从视频中截取。
    

3.1数据链路层概述

(1)概念

计算机网络学习笔记——第三章_第1张图片

(2)封装成帧

  • 数据链路层添加帧头和帧尾,把数据封装成帧。
  • 帧头和帧尾:在链路层上以帧为单元来传输数据,实现链路层本身的功能。
    计算机网络学习笔记——第三章_第2张图片

(3)差错检测

检错码:接收端判断在传输过程中是否出现了误码,并封装在帧尾。

(4)可靠传输

  • 接收端如果接收到是误码,就会将他丢弃。
  • 不可靠传输:丢弃就结束了。
  • 可靠传输:采取措施,使得接收方可以重新收到被丢弃的帧的副本。
  • 即发送方发送什么,接受方就收到什么。

(5)其他问题

  • 上面的三个问题是点对点,广播信道还有其他问题。
  • 编址问题:判断哪个主机接受数据。
  • 碰撞:多个主机发送数据。(共享式局域网(总线型)不可避免)(CSMA/CD)载波监听多点接入/碰撞检测
  • 交互式局域网:通过交换机进行转发。
  • 无线局域网:共享式。(CSMA/CA)载波监听多点接入/碰撞避免

3.2封装成帧

计算机网络学习笔记——第三章_第3张图片

  • 不是所有的帧都有帧定界符,有些帧没有,比如MAC帧。
  • MAC帧
  • 数据链路层将帧传给物理层后,物理层会添加一个前导码。
  • 前导码前七个字节为同步码,使接受时钟同步;后面一个字节为开始定界符,表明后面是MAC帧。
  • 以太网规定帧间间隔时间为96比特发送时间,所以MAC帧不需要帧结束定界符。
  • 传输的数据可能与帧定界符相同,会出错。
  • 字节填充:在与定界符相同处前添加转义字符;如果有与转义字符相同,则也在前面添加。
  • 比特填充:每连续的五个一后添加一个零。
    在这里插入图片描述

3.3差错检测

计算机网络学习笔记——第三章_第4张图片

(1)奇偶校验法

计算机网络学习笔记——第三章_第5张图片
因为漏检率较高,一般不采用。

循环冗余校验CRC

计算机网络学习笔记——第三章_第6张图片

  • 多项式必须包含最低次项。
    计算机网络学习笔记——第三章_第7张图片
    计算机网络学习笔记——第三章_第8张图片

3.4可靠传输

(1)可靠传输的基本概念

计算机网络学习笔记——第三章_第9张图片
计算机网络学习笔记——第三章_第10张图片

  • 分组丢失:路由器输入队列快满了,主动丢弃收到的分组。
  • 分组失序:未按照发送顺序到达接收端。
  • 分组重复:分组第一次在网络中滞留了,发送端超时重发,然后两个分组都到达。

(2)可靠传输的实现方式——停止-等待协议SW

计算机网络学习笔记——第三章_第11张图片
计算机网络学习笔记——第三章_第12张图片
计算机网络学习笔记——第三章_第13张图片
计算机网络学习笔记——第三章_第14张图片

  • 通过确认和重传机制实现的可靠传输协议,常称为自动请求重传协议ARQ。
  • 重传的请求是自动进行的,不需要接受方显式的请求发送方某个出错的分组。

(3)可靠传输的实现方式——回退N帧协议GBN

计算机网络学习笔记——第三章_第15张图片
![在这里插入图片描述![在这里插入图片描述](https://img-blog.csdnimg.cn/9a8e4158e1c249dbb5d125b596883bef.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAd29vZGVuZGVrdQ==,size_20,color_FFFFFF,t_70,g_se,x_16)

  • BGN在流水线传输的基础上,利用发送窗口来限制发送方可连续发送数据分组的个数。
  • 发送方只允许发送发送窗口内的分组,发送窗口外的分组不发送。
  • 接受方只允许接受接受窗口内的分组,接受窗口外的分组不发送。
  • 无差错情况:
  • 发送方将发送窗口内的分组按序号一次发送出去,经传输,正确到达接受方。
  • 接受方按序接受他们,每接收一个接受窗口向后移动一个,并给发送方发送针对所接受分组的确认分组。
  • 确认分组经传输正确到达发送方,发送方按序接受他们,每接收一个接受窗口向后移动一个,并从缓存中删除确认收到的分组。
  • 接收方可以择机把已经接受到的分组交付给上层处理。
  • 累计确认:
  • 接收方不一定要对收到的分组逐个发送确认,而是可以在收到几个数据分组后,对按序到达的最后一个数据分组发送确认。
  • ACKn表示序号为n及前面的所有数据分组都正确接受。
  • 发送方将发送窗口内的分组按序号一次发送出去,经传输,正确到达接受方。
  • 接受方按序接受他们,当接受完0号和1号以后,给发送方发送一个累计确认ACK1。
  • 当接受完2号到4号以后,给发送方发送一个累计确认ACK4。
  • 如果ACK1丢失了,ACK4正确到达发送方。
  • 发送方就知道了序号4之前的分组都接受了,发送窗口向后滑动,并从缓存中删除确认收到的分组。
  • 接收方可以择机把已经接受到的分组交付给上层处理。
  • 优点:
  • 即使某个确认分组丢失,发送方也不必重传。
  • 减小接收方的开销,减少对网络资源的占用。
  • 缺点:不能及时反映出接收方已经正确接受的数据分组信息。
  • 出现差错:
  • 发送方将发送窗口内的分组按序号一次发送出去,经传输,到达接受方。
  • 如0号出现了误码,接受方根据检错码发现错误,丢弃分组。
  • 后续到达的分组的序号与接受窗口的序号不匹配,同样丢弃。
  • 接收方发送上一次正确接受的分组的序号,每丢弃一个就发送一次。
  • 发送方收到重复的确认,就知道之前发送的数据分组出现了差错,于是可以不等超时计时器超时就立刻重传。具体几个要设置。
  • 如果没出发立刻重传,就等超时计时器出现超时,发送方将发送窗口内的数据全部重传。
  • 即使只是前面的出现错误,后面的正确,但是因为前面的不被接受,后面的也要重传,这就是GBN。
  • 当通信线路不好时,GBN的信道利用率并不比停止等待高。
  • 如果发送窗口为8时:
  • 发送方将发送窗口内的分组0到7号按序号依次发送出去,经传输,正确到达接受方。
  • 接受方按序接受他们,每接收一个接受窗口向后移动一个,并给发送方发送针对所接受分组的确认分组ACK7。
  • 如果ACK7丢失,发送方会超时重传。
  • 重传的0到7号按序号重新发送,到达接收方。
  • 因为前面的已经收到,所以就收窗口为0号。
  • 接受方分局窗口序号对分组依次接受,现在在重复接受,接受方无法分辨新旧分组,产生分组重复。
  • 所以,发送窗口尺寸不能超过上限。

你可能感兴趣的:(计算机网络)