网络协议物理层,"地基"是怎么练成的
撰稿:未来侦察班
咨询:aynaixibaba

TCP/IP是学校里的必修课,物理层Phy、数据链路层、网络层、传输层、应用层五层架构共同塑造当前网络框架,覆盖每个人生活方方面面,小到连接wifi,某宝购物,大到几千万上亿的证券交易... 本节从物理层聊起。
1. 物理层
万丈高楼平地起,地基有砖、石头、混凝土各种类型;网络这座大厦的地基自然也是看得见摸得着的硬件设备,也可以叫介质;
- 导引型:必须实体硬件介质连接在一起,信号只能沿着介质通道路径传输,如早期同轴光缆、最常见的双绞线和网络干道入户光纤等。
- 非导引型:自由在空气中传播,不再依赖介质的固定路径,如无线电波、Wi-Fi、蓝牙、4G/5G通信等等。

物理层phy核心作用
-
上层的数字信号和底层的模拟信号间相互转换
-
串行解串恢复出时钟
-
链路监控,报告链路状态等
-
自动协商双方的通信速率
2. 物理层详解
2.1 物理层概述
Mac层是数字信号,传输距离受限1m内仅板内布线通信;而phy是将数字信号转换成模拟信号,适合长距离传输。

传输过程示意图,传输介质如光纤、自然光、双绞线、同轴线缆、无线电波Wi-Fi、蓝牙和5G甚至usb线等等。

例如刷抖音场景:抖音服务器 -〉 网络 -〉家用路由器 -〉 用户手机 -〉 Wi-Fi 网卡(Phy-〉Mac)-〉 手机网络层 -〉 抖音App。整个过程数字信号转成模拟信号远距离传输到手机后,再解析成数字信号,呈现给用户。
有线网中phy分三部分:PCS物理编码子层对接mac层,PMA层负责时钟和串行与解串相关(简单理解双绞线上串行收发数据),PMD直接和通信介质相关。

用户层命令看到的当前协商速率,也正是通过双方的phy层协商而来。将结果反馈给mac以上层呈现。
phy层没有设定通用的数据包类型,留给各大芯片厂按照mac的业务需求实现基础数模转换等功能即可。
2.2 双绞线类
网卡的产品形态多种多样,常见的是由SoC、Mac和Phy三部分组成,通过特定的总线连接。
-
SoC和Mac之间由PCIE、sdio、USB和SPI等总线连接;
-
Mac和Phy之间由MII、RMII、RGMII、XFI等接口连接,分别对应不同的物理带宽;

两个产品的网卡之间是Phy连接Phy,通过MDI接口定义及对应RJ45硬件连接器连接对方。另外,Phy外面还需要网络变压器,也就是说双绞线上的信号和phy直接出来的模拟信号是不同的,是为了让信号长距离传输更加稳定。
2.3 无线类物理层
无线芯片Phy是调制解调器,将数字信号调制成模式信号通过无线电发射出去,以及通过射频模块接收周围的无线电信号。无线网络如Wi-Fi由于其特殊性,mac层和phy层耦合更加紧密,绝大多数的Wi-Fi芯片产品集成mac和phy两部分。
但是,从代码角度,mac层的upMAC部分代码一般以开源形式集成在SoC产品中,lowMAC和phy部分以固件形式由无线芯片加载在其RAM中运行。然后以sdio、pcie等总线和SoC芯片连接通信。

高通、联发科和博通瓜分移动设备市场,英特尔、瑞昱占据电脑市场。
2.4 光纤类物理层
光纤和无线模块的情况类似,mac和phy一起独立集成在通信芯片中。
2.5 通信原理
为了提高信道利用率提高吞吐率,常常将信道以不同技术复用:波分复用、码分复用、频分复用、分时复用等。分时复用实际上就是串行通信,比如每个设备占用1μs轮流通信,用户角度只能感知ms/s级别变化,感官上依然觉得是同时通信。
2.6 自协商
两个设备通信速率受到网络规格约束,同时也会受到物理线缆的状态影响,4对双绞线若存在部分破损,会自动协商新的速率以保证正常通信。自协商是物理层的重要功能之一。
以千兆有线网为例,支持如下5种协商等级,物理层会根据物理层线缆自检的实际情况决定使用的通信速率。

例如4对双绞线中,出现一对破损,则通信速率大概率会从1000BASE-T的千兆网下降到100BASE-Tx的百兆网。

无线网的速率调制解调方式、信道频宽、保护间隔等影响,会协商更多的速率等级。以wifi5 80M频宽的手机wifi热点为例,协商速率为866Mbps等级。

手机产品多为2x2天线设计,刚好对应MCS9调制解调方式256-QAM的80MHz频宽。

3. 产品形态
产品形态也存在各式各样
- 网卡仅包含Mac层,外挂Phy芯片,通过总线和SoC通信;
-
SoC自带Mac层,外挂Phy芯片;
-
SoC自带Mac层和另外一个SoC的Mac通过MII类接口直连;
-
SoC将Mac和Phy都集成在同一个芯片中,对外暴露MII类接口;
另外,物理层Phy也并非无可或缺,比如两个网络设备,可以通过Mac层直连,跳过phy层交互过程,通信时延会有明显提升。
4. 性能边界
一般phy仅做数据透传,不会成为网络通信性能瓶颈,更多的是需要优化mac层及以上的tcp/ip协议栈内容。常见的有线网1/2.5Gbps,无线网是wifi6 1Gbps规格。时延数据毫无疑问是有线网优于无线网络。

时延参数也会受到本机传输影响,以linux为例,网卡驱动一般挂载在驱动层,数据在用户层和驱动层来回穿梭拷贝数据,通信性能会打折扣。这块涉及到mac层的配置,下节继续解读。