Windows7のTCP通信でRST+ACKがサーバソケット側から送信されて通信が切断されるようになり、サーバソケット側WindowsOSを再起動しないと現象が復帰しない。
WindowsOS再起動で現象が復帰する為、497日問題の類のWindowsOSの不具合と考えますが、類似の現象をご存じの方は情報提供頂けないでしょうか。
RST+ACKが送信されるタイミングですが、サーバソケット側のリードタイムアウト時間を変更したタイミングが影響しているのではないかと思っています。なお他のTCP通信は行えている様で、下記処理のアプリケーションで動的にリードタイムアウト時間を変更しているせいではないかと思いました。
C#言語で作成したサーバ・クライアントモデムの通信処理で、サーバ側から見て次の様になっています。
「7.」のリクエスト受信から「8.」のレスポンス送信の間でRST+ACKを送信している様です。
なおアプリケーション的にどの様な例外が発生しているかはログが残っていないのでわかりませんが、通信が切断となり、「8.」のレスポンスは送信できていません。なおRST+ACKが送信されているのはサーバソケット側Windowsでワイヤーシャークを用いて確認しました。
1.サーバソケットListen 接続待ち
↓
2.サーバソケット接続Accept 「3.」から処理用の新スレッドへ
↓
3.クライアントソケットへ通信OK送信
↓
4.リードタイムアウト2秒とし、通信OKのレスポンス待ち
↓
5.通信OKのレスポンス受信
↓
6.リードタイムアウト30分とし、クライアントからのリクエスト待ち
↓
7.クライアントからのリクエスト受信 このタイミングあたりでRST+ACKが送信されていると思われます。
↓
8.クライアントへレスポンス送信
↓
「6.」へ戻る
試したこと
サーバソケット側アプリケーションを再起動 現象復帰ならず
クライアントソケット側アプリケーションを再起動 現象復帰ならず
サーバソケット側WindowsOSを再起動 現象が復帰した
netstat -anp tcpでtcpポート状態を確認していましたが、当該サーバポートはListenとなっておりました。TIME_WAITが大量に残っていることもありませんでした。
補足情報(FW/ツールのバージョンなど)
●アプリケーションに関して
.NET Framework 4.5 C# で開発
サーバソケットオブジェクト TcpListenerから生成したTcpClient
サーバソケットオプションですがデフォルトから特に何も指定していません。次の通りTcpListenerインスタンスを作成しているだけです。
new TcpListener(new IPEndPoint(IPAddress.Any,5200))
ブロッキングソケットです。リードタイムアウトの例外をCatchして接続をクローズするようになっています。
クライアントソケットオブジェクト TcpClient
●実行WindowsOS環境
OS稼働時間 43613261秒≒約504日
OS 名: Microsoft Windows 7 Professional
OS バージョン: 6.1.7601 Service Pack 1 ビルド 7601
OS 製造元: Microsoft Corporation
OS 構成: スタンドアロン ワークステーション
OS ビルドの種類: Multiprocessor Free
WindowsUpdate状況
[01]: KB2849697 [02]: KB2849696 [03]: KB2841134 [04]: KB2841134 [05]: KB2670838 [06]: KB2830477 [07]: KB2592687 [08]: KB2479943 [09]: KB2491683 [10]: KB2503665 [11]: KB2506212 [12]: KB2506928 [13]: KB2509553 [14]: KB2510531 [15]: KB2511455 [16]: KB2515325 [17]: KB2532531 [18]: KB2533552 [19]: KB2533623 [20]: KB2534111 [21]: KB2536275 [22]: KB2536276 [23]: KB2544893 [24]: KB2545698 [25]: KB2547666 [26]: KB2552343 [27]: KB2560656 [28]: KB2563227 [29]: KB2564958 [30]: KB2570947 [31]: KB2574819 [32]: KB2579686 [33]: KB2585542 [34]: KB2604115 [35]: KB2619339 [36]: KB2620704 [37]: KB2621440 [38]: KB2631813 [39]: KB2639308 [40]: KB2640148 [41]: KB2644615 [42]: KB2647753 [43]: KB2653956 [44]: KB2654428 [45]: KB2655992 [46]: KB2656356 [47]: KB2660075 [48]: KB2667402 [49]: KB2676562 [50]: KB2685811 [51]: KB2685813 [52]: KB2685939 [53]: KB2690533 [54]: KB2698365 [55]: KB2705219 [56]: KB2709630 [57]: KB2712808 [58]: KB2718704 [59]: KB2719857 [60]: KB2726535 [61]: KB2727528 [62]: KB2729094 [63]: KB2729452 [64]: KB2731771 [65]: KB2732059 [66]: KB2732487 [67]: KB2732500 [68]: KB2736422 [69]: KB2742599 [70]: KB2743555 [71]: KB2750841 [72]: KB2758857 [73]: KB2761217 [74]: KB2763523 [75]: KB2770660 [76]: KB2773072 [77]: KB2785220 [78]: KB2786081 [79]: KB2789645 [80]: KB2798162 [81]: KB2799926 [82]: KB2800095 [83]: KB2803821 [84]: KB2807986 [85]: KB2808679 [86]: KB2813347 [87]: KB2813430 [88]: KB2820331 [89]: KB2832414 [90]: KB2834140 [91]: KB2836942 [92]: KB2836943 [93]: KB2839894 [94]: KB2840149 [95]: KB2840631 [96]: KB2843630 [97]: KB2846960 [98]: KB2847077 [99]: KB2847311 [100]: KB2847927 [101]: KB2852386 [102]: KB2853952 [103]: KB2855844 [104]: KB2857650 [105]: KB2859537 [106]: KB2861191 [107]: KB2861698 [108]: KB2862152 [109]: KB2862330 [110]: KB2862335 [111]: KB2862966 [112]: KB2862973 [113]: KB2864058 [114]: KB2864202 [115]: KB2868038 [116]: KB2868116 [117]: KB2868626 [118]: KB2871997 [119]: KB2882822 [120]: KB2884256 [121]: KB2887069 [122]: KB2888049 [123]: KB2891804 [124]: KB2892074 [125]: KB2893294 [126]: KB2893519 [127]: KB2894844 [128]: KB2900986 [129]: KB2908783 [130]: KB2909210 [131]: KB2911501 [132]: KB2912390 [133]: KB2913152 [134]: KB2918077 [135]: KB2918614 [136]: KB2919469 [137]: KB2922229 [138]: KB2923545 [139]: KB2926765 [140]: KB2928562 [141]: KB2929733 [142]: KB2929755 [143]: KB2931356 [144]: KB2937610 [145]: KB2939576 [146]: KB2943357 [147]: KB2957189 [148]: KB2957503 [149]: KB2957509 [150]: KB2961072 [151]: KB2965788 [152]: KB2966583 [153]: KB2968294 [154]: KB2970228 [155]: KB2971850 [156]: KB2972100 [157]: KB2972211 [158]: KB2972280 [159]: KB2973112 [160]: KB2973201 [161]: KB2973337 [162]: KB2973351 [163]: KB2976627 [164]: KB2976897 [165]: KB2977292 [166]: KB2977728 [167]: KB2978092 [168]: KB2978120 [169]: KB2978668 [170]: KB2978742 [171]: KB2979570 [172]: KB2980245 [173]: KB2984972 [174]: KB2984976 [175]: KB2984981 [176]: KB2985461 [177]: KB2987107 [178]: KB2991963 [179]: KB2992611 [180]: KB2993651 [181]: KB2993958 [182]: KB2994023 [183]: KB2998527 [184]: KB2999226 [185]: KB3000061 [186]: KB3000869 [187]: KB3000988 [188]: KB3001554 [189]: KB3002885 [190]: KB3003057 [191]: KB3003743 [192]: KB3005607 [193]: KB3006226 [194]: KB3008627 [195]: KB3010788 [196]: KB976902 [197]: KB982018
回答1件
あなたの回答
tips
プレビュー