トップページ⇒network
8コメント5KB

virtual circuit was reset by the ..

■ このスレッドは過去ログ倉庫に格納されています
0001見習いNGNG
NTサーバで電子商取引のサービスを導入したのですが、
下記のエラーのせいでうまく動作しないときがあります。

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匿名希望君MkIINGNG
>>1
WSAGetLastError() = 10054 というのは、WSAECONNRESET といって、
接続がリセット(強制的に切断されたか、もしくは拒否された)ことを
示しています。

お使いのソフトがどのような接続形態(TCP@`UDP@`ICMP)を使っている
のかは解りませんが、TCPプロトコルであるとすれば相手側から
接続を拒否されたか、もしくはデータ転送中に(不意に)接続が
強制的に切られたかのいずれかです。

まずは「外部の専用サーバ」の管理者の方に相談してみるのが
良いのではないでしょうか。

ありがちなのは、「外部の専用サーバ」がセキュリティポリシー
によって特定のIPからの接続しか受けつけないとか、あとは
そもそも「外部の専用サーバ」無いのカードを審査するサービスが
動いていないとか、そのあたりです。
00031ですNGNG
> 匿名希望君MkIIさん
早速のご教授をありがとうございます。

>まずは「外部の専用サーバ」の管理者の方に相談してみるのが
>良いのではないでしょうか。
相談したのですが、こちらのファイアウォールでログをとって
みてください、としか言われませんでした。
結構大手のカード審査サービス会社なのに...
00041ですNGNG
その後、教えていただいた「WSAECONNRESET」で
検索したところ。

>WSAECONNRESET ピア側での接続がリセットされました
>通信している相手が強引に接続を断ったのですね。
>普通はrecvの返り値が0になるとか、非同期型なら
>FD_CLOSEのメッセージが飛んでくるとかするのですが、
>相手が強引にソケットをクローズした場合にはこういう
>エラーが発生することもあります。

やはり相手側が悪いのですよね。
0005anonymousNGNG
Winsock はよくわからないけど、RST パケットが返ってきたのなら、
原因はパケット廃棄(フィルタ等)ではなく、先方のプロセスによる
close() が原因なんだよね。

だったら Firewall のログをいくら見ても解決できないと思うが。
00061ですNGNG
もう一度、ここに書いてあることを踏まえて、問い合わせたところ、
原因不明と言われました。

>Winsock はよくわからないけど、RST パケットが返ってきたのなら、
>原因はパケット廃棄(フィルタ等)ではなく、先方のプロセスによる
>close() が原因なんだよね。
ふつうにネットワークの勉強をしていてもここまでのコメントは
出せないと思うのですが、やはりCなんかでネットワーク系の
プログラミングをされている方が多いのですか?
0007anonymousNGNG
>>6
うん?、普通にネットワークの勉強をしていれば分かるよ。
TCP の状態遷移図を見てみな。

フィルタについては、最近の実装は黙って廃棄なので、TCP で Timeout が
発生するだけだ、という知識に基づいた発言。ICMP が返ってきたら
Socket がどういうエラーを通知するかはよく分からないけど、多分
TCP 的には HandShake 失敗になるから「コネクションを確立できません」
というエラーになるんだろうな。
00081ですNGNG
皆様、ありがとうございました。
ここは本当に勉強になります。
■ このスレッドは過去ログ倉庫に格納されています