1. 基本概念

在这里插入图片描述

2. 封装成帧与透明传输

封装成帧就是加将数据加头加尾,相当于将数据打包
透明传输就是为了防止特殊的数据无法正常传输的的情况的发生,比如说在封装成帧的过程中出现数据中的某些标记符与开始/结束标记符恰巧重复等等情况
在这里插入图片描述

2.1 透明传输的应用

2.1.1 字符计数法

就是在帧的首部做计数,看看数据是否错误
缺点:如果在某一个帧内,标记位后面的某个字节的数据丢失,那么会影响后面的帧
比如3 1 1 和 4 2 2 2,如果前面的帧丢失变成 3 1,那么后面的4就会被补到前面变成 3 1 4导致错误
在这里插入图片描述

2.1.2 字符填充法

就是加头加尾分别标记开始结束,和零比特填充法(见下)对比,开始和结束的对应的字符不一样
但有可能出现数据内某段比特流数据正好与标记字段重复,从而导致误判断的情况
在这里插入图片描述
解决方法:添加转义字符
在这里插入图片描述

2.1.3 零比特填充法

在这里插入图片描述

2.1.4 违规编码法

因为曼彻斯特编码不使用高-高,低-低来表示,所以如果使用高-高,低-低来表示帧起始和终止就不会与数据冲突
在这里插入图片描述

3. 差错控制

3.1 差错是什么,从哪来的

数据链路层的差错检测的是比特的错误
在这里插入图片描述

3.2 为什么要在数据链路层进行差错控制?

因为错误可以尽早发现,不会让一个错误的数据包发送了很长时间到达最终目的地之后才被发现,从而导致网络资源的浪费

3.3 检错编码(奇偶校验码,循环冗余码CRC)

3.3.1 奇偶校验码

缺点:只能检测出1,3,5,7…等等奇位数错误,检测成功率位50%
在这里插入图片描述

3.3.2 循环冗余码CRC

就是用传输数据除以生成多项式得到冗余码
在这里插入图片描述
实际例子
注释:
1.阶数就是最高位是哪位,然后位数-1,如10011就是5-1=4,1011就是4-1=3
2.异或运算就是相同得0,不同得1,比如100和101做异或,结果就是001
3.出书和最后的余数添加到要发送的数据后面,称为帧检验序列FCS
在这里插入图片描述
接收方收到数据后进行检测
在这里插入图片描述
需要注意的地方
在这里插入图片描述

3.4 纠错编码(海明码)

分为四步

第一步 确认校验码位数r

在这里插入图片描述

第二步 确定校验码和数据的位置

注释:
1.为什么是10为数据位?因为4位校验码+6位信息位=10位
2.校验码放到2的几次方的位置,其他的地方按顺序放已知的信息位

在这里插入图片描述

第三步 求出校验码的值

注释
1.先是通过二进制位确定有几位。本题中因为最大位10的二进制是1010,所以是4为,将其标注
2.然后从p1开始看,看p1的二进制位的数值和所有信息位的对应位置的数值是否相同,然后找出来这些位
这里有点难理解,这里以p1为例辅助理解,这里找出来的就是P1,D1,D2,D4,D5
在这里插入图片描述
然后计算异或值,比如说这里D1=1,D2=0,D4=1,D5=0,就是p1要同时和0,10,1进行异或之后得到0,为了标识我加粗原始计算数据
举例:01异或得1,1和0异或得1,1和1异或得0,那么p1和0异或得0,p1就是0了
3.其他同理,按顺序计算出P2,P3,P4,然后填入表格
在这里插入图片描述

第四步 检测并纠错

就是和上面一样,将所有校验位进行运算,得出的结果的值就是错误的位
在这里插入图片描述

4. 数据链路层的流量控制和可靠传输

4.1 流量控制与可靠传输

流量控制是为了让传输过程中的发送速度和接受速度匹配,减少传输出错与资源浪费
可靠传输是发送端发送什么,接收端就要受到什么

