网络协议与编程技术深度解析
1. 物理层问题诊断
在网络故障排查中,物理层问题有时难以定位。在Wireshark捕获的数据中,物理层问题可能有所体现,但难以确切锁定。硬件工程师会使用眼图(Eye - Diagram)来解决此类问题。其原理是运行一个测试程序,以多种序列发送所有“符号”,并测量各种参数,眼图可直接用于分析。
然而,嵌入式程序员进行这样的测试存在很大门槛,即便有设备,很多时候也难以实施。比如对于封闭设备的测量,或者远程客户遇到问题时,让客户进行眼图测试几乎是不可能的。
在Wireshark中难以发现物理层问题的主要原因是,损坏的以太网帧校验和也会出错。现代网卡(NIC)具备内置的校验和计算功能,以太网校验和采用的是循环冗余校验(CRC),比普通校验和更高级。在以太网层面,没有重传机制,收到“坏”帧会直接丢弃。通常这种情况很少发生,TCP重传是简单有效的解决方案;若使用UDP,就只能由应用程序自行处理。
网卡通常会对CRC错误进行计数,可通过简单网络管理协议(SNMP)来读取这些错误计数。大多数操作系统都支持SNMP,操作步骤如下:
1. 下载一个SNMP客户端。
2. 启动客户端。
3. 输入PC或设备的IP地址。
有经验的开发者在排查问题时,会先从软件层面入手,反复检查。但物理层设备(PHY)是容易出现硬件问题的地方,它负责将线路上的模拟波形转换为比特模式。线路上可能出现各种瞬态干扰,这些干扰可能会损坏信号,甚至损坏PHY设备,因此要确保有正确的保护电路。
2. UDP套接字
在网络通信中,我们常用到广播(broadcast,又名anycast)、多播(
超级会员免费看
订阅专栏 解锁全文
2424

被折叠的 条评论
为什么被折叠?



