最新閲覧日:

TCP/IPのデータで質問です。

パソコンのサーバーと無線ハンディをTCP/IPで通信しています。サーバー側は無線ハンディからの要求に応えるプログラム(Visual Basic,Winsockコントロール使用)が起動されています。

このサーバーに無線ハンディ30台(もっと多いこともある)から,いっせいに接続要求を出すのですが,この接続に失敗するハンディがあったりします。

このときLAN上のデータを見てみると,パソコン側からRST(リセット)フラグ(強制切断)のデータが出ていました。どうやらこれが接続に失敗している原因のようなのです。

このRST(リセット)フラグのデータが出るのは,どう行ったときなのでしょうか? どういう理由でRST(リセット)フラグのデータが出るのでしょうか?

ご存知の方,いらしゃいましたら教えていただけないでしょうか? よろしくお願い致します。

A 回答 (5件)

ちなみに、ですが、手元の「TCP/IPバイブル」(SOFTBANK)では、



---------------
RST
 リセットフラグ(reset flag)は、他の全てが失敗するとき使われる。これは
エラーが起こり、コネクションが強制的にクローズされるべきであること(ある
いは、コネクションオープン要求に対する応答として送信されるならば、その要
求が拒否されること)を示す。
---------------
とあります。

実装でどう使われているかというのは、実装によるので難しいですね。
もしかしたら、という事で、MicrosoftのKBを挙げておきます。

参考URL:http://www.microsoft.com/japan/support/kb/articl …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

調べている中で、Winsockコントロールのキューも怪しそうだという情報もありました。どうもありがとうございました。

お礼日時:2001/03/12 09:42

このあたりの資料は書籍のほうが確実だと思います。



思いっきり専門書となりますが、オライリージャパンから出ているものでTCP/IPを
解説しているものがあったはずです。(私のところには「TCP/IPネットワーク管
理」というものしか置いてないので調べてみてください)
このほかにも専門書をたくさん置いてあるところにいけば結構あったと思います。

WebではRSTフラグは「強制切断」としか書いてないところが多数なんで何とも言い
ようがないですが、JPNICホームページのカテゴリ「教育」あたりにあるかもしれま
せん。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

いくつか書店をまわってみましたが「これ!」というものがなくて...。WEBでいろいろ探し回って、少しずつ情報が集まりかけてはいます。

お礼日時:2001/03/12 09:34

>ただ、1度目で失敗したときに、ハンディで接続処理をリトライさせるとつながる


>ようになります。
と いうことで、リトライ時点でその他のハンディのコネクションがまったく切れ
ていないのであれば、ハンディのプログラムを「コネクションを確立できなければ
何度かリトライする」というように改修するべきです。または、サーバにきたコネ
クション確立要求をパケットエラーでない限り受け入れるように改修するべきで
す。

コネクションを確立するのは要求する側の要求であって、要求された側はその要求
がのめる状態かどうかをチェックして初めて要求をのむかどうかを判断します。

コネクション確立要求がはねられる理由は
・資源(通信帯域やコネクションを確立するのに必要なメモリ)を使い切る寸前で
ある
・コネクション要求を受けたあと、返信するまでにある一定時間を経過してしまった
・パケットのエラー
などの原因ですので、このあたりをきちんと検討してみるといいでしょう。

※前回答にも書きましたが、きちんと実験してデータを取り、どこを改修するべき
かはきちんと検討する必要があります。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

もう少しこちらでも情報を集めてみようと思います。

接続要求や、rstフラグのデータについて説明してあるホームページや書籍をご存知ないでしょうか。もしご存知でしたら、教えていただけると助かります。

お礼日時:2001/03/08 09:30

TCPプロトコルは1対1のハンドシェーク通信を行います。



コネクションが成立するとFINを送受信するまでコネクションは成立したまま
となります。
コネクションをエラーなどで切断する必要が出るとRSTを送信してコネクショ
ンを解放します。

また、セキュリティポリシーなどで制限がかかっていてコネクションを成立さ
せたくない相手からのコネクション要求に対してもRSTでコネクションを不成
立させます。

といったところでどうでしょう?

現状はサーバー側からRSTを発信しているとのことですが、すべてのハンディ
からのコネクション要求が受け付けられているのか(つまり、RSTが出るのが
コネクション要求時なのか、コネクション成立後なのか)が分からないのでこ
のあたりに関しては現状をもっと詳しく解析されてみてはいかがでしょう?
(たとえばサーバ負荷とRSTが出てくる状態に関係があるとか)
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

すべてのハンディからのコネクション要求を受け付けられているのか、というと接続できなかったハンディに対しては受け付けられていないようです(VBのプログラムで接続要求イベントがあがっていない)。

ただ、1度目で失敗したときに、ハンディで接続処理をリトライさせるとつながるようになります。

お礼日時:2001/03/07 17:08

多分ですが、以下のことが想像できます。


・無線チャンネルが使いつくされてしまっている
・ハンディのIPアドレスが重複している
・VBのリスンが間に合っていない
・VBプログラムの構造に欠陥がある
・メモリ不足により、スレッド、タスク、プログラムのどれかを起動できなかった。
・不正アクセス監視プログラムによりアタックと認識され、阻止された。

で、RSTになるのは、確か該当サービスが起動していない時、あるいはエラー発生だったかと思います。
だから、無線チャンネルの奪い合い、IP重複という可能性が結構考えられそうです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

挙げられた中で言うと、IPアドレスの重複はありません。またPCにはメモリを1GB積んでいますから、不足ということはないと思います。

VBのリスンが間に合っていない、ということはCPUの性能ということでしょうか。ちなみにPen3 800Mhzを使用しています。

不正アクセス監視...という説もありえない話でなさそうですが、「こういう理由でRSTを出した」という情報がどこかで取得できないでしょうか...。

お礼日時:2001/03/07 16:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報

カテゴリ