二、物理层

2.1、通信基础

2.1.1、物理层接口特性

物理层解决 如何在连接各种计算机的传输媒体上 传输数据比特流,而不是指具体的传输媒体。

物理层的任务:确定与传输媒体 接口 有关的一些特性 => 定义标准

  1. 机械特性:定义物理连接的特性,规定物理连接时,所采用的规格、接口形状、引线数目、引脚数目和排列情况(如,插排、网线….)
  2. 电气特性:规定传输二进制时,线路上信号的电压范围、阻抗匹配、传输速率和距离限制等(考题通常有数字、范围)
  3. 功能特性:指明某条线上出现的某一电平表示何种意义,接口部件的信号线的用途(考题通常有:高电平、低电平、什么含义等等)
  4. 规程特性:(过程特性)定义各条物理线路的工作规程和时序关系(考题通常有:规程、时序、过程)


(紫色部分为常考内容)

2.1.2、基本概念

image.png

三种通信方式:

  1. 单工通信 “你说我听”—— 主播
  2. 半双工通信 “不能同时”,两条信道 —— 对讲机
  3. 全双工通信 “能同时”,两条信道 —— 打电话

两种传输方式:

  1. 串行传输:一个一个 比特 单个发(慢,费用低,适合远距离)
  2. 并行传输:一堆一堆 比特 一起发(快,费用高,适用近距离)

image.png image.png

实现同步传输的方法:

  1. 同步传输:数据传送是以一个数据区块为单位(也称 区块传输)

传送数据时,需先送出一个或多个同步字符,再送出整个数据 主要是:要让发送方和接收方保持节奏上的一致,即同步 image.png

  1. 异步传输:简言之,就是分成很多小组,任何时间发送,接收端不知道什么时候到

传送数据时,加一个字符起始位和一个字符中止位 主要是:发送端看心情发,接收方也不知道啥时候到(例如:敲键盘时间不定) image.png


三、数据链路层

计算机网络第一轮笔记 - 图6

3.1、基本概念

结点:主机、路由器 链路:物理通道(双绞线、光纤、微波)(有线链路和无线链路) 数据链路:逻辑链路(实现控制数据传输协议的硬件和软件加到链路上就构成) 帧:链路层的协议数据单元,作用:封装网络层数据报

3.2、功能概述

功能一:为网络层提供服务(有连接一定由确认) 功能二:链路管理 功能三:组帧 功能四:流量控制 功能五:差错控制(帧错/位错)

3.3、组帧

封装成帧:
image.png
首部和尾部作用:帧定界
接收方可以区分起始和中止:帧同步

透明传输:就是通过某种手段不让数据信息被识别成控制信息

4种方法:

  1. 字符计数法:第一个字节用于计数(包含自己)
  2. 字符填充法:SOH、EOT、ESC(转义字符,写在前面)
  3. 零比特填充法:5“1”1“0”
  4. 违规编码法

3.4、差错控制

  1. 差错从何而来?噪声引起
    1. 全局性:随机热噪声(电气特性所产生,信道固有)——>提高信噪比即可减少干扰
    2. 局部性:冲击噪声(产生差错主要原因)——>编码技术解决
  2. 差错类型
    1. 帧错
    2. 位错 ——> 差错控制
      1. 丢失
      2. 重复
      3. 失序
  3. 通信质量好,有线传输链路:无确认无连接服务
  4. 通信质量差,无线传输链路:有确认无连接服务、有确认面向连接服务

计算机网络第一轮笔记 - 图8

编码

  1. 物理层:解决传输过程中比特同步的问题
  2. 数据链路层:通过冗余码,实现是否出现差错

海明距离:

  1. 两个合法编码对应比特取值不同的比特数
  2. 对于有效编码集合,任意两个海明距离中 min 为该集合的海明距离

重点计算

1、CRC循环冗余码 解题过程

  1. image.png
  2. r 位:多项式最高阶数
  3. 除法:每位异或操作
  4. 用 0 、1 表示
  5. 最终结果:d位 + r位FCS
  6. 检测方式:除以生成多项式,若为 0 ,则无差错,否则有差错,就丢弃

2、海明距离 相关题型解题技巧

  1. 检测 d 位错:码距 = d + 1
  2. 纠错 d 位错:码距 = 2d + 1

