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

数据链路层使用的信道主要有以下两种类型:

(1)点对点信道 这种信道使用一对一的点对点的通信方式

(2)广播信道 这种信道使用一对多的广播通信方式,因此过程比较复杂

本章重要的内容有:

(1)数据链路层的三个重要问题:封装成帧、差错检测和可靠传输

(2)因特网点对点协议事例ppp协议

(3)广播信道的特点和媒体接入控制的概念,以及以太网的媒体接入控制协议CSMA/CD

(4)适配器、转发器、集线器、网桥、以太网交换器的作用以及使用场合,特别是网桥和以太网交换机的工作原理

(5)无线局域网的组成和CSMA/CA 协议的要点

协议是水平的、服务是垂直的

1、链路是从一个节点到相邻结点的一段物理线路,而中间的没有任何其他的交换节点

数据链路是指 把一些必要的通信协议的硬件和软件加到了链路上

最常用的方法是网络适配器/网卡(如拨号上网使用的拨号适配器和以太网使用的局域网适配器)来实现这些协议的硬件和软件

一般的适配器包括 数据链路层 和 物理层 两层的功能

早期的数据通信协议称为通信规程,因此在数据链路层,规程和协议是同一个意思

数据链路层的协议数据单元—帧

数据链路层把 网络层 交下来的数据构成帧发送到链路上,以及把接受到的帧中的数据取出并上交给 网路层

在因特网中,网络层协议数据单元就是IP数据报(或简称为数据报、分组或包)

在这种三层模型中,不管在哪一段链路上的通信(主机和路由器之间或两个路由器之间)我们都看做是结点和结点的通信,而每个结点只考虑三层:网络层、数据链路层、物理层

点对点信道的数据链路层在进行通信时的主要步骤如下:

(1)结点A的数据链路层把网络层交下来的 IP数据报 添加 首部和尾部 封装成帧

(2)结点A把封装好的帧发送给 结点B 的 数据链路层

(3)若 结点B 的 数据链路层收到的帧 无差错,则从 收到的帧中提出 IP数据报 上交给上面的 网络层 ,否则丢弃这个帧

2、封装成帧

数据链路层以 帧 为单位  传输和处理  数据

网络层的IP数据报必须向下传送到数据链路层,作为帧的数据部分,同时它的前面和后面分别加上首部和尾部

数据链路层必须使用物理层提供的服务来传输一个一个的帧

物理层将数据链路层交给的数据以比特流的形式在物理链路上传输

因此,数据链路层的接收方为了能以帧为单位处理接收的数据,必须正确识别每个帧的开始和结束,即进行 帧定界

首部和尾部的作用之一的进行帧定界,同时也包含其他必要的控制信息

每一种链路层协议都规定了帧的数据部分的长度的上限,即最大传送单元(MTU)

实现帧定界的方法:在传输的帧和帧之间插入时间间隔(以太网)、在每个帧的开始和结束添加一个特殊的帧定界标志来标记一个帧的开始(SOH)或结束(EOT)

帧定界的标志可以使用某个特殊的不可打印的控制字符作文帧定界符,传输的数据中不可以出现和用帧定界控制字符的比特编码一样的字符,否则就会出现帧定界的错误

我们希望数据链路层提供的是一种“透明传输”的服务,即对上层交给的传输数据没有任何限制,就好像数据链路层不存在一样

为了解决透明传输问题,对于面向字符的物理链路,可以使用一种称为 字节填充 或 字符填充 的方法

发送端的数据链路层在数据中就出现的标记字符前面插入一个转义字符(如ESC)而在接收端的数据链路层对转义字符后面出现的标记字符不再被解释为帧定界符,并且在将数据送往网络层之前删除这个插入的转义字符,如果转义字符也出现在数据中,那么方法任然是在转义字符前面插入一个转义字符,当接收端收到两个转义字符时就删除前面的那个

实现透明传输比特填充、零比特填充法

3、差错检测

比特在传输过程中有可能产生差错,1可能变成0,0可能变成1,称为比特差错

比特差错是传输差错中的一种

在一段时间内,传输错误的比特占所传输的比特总数的比率为误码率

误码率和信噪比有关

差错检测码(EDC)

在数字链路层,为了便于硬件检测差错,通常在帧的尾部设置一个 差错检验字段 存放整个帧(包括首部和尾部)的差错检测码

这个差错检测字段称为帧检验序列(FCS)

因此,在数字链路层进行差错检验,就必须把数据划分成为帧,每一帧都加上差错检测码,一帧接着一帧的传输,然后在接收方逐帧进行差错检测

在数据链路层通常采用循环冗余检验(CRC)技术进行检测

在接收端对收到的每一帧经过CRC检验后,

(1)如果得出的余数R=0,则判断这个帧没有差错,就接受

(2)如果余数不等于0,则判断这个帧有差错(但是没有判断究竟是哪一位或者是那几位出现了差错),丢弃

CRC编码也称为多项式编码,只能检测帧在传输中出现了差错,但是不能纠正错误

凡是 接收端数据链路层 通过差错检测并接收的帧,我们都能以接近1的概率认为这些帧在传输过程中没有产生差错

想要纠正传输中的差错可以使用冗余信息更多的纠错码进行前向纠错(FEC)

计算机网络通常采用检测重传方式来纠正传输中的差错,或者仅仅是丢弃检测到差错的帧,让上层协议去解决数据丢失的问题

4、可靠传输  (服务态度

可靠传输:发送端发送什么、在对应的接收端就收到什么

可靠传输协议就是要在不可靠的信道上实现可靠的数据传输服务

为了实现可靠的单向数据传输,可靠传输协议需要进行双向通信,因此底层的不可靠信道必须是双向的

①停止等待协议

计算机网络中实现可靠传输的基本方法是:如果发现错误就重传

接收方采用差错检测技术判断是否存在比特差错,如果没有差错,则发送确认分组ack,如果出现差错则丢弃该组并发送否认分组nak

发送方收到ack之后才可以发送下一个分组,而收到nak之后则继续重传原来的分组,直到收到ack

该协议被称为停止等待协议

同时发送方启动一个超时计时器,超过时间之后没有收到ack则重新传输,就叫做超时重传

重传时间一般设置为略大于“从发送方到接收方的平均往返时间”

在确认分组丢失之后,接收方会收到两个同样的数据分组,即重复分组,若接收方不能识别重复分组,则会导致另外一种差错—数据重复

为了解决该问题,必须使每个数据分组带上不同的发送序号

确认分组也应该带上序号

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgyfys.html