[解決済み] TCPオプションSO_LINGER(0)はいつ必要ですか?
2022-11-16 23:19:07
質問
オプションの正式な意味は理解しているつもりです。今、私が扱っているいくつかのレガシーコードで、このオプションが使用されています。顧客は、顧客側からの接続終了時に、顧客側からのFINに対する応答としてRSTについて不満を述べています。
私は、それがいつ使用されるべきかを理解していないので、安全にそれを削除できるかどうかわからない。
このオプションが必要とされる場合の例を教えてください。
どのように解決するのですか?
を設定する典型的な理由は
SO_LINGER
のタイムアウトをゼロにする典型的な理由は、大量のコネクションが
TIME_WAIT
状態になり、サーバーの利用可能なリソースをすべて使い果たしてしまうことを避けるためです。
TCP 接続がきれいに閉じられると、クローズを開始した側 ("active close") は、接続を終了して
TIME_WAIT
で数分間待機することになります。 そのため、もしあなたのプロトコルが
サーバ
が接続の終了を開始し、非常に多くの短命の接続を含むプロトコルである場合、この問題の影響を受ける可能性があります。
これは良いアイデアではありません。
TIME_WAIT
が存在するのには理由があります (古い接続からの浮遊パケットが新しい接続に干渉しないことを保証するため)。 可能であれば、クライアントが接続の終了を開始するようなプロトコルに再設計する方がよいでしょう。
関連
-
[解決済み] ai_socktypeではServnameはサポートされません。
-
[解決済み] クライアントソケットアプリケーションは、同じホストコンピュータ上のサーバーアプリケーションをどのように識別するのでしょうか
-
[解決済み] Mac OS Xで、指定したTCPポートでリッスンしているのは誰ですか?
-
[解決済み】WindowsでTCPまたはUDPポートをリッスンしているプロセスを見つけるにはどうすればよいですか?
-
[解決済み] TCP:2つの異なるソケットでポートを共有することができますか?
-
[解決済み] ネットワークプログラミングにおけるストリームとデータグラムの違いは何ですか?
-
[解決済み] TCPループバック接続とUnixドメインソケットの性能比較
-
[解決済み] ソケットAPIのaccept()関数はどのように動作するのですか?
-
[解決済み] TCPソケットとUDPソケットは同じポートを使用することができますか?
-
[解決済み] Chromeが一定量のデータ転送後にハングアップする - 利用可能なソケットを待つ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ai_socktypeではServnameはサポートされません。
-
[解決済み] クライアントソケットアプリケーションは、同じホストコンピュータ上のサーバーアプリケーションをどのように識別するのでしょうか
-
[解決済み] コネクション・リセット・バイ・ピア」とはどういう意味ですか?
-
[解決済み] TCPソケットとWebソケットの違い、もう一回 [重複].
-
[解決済み] TCP:2つの異なるソケットでポートを共有することができますか?
-
[解決済み] ネットワークプログラミングにおけるストリームとデータグラムの違いは何ですか?
-
[解決済み] TCPループバック接続とUnixドメインソケットの性能比較
-
[解決済み] TCPソケットとUDPソケットは同じポートを使用することができますか?
-
[解決済み] Chromeが一定量のデータ転送後にハングアップする - 利用可能なソケットを待つ