3、海明码 解题过程

  1. 确定校验位位数 r :2^r >= m + r + 1 (m:数据位数,r:校验码位数)
  2. 确定校验码和数据的相应位置:校验码放在 2^n 的位置(n 从 0 开始)
  3. 求出校验码的值

利用 1 代表管理 111、110、101,依次类推 image.png 除自身的数据 异或,得到校验位数据 如:5、6、7 数据异或得到 0 ——> 4号的值 3、6、7 数据异或得到 0 ——> 2号的值 3、5、7 数据异或得到 1 ——> 1号的值**

  1. 检错并纠错:

取到的数据,把 4、5、6、7 全部 异或,其他同理 得到三位二进制:1、0、1 ==> 101 转换为十进制为 5 ==> 第五位出错

3.5、流量控制与可靠传输机制(非常重要)

流量控制:控制发送速率

  1. 数据链路层
    1. 点对点
    2. 接收方 收不下 就 不回复确认
  2. 传输层:
    1. 端对端
    2. 接收端给发送端一个 窗口公告

重点计算

信道利用率:有效地发送数据所需要的时间占整个发送周期的比率 计算机网络第一轮笔记 - 图11

  1. T:发送周期(发送数据时间 + 传输数据时间)
  2. L:T 内发送 L 比特数据
  3. C:发送方数据传输率


信道吞吐率 = 信道利用率 * 发送方的发送速率

计算机网络第一轮笔记 - 图12

重要协议

1、停止-等待协议

  1. 属于那一层?区别在于命名,本质都是传输数据
    1. 数据链路层:传输的是数据帧
    2. 传输层:传输的是分组
  2. 为什么要有这个协议?
    1. 为了解决丢包问题,实现流量控制
  3. 应用
    1. 无差错
    2. 有差错
      1. 数据帧丢失或检测到帧出错
        1. 超时计时器,比RTT长一些,超时后,自动重传
        2. 发完一个帧后,必须保留它的副本,用于重传,直至收到确认后再删除
        3. 数据帧和确认帧必须编号,解决帧的:丢失、重复 等问题
      2. ACK 丢失
        1. 重传的数据因为重复,而被丢弃,重传确认
      3. ACK 迟到
        1. 重传并收到确认后,之后收到的确认就丢弃
  4. 性能分析
    1. 简单
    2. 信道利用率低(大部分数据都在传输的路上)image.png

2、后退 N 帧协议(GBN)

  1. 小知识点
    1. 解决停止-等待协议,信道利用率低的问题
    2. 利用流水线技术
    3. 编号可以复用
    4. 可以累积确认,即不用一个一个确认
    5. 发送窗口不一定是全满状态
    6. 接收到确认的帧,前面一定有序接收到了
  2. 必须响应的三件事:
    1. 上层的调用
    2. 收到一个 ACK
      1. 对 n 号帧采用:累积确认 ,表明接收方已经收到了 n 号帧和它前面的全部帧
    3. 超时事件
      1. 超时:重传所有已经发送,但未确认的帧
  3. 接收方要做的事情
    1. 按序收到帧后,返回ACK,并将帧的数据部分上交给上层(解封装)
    2. 其他情况:丢弃帧,然后发送已接收最大编号帧的 ACK
  4. 滑动窗口长度
    1. 采用 n 个比特进行编号(范围见思维导图)
    2. WT 过大,会导致接收方无法区别 新帧 和 旧帧
  5. 重点总结
    1. 累积确认(偶然捎带确认——>接收方发送数据时,携带着确认帧)
    2. 接收方只按序接收帧,不按序无情丢弃
    3. 接收方催发,确认序号最大的,按序到达的帧
    4. 发送窗口最大 (2^n)-1,接收窗口大小 1
  6. 性能分析
    1. 提高了信道利用率
    2. 重传正确传送的帧,传送效率降低

