Mik*_*ike 5 c# network-programming
我有一个应用程序,包含许多使用远程位置的UDP客户端的系统.所有客户端都将UDP数据包发送到中央位置进行处理.在我的应用程序中,中心位置知道远程位置发送数据包的时间至关重要.
从设计的角度来看,假设中心位置可以在数据包到达时为数据包加时间并将其用作"发送时间",这是否"安全"?由于应用程序使用UDP,数据包应该立即到达还是不到达?另一种选择是在每个远程位置设置某种时间同步.这样做的缺点是,我需要不断确保时间同步对每个可能数百个远程位置起作用.
我的问题是,在中心位置加密UDP数据包以确定"发送时间"是一个潜在的缺陷.是否可以通过UDP体验任何延迟?
对于秒分辨率,您可以使用接收数据包时的时间戳,但您仍然需要使用序列号来阻止重新排序或重复的数据包。
这可以使您的远程站变得不那么复杂,因为它们不需要电池支持的时钟或同步技术。
对于毫秒分辨率,您需要计算往返时间 (RTT) 并使用接收器上时钟的偏移量。
除非您在受控环境中使用精确时间协议 (PTP),否则您永远不能信任远程主机的时钟。
| 归档时间: |
|
| 查看次数: |
816 次 |
| 最近记录: |