- 論壇徽章:
- 33
|
回復(fù) 3# shichunda
我還真沒注意你前面發(fā)的貼, 原來你第一次寫的是錯的.
http://en.wikipedia.org/wiki/Network_Time_Protocol 這上面提供的算法如下:
- ------t1--------------t2-----------
- | |
- ------t0--------------t3-----------
- delay = (t3 - t0) - (t2 - t1)
- offset = ((t1 - t0) + (t2 - t3)) / 2
復(fù)制代碼 樓主可能忘了, server 和 client 的時間是不一致的, 所以, t1 - t0 得到的結(jié)果沒有意義, 同理, t3 - t2 得到的結(jié)果也是沒有意義的.
t0 和 t3 是同一臺機器上的時間, 所以, 這個差,是這次請求發(fā)出的總時間, t1 和 t2 是同一臺機器上的時間, 這個差 是 服務(wù)器處理請求花掉的時間, 所以, delay = (t3 - t0) - (t2 - t1).
t1 - t0 是 兩臺機器的時間差, 加上半個網(wǎng)絡(luò)延時, t2 - t3 也是兩個機器的時間差, 加上半個網(wǎng)絡(luò)延時, 其中, t1 - t0 帶的是正向延時, t2 - t3 帶的逆向延時, 兩個相加, 延時就抵消了, 但時間差是2倍了, 所以,
offset = ((t1 - t0) + (t2 - t3)) / 2
希望我的理解是正確的. |
|