3、选择重传协议(SR)

  1. 小知识点
    1. 解决:信道效率低、传送效率低
    2. 解决办法:设置单个确认,同时加大接收窗口,设置接收缓存,缓存乱序到达的帧
  2. 必须响应的三件事
    1. 上层调用
    2. 收到一个 ACK:发送方窗口移动到未确认编号最小的帧的位置
    3. 超时事件
  3. 接收方要做的事情
    1. 来者不拒
      1. 接收帧,不管其是否按序,都有确认。失序的帧被缓存下来,直至一些帧收到为止,这时才将前面收到的有序的帧,交付给上层,然后窗口向前移动
  4. 滑动窗口长度
    1. WT = WR 最好
    2. 采用 n 个比特进行编号(范围见思维导图)
  5. 重点总结
    1. 对数据帧逐一确认,收一个确认一个
    2. 只重传出错的帧
    3. 接收方有缓存
    4. 最大值 WT = WR = 2^(n-1)
    5. WT + WR <= 2^n

3.6、介质访问控制

采取一定措施,使得两对结点通信互不干扰
计算机网络第一轮笔记 - 图14

信道划分介质访问控制(静态划分信道)

实际上就是把 广播信道 转变为 点对点信道(划分为多个子信道,互不干扰)

传输数据使用的两种链路:

  1. 点对点链路
    1. 应用:PPP 协议
    2. 常用于:广域网
  2. 广播式链路
    1. 应用:早期的总线以太网、无线局域网
    2. 常用于:局域网
    3. 典型拓扑结构:总线型、星型

多路复用技术:即共享信道资源,提高信道利用率

  1. 频分复用(FDM)
    1. image.png
    2. 所有用户在同样的时间占用不同的频率带宽资源
    3. 类似“并行”
    4. 优点
      1. 充分利用带宽,系统效率较高
      2. 技术成熟,实现比较容易
    5. 共享时间,不共享空间
  2. 时分复用(TDM)
    1. image.png
    2. 每一个用户占用固定序号的时隙,用户轮流占用信道
    3. TDM 帧是在物理层传送的比特流所划分的帧。标志一个周期
    4. 类似“并发”
    5. 不共享时间,共享空间
    6. TDM 改进后:STDM (统计时分复用)
      1. 用户有了数据后就随时发往集中器中,输入缓存
      2. 按顺序扫描输入缓存
      3. 把缓存放入 STDM 帧中
      4. 一个 STDM 帧满就发出
      5. STDM 帧不是固定分配时隙,而是按需动态分配时隙。
    7. STDM 可以提高每个的最高传输速率
    8. STDM 适于一个用户经常发送数据,其他用户偶尔发送数据
  3. 波分复用(WDM)
    1. 光的频分多路复用
  4. 码分复用(CDM)
    1. 共享时间,且共享空间
    2. 码分多址(CDMA)(难点)
      1. 码分复用的一种方式
      2. 一个比特分为多个芯片,每个站点被指定一个唯一的 m 位的芯片序列
      3. 发送1时发送芯片序列(通常 0 写成 -1),发送0时发送芯片序列的反码
      4. 发送 1 image.png
      5. 发送 0 image.png
      6. 一些重点计算
        1. 多个站点同时发送数据时,要求各站点芯片序列相互正交,规格化内积
        2. 规格化内积:image.png
        3. 两个向量到了公共信道,线性相加即可image.png
        4. 数据分离:合并的数据和源站规格化内积(出现的 -1 就是 0):image.png

随机访问介质访问控制(动态划分信道)

