ping にポート番号はありません

スポンサーリンク

1. ping は ICMPを利用したプログラム

まず ping とはICMPを利用したプログラムの名称です。一方、ポート番号というのは TCP と UDP の2つのプロトコルにある概念です。

下の表を見るとわかりますが ICMP はTCP/IP階層モデルのインターネット層(OSI参照モデルの場合はネットワーク層)に属するプロトコルです。TCP と UDP はその上位であるトランスポート層のプロトコルとなります。

※参考:マスタリングTCP/IP 入門編 2.4.1:TCP/IPとOSI参照モデル

2. ping を打つとは

それでは「ping を打つ」とはどういうことかを考えて見ましょう。ping とは 2つのノードのインターネット層 (OSI参照モデルの場合はネットワーク層) 同士の通信を確認しています。上の図を見るとわかりますが、ping が通るということはOSレベルでの疎通ができていることを意味します。しかしながらTCP/IP レベルの疎通については確認できていません。

3. TCP/IP レベルの疎通確認をするには?

TCP/IPレベルでの疎通を確認するにはトランスポート層レベルの疎通を確認する必要があります。Windows の場合は トランスポート層の疎通を確認するコマンドとして Test-NetConnection が用意されており、このコマンドを使って、TCP/IP レベル の疎通を確認することができます。
※参考:Windowsからポートを指定してpingを打つ

Linux の場合は ncat コマンドでTCP/IP レベル の疎通を確認することができます。
※参考: Linuxからポートを指定してpingを打つ

OSI参照モデルやネットワークの基礎について勉強したい人には下記の本をお勧めしておきます。

コメント

このページは「広告ブロッカー」を使っている人だけに表示される隠しページです。
ここにたどり着いたあなたには特別に当サイトのおすすめ書籍を紹介します。

当サイトのおすすめ書籍ランキング

第5位 達人プログラマー

第4位 マスタリングTCP/IP 入門編

第3位 ネットワークはなぜつながるのか

第2位 リーダブルコード

第1位 プログラムはなぜ動くのか