基础概念
- 数据链路层使用的信道主要有以下两种类型
- 点对点信道:一对一
- 广播信道:一对多
- 备注:局域网虽然是个网络,但我们并不把局域网放在网络层中讨论。因为在网络层讨论的问题是多个网络互连的问题(讨论分组怎样从一个网络,通过路由器,转发到另一个网络)。在本章中我们研究的是在同一个局域网中,分组怎样从一台主机传送到另一台主机,但并不经过路由器转发。从整个互联网来看,局域网仍属于数据链路层的范围。
点对点信道
- 数据链路和帧
- 链路:物理线路(物理链路)
- 数据链路:物理线路和通信协议(逻辑链路)
- 帧:数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。
- 一个帧:一段数据的前后分别添加首部和尾部
- 数据链路层有很多协议但是有三个基本的问题是共同的:封装成帧、透明传输、差错检测
- 封装成帧:封装成(framing)就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
- 帧定界:在的数据部分的前面和后面分别添加上首部和尾部,首部和尾部还包括许多必要的控制信息。首部和尾部用来进行帧定界
- 帧定界符:
- SOH
- EOT
- 帧同步:接收方应能接收到的二进制比特流中区分出的起始与终止
- MTU(最大传送单元)
- 透明传输:当数据中有帧定界符时不被当成帧的边界(数据中可能出现的控制字符“SOH”和“EOT”在接收端不被解释为控制字符)
- 具体方法:字节填充/字符填充:
- 发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是 1B,二进制是00011011)。而在接收端的数据链路层在把数据送往网络层之前删除这个插入的转义字符。
- 如果转义字符也出现在数据当中,那么解决方法仍然是在转义字符的前面插入一个转义字符。
- 具体方法:字节填充/字符填充:
- 差错检测:
- 比特差错:比特在传输的过程中可能会产生差错(1->0,0->1)
- 为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施目前在数据链路层广泛使用了循环余检验CRC(Cyclic Redundancy Check)的检错技术
- 循环冗余(检错)
- 求n位冗余码:在 M后面添加n个0。得到的(k + n)位的数除以收发双方事先商定的长度为(n + 1)位的除数 P,得出商是 而余数是 R (n 位,比 P 少一位)。
- 备注:CRC和FCS不是同一个概念,CRC时一种检错方法,FCS是添加在数据后面的冗余码
- 生成多项式:用多项式来表示循环冗余检验过程
- 奇偶校验(检错):n-1位数据和1位校验位组成,校验位用于调节发送言息中的1的个数是偶数还是奇数
- 海明码(纠错)
- 原理:在有效信息位中加入几个校验位形成海明码,并把海明码的每个二进制位分配到几个奇偶校验组中,当某一位出错后,就会引起有关的几个校验位的值发生变化,这不但可以发现错位,而且能指出错位的位置
- 计算过程
- 设n为有效信息的位数k为校验位的数,则信息位n和校验位k应满足
n+k<2^k-1( 若要检测两位错,则需再增加1位校验位,即k+1位) - 确定校验位的分布:规定校验位在海明位号为2^(k-1)位置上,其余各位为信息位
- 分组形成校验关系:被校验数据位的海明位号等于校验该数位的各校验位海明位号之和
- 校验位取值:校验位的值为对应组的所有位求异或
- 设n为有效信息的位数k为校验位的数,则信息位n和校验位k应满足
PPP协议
PPP协议是用户计算机和ISP进行通信时所使用的数据链路层协议
-
特点
-
需满足一些需求
-
简单
-
封装成帧
-
透明性
-
多种网络层协议
-
多种类型链路
-
差错检测
-
检测连接状态
-
最大传送单元MTU
-
网络层地址协商
-
数据压缩协商
-
-
组成部分
-
IP数据报(信息部分)
-
LCP协议(链路控制协议)
-
NCP协议(网络控制协议)
-
-
-
帧格式
-
-
PPP 首部的第四个字段是 2字节的协议字段。当协议字段为 0x021 时,PPP 的信息字段就是 IP 数据报。若为 0xC021,则信息字段是 PPP 链路控制协议 LCP 的数据,而0x8021 表示这是网络层的控制数据
信息字段的长度是可变的,不超过 1500 字节尾部中的第一个字段(2字节)是使用 CRC 的检验序列 FCS -
字节填充
-
零比特填充
-
-
工作状
广播信道
- 局域网的数据链路层
- 静态划分信道
- 动态媒体接入
- CSMA/CD协议
- 要点
- 多点接入(总线型协议)
- 载波监听
- 碰撞检测 (半双工)
- 要点
- 以太网的MAC层
- 硬件地址,物理地址,MAC地址
- MAC帧格式
扩展的以太网
- 在物理层扩展以太网-集线器
- 由a->b
- 碰撞域变大
- 如果三台吞吐量均为10Mbit/s那么b吞吐量为30Mbit/s
- 如果b吞吐量为90Mbit/s那么b中每一台吞吐量均为30Mbit/s
- 数据链路层扩展以太网-交换机
- 交换机实质上是一个多接口的网桥
- 以太网交换机是一种即插即用设备,其内部的帧交换表(又称为地址表)是通过自学习算法自动地逐渐建立起来的。以太网交换机由于使用了专用的交换结构芯片,用硬件转发,其转发速率要比使用软件转发的网桥快很多
- 以太网具有多种速率的接口
- 以太网交换机的自学习功能
- 解释:
- A 先向 B 发送一帧,从接口 1 进入到交换机。
- 交换机收到后,先查找交换表,没有查到应从哪个接口转发这个
- 接着,交换机把这个帧的源地址 A 和接口 1 写入交换表中,并向除接口 1 以外的所有接口播这个帧
- 接下来 B 通过接口3向A 发送一帧
- 交换机查交换表,发现交换表中的MAC地址有 A
- 于是就把这个帧传送到接口 1转发给 A
- 解释:
- 虚拟局域网VLAN