零基础带你学习计算机网络复习—(五)

学习内容

一、数据链路层的概述

二、封装成帧

三、差错检测

四、可靠传输的基本概念

五、可靠传输的实现机制-停止等待协议

六、可靠传输的实现机制-回退N帧协议

七、可靠传输的实现机制-选择重传协议

八、点对点协议PPP

九、媒体接入控制的基本概念

十、媒体接入控制-静态划分信道

一、数据链路层的概述

  • 数据链路层在网络体系结构中所处的地位

  • 链路:就是从一个节点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。

  • 数据链路:是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。

  • 数据链路层以帧为单位进行传输和处理数据。

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

二、封装成帧

  • 封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。

  • 帧头和帧尾包含着重要的信息。

  • 帧头和帧尾的作用就是帧定界。

  • 透明传输:是指数据链路层对上层交互的传输数据没有任何限制,就好像数据链路层不存在一样。

  • 面向字节的物理链路使用字节填充(字符填充)的方法实现透明传输。

  • 面向比特的物理链路层使用比特填充的方法实现透明传输。


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

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

练习:


三、差错检测

  • 实际的通信链路都是不理想的,比特在传输的过程中可能会产生差错:1可能会变成0, 0也可能变成1.这称之为比特差错。

  • 误码率:在一段时间内,传输错误的比特占所传输比特总数的比率称之为误码率。

  • 使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一。


奇偶校验

  • 在待发送的数据后面添加1位奇偶校验位,使得整个数据(包括)所添加的校验位在内)中“1”的个数为奇数(奇校验)或者偶数(偶校验)。

  • 如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码。

  • 如果有偶数个位发生误码,则奇偶性不发生变化,不能检测出误码(漏检)。


循环冗余校验CRC(Cycle Redundancy Check)

  • 收发双方约定好一个生成多项式G(x)。

  • 发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),将其添加到传输数据的后面一起传输。

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

    练习1:



练习2:

注意:

  • 检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误。

  • 要想纠正传输中的错误,可以使用冗余信息更多的纠错码向前纠错,但纠错码的开销比较大,在计算机网络中较少使用。

  • 循环冗余校验CRC有很好的检错能力(漏检率非常低),虽然计算比较复杂,但非常易于用硬件实现,因此被广泛用于数据链路层。

四、可靠传输的基本概念
不可靠传输服务:仅仅丢弃有误码的帧,其他什么也不做。

  • 可靠传输服务:想办法实现

  • 发送端发送什么,接收端就收到什么。

  • 一般情况下,有限链路的误码率比较低,为了减少开销,并不要求数据链路层向上层提供服务可靠传输,即使出现了误码,可靠传输的问题由其上层处理。

  • 无线链路受到干扰,误码率比较高,因此要求数据链路层必须向上层提供可靠传输服务。

  • 使用广播信道的数据链路层


比特差错只是传输差错中的一种,从整个计算机网络体系结构来看,传输差错还包括分组丢失,分组失序,以及分组重复。

  • 分组丢失、分组失序、以及分组重复这些传输差错,一般不会出现在数据链路层,而会出现在上层。

  • 可靠的传输服务并不仅局限于数据链路层,其他各层均可实现可靠传输。


五、可靠传输的实现机制-停止等待协议SW(Stop-and-Wait)

为什么要有停止等待协议?

  • 除了比特出差错,底层信道还会出现丢包问题。为了实现流量控制。

  • 丢包:物理线路故障、设备故障、病毒攻击、路由信息、错误等原因,会导致数据的丢包。

研究停等协议的前提?

  • 虽然现在常用全双工通信方式,但为了讨论问题的方便,仅考虑一方发送数据。

  • “停止-等待”就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送。

停等协议有几种应用情况?

  • 无差错情况、有差错情况。

无差错情况主要有三种

1)数据帧丢失或者检测到帧出错

2)ACk丢失

3)ACk迟到

练习:


六、可靠传输的实现机制-回退N帧协议

练习:


七、可靠传输的实现机制-选择重传协议

  • 为了进一步提高性能,可设法只重传出现误码的数据分组,因此,接收窗口等于1(而应该大于1),以便接收方先收下失序到达但无误码并且序号落在数据分组,等到所缺分组收齐后再一并送交上去,这就是选择重传协议。


    练习:


    八、点对点协议PPP

  • 点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议。

    PPP协议为在点对点链路传输各种协议数据报提供了一个标准的方法,主要由以下三部分组成:

  • 对各种协议数据报的封装方法(封装成帧)。

  • 链路控制协议LCP : 用于建立、配置、以及测试数据链路的连接

  • 一套网络控制协议NCPs :其中的每一个协议支持不同的网络层协议。

九、媒体接入控制的基本概念
共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC(Medium Access Control)。

