自分がこんなことを教えて良いのだろうか・・・と思いつつICMPの説明について。
ポイントなのは、自分でデータグラムを出して自分で問題が分かった場合は自分で理解する、他者からデータグラムをもらって問題が分かった場合はICMPで問題を伝える。IPで来たデータグラムの問題はIPで伝えなければならない。だからIPヘッダがICMPについている。
さらにICMPはユーザプロセスではなくカーネルプロセスで動作する。よって通常であればユーザが意識せずともICMPエラーが返る。
ICMPエラーに対してはICMPエラーで応答しない。ループになっちゃうから。