H1------------------H2
\ /
\ /
\ /
\ /
x (me)
假設我在點x,並且有兩個任意主機點,H1,H2。我可以通過ping獲得H1和我之間的延遲,同樣我也可以通過ping獲得H2和我之間的延遲(因爲有時間戳),問題是,如何使用DNS協議獲得H1和H2之間的延遲?如何通過DNS協議檢測兩臺主機之間的網絡延遲?
H1------------------H2
\ /
\ /
\ /
\ /
x (me)
假設我在點x,並且有兩個任意主機點,H1,H2。我可以通過ping獲得H1和我之間的延遲,同樣我也可以通過ping獲得H2和我之間的延遲(因爲有時間戳),問題是,如何使用DNS協議獲得H1和H2之間的延遲?如何通過DNS協議檢測兩臺主機之間的網絡延遲?
那麼如何定義H1作爲某個域的authoratative域名服務器,然後請求H2解析該域。然後解決問題的時間(也許帶一個「我不知道」的答案)並且減去對H2的ping時間。
P.S.告訴你的朋友,騙子永遠不會繁榮。
編輯刪除我的說法,這是愚蠢的。我認爲這個問題畢竟不是毫無意義的 - 記住這是一個學術活動。這可能不太實際,但我認爲這可能是可能的,也可能通過我的解決方案。 (一般來說,三角測量可能是一個更好的主意,但它需要機器在正確的位置。)
另外,是的,我應該提到這需要兩臺機器都運行DNS服務器。然而,可能沒有使用DNS的解決方案。這個問題是二手的,原本可能有這個規定。
她的問題沒有意義。
DNS用於將主機名(例如,google.com
或sstatic.net
)轉換爲IP地址(例如,64.233.169.104
或69.59.196.213
)。
它與單個服務器的物理位置或網絡連接無關。
通常,不可能遠程確定兩個任意服務器之間的鏈接速度。如果您可以連接到其中一臺服務器並直接ping另一臺服務器,那麼您可以通過這種方式獲得鏈接速度,否則,這是不可能的。
首先,DNS絕對可以不是這裏提供任何線索。
編輯:[跟隨Grumdrig的評論] ...除了與DNS消息執行往返這些服務器的時間相關的線索外。我的意思是最初的陳述是,沒有什麼內在的DNS協議,使它更適合於這個目的比說HTTP,ICMP,FTP或任何協議可能會導致服務器返回一些消息。
其次,最簡單的方式做到這一點是有軟件/接入,在任H1或H2直接,但我猜想這就是問題的精神真的是:
我們如何能估計 H1和H2之間的延遲,沒有直接訪問主機?
一種估計可以做到的,通過使用H1或H 2和幾個工作站(不只是一個)之間的讀數(定時和路由)。 (以及這些許多工作站之間的路線)。
這個過程將是類似於三角測量用於在一個普通的2D或3D歐幾里德空間中找到的距離或位置,但當然,記住
另一種可能的特技來估計該距離在特殊情況下可用:
- 如果H1或H2恰好是可以從第三個位置查詢的服務器 和
- 如果此服務器要求其他主機的服務才能遵守此請求。
例如,如果H1是一個Web服務器,它使用位於H2上的Web服務來生成特定的Web頁面。通過對H1的這些請求進行多次測量,並通過減去H1與我們的工作站之間的距離/延遲,我們可以估計H1與H2之間的距離/延遲。我們必須要小心
這種特殊情況下的一種特殊情況的一部分的非網絡,如果是H1 [或H2]在第三點之間的路線上和H2 [或H1]。在這種情況下,假設與traceroute相關聯的ICMP數據包在途中未被過濾/停止,則簡單的traceroute將回答該問題。然而,這種情況相對不可能...
我問這個問題給我的朋友。其實我不知道這個問題的背景。 – ablmf 2009-11-15 15:30:22
你可以告訴他這沒有意義。 – SLaks 2009-11-15 15:35:26
我的朋友堅持認爲它可以並且必須使用DNS相關協議完成。 這是她的同事課程的任務。 – ablmf 2009-11-15 15:36:57