数据链路层
重点知识
- 数据链路层的点对点信道(ppp协议)、广播信道(CSMA/CD协议)
- 三个基本问题:封装成帧、透明传输、差错检测
- 以太网MAC层的硬件地址
3.1 使用点对点信道的数据链路层
3.1.1 数据链路与帧
- 链路就是从一个结点到相邻结点的一段物理线路(有限或无线),而中间没有任何其他的交换结点。在进行数据通信时,两台计算机之间的通信路径往往要经过许多段这样的链路。
- 数据链路则是另一个概念,这是因为当需要在一条线路上传送数据时,除了必须有一条物理线路外,还必须有一些必要的通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
- 早期的数据通信协议曾叫做通信规程。因此在数据链路层,规程和协议是同义语。
- 数据链路层的协议数据单元 - 帧(数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层)
3.1.2三个基本问题(封装成帧、透明传输、差错检测)
封装成帧
封装成帧就是在一段数据前后分别添加首部和尾部。接收端以便从收到的比特流中识别帧的开始与结束,帧定界是分组交换的必然要求。
SOH
(Start Of Header):帧开始
EOT
(End Of Transmission):帧结束
透明传输
透明传输避免消息符号与帧定界符号相混淆。发送端的数据链路层在数据中出现SOH
或EOT
的前面插入转义字符ESC
。而在接收端的数据链路层再把数据送往网络层之前删除这个插入的转义字符。(字节填充 / 字符填充)
差错检测
差错检测防止差错的无效数据帧,浪费网络资源。使用循环冗余检测(CRC)
的检错技术。
3.2 点对点协议PPP
3.2.1PPP协议的特点
ppp协议满足的需求
- 简单
- 封装成帧
- 透明性
- 多种网络层协议
- 多种类型链路
- 差错检测
- 检测连接状态
- 最大传输单元
- 网络层地址协商
- 数据压缩协商
ppp协议的组成
- 一个将IP数据报封装到串行链路的方法
- 一个用来建立、配置和测试数据链路连接的链路控制协议LCP(Link Control Protocol)
- 一套网络控制协议NCP(Network Control Protocol)。
3.2.2PPP协议帧格式
各字段的意义
字节填充
- 0x7E->(0x7D,0x5E)
- 0x7D->(0x7D,0x5D)
- 小于0x20的字符:0x03->(0x7D,0x23)】
零比特填充
只要有5个连续1,则立即填入一个0
3.2.3PPP 协议的工作状态
- 当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。
- lPC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。
- 这些分组及其响应选择一些 PPP 参数,并进行网络层配置,NCP 给新接入的 PC 机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。
- 通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。
PPP 协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容。
3.3使用广播信道的数据链路层
3.3.1局域网的数据链路层
为了使数据链路层能更好地适应多种局域网标准,IEEE 802 委员会就将局域网的数据链路层拆成两个子层:
- 逻辑链路控制
LLC (Logical Link Control)
子层; - 媒体接入控制
MAC (Medium Access Control)
子层。
(与接入到传输媒体有关的内容都放在 MAC
子层,而 LLC
子层则与传输媒体无关。)
3.3.2CSMA/CD 协议
CSMA/CD 协议
意思是载波监听多点接入/碰撞检测
- “多点接入”表示许多计算机以多点接入的方式连接在一根总线上。
- “载波监听”是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。
工作流程
最先发送数据帧的站,在发送数据帧后至多经过时间 2 τ 2\tau 2τ (两倍的端到端往返时延)就可知道发送的数据帧是否遭受了碰撞。
二进制指数类型退避算法
发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据。
- 基本退避时间取为争用期 2t 。
- 从整数集合 [0, 1, … , (2k - 1)] 中随机地取出一个数,记为 r。重传所需的时延就是 r 倍的基本退避时间。
- 参数 k 按下面的公式计算: k = M i n [ 重传次数 , 10 ] k = Min[重传次数, 10] k=Min[重传次数,10]
- 当 k ≤ 10 k ≤10 k≤10时,参数 k 等于重传次数。
- 当重传达 16 次仍不能成功时即丢弃该帧,并向高层报告。
3.3.3使用集线器的星形拓扑
采用双绞线的以太网采用星形拓扑,在星形的中心则增加了一种可靠性非常高的设备,叫做集线器 (hub)。
3.3.4以太网的信道利用率
当发生碰撞时,信道资源实际上是被浪费了。因此,当扣除碰撞所造成的信道损失后,以太网总的信道利用率并不能达到 100%。
3.3.5以太网的 MAC 层
- MAC 层的硬件地址
- MAC 帧的格式
3.4扩展的以太网
3.4.1在物理层扩展以太网
主机使用光纤(通常是一对光纤)和一对光纤调制解调器连接到集线器。
3.4.2在数据链路层扩展以太网
以太网交换机实质上就是一个多接口的网桥。通常都有十几个或更多的接口
3.4.3虚拟局域网
利用以太网交换机可以很方便地实现虚拟局域网 VLAN (Virtual LAN)。
虚拟局域网 VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的计算机是属于哪一个 VLAN。