数据链路层流量控制手段:接收方接收不下就不回复确认

传输层流量控制手段:接收端给发送端一个窗口公告

4.1.1 停止等待协议(Stop-and-Wait)

在这里插入图片描述
停止等待协议的无差错情况
注释:因为一次就一个,所以用0和1标记ack就行
在这里插入图片描述
停止等待协议的有差错情况
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
停止等待协议的特点
1.简单
2.信道利用率低。大部分时间数据都在路上,发送方很长时间闲置,资源浪费
在这里插入图片描述在这里插入图片描述

4.1.2 后退N帧协议(GBN)

因为停止等待协议太浪费时间了,所以尝试采用GBN,发送连续多个数据帧,以增大信道利用率
注释:
累计确认:就是收到一个确认帧,那么它和它之前的所有帧都默认已收到,反之,如果某个确认帧没收到,那么它和它之后的所有帧都默认丢失(即使收到了也丢掉),进行重传

在这里插入图片描述
下图是一个实例
注释:此图发送2帧时丢失,所以接收方几首收到后面的帧也是直接丢弃并且发送最晚收到的有效帧1的ACK,直至2帧的超时重传机制被触发进行重传并得到ACK之后,接收方才会接受2帧以及后面的帧

在这里插入图片描述
发送窗口不能无限大,与使用的编号的比特数有关 Wmax=2^n-1
很简单,就是1比特编号0和1,同理2比特编号0-3,如果用1比特编号,却要4个窗口长度,那么窗口内数据编号都编不过来,直接乱套了
GBN的优缺点也显而易见,优点是提高了信道利用率,缺点是因为重传机制的原因导致已经收到数据却需要强行丢弃而造成浪费

GBN协议重点总结

  • 累计确认(偶尔捎带确认)
  • 接收方只按顺序接收帧,不按序无情丢弃。
  • 确认序列号最大的、按序到达的帧
  • 发送窗口最大为 WTmax=2^n-1,接收窗口WRmax为1

4.1.3 选择重传协议(SR)

为了解决GBN的缺点,我们打算尝试只重传错误的帧,这样的话就不用浪费资源吧已经收到的帧再重传一次了。
和GBN相比,两者都有窗口了,和GBN的区别其实就是做了一个数据缓存,已经收到的帧不用扔了,等待之前因意外丢失的帧收到的时候确认即可,但是只能缓存窗口尺寸内的包含的帧(PS,缓存咋可能无限大)
SR运行过程
注释:2帧丢失之后仍然在发送,但是2帧丢失之后只是缓存,并没有移动窗口,直至最后2帧收到后一次性确认2-5帧
在这里插入图片描述
同样的,因为编号的问题,发送窗口不能无限大
发送窗口最后和接受窗口大小相同,这样利用率比较高 Wmax=Tmax=2^(n-1)

SR协议重点

  • 对数据帧逐一确认
  • 只重传出错帧
  • 接收方有缓存
  • WTmax=WRmax=2^(n-1)

5. 介质访问控制技术

就是让节点之间的通信不会进行相互干扰
在这里插入图片描述

5.1 信道划分介质访问控制

虽然使用一条共享信道,但是通过多路复用技术组合进行传输,提高了信道的利用率

5.1.1 频分多路复用FDM

在这里插入图片描述

5.1.2 时分多路复用TDM

TDM的缺点就是利用率低,所以又衍生出了STDM
在这里插入图片描述

5.1.3 统计时分复用STDM

STDM的原则是先到先走,满了就发,相对于TDM提高了利用率
在这里插入图片描述

5.1.4 码分多路复用CDM

CDM只是做一下记录,暂时还用不到,有需要请自行查找资料
在这里插入图片描述

5.1.5波分多路复用WDM

光的波长不同,即光的频分多路复用

5.2 随机访问介质访问控制

所有用户都可以随机发送信息,发送时可以占用全部带宽,理论上个人使用时比静态分配信道的速度更快

5.2.1 ALOHA协议

