第二天 网络与通信协议
第一章 网络协议基础认知
1.1 协议分层模型演进
- OSI七层模型:理想化的理论框架(记忆口诀:All People Seem To Need Data Processing)
- TCP/IP四层模型:实际应用的简化模型(网络接口层->网际层->传输层->应用层)
1.2 数据封装解密
以网购快递为例:
- 应用层:商品订单(HTTP/HTTPS)
- 传输层:快递单号(TCP/UDP端口)
- 网络层:收件地址(IP地址)
- 链路层:运输车辆(MAC地址)
第二章 核心协议深度剖析
2.1 TCP/IP协议族
2.1.1 TCP三次握手(现实版)
# 简化版握手模拟
client.send(SYN=1, seq=x) # 客户:"我要连接"
server.reply(SYN=1, ACK=1, seq=y, ack=x+1) # 服务端:"收到,请确认"
client.send(ACK=1, seq=x+1, ack=y+1) # 客户:"确认连接"
2.1.2 流量控制实战
滑动窗口动态演示:
[发送方] | 1 2 3 | 4 5 6 7 | → 窗口大小=3
[接收方] ACK=4 → 窗口滑动 → | 4 5 6 | 7 8 9 |
2.2 MQTT协议详解
2.2.1 智能家居场景应用
主题树示例:
home/living_room/temperature
home/bedroom/light/status
QoS等级对比表:
等级 | 可靠性 | 网络开销 | 适用场景 |
---|---|---|---|
0 | 至多一次 | 最低 | 环境传感器 |
1 | 至少一次 | 中等 | 安防报警 |
2 | 恰好一次 | 最高 | 支付系统 |
2.3 CoAP协议特性
与HTTP的RESTful对比:
// CoAP请求示例
GET coap://node.example.com:5683/temperature
协议栈对比:
HTTP: TCP + TLS + HTTP
CoAP: UDP + DTLS + CoAP
2.4 HTTP/3革命性突破
QUIC协议核心优势:
- 0-RTT快速连接
- 多路复用无队头阻塞
- 前向纠错(FEC)机制
第三章 V2X协议栈揭秘
3.1 车联网通信需求矩阵
场景 | 时延要求 | 可靠性 | 数据速率 |
---|---|---|---|
前向碰撞预警 | <100ms | >99% | 中等 |
高清地图更新 | <1s | >90% | 高 |
3.2 IEEE 802.11p协议栈
3.2.1 物理层关键技术
- 信道划分:5.9GHz专用频段
- 调制方式:OFDM(正交频分复用)
3.2.2 典型消息类型
- BSM(基本安全消息):10Hz频率发送
- TIM(交通信息消息):路侧单元广播
3.3 3GPP NR-V2X演进
两种通信模式对比:
关键技术突破:
- 感知与通信融合
- 毫米波高频传输
- 网络编码技术
第四章 协议选型指南
4.1 物联网协议对比矩阵
特征 | MQTT | CoAP | HTTP/3 |
---|---|---|---|
传输层 | TCP | UDP | QUIC |
消息模式 | 发布订阅 | 请求响应 | 请求响应 |
资源消耗 | 中等 | 低 | 较低 |
适用场景 | 云端通信 | 边缘设备 | Web应用 |
4.2 V2X协议选择决策树
是否需要基础设施支持?
├─ 是 → 选择3GPP NR-V2X
└─ 否 → 选择IEEE 802.11p
第五章 实践演练
5.1 MQTT消息代理搭建
# 安装Mosquitto
sudo apt-get install mosquitto mosquitto-clients# 订阅测试
mosquitto_sub -t "test/topic" -v# 发布消息
mosquitto_pub -t "test/topic" -m "Hello CSDN!"
5.2 CoAP服务器实验
使用Python库实现:
from aiocoap import *async def coap_server():protocol = await Context.create_server_context()# 添加资源处理逻辑...