日新计划6月更文 Day 18
数据链路层位于网络层之下,在网络适配器或芯片上实现,通过传递帧(Frame)进行通信。在数据链路层使用 MAC (Media Access Control,媒体访问控制)地来确定发送方与接收方。
数据链路层提供了流量控制(Flow Control)、错误检测(Error Detection)错误纠正(Error Detection)等功能。
为实现错误检测与纠正,在帧中除了保存有载荷(网络层的数据报)D,还有对载荷的 CRC(Cyclic Redundancy Check,循环冗余校验) 校验位R,使得可被参数 G 整除。
其中 (为位数-1)。
链路层题型可通过点对点(Point to Point)通信或多路访问的广播(Broadcast)的形式进行,前者主要用于PPP拨号上网,后者应用于802.11无线局域网。
为实现多路访问,可以使用通道划分(时分多址TDMA、频分多址FDMA)、随机访问(Random Accesss)或轮流。其中随机访问是较高效的方式,但随机访问也存在碰撞等问题。为此有了以下几种方案:
- 时间槽 ALOHA:Slotted ALOHA,各个节点时钟同步,发送数据比醋在时间槽开始处进行,实现简单但有较多碰撞,最大效率约37%
- 纯 ALOHA:Pure ALOHA,无时钟同步,提高了碰撞概率,最大效率只有18%
- CSMA:Carrier Sense Multiple Access,载波监听多路访问,发送前监听信道使用情况,若正在使用则推迟发送,一旦开始发送则不停止。
- CSMA/CD:发送过程中也监听信道,发现冲突则终止发送
每一个网络适配器都有一个唯一的 48 位的 MAC 地址,其格式类似“1A-2B-3C-4D-4E-60”。在一个网络内,主机使用 ARP(Address Resolution Protocol,地址解析协议)获取 IP 地址与 MAC地址之间的对应关系:
- 主机查询本地的 ARP 表,获得某 IP 地址对应的 MAC地址
- 若查无结果,主机发送 ARP 请求报文,该报文中发送者 IP 地址 与 MAC 地址为该主机的 IP 地址与 MAC 地址,接收方 IP 地址与 MAC 地址为要查询的 IP 地址和“FF-FF-FF-FF-FF-FF”
- 要查询的设备会将自己的 MAC 地址以单播的方式返回给发送请求报文的主机。
- 若要查询的 IP 地址不在该网络内,请求报文接收方 IP 地址为网关的 IP 地址,获得网关 MAC 地址后发送接收方 IP 地址为要查询 IP 地址、MAC 地址为网关 MAC 地址的请求报文。