纯ALOHA协议缺点:太随性,导致效率低
在这里插入图片描述
时隙ALOHA协议
相对于纯ALOHA协议就是固定了发送的时间(只能在一个时间片的开始),提高了效率
在这里插入图片描述

5.2.2 CSMA协议

在这里插入图片描述

名称 描述 优点 缺点
1-坚持CSMA 发送信息时监听信道,一空闲下来就立即传输,信道忙也一直监听,如果发送时冲突就等待随机时长之后再监听 立即发送,利用率高 如果多台设备同时监听,那么会发生冲突
非坚持CSMA 发送信息时监听信道,如果空闲就立即传输,信道忙就随机等待一段时间后再监听 冲突发生的几率减少 因为需要等待,所以利用率不高
p-坚持CSMA 发送信息时监听信道,空闲时以概率p进行传输,概率1-p不传输。信道忙就随机等待一段时间后再监听 冲突减少的同时效率也比较高 即使发生冲突也要坚持发送数据,资源被浪费

5.2.3 CSMA/CD协议

概述

就是因为链路实际有长短,发送数据需要时间,这个时间内可能就被其他节点当成空闲状态导致发生碰撞
知道自己发生碰撞的最长时间是2τ(两倍的传播时延),就是一去一回
在这里插入图片描述
图示传播时延对载波监听的影响
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
由此我们可以想到最小帧长的问题,因为如果帧太短,帧都发送完了才检测到碰撞导致停止,导致无法停止碰撞
在这里插入图片描述

5.2.4 CSMA/CA协议

在这里插入图片描述
在这里插入图片描述

5.2.5 CSMA/CD 与 CSMA/CA的区别

在这里插入图片描述

5.3 轮询访问介质访问控制

主要包括两大类,一个是轮询协议,另一个是令牌传递协议

5.3.1 轮询协议

就是选出一个代表,让他控制所有的传输
注释:
轮询开销在随着服务的节点越多,需要用于查询是否发送数据发送的数据帧也就越多,会造成一定开销
等待延迟就是因为这是轮流“邀请”,所以难免某个节点需要发送数据,但是主节点还在较远的需要里有需求的节点那边,导致需求得不到立即响应
单点故障很好理解,就是代表挂了

在这里插入图片描述

5.3.2 令牌传递协议

注释:在节点之间没有收发数据的需求时,令牌在节点之间循环。
发送数据的流程
》当一个节点需要时就可以获得这个令牌。然后修改这个令牌的状态(空闲->占用)
》再将令牌与数据帧结合,让其在节点构成的环之间流动
》不是目的地的节点收到令牌也不接受,直接略过,目标节点收到信息并复制一份到本地(传输完成),因为是个闭环,所以发送节点最后得到令牌
》最后,发送令牌的节点对令牌的内容进行检查,如果发现数据出错还要重新发一遍
问题基本和轮询协议相同

在这里插入图片描述

6.局域网

6.1 局域网的概念

概括:范围大小,速度快,延迟低,节点平等
在这里插入图片描述

6.1.1 局域网的网络拓扑结构

常用的是总线型拓扑
在这里插入图片描述

6.1.2 局域网的传播介质

局域网 常用介质
有线局域网 双绞线,同轴电缆,光纤
无线局域网 电磁波

6.1.3 局域网介质访问方法

在这里插入图片描述

6.2 局域网的分类

在这里插入图片描述

6.3 IEEE802标准

在这里插入图片描述

6.3.1 IEEE802描述的局域网参考模型

在这里插入图片描述

6.4以太网

6.4.1 以太网概念

在这里插入图片描述
在这里插入图片描述

6.4.2 以太网的发展

在这里插入图片描述

6.4.3 适配器和MAC地址

在这里插入图片描述

6.4.4 以太网MAC帧

注释:
1.这里的mac层指的是数据链路层
2.之前说过数据链路层将上一层ip数据包加头加尾
头就是目标地址(6字节),源地址(6字节),类型(2字节)
尾就是FCS(帧检验序列),(4字节)
3.前导码不是MAC帧的一部分,目的是使时钟同步
4.为什么数据长度时46~1500?
因为有最小传输字节64字节,mac占用6+6+2+4=18,所以数据最小为64-18=46,1500则是规定的默认最大字节,没有理由

在这里插入图片描述

6.4.5 10BASE-T以太网

在这里插入图片描述

6.4.6 高速以太网

在这里插入图片描述

6.5 无线局域网

在这里插入图片描述
在这里插入图片描述

6.5.1 两种无线局域网

在这里插入图片描述
在这里插入图片描述

7.广域网

7.1 广域网的概述

概括一下,一个字大
在这里插入图片描述

7.2 PPP协议(Point-to-Point Protocol)

PPP协议是目前使用最广泛的数据链路层协议,拨号基本都是PPP协议
PPP协议仅支持全双工链路

7.2.1 PPP协议需要满足的要求

在这里插入图片描述

7.2.2 PPP协议不需要满足的要求

在这里插入图片描述

7.2.3 PPP协议组成成分以及功能

在这里插入图片描述

7.2.4 PPP协议的帧格式

在这里插入图片描述

7.3.1 HDLC协议概述

在这里插入图片描述

7.3.2 HDLC的三种站

在这里插入图片描述

7.3.3 HDLC的帧格式

在这里插入图片描述

7.4 PPP协议和HDLC协议对比

为什么HDLC协议更可靠,但是我们使用PPP协议?
因为现在网络要求高,数据链路层本来就是不可靠的尽力传输,差错控制这些复杂的交给了TCP等
在这里插入图片描述

8. 链路层设备

8.1 集线器(Hub)

可以扩展以太网,但是集线器会无脑将一个设备的所有消息转发到集线器所连的所有设备,故会将所连接的所有设备变成一个大的冲突域,同时只能有两台设备进行通信,且设备越多,冲突越多。由此诞生了网桥

8.2 网桥(Bridge)

使用网桥时,由于网桥会根据mac地址进行过滤,所以不会形成冲突域
在这里插入图片描述

8.2.1 两种网桥

透明网桥

通过自学习来构建转发表。每一个通过网桥的数据包都会被记录下网桥收到数据时数据对应的地址网桥自己的接口,通过许许多多的数据包的构造的缓存,网桥就可以知道哪个数据包在哪个接口,以后如果要穿数据包就知道要往哪个接口发送数据包了

源路由网桥

在发送时,直接将最佳路径放到帧首部。那么网桥如何获得最佳路径?通过广播方式想目标地址发送广播,此时可能会经过不同路由产生不同的路径,目标地址收到后再将每一条路径都发一个响应帧给网桥,网桥经过对比就知道哪个接口最快了

8.3 交换机

网桥接口越来越多,网桥就变成了交换机
在这里插入图片描述

8.4 冲突域和广播域

在这里插入图片描述

9. 本章总结思维导图

在这里插入图片描述

本章常用中英文对照

End system 端系统
Modem 调制解调器(俗称:猫)
Base station 基站
Communication link 通信链路
Physical media 物理介质
Coaxial cable 同轴电缆
Fiber optics 光纤
Radio spectrum 射频频谱
Transmission rate 传输速率
Packets (数据)包,或分组
Routers 路由器
Path 路径
ISP (Internet Service Provider) 网络服务提供商
FDM (frequency-division multiplexing) 频分多路复用
TDM (time-division multiplexing) 时分多路复用
Statistical Multiplexing 统计复用
Store-and-forward 存储转发
Queuing delays 排队延迟
Transmission delay 传输延迟,或发送延迟
Propagation delay 传播延迟
Throughput 吞吐量
Internet backbone 骨干网
Delay 延迟,或时延
Loss 丢包
Message 消息,或报文
Segment (报文)段
Datagram 数据报
Frames 帧

掘金:前端LeBron

知乎:前端LeBron

持续分享技术博文,关注微信公众号👇🏻

img