古詩詞大全網 - 成語解釋 - 什麽是IP、MAC、ARP、ICMP ?

什麽是IP、MAC、ARP、ICMP ?

IP是英文Internet Protocol(網絡之間互連的協議)的縮寫,中文簡稱為“網協”,也就是為計算機網絡相互連接進行通信而設計的協議。在因特網中,它是能使連接到網上的所有計算機網絡實現相互通信的壹套規則,規定了計算機在因特網上進行通信時應當遵守的規則。任何廠家生產的計算機系統,只要遵守 IP協議就可以與因特網互連互通。IP地址具有唯壹性,根據用戶性質的不同,可以分為5類。另外,IP還有進入防護,知識產權,指針寄存器等含義。

MAC:Media Access Control 媒體訪問控制 MAC 協議最重要的功能是確定網上的某個站點占有信道,即信道分配問題 對於***享信道,通常采用的信道訪問協議有 ?無沖突的信道訪問協議(輪詢、預約、頻分、時分等) ?有沖突的信道訪問協議 傳統的以太網采用總線結構,MAC采用壹種競爭的方式占用信道(CSMA/CD) CSMA/CD的基礎是CSMA,CSMA源於ALOHA的思想 MAC協議的主要作用是保證公平性和有效的資源***享。MAC機制主要分為兩類:1基於競爭的協議2無競爭的信道協議。基於競爭的協議假定網絡中沒有中心實體來分配信道資源,每個節點必須通過競爭媒體資源來進行傳送,當超過壹個節點同時嘗試發送時,碰撞就會發生。相反,無競爭的協議為每個需要需要通信的節點分配專用的信道資源。無競爭的協議能夠有效的減少沖突,其代價是突發數據業務的信道利用率可能會比較低。

ARP協議是“Address Resolution Protocol”(地址解析協議)的縮寫。在局域網中,網絡中實際傳輸的是“幀”,幀裏面是有目標主機的MAC地址的。在以太網中,壹個主機要和另壹個主機進行直接通信,必須要知道目標主機的MAC地址。但這個目標MAC地址是如何獲得的呢?它就是通過地址解析協議獲得的。所謂“地址解析”就是主機在發送幀前將目標IP地址轉換成目標MAC地址的過程。ARP協議的基本功能就是通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的順利進行。

ICMP協議大致分為兩類,壹種是查詢報文,壹種是差錯報文。其中查詢報文有以下幾種用途:1.ping查詢(不要告訴我妳不知道ping程序) 2.子網掩碼查詢(用於無盤工作站在初始化自身的時候初始化子網掩碼) 3.時間戳查詢(可以用來同步時間)

1.ICMP協議介紹 IP協議並不是壹個可靠的協議,它不保證數據被送達,自然的,保證數據送達的工作應該由其他的模塊來完成。其中壹個重要的模塊就是ICMP(網絡控制報文)協議。 當傳送IP數據包發生錯誤--比如主機不可達,路由不可達等,ICMP協議將會把錯誤信息封包,然後傳送回給主機。給主機壹個處理錯誤的機會,這也就是為什麽說建立在IP層以上的協議是可能做到安全的原因。ICMP數據包由8bit的錯誤類型和8bit的代碼和16bit的校驗和組成。而前 16bit就組成了ICMP所要傳遞的信息。書上的圖6-3清楚的給出了錯誤類型和代碼的組合代表的意思。 盡管在大多數情況下,錯誤的包傳送應該給出ICMP報文,但是在特殊情況下,是不產生ICMP錯誤報文的。如下 1.ICMP差錯報文不會產生ICMP差錯報文(出IMCP查詢報文)(防止IMCP的無限產生和傳送) 2.目的地址是廣播地址或多播地址的IP數據報。 3.作為鏈路層廣播的數據報。 4.不是IP分片的第壹片。 5.源地址不是單個主機的數據報。這就是說,源地址不能為零地址、環回地址、廣播地 址或多播地址。 雖然裏面的壹些規定現在還不是很明白,但是所有的這壹切規定,都是為了防止產生ICMP報文的無限傳播而定義的。 ICMP協議大致分為兩類,壹種是查詢報文,壹種是差錯報文。其中查詢報文有以下幾種用途: 1.ping查詢(不要告訴我妳不知道ping程序) 2.子網掩碼查詢(用於無盤工作站在初始化自身的時候初始化子網掩碼) 3.時間戳查詢(可以用來同步時間) 而差錯報文則產生在數據傳送發生錯誤的時候。就不贅述了。 2.ICMP的應用 ping可以說是ICMP的最著名的應用,當我們某壹個網站上不去的時候。通常會ping壹下這個網站。ping會回顯出壹些有用的信息。壹般的信息如下: Reply from 10.4.24.1: bytes=32 time<1ms TTL=255 Reply from 10.4.24.1: bytes=32 time<1ms TTL=255 Ping statistics for 10.4.24.1: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms ping這個單詞源自聲納定位,而這個程序的作用也確實如此,它利用ICMP協議包來偵測另壹個主機是否可達。原理是用類型碼為0的ICMP發請 求,受到請求的主機則用類型碼為8的ICMP回應。ping程序來計算間隔時間,並計算有多少個包被送達。用戶就可以判斷網絡大致的情況。我們可以看到, ping給出來了傳送的時間和TTL的數據。我給的例子不太好,因為走的路由少,就可以觀察到壹些 丟包的現象,而程序運行的時間也會更加的長。 ping還給我們壹個看主機到目的主機的路由的機會。這是因為,ICMP的ping請求數據報在每經過壹個路由器的時候,路由器都會把自己的ip放到該數 據報中。而目的主機則會把這個ip列表復制到回應icmp數據包中發回給主機。但是,無論如何,ip頭所能紀錄的路由列表是非常的有限。如果要觀察路由, 我們還是需要使用更好的工具,就是要講到的Traceroute(windows下面的名字叫做tracert)。 3.ICMP的應用 Traceroute是用來偵測主機到目的主機之間所經路由情況的重要工具,也是最便利的工具。前面說到,盡管ping工具也可以進行偵測,但是,因為ip頭的限制,ping不能完全的記錄下所經過的路由器。所以Traceroute正好就填補了這個缺憾。 Traceroute的原理是非常非常的有意思,它受到目的主機的IP後,首先給目的主機發送壹個TTL=1(還記得TTL是什麽嗎?)的UDP(後面就 知道UDP是什麽了)數據包,而經過的第壹個路由器收到這個數據包以後,就自動把TTL減1,而TTL變為0以後,路由器就把這個包給拋棄了,並同時產生 壹個主機不可達的ICMP數據報給主機。主機收到這個數據報以後再發壹個TTL=2的UDP數據報給目的主機,然後刺激第二個路由器給主機發ICMP數據 報。如此往復直到到達目的主機。這樣,traceroute就拿到了所有的路由器ip。從而避開了ip頭只能記錄有限路由IP的問題。 有人要問,我怎麽知道UDP到沒到達目的主機呢?這就涉及壹個技巧的問題,TCP和UDP協議有壹個端口號定義,而普通的網絡程序只監控少數的幾個號碼較 小的端口,比如說80,比如說23,等等。而traceroute發送的是端口號>30000(真變態)的UDP報,所以到達目的主機的時候,目的 主機只能發送壹個端口不可達的ICMP數據報給主機。主機接到這個報告以後就知道,主機到了,所以,說Traceroute是壹個騙子壹點也不為過:) Traceroute程序裏面提供了壹些很有用的選項,甚至包含了IP選路的選項,請察看man文檔來了解這些,這裏就不贅述了。