Internet Control Message Protocol
通信するときの お約束事だよ
インターネット関連の通信状況を確認するときに使うよ
「ICMP」と表現されるのが一般的だよ
簡単に書くよ
Internet Control Message Protocol(読:インターネット・コントロール・メッセージ・プロトコル)とは
いわゆる「ICMP」のこと。
用語の中身としては
通信するときに使う お約束事(通信プロトコル)のひとつ
であり
「ping」コマンドで使われているお約束事
です。
もう少し具体的に書くと
「インターネットが、ちゃんとつながっているかな~?」を確認するときに使う お約束事
です。
詳しく書くよ
最初に留意事項です。
「ICMP」と言われて「あぁ、アレのことね」と分かる方は最後まで読む必要ありません。
ICMPの正式名称(?)が「Internet Control Message Protocol」です。
「Internet Control Message Protocol」の頭文字を取ったのが「ICMP」ね。
※「Internet Control Message Protocol」を何となく日本語にすると「インターネットを制御する連絡をやり取りするためのお約束事」となります。[詳細]
以上が「ICMP」の意味を知っている人向けの説明です。
「ICMPって何?美味しいの?」な人は、このまま読み進めてください。
用語の中身について説明します。

それでは、いってみましょう。
まずは予備知識として「通信プロトコル(プロトコル)」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
通信プロトコル(プロトコル)は「通信するときに使う お約束事」です。
通信するときは足並みを揃える必要があります。
片方が日本語で話しかけたのに、もう一方が英語で お返事したのでは、コミュニケーションが成立しませんよね。
それと同じです。
そこで「○○通信をするときは ××というお約束事に従って やり取りしようね」と事前に決まっています。
言い方を変えると
通信するときは、お約束事が必要
なのです。
この「通信するときに使う お約束事」を「通信プロトコル(プロトコル)」と言います。
それを踏まえて、インターネット通信の制御や調査に関する情報をやり取りするときに使う通信プロトコル……と書くと小難しいですかね。
「このインターネットは、ちゃんとつながっているのかね?」を確認するための通信で使う お約束事
が「Internet Control Message Protocol」です。
文字通り
インターネット(Internet)を管理(Control)するメッセージ(Message)をやり取りするためのお約束事(Protocol)
です。
また、上でも書きましたが、一般的には「ICMP」と表現されます。
※本ページでも以降は「ICMP」と表現します。
IT関連の技術者であれば「ICMP」という用語には馴染みがなくても「ping」コマンドには馴染みがあると思います。
pingコマンドは通信相手とつながっているか確認するときに使うコマンドです。
このpingコマンドがICMPを使います。
pingコマンドさんは、ICMPのルールに従って情報をやり取りすることによって、通信相手とつながっているかを確認してくれるのです。
また、ICMPを使ったコマンドには、他に「tracert」コマンド(Linuxとかで使える「traceroute」コマンドのWindows版)などがあります。
あっ、そうそう。
tracert/tracerouteコマンドには、IT関係のお仕事をしているのであれば押さえておいた方が良い注意事項があります。
せっかくの機会なので、ちょっとだけ小難しい表現で補足しておきますね。
何を言っているか分からない人は気にする必要ありません。
小難しい表現を使った説明を理解できない段階であれば、内容を意識する必要に迫られる機会もほとんどないと思います。
というわけで、tracert/tracerouteコマンドの注意事項です。
実は、tracert/tracerouteコマンドには
ICMPパケットが使われる場合とUDPパケットが使われる場合がある
のです。
Windowsの「tracert」コマンドではICMPパケットが使われます。
Linuxの「traceroute」コマンドでは、初期状態でUDPパケットが使われます。
ICMPパケットを使うように変えることは可能ですが、何も考えないでコマンドを実行するとUDPパケットを使って調査されます。
これが何を意味するかというと
同じ機器に対するコマンド実行でも結果が異なる場合がある
ということです。
例えば、ファイアーウォールの設定でICMPパケットは通すけどUDPパケットは通さない設定になっていたとしましょう。
その場合、Windowsの「tracert」コマンド(ICMPパケット使用)は通りますが、Linuxの「traceroute」コマンド(UDPパケット使用)は弾かれます。
同じような役割のコマンドを同じ機器に対して実行したのにもかかわらず、違う結果になってしまうのです。
意識する必要に迫られる機会は少ないと思いますけどね。
技術者の方は一応覚えておいてください。
ここまでが、tracert/tracerouteコマンドの注意事項です。
ピヨピヨしたIT用語辞典らしからぬ真面目っぽい説明でごめんなさいね。
話を戻して、ICMPを使ったコマンドには「ping」コマンドや「tracert」コマンドがあります。
どちらも自分と通信相手の間の状況(ちゃんとつながってる?どんな経路でつながってる?など)を確認するときに使うコマンドです。
そのコマンドで使う通信する上でのお約束事、つまり、通信状況などを確認するときに使うお約束事がICMPです。
一言でまとめるよ
まぁ「Internet Control Message Protocol」って単語が出てきたら「ICMP
(インターネット通信が正常にできるか確認するときに使うお約束事)のことなんだな~」と お考えください。
おまけ
■訳してみるよ
「Internet(インターネット)」はIT用語の「インターネット」です。
「control(コントロール)」の意味は「統制する」とか「操作する」とか「制御する」とかです。
「message(メッセージ)」の意味は「伝言」とか「伝達」とか「連絡」とかです。
「protocol(プロトコル)」の意味は「(外交上の)儀礼」とか「議定書」とかですが、今回は「お約束事」と解釈してください。
何となく くっつけると
インターネットを制御する連絡をやり取りするためのお約束事
となります。
■検索してみる?






