1. 程式人生 > >ping不通某網站但是卻可以訪問該網站

ping不通某網站但是卻可以訪問該網站

訪問一個網站的時候,想看看它的ip是多少,就在windows  命令列下去ping了下該網站;ip地址是解析出來了,但是卻發現請求超時,沒有ping  通,當時就很困惑。然後又tracert 該 ip   跟蹤了一下  想看看到底什麼問題,最後發現,當跟蹤到該 ip的時候  請求被拒絕了。突然之間,應該是服務端 設定了相關策略 對網路層icmp  回顯請求報文 進行了限制;而訪問網頁  用的 是 http  協議,因此會出現此現象 。



ping 的實質:傳送一個icmp回顯請求報文給目的的主機,並等待回顯的icmp應答。然後打印出回顯報文。回顯的結果包括:位元組數  、 反應時間、TTL(生存時間)
 
Tracert 的實質:利用ICMP資料報和IP資料報頭部中的TTL值。TTL(Time To Live)是一個IP資料報的生存時間,當每個IP資料報經過路由器的時候都回把TTL值減去1或者減去在路由器中停留的時間,但是大多數資料報在路由器中停留的時間都小於1秒種,因此實際上就是在TTL值減去了1。這樣,TTL值就相當於一個路由器的計數器。  
當路由器接收到一個TTL為0或者1的IP資料報的時候,路由器就不再轉發這個資料了,而直接丟棄,並且傳送一個ICMP“超時”資訊給源主機。Tracert程式的關鍵就是這個回顯的ICMP報文的IP報頭的信源地址就是這個路由器的IP地址。同時,如果到達了目的主機,我們並不能知道,於是,Tracert還同時傳送一個UDP資訊給目的主機,並且選擇一個很大的值作為UDP的埠,使主機的任何一個應用程式都不使用這個埠。所以,當達到目的主機的時候,UDP模組就產生一個“埠不可到達”的錯誤,這樣就能判斷是否是到達目的地了。