计算机和网络(三)——数据链路层
1. 使用点对点信道的数据链路层
点对点信道:使用一对一的点对点通信方式
另一种信道:
广播信道:
- 使用一对多的广播通信方式
- 必须使用专用的共享信道协议来协调主机的数据发送
1.1 链路
- 链路是一条无源的点到点的物理线路段,中间没有任何其他的交换节点。一条链路是一条通路的一个组成成分。
- 数据链路:除了物理线路外,还必须有通信协议来控制数据的传输。如果把这些协议的硬件和软件加到链路上,就构成了数据链路。如使用适配器(网卡)来实现协议的硬件和软件。
- 物理链路:上面的链路
- 逻辑链路:上面的数据链路,是物理链路加上必要的通信协议。(早期也被叫做通信规程)
1.2 帧
1.3 数据链路层协议三个基本问题
1.3.1 封装成帧
封装成帧就是在一段数据的前后分别添加首部和尾部,然后就构成一个帧。首部和尾部的作用是进行帧定界。(首部是用来确定帧的数据部分是从哪里开始的,而尾部是用来确定数据部分什么时候结束)
- 当数据是由可打印的 ASCII 码组成的文本文件时,帧定可以使用特殊的帧定界符
- 控制字符 SOH(Start Of Header)放在帧的最前面,表示帧的首部开始,控制字符 EOT(End Of Transmission)表示帧的结束。
1.3.2 透明传输
在数据链路层透明传送数据表示无论发送什么样的数据,这些数据都能够按照原样没有差错地通过数据链路层。
透明传输出现的问题:
解决透明传输问题:
- 解决办法:字节填充或字符填充
- 发送端的数据链路层在数据中出现 SOH 或 EOT 的前面插入一个转义字符 ESC。(先把 SOH 和 EOT 的作用屏蔽掉,之后再把转义字符去掉,恢复功能)
- 接收端的数据链路层在将数据送往网络层之前删除插入的转义字符
- 如果转义字符也出现在数据中,也要在转义字符之前插入一个 ESC。当接收端收到连续的两个转义字符时,就删除前面的一个转义字符。
1.3.3 差错控制
在传输过程中可能会产生比特差错:1 可能会变成 0,而 0 也可能会变成 1。
- 误码率 BER(Bit Error Rate):在一段时间内,传输错误的比特占所传输比特总数的比率
- 在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC的检错技术。
循环冗余检验的原理:
- 在发送端,先把数据划分为组
- 在魅族后面再添加供差错检测用的 n 位冗余码,然后一起发送出去
冗余码的计算示例:
帧检验序列 FCS:
- 帧检验序列:在数据后面添加的冗余码
- 循环冗余检验 CRC 和帧检验序列不相同
- CRC 是一种常用检错方法,而 FCS 是添加在数据后面的冗余码
- FCS 可以用 CRC 得出,但 CRC 并不是获得 FCS 的唯一方法
单纯使用 CRC 差错检测技术不能实现”无差错传输”或”可靠传输”
“无比特差错”和”无传输差错”是不同的概念。
在数据链路层使用 CRC 检验,能够实现无比特差错的传输,但不是可靠传输
2. 点对点协议 PPP
2.1 PPP 的特点
- 点对点的链路使用最广泛的数据链路层协议是点对点协议 PPP
- PPP 协议在 1994 年成为互联网的正式标准
2.1.1 PPP 协议要满足的要求
- 简单
- 封装成帧:必须规定特殊的字符作为帧定界符
- 透明性:必须保证数据传输的透明性
- 多种网络层协议:能够在同一条物理链路上同时支持多种网络层协议
- 多种类型链路:可以在多种类型的链路上运行
- 差错检验:能够对接收端收到的帧进行检测,并立即丢弃有差错的帧
- …
2.1.2 PPP 协议的组成
- 一个将 IP 数据报封装到串行链路的方法
- 链路控制协议 LCP
- 网络控制协议 NCP
2.2 PPP 协议的帧格式
- PPP 帧的首部和尾部分别为 4 个字段和 2 个字段
- 标志字段 F=0x7E
- 地址字段 A=0xFF
- 控制字段 C=0x03
- PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节
实现透明传输:
- 当 PPP 用在异步传输时,采用一种特殊的字符填充法(P79)
- 当 PPP 用在同步传输链路时,采用零比特填充来实现透明传输(P80)
3. 使用广播信道的数据链路层
3.1 局域网的数据链路层
局域网主要特点:
- 网络为一个单位所拥有
- 地理范围和站点数据都有限
3.1.1 以太网的两个标准
- DIX Ethernet V2是世界上第一个局域网产品(以太网)的规约
- IEEE 802.3是第一个 IEEE 的以太网标准 严格来说,以太网值得应该是符合 DIX Ethernet V2 标准的局域网
3.1.2 适配器
网络接口板又称为通信适配器或网络接口卡NIC, 或网卡
适配器的功能:
- 进行串行/并行转换
- 对数据进行缓存
- 在计算机的操作系统安装设备驱动程序
- 实现以太网协议
3.2 CSMA/CD 协议
3.2.1 背景
最初的以太网是将很多台计算机连接到一根总线上。但是,当很多台计算机同时发送时,会发生碰撞或冲突,导致发送失败。
3.2.2 以太网采取的两种重要的措施
- 采用较为灵活的无连接的工作方式
- 以太网发送的数据都是用曼彻斯特编码
3.2.3 CSMA/CD
CSMA/CD 含义:载波监听多点接入/碰撞检测
- 载波监听:指每一个站在发送数据之前先要检测以下总线上是否有其他计算机在发送数据,如果有,则先不发送数据,避免发生碰撞
- 多点接入:表示许多计算机以多点接入的方式连接在一根总线上
- 碰撞检测:是计算机边发送数据边检测信道上的信号电压大小。当几个站同时在总线上发送数据时,总线上的信号电压摆动值会增大。所以,当信号电压摆动值超过一定值时,并认为总线上至少右两个站在同时发送数据,表明产生了碰撞。
因为发送碰撞后,总线上传输的信号会产生严重的失真,无法会恢复出有用的信息。所以,一旦发现总线上出现了碰撞,就要立即停止发送,然后等待一段随机时间后再次发送。
争用期:
- 最先发送数据帧的站,在发送数据后至多经过时间**2i(两倍的 1 端到端往返时延)**就可以知道发送的数据帧有没有发生碰撞
- 争用期:以太网的端到端的往返时延 2i
- 经过争用期的这段时间还没有检测到碰撞的话,才可以肯定这次发送不会发生碰撞
以太网使用截断二进制指数退避算法来确定重传的时机。(P88)
10Mbit/s 以太网争用期的长度:
- 10Mbit/s 以太网取 51.2μs 为争用期的长度
- 对于 10Mbit/s 的以太网,在争用期内可以发送 512bit,即 64 字节
即以太网在发送数据时,若前 64 字节没有发生冲突,则之后的数据也不会发生冲突。
以太网规定了最短有效帧长为 64 字节,凡是长度小于 64 字节的帧都是由于冲突而异常中止的无效帧
CSMA/CD 协议的重要特性:
- 使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行半双工通信(双向交替通信)
- 每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性
3.2.4 以太网的 MAC 层
1. MAC 层的硬件地址
- 在局域网中,硬件地址又称为物理地址,或MAC 地址
45 位的 MAC 地址:
- IEEE802 标准规定 MAC 地址字段可以采用 6 字节(48 位)或 2 字节(16 位)这两种中的一种
- 地址字段 6 个字节中的前 3 个字节,是 IEEE 的注册管理机构 RA 向厂家分配的,称为组织唯一标识符
- 地址字段 6 个字节中的后 3 个字节由厂家自行指派,称为扩展唯一标识符,必须保证生产出的适配器没有重复地址
适配器检查 MAC 地址:
- 适配器从网络上每收到一个 MAC 帧就首先用硬件检查 MAC 帧中的 MAC 地址 如果是发往本站的帧则收下, 否则就将此帧丢弃。 发往本站的帧包括三种:
- 单播帧(一对一)
- 广播帧(一对全体)
- 多播帧(一对多)
- 所有的适配器都能够识别单播地址和广播地址
- 只有目的地址才能使用广播地址和多播地址
3.2.5 MAC 帧的格式
两种标准:
- DIX Ethernet V2 标准
- IEEE 的 802.3 标准
最常用的 MAC 帧是以太网 V2 的格式
类型字段:用来标志上一层使用的是什么协议
数据字段:46 ~ 1500 字节
数据字段的最小长度(46 字节) = 最小长度 64 字节 - 18 字节的首部和尾部
至于最小长度为什么是 64 字节,参考 CSMA/CD 协议的争用期部分
当数据字段的长度小于 46 字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的 MAC 帧长不小于 64 字节,不会被当成无效帧
无效的 MAC 帧:
- 数据字段的长度与长度字段的值不一致
- 帧的长度不是整数个字节
- 用帧检验序列 FCS 查出有差错
- 数据字段的长度不在 46 ~ 1500 字节之间
- MAC 帧长度不再 64 ~ 1518 字节之间
帧间最小间隔:
- 帧最小间隔为 9.6us,相当于 96bit 的发送时间
- 一个站在检测到总线开始空闲后,还要等待 9.6us 后才能再次发送数据
- 目的:清理前一个的接收缓存,做好接收下一帧的准备
4. 扩展的以太网
4.1 在物理层扩展以太网
4.1.1 使用光纤扩展
主机使用光纤和一对光纤调制解调器连接到集线器
4.1.2 使用集线器扩展
将多个以太网连成更大的、多级星形结构的以太网
优点:
- 使原来属于不同碰撞域的以太网上的计算机能够进行跨碰撞域的通信
- 扩大了以太网覆盖的地理范围
缺点:
- 碰撞域增大了,但是总的吞吐量并没有提高
- 如果不同的碰撞使用不同的数据率,就不能用集线器把它们互连起来
4.2 在数据链路层扩展以太网
在数据链路层扩展以太网更常用
早期使用网桥,现在使用以太网交换机
4.2.1 网桥
- 网桥工作在数据链路层
- 根据 MAC 帧的目的地址对收到的帧进行转发和过滤
- 当网桥收到一个帧时,不会向所有的接口转发这个帧,而是先检查这个帧的目的 MAC 地址,然后确定要把它转发到哪一个接口,或丢弃它。
4.2.2 以太网交换机
实质就是一个多接口的网桥
优点:
- 用户独享带宽,增加了总容量
- 从共享总线以太网转到交换式以太网时,所有接入设备的软件和硬件、适配器等都不需要做任何改动
- 一般有多种速率的接口
以太网的交换方式:
- 存储转发方式:将整个数据帧先缓存后再进行处理
- 直通方式:接收数据帧的同时,立即按数据帧的目的 MAC 地址决定该帧的转发接口,提高了帧的转发速度,可能会把一些无效帧也转发给其他的站
**以太交换机的自学习功能(p100 或 ppt139)**:
4.2.3 从总线以太网到星形以太网
- 早期以太网采用无源的总线结构,现在采用以太网交换机的星形结构
- 总线以太网使用 CSMA/CD 协议,以半双工方式工作
- 以太网交换机不使用共享总线,没有碰撞问题,所以不使用 CSMA/CD 协议,以全双工方式工作。仍然采用以太网的帧结构
4.3 虚拟局域网
虚拟局域网 VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。
虚拟局域网只是局域网给用户提供的一种服务,而不是一种新型局域网
虚拟局域网(VLAN)的主要优点:
- 改善了性能
- 简化了管理
- 降低了成本
- 改善了安全性
划分虚拟局域网的方法(ppt162)
- 基于交换机端口
- 基于计算机网卡的 MAC 地址
- 基于协议类型
- 基于 IP 子网地址
- 基于高层应用或服务
5. 高速以太网
高速以太网:速率达到或超过 100Mbit/s 的以太网
5.1 100BASE-T 以太网
100BASE-T 以太网也叫快速以太网,代号为IEEE 802.3u
特点:
- 可在全双工方式下工作而无冲突发生。在全双工方式下工作时,不使用 CSMA/CD 协议
- MAC 帧格式仍然是 802.3 标准规定的
- 保持最短帧长不变,将一个网段的最大电缆长度减小到 100 米
- 帧间时间间隔从原来的 9.6 us 改为现在的 0.96 us
5.2 吉比特以太网
- 允许在 1 Gbit/s 下以全双工和半双工两种方式工作
- 使用 IEEE 802.3 协议规定的帧格式
- 在半双工方式下使用 CSMA/CD 协议,全双工方式下不使用 CSMA/CD 协议
- 为了保持 64 字节最小帧长度,以及 100 米的网段的最大长度,吉比特以太网增加了载波延伸和分组突发两个功能(当吉比特以太网工作在全双工方式时,不需要这两个功能) 载波延伸:使最短帧长仍为 64 字节,同时将争用期长度增长为 512 字节分组突发:当很多短帧要发送时,第一个短帧要采用载波延伸方法进行填充,随后的一些短帧可以一个接一个地发送,只需留必要的帧间最小间隔