SSブログ

TCPの接続タイムアウトを試験する

通信プログラムの試験を行う際にやっかいなのが、TCPコネクションの接続タイムアウトを試験する場合。
タイムアウトの値を設定して、それが有効に機能しているかどうかを確認するには、実際にタイムアウトエラーを発生させて、設定したタイムアウト値通りの経過時間でエラーになったかをみないといけない。

普通に接続できないエラーを確認するには、サーバを止めておく方法でOK。タイムアウトでない場合の接続試験はこれでできる。
サーバプロセスを止めておけば、ICMPでport unreachableが返ってくる。port unreachableが戻れば、即時に接続エラーとなる。
しかし、即時にエラーなので、タイムアウトを再現できたことにはならない。

存在しないIPアドレスに接続してみる

そこで、LAN上の実働していないホストのIPアドレスを指定して接続させてみる。
Linuxマシンでは、arpが引けないので、即時に「No route to host」のエラーになってしまう。

やっぱり即時エラーなのでこの方法も使えない。

しょうもないなぁ、と思って、インターネット上の接続タイムアウトしそうなサーバにアクセスしてみようか、と思う。
しかし、そんなサーバってあるか?

これもダメか。

ケーブルを抜く

いろいろと考えた結果、ケーブルを抜けばいいんじゃない?と思った。
一度pingして、arpキャッシュに登録させておけば、ある程度の時間なら「No route to host」にならないのでは?
でもなぁ、あまり抜き差ししたくはないのよね。爪のところが壊れちゃうし。

やってみたが、arpキャッシュの有効期限が短く設定されているせいか、ケーブルを抜いたらキャッシュから割とすぐになくなってしまう模様。
サーバ側じゃなくて、クライアント側を抜いたので、そこでarpキャッシュが無効になるのかも。サーバ側は抜きたくないなぁ... 他でも使っているし。

ケーブルを抜く作戦もダメか。

Virtual PCの仮想ネットワークを切断する

Virtual Boxでは、ネットワークアダプタの脱着を動的に行うことができる。
うまくいくかに見えたが、Virtual PCのマシンに通信して得たURLにアクセスするようなプログラムなので、そもそもの通信ができなくなりこの方法でもダメ。
やるのなら、別のVirtual PCマシンを用意しないと。

ローカルに異なるネットワークを作成する

なんか、大掛かりになってきてしまった。
LANには192.168.0.0/24を割り当ててある。
もうひとつのセグメントを作って、192.168.100.0/24とかにする。
クライアントに経路を作ってやる。

route add -net 192.168.100.0/24 gw 192.168.0.2

これで、192.168.100.0/24行きのパケットは、192.168.0.2に転送されるはず。192.168.0.2でちゃんとルーティングすればちゃんと通信できるが、接続タイムアウトを試験したいので、192.168.0.2では何もしない。
192.168.100.0/24のネットワークも実際には存在しない。

接続先に、192.168.100.1とかを指定して、接続させてみる。

やってる、やってる。
タイムアウトは60秒に設定しているので...

60秒後にTCP接続タイムアウトになった。やったね!

接続タイムアウトを試験したい場合は、実在しないネットワークセグメントへの経路を作ってやれば、OKという話でした。



サイト内を検索

nice!(0)  コメント(0) 
共通テーマ:携帯コンテンツ

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。



Copyright Atsushi Asai Google+朝井淳
[改訂第4版]SQLポケットリファレンス

[改訂第4版]SQLポケットリファレンス

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2017/02/18
  • メディア: 単行本(ソフトカバー)

イラストで理解 SQL はじめて入門

イラストで理解 SQL はじめて入門

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2019/05/16
  • メディア: 単行本(ソフトカバー)

[データベースの気持ちがわかる]SQLはじめの一歩 (WEB+DB PRESS plus)

[データベースの気持ちがわかる]SQLはじめの一歩 (WEB+DB PRESS plus)

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2015/03/03
  • メディア: 単行本(ソフトカバー)

Access クエリ 徹底活用ガイド ~仕事の現場で即使える

Access クエリ 徹底活用ガイド ~仕事の現場で即使える

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2018/05/25
  • メディア: 大型本

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。