计算机网络考试复习——第三章 3.1 3.2

本章考试范围为3.1 3.2 3.3 3.4

首先明确数据链路层在网络中是在物理层的上面从下网上看是在第二层,在数据链路层传输的单位是

网络中的主机、路由器等都必须实现数据链路层,局域网中的主机、交换机等都必须实现数据链路层。

数据链路层的地位:

数据链路层的两种信道类型:点对点通信,使用一对一的点对点通信方式。广播式通信,使用一对多的广播通信方式。 必须使用专用的共享信道协议来协调这些主机的数据发送。

3.1数据链路层的几个公共问题

1)数据链路和帧:

链路 (link) :

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

一条链路只是一条通路的一个组成部分。 或物理链路。

数据链路 (data link):

把实现控制数据传输的协议的硬件和软件加到链路上,就构成了数据链路。 或逻辑链路。

典型实现:适配器(即网卡)

2)三个基本问题

1.封装成帧

封装成帧 (framing):在一段数据的前后分别添加首部尾部,构成一个帧。 首部和尾部的一个重要作用就是进行帧定界(即确定帧的界限)。

用控制字符作为帧定界符:

控制字符 SOH (Start Of Header) 放在一帧的最前面,表示帧的首部开始。

控制字符 EOT (End Of Transmission) 放在一帧的末尾,表示帧的结束。

 2.透明传输

如果数据中的某个字节的二进制代码恰好和 SOH 或 EOT 一样,数据链路层就会错误地“找到帧的边界”,导致错误。遇到这个问题就需要采用零比特传输的方式来解决。

透明:指某一个实际存在的事物看起来却好像不存在一样。

“在数据链路层透明传送数据”表示:无论发送什么样的比特组合的数据,这些数据都能够按照原样没有差错地通过这个数据链路层。

 3.差错控制

在传输过程中可能会产生比特差错:1->0, 0->1。

在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)。

为了解决这个问题提出了:循环冗余检验 CRC (Cyclic Redundancy Check) 原理

在发送端,先把数据划分为组。假定每组 k 个比特。 CRC 运算在每组 M 后面再添加供差错检测用的 n 位冗余码,然后构成一个帧发送出去。一共发送 (k + n) 位。

CRC 冗余码的计算

这种为了进行检错而添加的冗余码常称为帧检验序列 FCS (Frame Check Sequence)。

采用冗余码计算的一个过程

1,用二进制的模 2 运算进行 2n 乘 M 的运算,这相当于在 M 后面添加 n 个 0。

2,得到的 (k + n) 位的数除以事先选定好的长度为 (n + 1) 位的除数 P,得出商是 Q ,余数是 R,余数 R 比除数 P 少 1 位,即 R 是 n 位。

3,将余数 R 作为冗余码拼接在数据 M 后面,一起发送出去。

 计算举例:这样的计算是肯定要会的这里的计算要特别注意,和我们平常的计算是不一样的,不是单纯的一个除法是模2除法。可以观察到除的时候被除数第一个是1就填1第一个是0就填0然后不是做减法是进行比较若相同则为0若相反则为1也就是一个异或的过程。 

在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。

循环冗余检验 CRC 和帧检验序列 FCS 并不等同。

1.CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。

2.FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法。

仅用循环冗余检验 CRC 差错检测技术只能做到无差错接受 (accept)。 即:“凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于 1 的概率认为这些帧在传输过程中没有产生差错”。 即:“凡是接收端数据链路层接受的帧均无差错”。

这个是检错码并非纠错码只可以判断是否错误而不可以进行纠正。

注意:“无比特差错”与“无传输差错”是不同的

可靠传输:数据链路层的发送端发送什么,在接收端就收到什么。

传输差错可分为两大类: 比特差错传输差错:帧丢失、帧重复或帧失序等。

在数据链路层使用 CRC 检验,能够实现无比特差错的传输,但这还不是可靠传输。 要做到可靠传输,还必须再加上帧编号、确认和重传等机制。 

3.2点对点协议

1)点对点协议的特点

对于点对点的链路,目前使用得最广泛的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。 PPP 协议在 1994 年就已成为互联网的正式标准 [RFC 1661, STD51]

1. PPP 协议应满足的需求(看着字多实际上重点就前4个看看即可)

1,简单 ——首要要求。

2,封装成帧 —— 必须规定特殊的字符作为帧定界符。

3,透明性 —— 必须保证数据传输的透明性。

4,多种网络层协议 —— 能够在同一条物理链路上同时支持多种网络层协议。

5,多种类型链路 —— 能够在多种类型的链路上运行。

6,差错检测 —— 能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。

7,检测连接状态 —— 能够及时自动检测出链路是否处于正常工作状态。

8,最大传送单元 —— 必须对每一种类型的点对点链路设置最大传送单元  MTU 的标准默认值,促进各种实现之间的互操作性。

9,网络层地址协商 —— 必须提供一种机制使通信的两个网络层实体能够通过协商知道或能够配置彼此的网络层地址。

10,数据压缩协商 —— 必须提供一种方法来协商使用数据压缩算法。

2.ppp协议的组成

三个组成部分: 一个将 IP 数据报封装到串行链路的方法。 一个链路控制协议 LCP (Link Control Protocol)。 一套网络控制协议 NCP (Network Control Protocol)。

2)ppp协议的帧的格式

各个字段的意义:

首部:4 个字段

标志字段 F: 0x7E 。连续两帧之间只需要用一个标志字段。

地址字段 A:只置为 0xFF。实际上不起作用。

控制字段 C:通常置为 0x03。 协议字段。

尾部:2 个字段。

在涉及到透明传输问题是也是有两种解决方法 零比特填充和字节填充

当 PPP 用在异步传输时,使用字节填充法。 当 PPP 用在同步传输链路时,采用零比特填充法。

3)PPP 协议的工作状态(看看即可)

PPP 链路初始化过程: 用户拨号接入 ISP 后,就建立了一条从用户个人电脑到 ISP 的物理连接。 用户个人电脑向 ISP 发送一系列的链路控制协议 LCP 分组(封装成多个 PPP 帧),以便建立LCP连接。 之后进行网络层配置。网络控制协议 NCP 给新接入的用户个人电脑分配一个临时的 IP 地址。 当用户通信完毕时,NCP 释放网络层连接,收回原来分配出去的IP地址。LCP 释放数据链路层连接。最后释放的是物理层的连接。

猜你喜欢

转载自blog.csdn.net/m0_53345417/article/details/130042974
今日推荐