TCP/IP協議棧網絡層常見協議彙總

大家對網絡分層協議棧瞭解麼?我們來回顧一下:

TCP/IP協議棧網絡層常見協議彙總

  物理層——鏈路層——網絡層——傳輸層——應用層

我們之前着重介紹的還是網絡層這方面的知識,包括IP協議、IP地址、路由和轉發等等,都是網絡層的基礎知識,這一屆我們來介紹一些常用的網絡層協議。

網絡層的協議有很多,在這裏我們就挑一些常見,常用的協議來介紹:

  PING

大家對於ping肯定都不陌生,尤其是喜歡玩遊戲的同學,ping值過高的話,就會嚴重影響遊戲體驗,ping從嚴格意義上講不算一種協議,但是在這裏也一併將其介紹一下,因爲它太有名了。

我們先來介紹一下ping的流程:windows用戶可以用cmd進入用戶終端,輸入ping+ip地址,便可以進行一次ping,如下圖所示:

如果你輸入的IP地址有效且可達,則會收到相應對端發來的回覆報文,如下圖所示:

這裏的對端是指IP地址所在的服務器,而所謂的ping指,就可以簡單理解爲從某個數據包發送到服務器開始,到收到服務器應答包爲止的時間就是ping。一般以毫秒計算,如果你輸入的IP地址有誤,或者IP地址不可達,則會受到以下信息:

  ICMP

大家可能對於ICMP協議有些陌生,事實上上面介紹得ping,其回覆報文實際上就是ICMP差錯報文,ICMP報文一般分爲兩種類型,一種是ICMP查詢報文,它的作用很明顯,就是用來在主機或者路由器之間傳遞控制信息的協議,所謂的傳遞信息就是指目的地址是否可達,路由是否可達等等狀態信息,ICMP協議並不傳輸數據,但是它卻能夠很好地傳遞狀態信息,而剛纔介紹的ping程序,結合ICMP協議之後的完整過程就是:

1、首先查本地arp cache信息,看是否有對方的mac地址和IP地址映射條目記錄;

2、如果沒有,則發起一個arp請求廣播報文,等待對方告知具體的mac地址;

3、收到arp響應包之後,獲得某個IP對應的具體mac地址,有了物理地址之後纔可以開始通信,同事對ip-mac地址做一個本地cache;

4、發出icmp echo request包,收到icmp echo reply包 。

前面3條還是一個查arp表獲取對端mac的三層IP轉發基本流程,而第4條規則就是用ICMP報文來完成回顯信息的輸出。

既然提到了ping和icmp,那麼就順便介紹一種常見的IP攻擊方式“Ping of Death”(死亡之ping) 。

Ping of Death可以利用操作系統規定的`ICMP數據包最大尺寸不超過64KB這一規定,向主機發起死亡之ping攻擊,如果ICMP數據包的尺寸超過64KB上限時,主機就會出現內存分配錯誤,導致TCP/IP堆棧崩潰,致使主機死機。

  ARP

在大多數的TCP/IP視線中,ARP是一個基礎協議,但是它的運行對於應用程序或系統管理員來說一般都是透明的。ARP告訴緩存在它的運行過程中非常關鍵。我們可以用arp命令對高速緩存進行檢查和操作。高速緩存中的每一項內容都有一個定時器,根據它來刪除不完整和完整的表項。arp命令可以顯示和修改ARP高速緩存中的內容,我們介紹了ARP的一般操作,同時也介紹了一些特殊的功能,委託ARP和免費ARP.。

簡單總結起來就是,在IP轉發時,僅僅知道對端IP地址是無法完成轉發的,我們需要知道對短的MAC地址才能夠進行轉發,這個時候加入本地的ARP緩存表中查不到對端的MAC,那麼則會發送ARP學習報文,去下遊學習MAC,只有學到了MAC才能進一步的轉發,而ARP在其中就起到了存儲IP地址與MAC地址映射關係的作用,因此ARP協議是網絡轉發中非常重要的一個協議!

最後我們來回顧一下,這一節介紹了ping程序,ICMP協議和ARP協議,事實上網絡層的協議還有很多很多,但是以上接種協議都是比較常用的協議,大家有興趣可以深入瞭解一下。