数据链路层

数据链路层 - 图1

  • 数据包只在数据链路层沿水平方向传送
  • 链路:就是从一个节点到相邻节点的一段物理线路,而中间没有任何其他的交换节点。
  • 数据链路:是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。
  • 数据链路层以帧为单位传输和处理数据

数据链路层 - 图2

封装成帧

数据链路层 - 图3

差错检测

基于待发送的数据和检错算法计算出检错码,并将其封装在帧尾。

数据链路层 - 图4

数据链路层 - 图5

接收方主机通过检错码和检错算法就可判断帧在传输过程中是否出现了误码。

可靠传输

数据链路层 - 图6

使用广播信道的数据链路层(共享式局域网)

编址问题

数据链路层 - 图7

A向C发送数据,C如何知道这是发给它的,目的地址,源地址。

数据链路层 - 图8

当B,C同时发送数据时,使用广播信道传输可能发生碰撞。图中为载波监听多点接入/碰撞检测。

数据链路层 - 图9

无线局域网为载波监听多点接入/碰撞避免。

数据链路层 - 图10

封装成帧

数据链路层 - 图11

  • 帧头和帧尾的作用之一就是帧定界。例如ppp的前后两个标志
  • 并不是每一种数据链路层协议中都包含帧定界标志。例如以太网V2的MAC帧

数据链路层 - 图12

  • 前同步码使接收方的时钟同步
  • 帧开始定界符表明其后面紧跟着的就是MAC帧

数据链路层 - 图13

透明传输

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

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

数据链路层 - 图14

  • 每出现一个帧界符就在其前面加一个转义字符
  • ESC并不是指E.S.C这三个字母,其十进制值为27

数据链路层 - 图15

  • 在发送前用零比特填充法进行扫描:每5个连续的比特1后面就插入1个比特0,这样就确保帧定界在整个帧中的唯一性,也就可以实现透明传输

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

考虑到查错控制等因素,每种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU

数据链路层 - 图16

差错检测

数据链路层 - 图17

帧检验序列FCS字段其作用:让接收方的数据链路层检查帧在传输过程中是否产生了误码

奇偶校验

数据链路层 - 图18

循环冗余校验CRC

数据链路层 - 图19

数据链路层 - 图20

数据链路层 - 图21

数据链路层 - 图22

  • 检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误。
  • 要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错。但纠错码的开销比较大,在计算机网络中较少使用。
  • 循环冗余校验CRC有很好的漏检能力,虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层。

数据链路层 - 图23

可靠传输

基本概念

数据链路层 - 图24

数据链路层 - 图25

  • 分组其实就是帧

数据链路层 - 图26

数据链路层 - 图27

停止-等待协议SW(自动请求重传ARQ)

数据链路层 - 图28

数据链路层 - 图29

ACK:确认分组

NAK:否认分组

发送方收到后接收方的确认与否认后才会进行下一个数据分组的发送,实现可靠传输

数据链路层 - 图30

信道利用率

数据链路层 - 图31

数据链路层 - 图32

数据链路层 - 图33

回退N帧协议GBN

数据链路层 - 图34

数据链路层 - 图35

数据链路层 - 图36

  • 回退N帧协议在流水线传输的基础上利用发送窗口来限制发送方连续发送数据分组的数量,是一种连续ARQ协议。
  • 在协议的工作过程中发送窗口和接收窗口不断向前滑动,因为这类协议又称为滑动窗口协议。
  • 由于回退N帧协议的特性,当通信线路质量不好时,其信道利用率并不比停止等待协议高。

选择重传协议SR

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

数据链路层 - 图37

数据链路层 - 图38

数据链路层 - 图39

数据链路层 - 图40

数据链路层 - 图41

点对点协议PPP

数据链路层 - 图42

数据链路层 - 图43

数据链路层 - 图44

数据链路层 - 图45

透明传输

字节填充法

数据链路层 - 图46

比特填充法

数据链路层 - 图47

差错检测

数据链路层 - 图48

工作状态

数据链路层 - 图49

媒体接入控制MAC

  • 共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC

静态划分信道

频分多址、时分多址、码分多址

信道复用

频分复用FDM

数据链路层 - 图50

时分复用TDM

数据链路层 - 图51

波分复用WDM

数据链路层 - 图52

码分复用CDM

数据链路层 - 图53

数据链路层 - 图54

数据链路层 - 图55

数据链路层 - 图56

数据链路层 - 图57

数据链路层 - 图58

数据链路层 - 图59

数据链路层 - 图60

数据链路层 - 图61

动态接入控制

受控接入

  • 集中控制
  • 分散控制

随机接入

CSMA/CD

数据链路层 - 图62

数据链路层 - 图63

数据链路层 - 图64

数据链路层 - 图65

争用期

数据链路层 - 图66

数据链路层 - 图67

数据链路层 - 图68

数据链路层 - 图69

数据链路层 - 图70

数据链路层 - 图71

数据链路层 - 图72

数据链路层 - 图73

数据链路层 - 图74

数据链路层 - 图75

数据链路层 - 图76

CSMA/CA

数据链路层 - 图77

数据链路层 - 图78

数据链路层 - 图79

数据链路层 - 图80

数据链路层 - 图81

数据链路层 - 图82

工作原理

数据链路层 - 图83

退避算法

数据链路层 - 图84

数据链路层 - 图85

信道预约和虚拟载波监听

数据链路层 - 图86

数据链路层 - 图87

数据链路层 - 图88

数据链路层 - 图89

数据链路层 - 图90

数据链路层 - 图91

MAC地址、IP地址、ARP协议

数据链路层 - 图92

MAC地址

数据链路层 - 图93

数据链路层 - 图94

数据链路层 - 图95

数据链路层 - 图96

数据链路层 - 图97

数据链路层 - 图98

数据链路层 - 图99

数据链路层 - 图100

单播MAC地址

数据链路层 - 图101

广播MAC地址

数据链路层 - 图102

数据链路层 - 图103

IP地址

数据链路层 - 图104

数据链路层 - 图105

数据链路层 - 图106

数据链路层 - 图107

数据链路层 - 图108

ARP协议

数据链路层 - 图109

数据链路层 - 图110

数据链路层 - 图111

数据链路层 - 图112

数据链路层 - 图113

数据链路层 - 图114

数据链路层 - 图115

不可以,ARP协议只能在一段链路或一个网络上使用,而不能跨网络使用

数据链路层 - 图116

集线器与交换机的区别

数据链路层 - 图117

数据链路层 - 图118

数据链路层 - 图119

数据链路层 - 图120

数据链路层 - 图121

竞争总线并产生碰撞

数据链路层 - 图122

数据链路层 - 图123

数据链路层 - 图124

以太网交换机自学习和转发帧的流程

数据链路层 - 图125

数据链路层 - 图126

数据链路层 - 图127

数据链路层 - 图128

以太网交换机的生成树协议STP

数据链路层 - 图129

数据链路层 - 图130

虚拟局域网VLAN

数据链路层 - 图131

数据链路层 - 图132

数据链路层 - 图133

数据链路层 - 图134

数据链路层 - 图135

IEEE 802.1Q帧

数据链路层 - 图136

交换机的端口类型

数据链路层 - 图137

Access端口

数据链路层 - 图138

数据链路层 - 图139

Trunk端口

数据链路层 - 图140

数据链路层 - 图141

数据链路层 - 图142

Hybrid端口

数据链路层 - 图143

数据链路层 - 图144

A给B发,B可以识别普通以太网的MAC帧,不能识别802.1Q帧

数据链路层 - 图145