
TCP/IPのデータで質問です。
パソコンのサーバーと無線ハンディをTCP/IPで通信しています。サーバー側は無線ハンディからの要求に応えるプログラム(Visual Basic,Winsockコントロール使用)が起動されています。
このサーバーに無線ハンディ30台(もっと多いこともある)から,いっせいに接続要求を出すのですが,この接続に失敗するハンディがあったりします。
このときLAN上のデータを見てみると,パソコン側からRST(リセット)フラグ(強制切断)のデータが出ていました。どうやらこれが接続に失敗している原因のようなのです。
このRST(リセット)フラグのデータが出るのは,どう行ったときなのでしょうか? どういう理由でRST(リセット)フラグのデータが出るのでしょうか?
ご存知の方,いらしゃいましたら教えていただけないでしょうか? よろしくお願い致します。
A 回答 (5件)
- 最新から表示
- 回答順に表示

No.5
- 回答日時:
ちなみに、ですが、手元の「TCP/IPバイブル」(SOFTBANK)では、
---------------
RST
リセットフラグ(reset flag)は、他の全てが失敗するとき使われる。これは
エラーが起こり、コネクションが強制的にクローズされるべきであること(ある
いは、コネクションオープン要求に対する応答として送信されるならば、その要
求が拒否されること)を示す。
---------------
とあります。
実装でどう使われているかというのは、実装によるので難しいですね。
もしかしたら、という事で、MicrosoftのKBを挙げておきます。
参考URL:http://www.microsoft.com/japan/support/kb/articl …
ご回答ありがとうございます。
調べている中で、Winsockコントロールのキューも怪しそうだという情報もありました。どうもありがとうございました。
No.4
- 回答日時:
このあたりの資料は書籍のほうが確実だと思います。
思いっきり専門書となりますが、オライリージャパンから出ているものでTCP/IPを
解説しているものがあったはずです。(私のところには「TCP/IPネットワーク管
理」というものしか置いてないので調べてみてください)
このほかにも専門書をたくさん置いてあるところにいけば結構あったと思います。
WebではRSTフラグは「強制切断」としか書いてないところが多数なんで何とも言い
ようがないですが、JPNICホームページのカテゴリ「教育」あたりにあるかもしれま
せん。
ご回答ありがとうございます。
いくつか書店をまわってみましたが「これ!」というものがなくて...。WEBでいろいろ探し回って、少しずつ情報が集まりかけてはいます。
No.3
- 回答日時:
>ただ、1度目で失敗したときに、ハンディで接続処理をリトライさせるとつながる
>ようになります。
と いうことで、リトライ時点でその他のハンディのコネクションがまったく切れ
ていないのであれば、ハンディのプログラムを「コネクションを確立できなければ
何度かリトライする」というように改修するべきです。または、サーバにきたコネ
クション確立要求をパケットエラーでない限り受け入れるように改修するべきで
す。
コネクションを確立するのは要求する側の要求であって、要求された側はその要求
がのめる状態かどうかをチェックして初めて要求をのむかどうかを判断します。
コネクション確立要求がはねられる理由は
・資源(通信帯域やコネクションを確立するのに必要なメモリ)を使い切る寸前で
ある
・コネクション要求を受けたあと、返信するまでにある一定時間を経過してしまった
・パケットのエラー
などの原因ですので、このあたりをきちんと検討してみるといいでしょう。
※前回答にも書きましたが、きちんと実験してデータを取り、どこを改修するべき
かはきちんと検討する必要があります。
ご回答ありがとうございます。
もう少しこちらでも情報を集めてみようと思います。
接続要求や、rstフラグのデータについて説明してあるホームページや書籍をご存知ないでしょうか。もしご存知でしたら、教えていただけると助かります。
No.2
- 回答日時:
TCPプロトコルは1対1のハンドシェーク通信を行います。
コネクションが成立するとFINを送受信するまでコネクションは成立したまま
となります。
コネクションをエラーなどで切断する必要が出るとRSTを送信してコネクショ
ンを解放します。
また、セキュリティポリシーなどで制限がかかっていてコネクションを成立さ
せたくない相手からのコネクション要求に対してもRSTでコネクションを不成
立させます。
といったところでどうでしょう?
現状はサーバー側からRSTを発信しているとのことですが、すべてのハンディ
からのコネクション要求が受け付けられているのか(つまり、RSTが出るのが
コネクション要求時なのか、コネクション成立後なのか)が分からないのでこ
のあたりに関しては現状をもっと詳しく解析されてみてはいかがでしょう?
(たとえばサーバ負荷とRSTが出てくる状態に関係があるとか)
ご回答ありがとうございます。
すべてのハンディからのコネクション要求を受け付けられているのか、というと接続できなかったハンディに対しては受け付けられていないようです(VBのプログラムで接続要求イベントがあがっていない)。
ただ、1度目で失敗したときに、ハンディで接続処理をリトライさせるとつながるようになります。

No.1
- 回答日時:
多分ですが、以下のことが想像できます。
・無線チャンネルが使いつくされてしまっている
・ハンディのIPアドレスが重複している
・VBのリスンが間に合っていない
・VBプログラムの構造に欠陥がある
・メモリ不足により、スレッド、タスク、プログラムのどれかを起動できなかった。
・不正アクセス監視プログラムによりアタックと認識され、阻止された。
で、RSTになるのは、確か該当サービスが起動していない時、あるいはエラー発生だったかと思います。
だから、無線チャンネルの奪い合い、IP重複という可能性が結構考えられそうです。
ご回答ありがとうございます。
挙げられた中で言うと、IPアドレスの重複はありません。またPCにはメモリを1GB積んでいますから、不足ということはないと思います。
VBのリスンが間に合っていない、ということはCPUの性能ということでしょうか。ちなみにPen3 800Mhzを使用しています。
不正アクセス監視...という説もありえない話でなさそうですが、「こういう理由でRSTを出した」という情報がどこかで取得できないでしょうか...。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Tera Term ネットワークに到達...
-
外付けHDDの不具合??
-
インフォシークのプロフィール...
-
vpnでエラー789
-
BUFFALO WebAccessに繋がらない...
-
eo光契約でメールの「発信」だ...
-
Eclipseで、プロジェクト名のと...
-
正しいURL指定しているにもかか...
-
Eclipse・プロジェクトで、フォ...
-
Eclipse(JAVA)のデバッグで他...
-
Javascriptの値をJava(JSP)へ渡...
-
javaクラスファイルをEclipseで...
-
MSDNのコレクションがありませ...
-
「ワークスペースをビルド中」...
-
【Eclipse】パッケージ・エクス...
-
SVFの設定について:クラスパス...
-
Eclipseのアンインストールの仕方
-
VBプログラムから「管理者とし...
-
JADで*.jarごとデコンパイルす...
-
split関数で区切り文字がない場合
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Tera Term ネットワークに到達...
-
ENTER NETFOLDERについて教え...
-
どうやってもサーバーが見つか...
-
無線LANで1台だけネット接...
-
友人がiPhoneのパスコードを11...
-
アウトルックエクスプレスで送...
-
イーモバイル
-
3DSのインターネットエラー"003...
-
PCを1日近くつけっぱなしにす...
-
IIS7 Webサイトが開始できません
-
このエラーの原因は?
-
デスクトップがうまく起動しま...
-
このページでスクリプトエラー...
-
インターネットがすぐエラー表...
-
DNSエラー「コンピューターは正...
-
youtubeに繋がらない
-
net useエラー
-
【Excel 2007】クエリが実行で...
-
COPYコマンドで共有プリンタに...
-
NEC AtermWR8700N接続設定について
おすすめ情報