数据链路层使用的信道主要有以下两种类型:
- 点对点信道:一对一的点对点通信方式
- 广播信道:一对多的广播通信方式
三个基本问题
- 封装成帧
- 透明传输
- 差错检测
数据链路层的几个共同问题
数据链路和帧
链路:从一个节点到相邻节点的一段物理线路。链路只是一条路径的组成部分。
数据链路:在一条线路上传输数据时,除了必须有一条物理线路外,还必须有一些必要的通信协议来控制这些数据的传输。把实现这些协议的硬件和软件加到链路上,就构成了数据链路。最常用的方法是使用网络配置器来实现这些协议。
帧:点对点信道的数据链路层的协议数据单元。
封装成帧
简言之将一段数据的前面和后面分别加上首部和尾部,使其封装成帧。首部和尾部的一个重要作用就是用于帧定界。首部和尾部还包含着一些必要的控制信息。发送帧时,是从帧首部开始发送,因此,为了提高发送帧的效率,数据部分应该尽可能的比首部和尾部的长度大。但是每一种链路层协议都对帧首部和帧尾部制定了格式,规定了帧的数据部分的最大传送单元MTU。
当数据是ASCII文本时,可以使用特殊的帧定界符(ASCII表示),例如将控制字符SOH放在一帧的最前面,表示帧的开始,EOT放在帧的最后,表示一帧的结束。当传输遇到差错时,接收端可以通过判断开始符和结束符是否同时存在而判断是否为完整的一帧,如果只有开始符而没有结束符,此帧将会被丢弃。
透明传输
当传输的帧时用文本文件组成的帧时,其数据部分中不会出现类似于SOH和EOT的控制字符。就是说传输过去的数据都是在键盘上可以打出的信息,控制字符信息不会被传输到接收方。
循环冗余码CRC
发送方: 将发送的数据作为被除数,假设被除数为M,除数为P(接收方和发送方规定好的数),P为k位,先将M左移k-1位,然后对P进行模二运算,计算出余数R,将余数加到被除数M上,即M = M*2k-1+R
,发送新的M。
**检验:**接收方收到数据后,用接受到的数对规定好的除数P进行模二运算,若余数为0,则数据无差错,否则有差错。
模二运算:
加法不进位,减法不借位,类似于位运算的异或运算,相同为0,相异为1
例如:M为101001,P为1101
计算完成之后将余数拼接在被除数后面,即101001001,接收方接收到信息后,用拼接后的数据对除数P进行模二运算,余数为0,则数据无差错。
PPP协议
满足的需求
- 简单
- 封装成帧
- 透明性
- 差错检测
- 支持多种网络层协议
- 支持多种类型链路
- 检测连接状态
- 设置最大传送单元
- 网络层地址协商
- 数据压缩协商
不需要的功能
- 纠错
- 流量控制
- 序号
- 多点线路
- 半双工或单工链路,只支持全双工
组成
- 一个将IP数据报封装到串行链路的方法,能够支持同步和异步链路
- 链路控制协议LCP,用来建立、配置和测试数据链路连接
- 网络控制协议NCP,满足对网络层协议的支持
PPP协议的帧格式
- 首部有四个字段,尾部有两个字段
- 标志字段:1字节,F=0x7E,帧定界,二进制为(0111 1110)
- 地址字段:1字节,A=0xFF,不起作用
- 控制字段:1字节,C=0x03,不起作用
- 协议地段:2字节
- 若为0x0021,则信息字段就是IP数据报
- 若为0x8021,则信息字段是网络控制数据
- 若为0xC021,则信息字段是PPP链路控制数据
- 若为0xC023,则信息字段是鉴别数据
- 信息部分:长度可变,不超过1500字节
- 尾部第一个字段2字节,是使用CRC的帧校验列FCS
PPP协议解决透明传输问题
- 在同步传输中,协议采用0比特填充方法解决问题
- 在发送端,只要数据部分中有五个连续的1,就立即填充一个0
- 在接收端,每当发现5个连续的1,就将连续的5个1后面的0去掉
- 在异步传输中,采用字符填充的方法
- 将信息字段中的每一个0x7E字节转变为2字节序列(0x7D,0xE)
- 将信息字段中出现的一个0x7D的字节,将其转变成2字节序列(0x7D,0x5D)
- 若信息字段中出现ASCII码的控制字符(数值小于0x20的字符),则在该字符前面加上0x7D,同时将该字符的编码改变。
局域网的数据链路层
局域网:
在较小的物理范围内,利用通信线路将许多数据设备连接起来,实现彼此之间的数据传输和资源共享的系统称为局域网。
特点:
- 网络为一个单位所拥有
- 地理范围和站点数目均有限
优点:
- 具有广播功能,从一个站点可以很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源
- 便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变
- 提高了系统的可靠性、可用性和残存性
数据链路层的两个子层
- 媒体接入控制MAC子层
- 逻辑链路控制LLC子层
与接入到传输媒体有关的都放在MAC子层,LLC与传输媒体无关
适配器
网络接口板又称为通信适配器或 网卡或网络接口卡NIC
功能:
- 进行串行/并行转换
- 对数据进行缓存
- 在计算机的操作系统安装设备驱动程序
- 实现以太网协议
CSMA-CD协议
以太网的连接
最初将许多计算机连接到一根总线上,某个主机要发送信息时,通过广播的方式向其他主机发送,其他主机辨别,如果是传播给自己的就接受,否则就不接受。
以太网的两种措施
- 无连接的工作方式
- 不必建立连接就可以发送数据
- 对发送的数据帧不进行编号,也不要求对方发回确认
- 当目的站收到有差错的数据帧时就丢弃此帧,然后什么也不做,差错的纠正由高层来决定
- 如果高层发现丢失了一些数据而进行重传,但以太网并不知道这是一个重传的帧,而是当做一个新的数据帧来发送
- 以太网采用曼彻斯特编码
媒体共享技术
- 静态划分信道
- 频分复用
- 时分复用
- 波分复用
- 码分复用
- 动态媒体接入控制
- 随机接入
- 受控接入
CSMA/CD
- 多点接入
- 许多计算机以多点接入的方式连接在同一根总线上
- 载波监听
- 每一个站在发送数据之前先要检测一下总线上是否有其他的计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。
- 碰撞检测
- 计算机边发送数据边检测信道上的信号电压大小
- 检测到碰撞后
- 一旦发现碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送
特性
- 使用CMSA/CD协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)
- 每个站点在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性
- 这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率
- 某站点最多经过2τ(51.2μs)能够检测到冲突,此处的2τ(往返时延)被称为争用期,经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞
截断二进制指数类型退避算法
- 发生碰撞的站点在停止发送数据后,要推迟一个随机时间才能再次发送数据
- 基本退避时间,一般为争用期
- 确定重传次数k,k <= 10,即k = Min[重传次数,10]
- 从整数集合[0,1,2,3…,(2k-1)]中随机地取出一个数,记为r,重传所需的时延就是r倍的基本退避时间
- 当重传16次仍不能成功即丢掉该帧,并向高层报告
使用集线器的星型拓扑
双绞线连接标准
10Mbps与100Mbps双绞线系统采用相同的线序:1、2两根线为一对,3、6两根线为另一对
- 主机和路由器相连接,使用直连方法
- 当两个同类连接时,要使用交叉连接方法
以太网的MAC层
MAC层的硬件地址
- 在局域网中,硬件地址又称为物理地址或者MAC地址
- 802标准所说的的地址严格地讲应该是网卡地址
48位的MAC地址
- 组织唯一标识符由IEEE的注册管理机构RA负责向厂家分配地址字段中的前三个字节(24位),地址字段后3个字节由厂家自行指派,必须保证生产出的适配器没有重复的地址
- 生产适配器时,6字节的MAC地址已经被固化在适配器的ROM中,因此,MAC地址也叫做物理地址或硬件地址
单站地址/组地址/广播地址
- IEEE 规定地址字段的第一个字节的最低位为I/G位,I/G位表示Individual/Group
- 当I/G位 = 0时,地址字段表示一个单站地址
- 当I/G位 = 1时,表示组地址,用来进行多播(或组播)。此时,IEEE只分配地址字段的前三个字节中的23位
- 当I/G位分别为0和1时,一个地址块可分别生成223个单个站地址和223个组地址
- 所有48位都为1时,为广播地址,只能做目的地址使用
MAC帧格式
- DIX Ethernet V2标准
- IEEE的802.3标准
DIX Ethernet V2标准的帧格式
- 数据部分为什么设置46~1500?
- 最大传送单元为1500字节
- 最短有效帧长为64字节,64字节减去目的地址、源地址、类型和FCS,就是46字节
- 当IP数据报不够46字节时,应在数据字段后面加入整数字节的填充字段,以保证以太网的MAC帧长不小于64字节
- 在传输时,物理层还要增加8个字节 ,第一个字段为7个字节,是前同步码,用来迅速实现MAC帧的比特同步,第二个字段1个字节时帧开始定界符,表示后面的信息就是MAC帧
- - 无效的MAC帧
- 帧的长度不是整数个字节
- 用收到的帧检验序列FCS查出有错
- 数据字段的长度不在46·1500字节之间
以太网扩展
以太网扩展的目的
- 扩大网络的覆盖范围
- 在网络层仍然是一个网络
物理层扩展
- 使用光纤扩展
- 使用集线器扩展
- 使用多个集线器可连接成更大的、多级星形结构的以太网
- 三个独立的以太网又叫三个独立的碰撞域
- 在同一个碰撞域会发生碰撞,不同碰撞域之间不会发生碰撞
- 若要将三个碰撞域连接在同一个以太网,则可以再添加一个主干集线器
- 此时三个碰撞域成为一个碰撞域,互相之间会发生碰撞
- 优点:
- 把不同的局域网组成同一个局域网
- 缺点:
- 碰撞域增大了,总的吞吐量并未提高
- 若不同的碰撞域使用不同的数据率,那么不能用集线器将他们互连起来
数据链路层扩展
早期使用网桥,现在使用以太网交换机
- 网桥工作在数据链路层,根据MAC帧的目的地址对收到的帧进行转发和过滤
- 当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查目的MAC地址,然后确定将该帧转发到哪一个接口,或者把它丢弃
以太网交换器的特点
- 多端口
- 全双工
- 并行工作
- 存储转发
- 内部的帧交换表是通过自主学习算法自动地逐渐建立起来的
- 使用了专用的交换结构芯片,用硬件转发,转发速率要网桥快很多
- 用户独享带宽,增加了总容量
以太网交换机的交换方式
- 存储转发方式
- 把整个数据帧先缓存后再进行处理
- 直通方式
- 接受数据帧的同时就立即按数据帧的目的MAC地址决定该帧的转发接口
- 缺点是不检查差错就发送
以太网交换机的自主学习功能
A->B发送信息
- 查看帧地址表,表中没有目的地址信息,那么A进行广播,将A的MAC地址和端口号以及有效时间登记在帧地址表中
- B向A发送信息确认,登记B的信息
C ->A发送信息
- 查看帧地址表,找到A的信息,向A发送数据,登记C的MAC地址、端口号和有效时间
- A向C发送确认信息,并更新帧地址表中A的信息