
例如這張照片取自維基百科
列出的這 12 個伺服器名稱是什麼?我知道它們是伺服器,應該是網路封包到達目的地所必須經過的路徑。但是,為什麼我需要訪問任何伺服器,除了透過向我提供我請求的文件來實際服務請求的伺服器之外?
每個伺服器名稱提到的三個計時資訊是什麼?
過程不應該是這樣的嗎(複製自這裡)?
瀏覽器與名稱伺服器通信,將伺服器名稱「www.howstuffworks.com」轉換為 IP 位址,用於連接到伺服器電腦。後面討論連接埠。http://www.howstuffworks.com/web-server.htm(請注意,cookie 可以透過 GET 請求從瀏覽器傳送到伺服器 - 有關詳細信息,請參閱 Internet Cookie 的工作原理。)然後伺服器將網頁的 HTML 文字傳送到瀏覽器。 (在頁面的標題中)。
答案1
這 12 行是封包到達維基媒體伺服器所必須經過的節點。您需要經過 12 個節點,因為您的電腦沒有直接連接到 wikimedia 的伺服器。它是連接到xs4all.net 上的一個節點(自然是ISP),該節點連接到另一個xs4net 節點,該節點連接到wvoptical.net,該節點連接到as30217.net,as30217.net 連接到wikimedia.org,所以這就是路由器可以找到將封包到達目的地的最佳路徑。如果您的計算機直接插入目標計算機,則只有一跳;嘗試追蹤路由到本機網路上的另一台電腦:
> [mrozekma@etudes-2 ~] % traceroute etudes-1
traceroute to etudes-1 (192.168.0.10), 30 hops max, 40 byte packets
1 etudes-1 (192.168.0.10) 0.196 ms 0.190 ms 0.152 ms
每跳右側的計時資訊是資料包的往返時間。預設情況下,每跳發送三個資料包,因此顯示三個計時;如果你給traceroute選項,-q
你可以控制發送的資料包數量:
> [mrozekma@etudes-2 ~] % traceroute -q 1 etudes-1
traceroute to etudes-1 (192.168.0.10), 30 hops max, 40 byte packets
1 etudes-1 (192.168.0.10) 0.177 ms
答案2
Traceroute 顯示的主機不是伺服器,而是路由器。 Traceroute 顯示了智慧財產從拍攝此快照的人的電腦路由到維基百科伺服器。您引用的 HTTP 描述著眼於更高的級別,其中所有路由都是透明的。
我認為解釋這一點的最好方法是透過一個比喻。例如,HTTP 需要客戶端和伺服器之間有雙向通訊通道;該頻道由傳輸控制協定。 TCP又建立在IP之上。 IP 的目標是將封包從一個 IP 位址傳輸到另一個 IP 位址。 TCP 連線需要從客戶端到伺服器的 IP 封包以及從伺服器到客戶端的 IP 封包。
好的,現在將每個 IP 封包視為一封信,您將其放入郵箱並由郵局運送到目的地。 Traceroute 顯示信件從您的住所到收件人住所的旅程中的所有階段:投遞的郵箱、城鎮郵局、地區分揀辦公室、地區郵件中心等,直到信件到達收件人的住所郵件槽。這基本上就是您在查看 DHL/UPS/... 註冊追蹤包裹的進度時所看到的內容。
在此範例中,前兩跳稱為….xs4all.net
;它們顯然來自快照作者的 ISP。接下來的幾行來自西伏纖維,經營國際運輸線。我不知道as30217.net
是誰;可能是資料中心的 ISP。最後兩台機器來自維基百科。
IP 路由對於更高層協定(例如 TCP 和更不用說所有基於 TCP 建置的協定。其實traceroute還要玩一些技巧完全獲取資訊。