- 締切済み
WINSOCKでTCPのステータスを調べたい
通信異常が発生するのでwiresharkでパケットモニタするとRetransmissionが発生していました。 そのデータには肯定応答コマンドとモニタコマンドが重複して送信されていました。単純に考えるとRetransmissionのパケットデータはそのままKEEPされてモニタコマンドのパケットとは区別されるような気がするんですが・・・。 そこでTCPが再送状態にあるならば上位からは新たなコマンドを出さないように修正したいと考えていますがいろいろ調べてもステータス取得出来るような物が見つかりません。 ご教授願います。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Wr5
- ベストアンサー率53% (2173/4061)
回答No.1
本当にTCPの再送が原因ですか? TCPを使用するアプリケーションからは再送は見えない(気にしなくていい)ハズですが…… # TCPはそういうプロトコル…かと。 再送が繰り返された為にアプリ側でタイムアウト処理が走った…とか、そういうことはありませんか? # または、再送繰り返している間にエラーで切断されてしまったとか。
お礼
Wr5さん遅くなってすみません。 TCPのシーケンス番号等が同じ再送になっています。 アプリ側は、モニタコマンド要求ー>ドライバがコマンド送信ー>受信解釈ー>肯定応答ー>アプリに戻る ような流れでネット上に他のPCからのUDP問い合わせ等が入るとたまに再送が発生します。 相手のウィンドウサイズ750バイトとが小さいからなのでしょうか?
補足
SENDの送信サイズをByte数にお応じて変更する方法で逃げることにしました