1)ICMP協議,即:網絡控制消息協議(Internet Control Message Protocol)html
2)ICMP是網絡層協議,由於ICMP報文是裝在IP數據報中,做爲它的數據部分發出去的,如圖緩存
3)ICMP協議用於報告網路差錯和異常,如:網絡通不通、主機是否可達、路由是否可用等服務器
4)ICMP報文有兩種類型:ICMP差錯報告報文和ICMP詢問報文網絡
1) 地址解析協議ARP的做用就是根據目的主機的IP地址來得到其物理地址,由於將IP數據報封裝到MAC幀裏面的時候須要知道目的地址的MAC地址app
2)ARP協議介於數據鏈路層和網絡層之間測試
3)每一個主機都設有一個ARP高速緩存(ARP cache),這裏面放着的是主機已經知道的IP地址和MAC地址的映射表,而且這個映射表是動態更新的3d
當主機A想要同本局域網上的某個主機B發送IP數據報時,就先在其ARP高速緩存中查看有無主機B的IP地址。若是有,就在ARP高速緩存中查找器對於的硬件地址,再把這個硬件地址寫入MAC幀裏,而後經過局域網把MAC幀發往此硬件地址。也有可能在ARP高速緩存中查不到主機B的IP地址(主機A緩存爲空,或主機B剛加入局域網),這樣也就沒法知道主機B的MAC地址,這時候就須要使用到ARP了,按如下步驟來得到主機B的硬件地址。htm
1)主機A的ARP進程在本局域網上廣播發送一個ARP請求分組,以廣播的形式,格式如圖a所示blog
2)在本局域網上的全部主機上運行的ARP進程都受到了這個ARP請求分組遞歸
3)主機B在ARP請求分組中發現了本身的IP地址,就向A主機發送ARP響應分組,以單播的形式直接發給A,以如圖b所示。同時主機B知道了A的IP地址和MAC地址,就將主機A的IP地址和MAC地址寫入ARP高速緩存中。其餘主機在對比IP地址以後,發現與本身的IP地址不一樣,就丟掉分組
4)主機A收到主機B的ARP響應分組以後,這樣就知道了主機B的MAC地址,同時把主機B的IP地址和MAC地址寫入ARP高速緩存
上面所描述的狀況是在同一局域網下的情景,若是主機A要和不在同一局域網下的主機B進行通訊,發送IP數據報。首先主機A將主機B的IP地址同本身的子網掩碼進行比對,發現不在同一局域網內,則利用ARP請求分組,從本局域網上的路由器的IP地址來獲取路由器的MAC地址,而後將剩下的工做交給路由器去作便可
1)RARP反向地址轉換協議,由物理地址來得到ip地址,使只知道本身硬件地址的主機可以知道本身的 IP 地址
2)一般用在無盤工做站,則須要RARP方法來得到IP地址
1)域名系統DNS(Domain Name System),用於域名和ip地址的相互轉換
2)DNS使用UDP傳輸(爲了減小開銷),端口53
1)根域名服務器:是最高層次的域名服務器,全球只有13臺,根域名服務器知道全部頂級域名服務器的域名和ip地址
2)頂級域名服務器:頂級域名服務器以頂級域名來命名,負責管理在該頂級域名服務器上註冊的全部二級域名,例如com頂級域名服務器管理全部以「.com」爲後綴的域名
3)權限域名服務器:負責一個區的域名
4)本地域名服務器:當一個主機發出DNS查詢請求時,首先就發給本地域名服務器
1)主機向本地域名服務器的查詢通常都是採用遞歸查詢
2)所謂遞歸查詢就是:若是主機所詢問的本地域名服務器不知道被查詢的域名的IP地址,那麼本地域名服務器就以DNS客戶的身份,向其它根域名服務器繼續發出查詢請求報文(即替主機繼續查詢),而不是讓主機本身進行下一步查詢
1)本地域名服務器向根域名服務器的查詢的迭代查詢
2)迭代查詢的特色:當根域名服務器收到本地域名服務器發出的迭代查詢請求報文時,要麼給出所要查詢的IP地址,要麼告訴本地服務器:「你下一步應當向哪個域名服務器進行查詢」。而後讓本地服務器進行後續的查詢。(而不是替本地域名服務器進行後續的查詢)
3)本地域名服務器也能夠採用遞歸查詢,這取決於用戶設置
假定域名爲m.xyz.com的主機想知道另外一個主機y.abc.com的IP地址,下面是上圖a的幾個查詢步驟:
一、主機先從本機的DNS緩存,Hosts文件中尋找,若是找不到,則再進行下列操做
二、主機m.abc.com先向本地域名服務器dns.xyz.com進行遞歸查詢。
三、本地域名服務器若沒有,則採用迭代查詢。它先向一個根域名服務器查詢。
四、根域名服務器告訴本地服務器,下一次應查詢的頂級域名服務器dns.com的IP地址。
五、本地域名服務器向頂級域名服務器dns.com進行查詢。
六、頂級域名服務器dns.com告訴本地域名服務器,下一步應查詢的權限服務器dns.abc.com的IP地址。
七、本地域名服務器向權限域名服務器dns.abc.com進行查詢。
八、權限域名服務器dns.abc.com告訴本地域名服務器,所查詢的主機的IP地址。
九、本地域名服務器最後把查詢結果告訴m.xyz.com。
整個查詢過程共用到了8個UDP報文
1)概念:DNS劫持又稱域名劫持,是指DNS客戶發送的域名解析的請求被攔截了,攔截這分析請求的域名,返回一個假的域名解析結果,致使主機對該域名的訪問轉入到修改後的假IP,其結果就是對特定的網址不能訪問或訪問的是假網址
2)解決:
1)ICMP的一個重要應用就是分組網間探測PING(Packe InterNet Groper),用來測試主機之間的連通性
2)PING使用了ICMP回送請求與回送回答報文(屬於ICMP詢問報文)
3)PING直接使用網絡層ICMP協議,沒有經過運輸層層的TCP或UDP
1)DNS域名解析,得到IP地址(過程見上)
2)ARP協議地址解析,得到MAC地址(過程見上)
3)主機將ICMP報文封裝成IP數據報
4)主機將IP數據報封裝成MAC幀
5)主機將MAC幀發送至相應路由器
6)路由器接收到ICMP報文以後,發現MAC幀的目的地址是本身,IP地址是主機想要訪問的外網段IP地址,則要修改MAC幀的地址(若有必要,路由器再次進行ARP),再進行NAT,再把數據包轉發出去
7)域名主機收到ICMP請求報文後,會從新構建一個ICMP應答報文,而後返回給主機
8)當主機收到域名主機發送的ICMP應答報文以後,這樣就代表該主機到域名主機是連通可達的
參考資料: