计算机网络 数据链路层

主机五层:应用 运输 网络 链路 物理

路由器三层:网络 链路 物理

链路是一条无源的点到点的物理线路段,中间没有任何其他交换节点

数据链路:除了物理线路之外,必须有通信协议来控制数据的传输。把这些协议的硬件和软件加在链路上,就构成了数据链路

常用方法:数据链路层的工作由适配器(网卡)实现协议的硬件和软件

3.1封装帧

在一段数据的前后分别添加首部和尾部

数据链路层的帧长是首部+尾部+MTU

MTU:帧的数据部分的帧长

利用控制字符封装: 开始符:SOH(START OF HEAD) 结束符:EOT (END OF TEXT)

3.2透明传输

当数据中出现控制字符时 在SOH和EOT前加入转义字符“ESC”(其编码为1B)

如果转义字符也出现在数据当中,在其之前再插入一个转义字符,当连续接受两个转义字符时,删除前面的一个

3.3差错检测

传输错误的比特占总比特的比例为误码率BER(Bit Error Rate)

误码率和信噪比有很大关系

汉明距离:

如果要检测e个差错,则编码集的汉明距离至少为e+1

如果要纠正t个差错,则编码集的汉明距离至少为2t+1

如果要检测e个差错,同时纠正t个差错,则编码集的汉明距离至少为e+t+1

eg.纠错 000000 000111 111000 111111 汉明距离=3

​ 010111 恢复为 000111 错一位

3.4差错控制编码

奇偶检验码:在数据码后附加一个校验位,使构成的码组中1的个数为奇数,或偶数

0100101(0)奇校验

0100101(1)偶校验

奇偶检验码只能检测出奇数个错误,无法检测出偶数个错误,但是实践简单

使用水平/二维奇偶检验

3.5数据的可靠传输和流量控制

实用的停止等待协议:

在实际的数据传输过程中,传输差错是不可避免的

传输差错导致接收的数据帧差错,接收方要求发送方重发数据帧

(a)正常情况 A DATA0 -> B -> ACK -> A -> DATA1 ->B ->ACK

(b)数据帧错误 A DATA0 -> B ->(出错) NAK -> A -> DATA0 ->B ->ACK

(c)数据帧丢失 A DATA0 -> B ->(丢失) (重传) A -> DATA0 ->B ->ACK

(d)确认帧丢失 A DATA0 -> B -> ACK(丢失) A -> DATA0 ->B ->ACK(要是再要就从鸿福了)

所以需要解决接收方的重传问题

超时重传技术:

结点A发送完一个数据帧是,就启动一个超时计时器,此计时器又称定时器

重复帧问题:(应答帧丢失导致)

每个数据帧带上不同的发送序号,每发送一个新的数据帧就把序号加1

帧的编号问题:任何的编号系统的序号所占用的比特数都是有限的,因此在一段事件后,发送的序号就会重复