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