1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ポート監視の方法

Last updated at Posted at 2019-02-20

ポート監視とは

あるホストのあるポートに対して、異なるホストからその死活状態、および通信の可否を監視すること。

TCP

TCP においては、3 Way Handshake が成功すれば、通信先ポートは生きており、第 5 層以上のアプリケーションは自由にデータを通信できると言える。
3 Way Handshake にはバークレーソケット API を用いてもいいし、telnet コマンドを用いてもいいだろう。

UDP

UDP はそもそも通信先にデータが届くかどうかを担保せず、考慮もしない。データが届くかを考慮しないのに、データが届くかを監視しようという発想そのものがナンセンスである。

とはいえ、そんな原理主義に基づいていては要件は満たせないので、なんとか方法を考えたいのだが……。
TCP は通信先ポートが開いていなければ SYN の応答として RST が帰ってくるが、UDP では ICMP の Port Unreach パケットが帰ってくる。つまり、適当にパケットを送って ICMP が帰ってこれば、相手のポートは死んでいると言える。
何も帰ってこない場合は、相手Appがパケットを受け取った上で何も返さないのか、パケットがロスしているのか区別がつかない。ping で疎通確認を別途取り、切り分けをするなどの方法も考えられるが、どちらかだけ経路上でロスする可能性も大いにあり、ポートが生きているのか、パケットがロスしただけなのかを正確に判別することは困難。

やはり UDP のポート監視は不可能だし、そもそもナンセンスという結論になってしまうのか……。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?