virtual circuit was reset by the ..
■ このスレッドは過去ログ倉庫に格納されています
0001見習い
NGNG下記のエラーのせいでうまく動作しないときがあります。
Socket: Cannot read from socket. Details: The virtual circuit was reset by
the remote side executing a 'hard' or 'abortive; close. For UPD sockets@` the remote
host was unable to deliver a previously sent UDP datagram and responded with a 'Port Unreachable' ICMP packet. The application should
close the socket as it is no longer useable. (WGAGetLastError: 10054)
クレジットカード番号を入力して、その番号を審査する外部の
専用サーバと接続後このようなエラーがでてしまうのです。
DMZ側においているサーバなのですが、ファイアウォールのログ
には特にこれといったエラーはでていないのです。
システム管理者として、次に調査すべき項目は何なのでしょうか?
0002匿名希望君MkII
NGNGWSAGetLastError() = 10054 というのは、WSAECONNRESET といって、
接続がリセット(強制的に切断されたか、もしくは拒否された)ことを
示しています。
お使いのソフトがどのような接続形態(TCP@`UDP@`ICMP)を使っている
のかは解りませんが、TCPプロトコルであるとすれば相手側から
接続を拒否されたか、もしくはデータ転送中に(不意に)接続が
強制的に切られたかのいずれかです。
まずは「外部の専用サーバ」の管理者の方に相談してみるのが
良いのではないでしょうか。
ありがちなのは、「外部の専用サーバ」がセキュリティポリシー
によって特定のIPからの接続しか受けつけないとか、あとは
そもそも「外部の専用サーバ」無いのカードを審査するサービスが
動いていないとか、そのあたりです。
00031です
NGNG早速のご教授をありがとうございます。
>まずは「外部の専用サーバ」の管理者の方に相談してみるのが
>良いのではないでしょうか。
相談したのですが、こちらのファイアウォールでログをとって
みてください、としか言われませんでした。
結構大手のカード審査サービス会社なのに...
00041です
NGNG検索したところ。
>WSAECONNRESET ピア側での接続がリセットされました
>通信している相手が強引に接続を断ったのですね。
>普通はrecvの返り値が0になるとか、非同期型なら
>FD_CLOSEのメッセージが飛んでくるとかするのですが、
>相手が強引にソケットをクローズした場合にはこういう
>エラーが発生することもあります。
やはり相手側が悪いのですよね。
0005anonymous
NGNG原因はパケット廃棄(フィルタ等)ではなく、先方のプロセスによる
close() が原因なんだよね。
だったら Firewall のログをいくら見ても解決できないと思うが。
00061です
NGNG原因不明と言われました。
>Winsock はよくわからないけど、RST パケットが返ってきたのなら、
>原因はパケット廃棄(フィルタ等)ではなく、先方のプロセスによる
>close() が原因なんだよね。
ふつうにネットワークの勉強をしていてもここまでのコメントは
出せないと思うのですが、やはりCなんかでネットワーク系の
プログラミングをされている方が多いのですか?
0007anonymous
NGNGうん?、普通にネットワークの勉強をしていれば分かるよ。
TCP の状態遷移図を見てみな。
フィルタについては、最近の実装は黙って廃棄なので、TCP で Timeout が
発生するだけだ、という知識に基づいた発言。ICMP が返ってきたら
Socket がどういうエラーを通知するかはよく分からないけど、多分
TCP 的には HandShake 失敗になるから「コネクションを確立できません」
というエラーになるんだろうな。
00081です
NGNGここは本当に勉強になります。
■ このスレッドは過去ログ倉庫に格納されています