所有用户可随机发送信息,发送信息时占全部带宽
为了解决不协调、冲突,产生了如下协议

  1. ALOHA协议
    1. 纯ALOHA协议
      1. 不监听、不按时、随机重发:想发就发
    2. 时隙ALOHA协议
      1. 提高了网络吞吐量
      2. 时间片的开始才可以发送
      3. 控制想发就发的随意性
  2. CSMA协议
    1. CS:载波监听
    2. MA:多点接入
    3. 先监听,后发送
    4. 不同协议
      1. 1-坚持CSMA(忙之后继续监听)
        1. 空闲,则直接发,不等
        2. 忙,则一直监听,直到空闲
        3. 有冲突,等待一个随机时间,再监听
        4. 优点:避免媒体利用率的损失
        5. 缺点:两个及以上发送,就会冲突
      2. 非坚持CSMA(忙之后不继续监听)
        1. 空闲,则直接发,不等
        2. 忙,则等待一个随机时间,再监听
        3. 优点:减少冲突发送
        4. 缺点:都在等待时,可能会有空闲状态,使用率降低
      3. p-坚持CSMA(最优秀的)
        1. 对于信道空闲的处理(而上面两种都是对忙状态的处理)
        2. 空闲,以 p 为概率发送,概率 1 - p 等待到下一个时间槽发送
        3. 忙,则持续监听,直至空闲
        4. 有冲突,等待等待到下一个时间槽再发送
        5. 优点:减少冲突,减少媒体空闲时间
    5. 如果冲突了,还要坚持发,就会造成浪费,解决办法:一冲突就能发现,用下面两种协议
  3. CSMA/CD协议(非常重要)
    1. CD:碰撞检测
    2. 有线局域网
    3. **
    4. 传播时延的存在,会导致冲突
    5. 最迟发现碰撞,2t(t:单程端到端的传播时延)——> 争用期/冲突窗口/碰撞窗口
      1. 如果经过 2t 后,还没检测到碰撞,就能肯定这次发送不会发送碰撞
      2. 冲突后,立即叫停,没必要再发
    6. 不能确定冲突时,就立即重发,会导致死循环(如何解决这种问题?)
      1. **确定重发时机算法:
      2. 具体实现:
        1. 确定基本退避时间:争用期(2t)
        2. 定义 k
          1. 不超过 10 ,k = 重传次数
          2. 超过 10 ,k = 10
        3. 从离散的 [0,1,,(2^k)-1] 中随机取数 r ,重传退避时间就是 r * 2t
        4. 当重传达 16 次都不成功,说明网络太拥挤,抛弃并向上层报告出错
      3. 多次发送碰撞说明:较多站点参与争用信道
      4. 优点:减小碰撞发送的概率
    7. 最小帧长 = 2t * 数据传输速率
    8. 补充:以太网最短帧长 64B,凡是小于它的就是冲突而异常终止的无效帧
  4. CSMA/CA协议(理解即可)
    1. CA:碰撞避免
    2. 无线局域网
    3. 要这种协议的原因
      1. 无法做到全方位检测
      2. 隐蔽站
    4. 说一句,等一下并检测,再决定发不发
    5. 原理
      1. 空闲时,发送端发送:RTS(包含:下一份数据要持续发送多久)
      2. 接收端发送:CTS,说明可以发送数据(RTS、CTS:解决隐蔽站的问题,可选)
      3. 预约信道:发送方告诉其他站点自己要发多久,避免冲突
      4. 接收端要经过CRC校验后,发送ACK
      5. 没有收到ACK,则执行二进制指数避退算法
  5. CSMA/CD 和CSMA/CA
    1. 都属于CSMA思想
    2. 冲突都重传,有上限的重传
    3. 核心:先听再说
    4. 不同点:
      1. 传输介质不同
        1. CSMA/CD:总线式以太网(有线)
        2. CSMA/CA:无线局域网(无线)
      2. 载波方式不同(检测方式不同)
        1. CSMA/CD:电缆中电压的变化
        2. CSMA/CA:能量检测、载波检测、能量载波检测三者混合
      3. 前者检测,后者避免

轮询访问:令牌传递协议(动态划分信道)

分析前面几种MAC:

  1. 信道划分MAC协议:
    1. 多路复用技术,划分信道
    2. 网络负载重:共享信道效率高,且公平
    3. 网络负载轻:共享信道效率低
  2. 随机访问MAC协议:(只有这个会发生冲突)
    1. 随机发送,独占信道
    2. 网络负载重:产生冲突开销
    3. 网络负载轻:共享信道效率高
  3. 轮询访问MAC协议:
    1. 结合上面两者的优点:不产生冲突,发生占全部带宽


轮询协议:主节点轮流”邀请”从属结点发送数据

  1. 问题

    1. 轮询开销(主机很多的时候,需要很大开销)
    2. 等待延迟(主要相对于靠后的主机)
    3. 单点故障(老大废了,小弟全都废了)

      令牌传递协议(非常重要)

  2. 令牌环网无碰撞

  3. **持有令牌的时间是
  4. 问题
    1. 令牌开销
    2. 等待延迟
    3. 单点故障(环断了)
  5. 令牌环网
    1. 物理:星型拓扑
    2. 逻辑:环形拓扑
  6. 采用这种方式的网络:常用于负载较重、通信量较大的网络