《计算机网络》 第三章 数据链路层

第三章 数据链路层

数据链路层使用的信道:

1.点对点信道:使用一对一的点对点通信方式
2.广播信道:使用一对多的广播通信方式

数据链路层的三个基本问题:

1.封装成帧
2.透明传输
3.差错检测

3.1 使用点对点信道的数据链路层

3.1.1 数据链路和帧

链路:从一个结点到相邻结点的一段物理线路,中间没有任何其他的交换结点。
数据链路:需要有一条物理线路用于传输数据外,还需要有必要的通信协议(使用网络适配器)来控制这些数据的传输。
:数据链路层的协议数据单元

3.1.2 三个基本问题

1.封装成帧:在数据的前后分别添加首部和尾部,就构成了一个帧。

在互联网上传送的数据都已分组(即 IP 数据包)为传送单位,网络层的 IP 数据包传送到数据链路层就成为帧的数据部分,再加上首部和尾部,就构成一个完整的帧。

最大传输单元 MTU :所能传送的帧的数据部分长度上限

帧的数据部分与MTU的关系如下图:
这里写图片描述
帧的数据部分有四部分构成:
① 目的 IP 地址
② 源 IP 地址
③ 上一层用的协议类型类型
④ 数据

帧的首部尾部作用:作为帧定界符
当接收端接受到帧首部(SOH)时认为一个帧开始,只有接收到帧尾部(EOT),才会将这个帧判定为一个完整的帧,应当收下,否则丢弃。

2.透明传输:为了防止出现接收端错误的将特别字符(如SOH、EOT)作为帧开始或帧结束的情况,于是需要将这些特别字符透明传输。
这里写图片描述
解决办法:在传输数据时出现的非帧定界符的前面插入一个转义字符“ESC”。当接收端在它的数据链路层把数据送往网络层之前会删除这个插入的转义字符。这种方法称为字节填充或字符填充。若这个转义字符也出现在数据中,解决办法也是在转义字符的前面插入一个转义字符,则接收端收到连续的两个转义字符时,就删除其中前面的一个。

3.差错检测比特在传输过程中会产生差错,如 1 可能会变成 0,而 0 也可能变成 1。这就叫做比特差错

目前在数据链路层广泛使用循环冗余检验CRC(Cyclic Redundancy Check) 的检错技术。

扫描二维码关注公众号,回复: 2923012 查看本文章

循环冗余检验 CRC:检验帧是否有差错
帧检验序列 FCS:添加在数据后面的冗余码

循环冗余检验原理
现假定待传送的数据M = 101001。CRC 运算就是要在数据 M 的后面添加供差错检测用的 n 为冗余码,然后构成一个帧发送出去。

栗子:假定需要传送的数据M=101001,直接给出的除数P=1101(或间接给出P的多项式为X^3+X^2+1,可转换得出P为1101(1X^3+1X^2+0X^1+1X^0)),求出冗余码?

步骤:

① 由除数得出 n = 3(除数的位数-1)
② 在数据 M 后面添加 n 个 0 作为被除数(101001000)与除数(1101)做异或运算,得出的余数即冗余码
这里写图片描述

将冗余码加在数据M后面发送,当接收端接收到该帧时,将该数据M(101001001)除以P(1101),若得出的余数为0,则判定这个帧没有差错。若余数不等于 0 ,则判定这个帧有差错。

在数据链路层仅仅使用循环冗余检验 CRC 差错检测技术只能做到对帧的无差错接受,而无法检测帧丢失、帧重复、帧失序,所以数据链路层协议都不是可靠传输的协议

3.2 点对点协议PPP

3.2.1 什么是PPP协议

PPP协议就是用户计算机和 ISP 进行通信时所使用的数据链路层协议。

3.2.2 PPP协议的组成

① 一个将 IP 数据包封装到串行链路的方法
② 链路控制协议 LCP
③ 网络控制协议 NCP

3.2.3 PPP协议的帧格式

