2.8 逐链路精准测量:P2P延迟测量机制
如果每一段路都有"测速仪"
想象你在高速公路上开车,想知道从北京到上海需要多长时间。
方法一:记录起点和终点时间
你从北京出发时看表:8:00
你到上海时看表:16:00
总时间:8小时
但这个时间包含了:
- 真正的行驶时间
- 服务区休息时间
- 堵车等待时间
- 吃饭时间
你不知道哪一段路花了多久。如果济南-南京段花了2.5小时,而正常只需要1.5小时,你怎么发现问题?
方法二:每段路都有测速仪
高速公路在每个路段都安装了测速仪,记录你进入和离开每段路的时间:
- 北京-天津段:1小时
- 天津-济南段:2小时
- 济南-南京段:2.5小时 ← 比预期长,可能有堵车
- 南京-上海段:2.5小时
你可以精确知道每一段的时间,更容易发现问题。
PTP的两种延迟测量机制,就像这两种方法:
- E2E机制:测量整个路径的总延迟(只知道总时间)
- P2P机制:逐链路测量延迟(知道每段路的时间)
P2P机制的基本原理
核心思想
P2P(Peer-to-Peer,对等)机制的核心思想:让每两个相邻端口之间相互测量链路延迟。
不像E2E那样由从时钟测量到主时钟的整个路径,P2P让每个链路两端的设备各自测量自己之间的延迟。
比喻:就像高速公路上每两个收费站之间都有测速仪,各自记录车辆通过的时间。
消息交换过程
P2P机制涉及三类报文:
-
Pdelay_Req:请求者发送,请求测量链路延迟
-
Pdelay_Resp:响应者回复,携带接收时间戳
-
Pdelay_Resp_Follow_Up(可选):响应者发送,携带发送时间戳
请求者(A) 响应者(B)
|------ Pdelay_Req (t1) --------------->| (t2)
|<----- Pdelay_Resp (t4) ----------------| (t3)
|<----- Pdelay_Resp_Follow_Up (可选) ----|
四个时间戳:
- t1:请求者发送Pdelay_Req的时间
- t2:响应者接收Pdelay_Req的时间
- t3:响应者发送Pdelay_Resp的时间
- t4:请求者接收Pdelay_Resp的时间
与E2E的关键区别
| 特性 | E2E机制 | P2P机制 |
|---|---|---|
| 谁发起测量 | 从时钟 | 每个端口(无论主从) |
| 测量对象 | 主时钟到从时钟的整个路径 | 两个相邻端口之间的链路 |
| 报文类型 | Sync + Delay_Req + Delay_Resp | Pdelay系列 |
| 透明时钟处理 | E2E TC转发Delay_Req/Resp | P2P TC丢弃Delay_Req/Resp |
P2P机制的核心公式
与E2E类似,P2P也使用四个时间戳计算延迟:
meanLinkDelay = [(t2 - t1) + (t4 - t3)] / 2
但有一个关键区别 :这四个时间戳来自 两个相邻端口,而不是主时钟和从时钟。
响应者的"周转时间"(t3 - t2)会被减掉,不影响测量结果。这就像收费站记录车辆通过的时间,不管收费员花了多久处理。
P2P透明时钟的关键处理
P2P透明时钟不仅要测量驻留时间,还要测量链路延迟:
Sync.correctionField += residenceTime + meanLinkDelay
关键点 :meanLinkDelay是 入口链路的延迟(上一段路的时间)。
结果 :从时钟收到Sync报文时,路径延迟已经被P2P TC逐段累加到correctionField中了。从时钟 不需要 发送Delay_Req。
适用场景
P2P机制特别适合以下场景:
| 场景 | 为什么用P2P |
|---|---|
| TSN网络(IEEE 802.1AS) | 工业自动化需要快速收敛 |
| 电信网络(ITU-T G.8275.x) | 大规模网络,负载分散 |
| White Rabbit | 亚纳秒级同步要求 |
关键限制 :网络中 所有设备必须支持P2P。如果有普通交换机(不支持P2P),P2P机制会失败。
小结:记住这几点
| 类别 | 关键内容 |
|---|---|
| 核心思想 | 逐链路测量,每个端口独立测量与对端的延迟 |
| 核心公式 | meanLinkDelay = [(t2-t1)+(t4-t3)]/2 |
| P2P TC处理 | 累加驻留时间 + 链路延迟到correctionField |
| 网络要求 | 所有设备必须支持P2P |
| 优势 | 负载分散、快速收敛、逐段诊断 |
📌 本文是精简版,完整版见 GitHub
GitHub 完整版额外包含:
- one-step与two-step模式的详细区别和实现
- P2P与E2E的深度对比(测量粒度、不对称处理、收敛速度)
- P2P透明时钟的完整工作流程
- 完整的P2P网络示例(含多层TC的correctionField累加)
- P2P机制的实现挑战
🔗 完整版见 GitHub :https://github.com/Lularible/ptp-book
⭐ 如果本书对你有帮助,点一个 Star 就是对我最大的支持