ICMP協議的定義
ICMP協議的定義2010-07-13 10:10 佚名 csdn.net 我要評論(0) 字號:T | T
下面我們來介紹一下ICMP協議。這個協議的作用是在網路層,進行訊息控制的。不少有關於這個ICMP協議的攻擊問題,那麼對於這個原理我們就需要清楚了。
AD:
在網路層,ICMP協議有著很重要的作用。它可以算是一位檢查者,幫助我們檢查在訊息中的一些傳遞問題。那麼接下來我們就來規範一下這個協議的定義。網際網路控制訊息協議(Internet Control Message Protocol 或簡寫 ICMP)的目的是用於在 TCP/IP 網路中傳送控制訊息,提供可能發生在通訊環境中的各種問題反饋,通過這些資訊,令管理者可以對所發生的問題作出診斷,然後採取適當的措施去解決它。
ICMP依靠IP來完成它的任務,它是IP的主要部分。它與傳輸協議,如TCP和UDP顯著不同:它一般不用於在兩點間傳輸資料。它通常不由網路程式直接使用,除了ping和traceroute這兩個特別的例子。
IPv4的ICMP也叫ICMPv4。IPv6的也有一個相似的協議,叫ICMPv6。
ICMP訊息是在IP層,通常是從一個普通的產生了ICMP響應的IP資料包中生成的。IP把適當的ICMP訊息用一個新的檔頭(header)封裝起來(以把ICMP訊息送回原來的傳送者),然後把產生的資料包用常規的方式傳送回去。
例如,每臺轉發IP資料包的機器(例如途中的路由器)都要把IP報頭中的TTL(time to live)減1,如果TTL減為了0,一個ICMP超時訊息就會被髮送到資料包的源傳送者。
每個ICMP訊息都是直接封裝在一個IP資料包中的,因此,和UDP一樣,ICMP是不可靠的。
雖然ICMP協議是包含在IP資料包中的,但是對ICMP訊息通常會特殊處理,會和一般IP資料包的處理不同,而不是作為IP的一個子協議來處理。在很多時候,需要去檢視ICMP訊息的內容,然後傳送適當的錯誤訊息到那個原來產生IP資料包的程式,即那個被提示一個ICMP訊息的程式。
很多常用的工具是基於ICMP訊息的。traceroute是通過傳送包含有特殊的TTL的包,然後查詢ICMP協議超時訊息和目標不可達訊息來實現的。和traceroute相關的ping則是用ICMP的"Echo request"和"Echo reply"訊息來實現的。
ICMP部分的結構
報頭
ICMP報頭從IP報頭的第160位開始(除非使用了IP報頭的可選部分)。
Type - ICMP的型別;
Code - 進一步劃分ICMP的型別;例如,ICMP的目標不可達型別可以把這個位設為1至15等來表示不同的意思。
Checksum - 這個欄位包含有從ICMP報頭和資料部分計算得來的,用於檢查錯誤的資料,其中資料部分的值視為0。
ID - 這個欄位包含了ID值,在ECHO REPLY型別的訊息中要返回這個欄位。
Sequence - 這個欄位包含一個序號,同樣要在ECHO REPLY型別的訊息中要返回這個欄位。
填充資料
填充的資料緊接在ICMP報頭的後面(以8位為一組):
Linux的 "ping"工具填充的ICMP除了8個8位元組的報頭以外,還另外填充資料使得總大小為64位元組。
Windows 的"ping.exe" 填充的ICMP協議除了8個8位元組的報頭以外,還另外填充資料使得總大小為40位元組
下面我們來介紹一下ICMP協議。這個協議的作用是在網路層,進行訊息控制的。不少有關於這個ICMP協議的攻擊問題,那麼對於這個原理我們就需要清楚了。
AD:
在網路層,ICMP協議有著很重要的作用。它可以算是一位檢查者,幫助我們檢查在訊息中的一些傳遞問題。那麼接下來我們就來規範一下這個協議的定義。網際網路控制訊息協議(Internet Control Message Protocol 或簡寫 ICMP)的目的是用於在 TCP/IP 網路中傳送控制訊息,提供可能發生在通訊環境中的各種問題反饋,通過這些資訊,令管理者可以對所發生的問題作出診斷,然後採取適當的措施去解決它。
ICMP依靠IP來完成它的任務,它是IP的主要部分。它與傳輸協議,如TCP和UDP顯著不同:它一般不用於在兩點間傳輸資料。它通常不由網路程式直接使用,除了ping和traceroute這兩個特別的例子。
IPv4的ICMP也叫ICMPv4。IPv6的也有一個相似的協議,叫ICMPv6。
ICMP訊息是在IP層,通常是從一個普通的產生了ICMP響應的IP資料包中生成的。IP把適當的ICMP訊息用一個新的檔頭(header)封裝起來(以把ICMP訊息送回原來的傳送者),然後把產生的資料包用常規的方式傳送回去。
例如,每臺轉發IP資料包的機器(例如途中的路由器)都要把IP報頭中的TTL(time to live)減1,如果TTL減為了0,一個ICMP超時訊息就會被髮送到資料包的源傳送者。
每個ICMP訊息都是直接封裝在一個IP資料包中的,因此,和UDP一樣,ICMP是不可靠的。
雖然ICMP協議是包含在IP資料包中的,但是對ICMP訊息通常會特殊處理,會和一般IP資料包的處理不同,而不是作為IP的一個子協議來處理。在很多時候,需要去檢視ICMP訊息的內容,然後傳送適當的錯誤訊息到那個原來產生IP資料包的程式,即那個被提示一個ICMP訊息的程式。
很多常用的工具是基於ICMP訊息的。traceroute是通過傳送包含有特殊的TTL的包,然後查詢ICMP協議超時訊息和目標不可達訊息來實現的。和traceroute相關的ping則是用ICMP的"Echo request"和"Echo reply"訊息來實現的。
ICMP部分的結構
報頭
ICMP報頭從IP報頭的第160位開始(除非使用了IP報頭的可選部分)。
Type - ICMP的型別;
Code - 進一步劃分ICMP的型別;例如,ICMP的目標不可達型別可以把這個位設為1至15等來表示不同的意思。
Checksum - 這個欄位包含有從ICMP報頭和資料部分計算得來的,用於檢查錯誤的資料,其中資料部分的值視為0。
ID - 這個欄位包含了ID值,在ECHO REPLY型別的訊息中要返回這個欄位。
Sequence - 這個欄位包含一個序號,同樣要在ECHO REPLY型別的訊息中要返回這個欄位。
填充資料
填充的資料緊接在ICMP報頭的後面(以8位為一組):
Linux的 "ping"工具填充的ICMP除了8個8位元組的報頭以外,還另外填充資料使得總大小為64位元組。
Windows 的"ping.exe" 填充的ICMP協議除了8個8位元組的報頭以外,還另外填充資料使得總大小為40位元組
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25897606/viewspace-704276/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ICMP協議協議
- icmp和arp協議協議
- 網路通訊協議-ICMP協議詳解!協議
- ICMP Internet控制資訊協議協議
- 什麼是協議?| 網路協議定義協議
- 計算機網路之四:ICMP協議計算機網路協議
- 淺談TCP、UDP、ICMP三種常見協議TCPUDP協議
- OSI 七層網路協議的定義與理解協議
- 真正“搞”懂HTTPS協議15之安全的定義HTTP協議
- 視覺化搭建 - 定義聯動協議視覺化協議
- 通過ICMP協議反彈SHELL並執行命令協議
- 為什麼說 ICMP 協議是網路最強輔助協議
- Linux C++ 實現一個簡易版的ping (也就是ICMP協議)LinuxC++協議
- CCNA - Part7:網路層 - ICMP 應該是你最熟悉的協議了協議
- Centos 6、7 作業系統中,如何開啟或關閉ICMP協議CentOS作業系統協議
- netty自定義Decoder用於自定義協議Netty協議
- 思科Webex定義協作的未來Web
- [雪峰磁針石部落格]python網路作業:使用python的socket庫實現ICMP協議的pingPython協議
- 4種傳輸協議設定,檔案傳輸協議如何選擇?協議
- Gossip協議和Grpc協議的區別Go協議RPC
- [需求建議]建議欄位別名定義定義那裡順便可定義預設值,這預設值還可以是函式函式
- 如何利用 Netty 實現自定義協議通訊?Netty協議
- 樣本協方差矩陣的定義與計算矩陣
- Zookeeper的ZAB協議與Paxos協議區別協議
- 【協議】AAA Radius協議的常用報文分析協議
- HTTP協議和HTTPS協議的異同點?HTTP協議
- 如何動手實現一個自定義的通訊協議?協議
- Raft協議和ZAB協議Raft協議
- Gossip協議也叫Epidemic協議(流行病協議)Go協議IDE
- 網路協議之:haproxy的Proxy Protocol代理協議協議Protocol
- JMeter 擴充套件外掛實現對自定義協議的支援JMeter套件協議
- 如何在MacOS中設定共享檔案協議?Mac協議
- 頁面連結跳轉--指定協議,半協議,無協議協議
- 協議協議
- ARP協議介紹與ARP協議的攻擊手法協議
- https協議的理解HTTP協議
- 基於Netty實現自定義訊息通訊協議(協議設計及解析應用實戰)Netty協議
- 淺談WebSocket協議、WS協議和WSS協議原理及關係Web協議
- 建議欄位別名定義定義那裡順便可定義預設值,這預設值還可以是函式函式