这里写图片描述
1. PPP帧的首部

  • 标志字段 F(Flag),规定为 0x7E。表示一个帧的开始或结束。
  • 地址字段 A,规定为 0xFF。
  • 控制字段 C,规定为 0x03。
  • 协议字段。
    (1)协议字段为 0x0021时,PPP帧的信息字段就是 IP 数据报。
    (2)协议字段为 0xC021时,PPP帧的信息字段是 PPP 链路控制协议 LCP 的数据。
    (3)协议字段为 0x8021时,PPP帧的信息字段是网络层的控制数据。

2.信息部分
信息部分的长度是可变的。但不能超过1500字节。

3.PPP帧的尾部
第一个字节是使用 CRC 的帧检验序列 FCS(即冗余码)。

注:标志字段就是PPP帧的定界符。连续两帧之间只需要用一个标志字段。如果连续出现两个标志字段,就表示这是一个空帧,应当丢弃。

零比特填充
在发送端。先扫描整个信息字段。只要发现有 5 个连续 1,则立即填入一个 0。接收端在收到一个帧时,先找到标志字段 F 以确定一个帧的边界,接着对其进行扫描,当发现 5 个连续 1 时,就把这 5 个连续 1 后的一个 0 删除。
这里写图片描述

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

3.3.1 局域网的数据链路层

1.局域网的分类
① 星形网
② 环形网
③ 总线网

2.适配器的作用
计算机与外界局域网的连接是通过通信适配器进行的。可称为网络接口卡或简称为“网卡”。

功能:
① 进行数据串行传输和并行传输的转换。
② 适配器中装有对数据进行缓存的存储芯片。
③ 将适配器的设备驱动程序安装在计算机的操作系统中。
④ 能实现以太网协议。

3.3.2 CSMA/CD 协议

CSMA/CD:载波监听多点接入/碰撞检测

CSMA/CD 协议的要点:
(1)多点接入:许多计算机以多点接入的方式连接在一根总线上。
(2)载波监听:不管在发送前,还是在发送中,每个站都必须不停地检测信道。
(3)碰撞检测:适配器边发送数据边检测信道上的信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。

数据传输过程中发生碰撞后,会进行重传。以太网使用截断二进制指数退避算法来确定重传的时机。

退避算法如下:
(1)以太网规定了基本退避时间为争用期2τ,具体的争用期时间是51.2μs。
(2)从离散的整数集合[0,1,2,···,(2^k-1)]中随机取出一个数,记为r。重传应推后的时间就是r倍的争用期。

        整数集合中的k = Min[重传次数,10]

可见当重传次数不超过10时,参数k等于重传次数;但当重传次数超过10,k就不再增大而一直等于10。
(3)当重传达 16 次仍不成功时,则丢弃该帧,并向高层报告。

以太网规定了一个最短帧长 64 字节。

CSMA/CD 协议要点归纳
(1)准备发送。发送之前,检测信道是否空闲。
(2)检测信道。当检测到信道空闲时,并保持96比特时间内仍空闲(使刚刚收到数据帧的站的接受缓存来得及处理,以便接受下个帧),则发送该帧。
(3)发送过程中不停地检测信道,即适配器要边发送边监听
发送成功:未发送碰撞,则继续准备发送。
发送失败争用期内检测到碰撞,停止发送数据,并发送人为干扰信号。适配器执行截断二进制指数退避算法,等待重传时间,然后回到步骤(2),若重传16仍不成功,则停止重传而向上报错。

3.3.3 以太网的 MAC 层

1.MAC 层的硬件地址又称为物理地址或 MAC 地址。

适配器可收到以下三种帧:
(1)单播帧(一对一):即收到的帧的 MAC 地址与本站的硬件地址相同。
(2)广播帧(一对全体):即发送给本局域网上所有站点的帧(全1地址)。
(3)多播帧(一对多):即发送给本局域网上一部分站点的帧。

猜你喜欢

转载自blog.csdn.net/swpu_ocean/article/details/80307160