十、媒体接入控制-静态划分信道

  • 复用(Multiplexing)是通信技术中的一一个重要概念。复用就是通过一条物理线路同时传 输多路用户的信号。

  • 当网络中传输媒体的传输容量大于多条单一信道传输的总通信量时,可利用复用技术在一条 物理线路上建立多条通信信道来充分利用传输媒体的带宽。

零基础带你学习计算机网络复习—(五)相关推荐

  1. 零基础带你学习计算机网络—(四)

    零基础带你学习计算机网络(四) 学习内容 一.物理层的基本概念 二.传输媒体 三.传输方式 四.编码与调制 五.信道的极限容量 六.真题演练 思维导图 (一).物理层的基本概念 物理层考虑的是怎样才能 ...

  2. 零基础带你学习MySQL—unique 唯一(二十五)

    零基础带你学习MySQL-unique 唯一(二十五) unqiue 使用细节 如果没有指定 not null 则 unique 字段可以有多个 null 如果一个列(字段) 是 unique not ...

  3. 零基础带你学习MySQL—日期函数(十五)

    零基础带你学习MySQL-日期函数(十五) 一.CURRENT_DATE ( ) 当前日期 二.CURRENT_TIME() 当前时间 三.CURRENT_TIMESTAMP()当前时间戳 四.练习

  4. 零基础带你学习MySQL—MySQL常用的数据类型(列类型)(五)

    零基础带你学习MySQL-MySQL常用的数据类型(列类型)(五)

  5. 零基础带你学习MySQL—字符串相关的函数(十三)

    零基础带你学习MySQL-字符串相关的函数(十三) 一.CHARSET (str)返回子串字符集 二.CONCAT连接子串,将多个列拼接成一列 三.INSTR(string,substring)返回s ...

  6. 零基础带你学习MySQL—foreign key 外键(二十六)

    零基础带你学习MySQL-foreign key 外键(二十六) -- 外键演示 -- 创建 主表 my_class CREATE TABLE my_class ( id INT PRIMARY KE ...

  7. 零基础带你学习MySQL—not null 非空(二十四)

    零基础带你学习MySQL-not null 非空(二十四)

  8. 零基础带你学习MySQL—primary key主键(二十三)

    零基础带你学习MySQL-primary key主键(二十三) 一.约束 二.主键 三.主键的细节说明 主键不能重复而且不能为空 一张表最多只能有一个主键,但可以是复合键 使用desc 表名 可以看到 ...

  9. 零基础带你学习MySQL—单行子查询和多行子查询(二十二)

    零基础带你学习MySQL-多行子查询(二十二) 一.什么是子查询? 子查询是指嵌入在其它 sql 语句中的 select 语句,也叫嵌套查询 二.什么是单行子查询? 单行子查询是指只返回一行数据的子查 ...

最新文章

  1. vue更新data中的数据页面不渲染_vue更新obj类data的属性无效,页面data没刷新解决方法vue.set...
  2. HDU3068 最长回文
  3. TF学习——TF之TFOD:基于TFOD AP训练ssd_mobilenet预模型+faster_rcnn_inception_resnet_v2_模型训练过程(TensorBoard监控)全记录
  4. ubuntu下安装openfetion
  5. Hashtable, ArrayList, List, Dictionary学习
  6. 编译和使用APUE的源码
  7. git rebase 丢弃提交
  8. 随笔2010.01.25
  9. 计算机主板及其硬件图,[计算机硬件及网络]intel G43主板电路图.pdf
  10. UART接口基本知识
  11. 反式作用因子/转录因子/顺式作用元件
  12. Android系统优化
  13. 源码剖析Redis中如何使用跳表的
  14. Ivor Horton's Beginning Visual C++ 2008
  15. 【从0到1搭建LoRa物联网】15、LoRa连接到The Things Network
  16. C语言之栈实现(详细)
  17. 80后小学生必杀经典句子
  18. 破解wifi的渗透工具
  19. VoLTE / VoIP 网络电话
  20. 数据结构与算法(java):树-二叉树(二叉查找树(BST)、线索化二叉树、哈夫曼树、平衡二叉树【AVL】、二叉树的前中后序遍历)

热门文章

  1. 虚拟化学习笔记-虚拟机迁移的分类及原理
  2. SQL数据查询之——嵌套查询
  3. 前端工程师技能之photoshop巧用系列第一篇——准备篇
  4. 《PHP和MySQL Web开发从新手到高手(第5版)》一一1.7 万事俱备,摩拳擦掌
  5. 思科模拟器 简单网络连接操作
  6. VC中关于程序的托盘化
  7. 设计模式之美 - 64状态模式
  8. android 检测网络ftp,Android端与Android端利用WIFI进行FTP通信
  9. python人脸识别库教程_OpenCV-最优秀的Python人脸识别库安装及入门教程
  10. 字节跳动专家会_年薪30万60万!字节跳动招这个语系的语言专家!