はじめに
こんにちは!テコンドーです。前回の記事に続きネットワークの勉強してます。
➜ source ping www.google.co.jp
PING www.google.co.jp (172.217.25.67): 56 data bytes
64 bytes from 172.217.25.67: icmp_seq=0 ttl=52 time=13.817 ms
ネットワークの疎通を確認するときにPingコマンドって必ず使いますよね
Pingコマンドとはネットワークを確認したいホストに対してIPパケットを送信して、通信ができるかどうかを確認するコマンドです。
Pingを活用する事でIP以下の階層でエラーがおきているのかどうかを確認する事ができます。
しかしPing通信が実際に何をしているのかはみなさん意外と知らないはず。
なのでPingについての話をしていきたいと思っています!!!
今回はPingを支えているOSI参照モデルとICMPプロトコルについて話していきます!
では早速見ていきましょう!
OSI参照モデルについて
Pingを詳しく見ていくためにはOSI参照モデルについて理解しましょう。
OSI参照モデルとは、
こんなやつ。通信プロトコルを7つの階層に分けることを言います。
このプロトコルに準拠することで異種機関が通信を行う事ができます。
USB端子っていろんな企業が規格を守っているからどのメーカーの物でも不自由なく使えますよね?
それと同じように通信の世界でもルールを決めてそれを守る限り通信を行う事ができます。
pingコマンドではネットワーク層までの通信を確認しています。
ICMPプロトコル
PingコマンドではICMP(Internet Control Message Protocol)を使用しています。
このプロトコルは
ICMP ( Internet Control Message Protocol ) は、IPプロトコルの「エラー通知」や「制御メッセージ」
を転送するためのプロトコルです。TCP/IPが実装されたコンピュータ間で、通信状態を確認するために
使用されます。 ICMPはインターネット層(OSI参照モデルのネットワーク層)で動作するプロトコルです。
引用
です。
階層的にはIP、ARPと同じインターネット層となっていてTCP等のトランスポート層の一つ下です。*1
ここでわかるのは、
PingはIPの通信を確認しているだけで、TCP/IP通信を確認しているわけではない
という事です。
はじめはTCPも含めた通信を確認してくれるところだと思っていたのですが、そうでないと調べて初めて知りました。
PingではPortの指定ができない
この理由もPingがIP通信のみを確認しているからです。
Portの指定をして通信するのはTCPの範囲となっています。
ですのでPortをPingで指定することはできないんですね
## まとめ
今回はOSI参照モデルとICMPプロトコルについて書きました。
今後はパケットを送信してからDNSでホスト名をアドレスに変換➡︎ルーターを経由して指定ホストへ到達するところまで調べていきたいです。
それでは!!!
コンピューターってアルファベット略語多いですよね、、、
この調子で作成されていくといずれ略語枯渇するんじゃないかな、、、
## 注釈
[1]
インターネット層なのだが、ICMPはIP通信の疎通を確認するために存在しているので、フォーマット的にはIPの上位のような扱いになっている。
画像の引用