网络协议 数据链路层,“帧”建立统一新秩序

网络协议物理层,"地基"是怎么练成的

网络协议 数据链路层,"帧"建立统一新秩序

网络协议 网络层,万物归于IP

撰稿:未来侦察班

咨询:aynaixibaba

TCP/IP是必修课,物理层Phy、数据链路层、网络层、传输层、应用层五层... 本节接着聊数据链路层。

1. 数据链路层

从数据链路层开始,就出现"帧Frame",能够更好地适配高层协议。其主要由LLC逻辑链路层和MAC媒体访问控制层组成。

简单类比,MAC+Phy就像在河两岸搭建的一座桥,建材可选光纤、双绞线等;而逻辑链路LLC就像一个物流公司,组建多支运输队,大公司可以雇佣整支车队,而小公司可以把包裹统一寄存再由运输公司统一发车。

2. 数据链路层详解

2.1 核心作用

数据链路层DLL由LLC和MAC两部分组成,向上对接网络层,向下连接物理层Phy。了解蓝牙协议背景就会发现,LLC层对应L2CAP处理逻辑链路,MAC层也类似LMP和部分BB层。

LLC逻辑链路控制层 负责SAP多路复用,建立及管理逻辑链路,SAP功能被以太网帧更加简洁的type类型逐渐挤占绝大多数应用领域。

MAC媒体访问控制层,具有通信介质相关性,携带6字节48位的mac地址,设备间网络通信都会依赖mac地址,即便是高层协议ip地址四元组建立网络连接,但在底层依然要查表找到ip对应的mac物理地址。

MAC主要功能是承上启下,细分4个功能点如下:

  • 封装成帧,物理层phy中是串流,没有帧的概念,数据链路层将收到的网络层数据包作为自己的数据段,再加上帧头帧尾就组成帧,通过phy串流发给对端设备。

还是桥的例子,用户发快递(用户层),写上收货地址(传输层),物流公司分类打包(网络层)相同区域装同一个集装箱,最后装在卡车上(数据链路层),卡车行驶在公路桥上(物理层),寄给收件人(对端设备)。

  • 透明传输,乍一听不太好理解。简单解释就是高层协议无论用传输什么内容,数据链路层都不会出错。但事实上帧头帧尾都有。不过透明传输是PPP协议专属,需要用特殊字段标记帧开始和结尾。

举个例子,在家里每次叫"小爱同学"小米电视就会回应,但恰巧家里的小猫也叫小爱同学呢,事情就有意思起来,电视和小猫都很蒙圈,主人到底叫的谁。

以太网II帧会在物理层加上前导码和帧标记,并不依赖特殊字段标记判定开始结束,线缆静默作为结束条件,因此天生就是透明传输。

  • 流量控制,数据传输需要双方支持,一旦一方出现拥堵,可能就需要通知对方暂停传输,以防数据丢失。支持停止-等待协议和滑动窗口协议两种流控策略。新版IEEE 802.3x引入PAUSE帧。
  • 介质访问,CSMA/CD(以太网)和 CSMA/CA(Wi-Fi)是最常见的访问控制策略,目前wifi中依然在广泛使用。

2.2 帧详解

以太网帧Ethernet V2格式

目的地址是对方的地址也就是接收帧的设备地址,源地址是本机地址,告诉对方谁给它发的。类型字段指明高层协议类型(如下图),帧校验检查数据完整性。

802.3帧

在Ethernet II未统治江湖前,IEEE给出的通信方案是802.3帧,高层协议类型由LLC层增加SAP服务接入点,接收方DSAP和发起方SSAP以及控制字段。

而mac层只管传输,使用Length长度字段替代Type的2字节。相比之下,Ethernet II结构就简单很多,关键是功能也非常完整。最终IEEE推出802.3 SNAP将Ethernet II帧收编。

PPP点对点协议

全称是Point-to-Point Protocol,没有源地址和目的地址,无法自由寻址只能固定两个设备间通信,常用的拨号上网等场景,后来扩展出PPPoE等协议类型。它是依赖帧头帧尾特殊字符判定整个帧,因此数据段(图中IP数据报)是不能出现0x7E等字节的,因此需要添加转义字符。

对比之下,数据链路层的mac地址用于设备间寻址,Type类型对接ipv4协议,应用层Tcp/udp port对接最终的应用app完整的网络框架。Ethernet II更具通用性和简洁易用。

2.3 教材

扩展下教材如《计算机网络》的数据链路章节详解,会介绍PPP网络、CSMA/CD、总线网、集线器等等,虽然它们技术长河中略显久远,但其迭代延伸依然活跃在当下网络中,如PPPoE在宽带入网认证、CSMA/CA在无线通信领域等。

至少研究CSMA/CD通信原理,就正好读懂现代网络中以太网帧数据段最小长度46字节的原因:碰撞检测判定条件依赖时间,然后时间换算成数据长度对应最小值64字节,并且以太网帧头帧尾18字节,刚好对应46字节的阈值。

3. 设备分类

网络设备可以按照网络协议层次数量分类:完整协议栈5层、部分协议栈2层或3层和特殊网络设备。如下图左右两端的主机具备5层协议栈,中间接入路由器,路由器不会解析第四和五层内容,仅网络层为中心转发数据包。

  • 完整协议栈设备 终端设备网卡,如电脑intel无线网卡、瑞昱的有线网卡和所在软件系统windows或ubuntu等一起构成从应用层到物理层的完整协议栈。
  • 部分协议栈设备 中继设备,如路由器是三层网络层到物理层,普通交换机只有两层数据链路层到物理层,高级交换机可能也支持网络层。
  • 特殊设备 两种不同介质之间转换,如蓝牙PAN协议数据包,L2CAP层模拟网卡设备,系统收发数字信号的网络包转换成蓝牙的模拟信号传递到对端PAN设备。

另外像USB设备可以模拟出网卡,直接对接网络层,ifconfig可以看到usb0网卡。实现usb线传输网络数据包。两个设备也可以通过网络层直连,这样就没有Phy物理层通信。

相关推荐
ICT系统集成阿祥1 小时前
校园网络准入认证建设与运维经验
运维·网络·智慧校园·经验总结
liulilittle1 小时前
甲骨文云中国大陆定向 QoS 原理及绕过解决方案
服务器·开发语言·网络·计算机网络·oracle·通信·qos
行走__Wz2 小时前
【网工入门-eNSP模拟-02】dhcp动态主机配置ip地址
服务器·网络·tcp/ip
AI科技星2 小时前
数术工坊·第八卷 大道归一录・番外・下篇 零界封神・万法归元终章
网络·人工智能·算法·几何学·拓扑学
网络研究院2 小时前
网络研究观-严重漏洞允许以 root 用户身份执行任意命令:CVE-2026-0273 分析
网络·安全·漏洞·修复·设备
极创信息2 小时前
信创产品适配测试认证,域名和SSL是必须的吗?
java·开发语言·网络·python·网络协议·ruby·ssl
未来侦察班2 小时前
网络协议物理层,“地基“是怎么练成的
网络·物联网·网络协议·物理层·tcpip
不吃土豆的马铃薯2 小时前
高并发服务器数据库连接池设计详解
服务器·网络·数据库·c++·mysql
七夜zippoe2 小时前
DolphinDB HTTP API接入:RESTful数据推送
网络协议·http·api·restful·dolphindb