- 第3章 数据链路层
- 使用点对点信道的数据链路层
- 三个基本问题
- (1) 封装成帧
- (2) 透明传输
- (3) 差错检测
- 点对点协议PPP
- PPP协议特点
- PPP协议的组成
- PPP协议的帧格式
- PPP协议的工作状态
- 使用广播信道的数据链路层
- CSMA/CD协议
- 使用集线器的星形拓扑
- 以太网的信道利用率
- 以太网的MAC层
- 扩展的以太网
- 在物理层扩展以太网
- 在数据链路层扩展以太网
- 虚拟局域网
- 高速以太网
- 100BASE-T以太网
- 吉比特以太网
- 10吉比特以太网和更快的以太网
- 使用以太网进行宽带接入
第3章 数据链路层
使用点对点信道的数据链路层
三个基本问题
(1) 封装成帧
帧定界: 确定帧的界限,由首部和尾部决定.
最大传送单元MTU(Maximum Transfer Unit): 数据部分长度上限.
控制字符:
SOH(Start Of Header): 代表首部开始.十六进制编码为01.
EOT(End Of Transmission): 帧的结束.十六进制编码为04.
(2) 透明传输
透明表示某一个实际存在的事物看起来却好像不存在一样.
透明传输的意义在于,数据链路层对这些数据来说是透明的,它们"不知道"这些控制字符的存在.
但是在上图例子中,数据中出现了与控制字符编码相同的字节.导致帧解释错误.
所以为了保证透明传输,必须解决这个问题.
上图称为字节填充法.
发送端在数据中出现控制字符的前面插入一个转义字符"ESC"(十六进制编码为1B),并且对于ESC本身也这样做.
接收端在收到连续的两个转义字符时,就删除其中前面的那个.
(3) 差错检测
比特误差: 比特在传输过程中1变成了0,0变成了1.
误码率BER(Bit Error Rate): 一段时间内,传输错误的比特占所传输比特总数的比率.
循环冗余检验CRC(Cyclic Redundancy Check):
假设数据为M,收发双方事先商定一个除数P.
$\frac{2^nM}{P}=Q\cdots\cdots R$
R即为冗余码,这种冗余码也称为帧检验序列FCS.
帧检验序列FCS(Frame Check Sequence): 为了检错而添加的冗余码.
发送方将冗余码接到数据尾部后发送出去.
接收端把收到的帧除以除数P:
如果传输过程无差错,余数R肯定是0,
但是如果出现误码,余数R有很小的概率等于0,因此可以把R=0当作传输是否有误的判断依据.
CRC无法提供可靠传输,它只能保证基本不会出现比特差错,但是无法保证是否出现帧丢失,帧重复或帧失序.
点对点协议PPP
复习: ISP(Internet Serverce Provider)
PPP协议特点
(1) 简单: 对每个帧进行CRC检验,如果检验正确就收下这个帧,反之就丢弃这个帧.
(2) 封装成帧: 必须规定特殊的字符作为帧定界符.
(3) 透明性: 同上文的透明传输,必须采取有效的措施处理数据中与帧定界符相同的字节.
(4) 多种网络层协议: 在同一条物理链路上同时支持多种网络层协议.
(5) 多种类型链路: 能够在多种类型的链路上运行.
(6) 差错检测: 必须对接收端收到的帧进行检测,并立即丢弃有差错的帧.
(7) 检测连接状态: 能够及时自动检测出链路是否处于正常工作状态.
(8) 最大传送单元: 必须设置最大传送单元MTU的标准默认值.
(9) 网络层地址协商: 提供机制使通信的两个网络层的实体能够通过协商知道或能够配置批次的网络层地址.
(10) 数据压缩协商: 提供一种方法来协商使用数据压缩算法.
PPP协议的组成
PPP协议的帧格式
- 连续两帧之间只需要一个标志字段F,如果出现连续两个F,就表示这是一个空帧,应当丢弃.
- A地址字段,C控制字段,目前没有什么意义.
- 后两个字节是协议字段
- 0x0021代表IP数据报.
- 0xC021代表PPP链路控制协议LCP的数据.
- 0x8021代表网络层的控制数据.
字节填充
转义符定义为0x7D,按照一定的规则转换信息字段,接收端则使用相反的规则恢复原来的信息.
零比特填充
在同步传输的情况下使用此方法(一连串比特连续传送).
在5个连续1后填入一个0,保证信息部分不会出现标志字段.
PPP协议的工作状态
使用广播信道的数据链路层
CSMA/CD协议
同时只能有一个站发送数据,所以必须边发送边监听,遇到碰撞后停止发送.
最迟需要两倍的总线端到端传播时延才能知道自己发送的数据和其他站发送的数据是否发生碰撞.这段时间称为争用期.
使用集线器的星形拓扑
- 实际上还是一个总线网,使用CSMA/CD协议.
- 集线器工作在物理层
以太网的信道利用率
$\alpha=\frac{\tau}{T_0}$
$\alpha$是以太网单程端到端时延$\tau$与帧的发送时间$T_0$之比.
$\alpha\rightarrow0$表示一发生碰撞,就可以检测出来,并立即停止发送,所以信道资源利用率高.
理论极限信道利用率$S_{max}=\frac{T_0}{T_0+\tau}=\frac{1}{1+\alpha}$
所以要让参数$\alpha$尽可能小.
以太网的MAC层
硬件地址
现在一般使用6字节48位数字表示硬件地址,又称为物理地址或MAC地址.
MAC帧的格式
前8个字节: 用于发送端和接收端的时钟同步,前7个字节为1010交替出现,最后一个字节为10101011,代表MAC帧将要开始.
MAC帧最小长度为64字节,最大长度为1518字节,由于首部和尾部总占18字节,所以数据字段的最小长度为46字节.
数据字段不足46字节时,在后面加入一个整数字节的填充字段,IP层根据"总长度"自动丢弃填充字段.
由于以太网采用曼彻斯特编码,所以接收方不需要知道帧长度,只要电压不再变化,就代表MAC帧结束.所以以太网在传送帧时,各帧之间必须有一定的间隙.
扩展的以太网
在物理层扩展以太网
使用集线器扩展,缺点是扩大了冲突域,并且只能连接相同以太网.
在数据链路层扩展以太网
- 网桥
- 交换式集线器,也称为以太网交换机.
以太网交换机的自学习功能
交换机收到帧后,查找交换表中是否有目的地址的信息,如果没有,就向除了源接口以外的所有接口广播这个帧,由主机处理过滤.否则就仅转发给目的地址对应的接口.
如果表中没有这个帧的源地址信息,则把它对应的接口写入交换表.
这样一来,交换机的交换表很快就会填入每个主机的信息,使转发更快.
以太交换机不使用共享总线,因此不使用CSMA/CD协议,以全双工方式工作,但是仍然采用以太网的帧结构.
虚拟局域网
虚拟局域网的作用:
每个VLAN的计算机可处在不同局域网中,也可以不在相邻的物理位置,为局域网提供了很强的灵活性.
VLAN标记(tag)
在原来的以太网帧格式中,在源地址和类型之间插入4字节的VLAN标记,用来支持虚拟局域网.
插入了VLAN标记的帧称为802.1Q帧.
VLAN标记格式:
前两字节为0x8100,用来表示此帧为802.1Q帧.
后两个字节:
- 前3位是用户优先级字段
- 接着1位是规范格式指示符CFI(Canonical Format Indicator)
- 最后12位是VLAN标识符VID(VLAN ID),唯一地标志了这个以太网帧属于哪个VLAN.
高速以太网
100BASE-T以太网
吉比特以太网
10吉比特以太网和更快的以太网
以太网是:
- 可扩展的(10Mbit/s到100Gbit/s)
- 灵活的(多种媒体、全/半双工、共享/交换)
- 易于安装
- 稳健性好
使用以太网进行宽带接入
问题: 以太网的帧格式标准中,没有用户名字段,也没有鉴别过程.
解决方法:PPPoE(PPP over Ethernet)
把PPP协议中的PPP帧封装到以太网中传输.