ECHOプロトコルは、RFC 862で定義されている、インターネットプロトコルスイートにおける基本的なサービスの一つです。主な目的は、IPネットワーク上でのデータの往復時間(
ラウンドトリップタイム)を計測することにあります。
ECHOプロトコルの動作
ECHOプロトコルを利用するホストは、TCP(
Transmission Control Protocol)またはUDP(User Datagram Protocol)のいずれかのプロトコルを使って、ポート番号7番で動作しているECHOプロトコルに対応した
サーバーに接続を試みます。このポート番号7は、ウェルノウンポートとして知られています。接続が確立されると、クライアントから
サーバーに送信されたデータは、
サーバーによってそのままクライアントに返信されます。このシンプルな仕組みによって、データの往復にかかる時間を計測することが可能になります。
inetdでの実装
UNIX系のオペレーティングシステムにおいては、ECHO
サーバーは、inetdファミリーのデーモンに組み込まれていることが多いです。inetdは、インターネットサービスデーモンを管理するためのプログラムで、必要に応じてサービスを起動します。ECHOサービスは、通常はデフォルトで無効化されていますが、`/etc/inetd.conf`ファイルに以下の行を追加し、inetdの設定をリロードすることで有効にすることができます。
echo stream tcp nowait root internal
echo dgram udp wait root internal
これらの設定により、TCPストリームとUDPデータグラムの両方でECHOサービスを利用できるようになります。
Wake-on-LANとの関連
多くのルーターでは、ECHOプロトコルで使用されるポート7番(およびDISCARDプロトコルで使用されるポート9番)が、Wake-on-LAN(WOL)マジックパケットを中継する際の代替ポートとして設定されることがあります。Wake-on-LANは、ネットワーク経由でコンピューターをリモートから起動させる技術です。通常、WOLマジックパケットは、ブロードキャストアドレスに送信されますが、ルーターによっては特定のポートを介して中継される場合があり、ポート7やポート9がその役割を担うことがあります。
ECHOプロトコルの利用例
ECHOプロトコルは、ネットワークのトラブルシューティングやパフォーマンス測定によく使用されます。例えば、pingコマンドは、ICMP Echo Request(ICMPエコー要求)を使用して、ネットワークの疎通を確認しますが、ECHOプロトコルを使用して同様の機能を実現することも可能です。
セキュリティに関する注意
ECHOプロトコルは、基本的にデータをそのまま返信するため、セキュリティ上の問題が発生する可能性があります。特に、DoS(Denial of Service)攻撃に利用されるリスクがあるため、不要な場合は無効にしておくことが推奨されます。Fraggle攻撃は、UDP ECHOポートを悪用したDoS攻撃の一種です。
関連プロトコル
DISCARDプロトコル:受信したデータを破棄するプロトコル
DAYTIMEプロトコル:現在の日時を返すプロトコル
CHARGENプロトコル:任意の文字を生成して送信するプロトコル
TIMEプロトコル:現在の時刻を返すプロトコル
ICMP Echo: pingコマンドで使用されるプロトコル
参考文献
RFC 347 Echo Process
*
RFC 862 Echo Protocol