OSI 数据链路层的功能是:使网络层数据包做好传输准备以及控制对物理介质的访问。
数据链路层执行以下两种基本服务:
1) 允许上层使用成帧之类的各种技术访问介质
2) 控制如何使用介质访问控制和错误检测之类的各种技术将数据放置到介质上, 以及从介质接收数据。
数据链路层的术语:
l 帧 — 数据链路层 PDU
l 节点 — 在第 2 层对连接到公共介质的网络设备的称谓
l 媒体/介质(物理) — 用于在两个节点之间传输信息的物理手段
l 网络(物理) — 连接到公共介质的两个或多个节点
数据链路层的作用就是:根据物理的介质来封装帧的格式,以便在介质能够传输。(到达一个目的的终端,中间可能封装了多个帧格式)
创建帧:
数据链路层协议需要控制信息才能使协议正常工作。控制信息可能提供以下信息:
l 哪些节点正在相互通信
l 各节点之间开始通信和结束通信的时间
l 节点通信期间发生了哪些错误
l 接下来哪些节点会参与通信
数据链路层帧包括:
l 数据 — 来自网络层的数据包
l 帧头 — 包含控制信息(如编址信息)且位于 PDU 开头位置
l 帧尾 — 包含添加到 PDU 结尾处的控制信息
数据链路层是将上层的数据包加上帧头和帧尾,以便可以在介质上传输。
控制典型字段类型包括:
l 开始和停止指示字段 — 帧的开始和结束限制
l 命名或编址字段
l 类型字段 — 包含在帧中的 PDU 的类型
l 质量 — 控制字段
l 数据字段 — 帧负载(网络层数据包)
数据链路层分为2个子层:
逻辑链路控制:将数据包封装层帧,表示网络层协议。
介质访问控制:标明帧的地址,标示帧的开始和结束位置。
共享介质的介质访问控制:
对于共享介质,有两种基本介质访问控制方法:
受控 — 每个节点各自都有使用介质的时间(就是说你用完了我在用。)
争用 — 所有节点自由竞争介质的使用权(就是大家都在抢这使用。)这种机制会造成网络的混乱,为了防止在介质上造成混乱,使用了载波监听多路访问(CSMA)就是说先检测一下介质是否正在传输数据,如果检测到有数据在则等待一个时间在检查,如果没有就直接发送。由于网络的节点增加,无冲突的概率不断降低。(为什么会降低:如果没有人在使用介质,那么2个数据同时发送则就出现了冲突!)
CSMA 通常与用于解决介质争用的方法配合使用。两种常用方法为:
载波侦听多路访问/冲突检测(CSMA/CD)
设备监视介质中是否存在数据信号。若无数据信号,则表示介质处于空闲状态,设备可传输数据。如果随后检测到另一设备此时正在进行传输,所有设备将停止发送并在稍后重试。传统的以太网形式便是使用此方法。
载波侦听多路访问/冲突避免(CSMA/CA)
设备会检查介质中是否存在数据信号。如果介质空闲,设备将通过它想要使用的介质发送通知。然后,设备开始发送数据。802.11 无线联网技术即是使用此方法。
非共享介质的介质访问控制:
非共享介质的介质访问控制协议需要少量甚至不需要控制。这些协议具有更简单的介质访问控制规则和过程。点对点拓扑即是如此。
在点对点连接中,数据链路层必须考虑通信为半双工还是全双工。
半双工:就想对讲机一样一端说话另一端就不能说话。
全双工:就想电话一样双方可以同时传送数据!
数据链路层协议------帧:
虽然有许多描述数据链路层帧的不同数据链路层协议。
每种帧均都有三个基本组成部分:
1) 帧头
2) 数据
3) 帧尾
帧头的功能:帧头包含了数据链路层协议针对使用的特定逻辑拓扑和介质指定的控制信息。帧控制信息对于每种协议均是唯一的。第 2 层协议使用它来提供通信环境所需的功能。
典型帧头字段包括:
l 帧首字段 — 表示帧的起始位置
l 源地址和目的地址字段 — 表示介质上的源节点和目的节点
l 优先级/服务质量字段 — 表示要处理的特殊通信服务类型
l 类型字段 — 表示帧中包含的上层服务
l 逻辑连接控制字段 — 用于在节点间建立逻辑连接
l 物理链路控制字段 — 用于建立介质链路
l 流量控制字段 — 用于开始和停止通过介质的流量
l 拥塞控制字段 — 表示介质中的拥塞
编址—帧的去向:数据链路层提供了通过共享本地介质传输帧时要用到的编址方法。此层中的设备地址称为物理地址。数据链路层地址包含在帧头中,它指定了帧在本地网络中的目的节点。帧头还可能包含帧的源地址。
编址要求
该层中的数据链路层编址需求取决于逻辑拓扑。
仅具有两个互连节点的点对点拓扑不需要编址。一旦到了介质上,帧就只有一个去处。
由于环拓扑和多路访问拓扑可连接公共介质上的多个节点,因而此类拓扑需要编址。在帧到达拓扑中的各节点时,节点会检查帧头中的目的地址以确定自身是否为帧的目的地。