TCPについてお伺いいたします。


setsockopt(sock, SOL_SOCKET, SO_LINGER, ...)で指定する
リンガータイマーは、*正確*には
どのTCP状態からどのTCP状態までの間の時間なのですか?

1.状態Aから状態Bまでの時間という回答。
2.あなたの回答の根拠を示すURLや書籍を紹介してください。

1, 2の両方とも示せない場合は回答不要です。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/03/18 22:14:06
  • 終了:--

回答(3件)

id:nyori3 No.1

nyori3回答回数21ベストアンサー獲得回数02005/03/18 23:25:04

ポイント20pt

ftp://ftp.isi.edu/in-notes/rfc793.txt

RFC793の状態遷移から、ESTABLISHEDからFIN_WAIT_1まで、もしくはCLOSE_WAITからLAST_ACKまでの時間だと思います。

なお、HP-UX限定かもしれませんが、こちらのSO_LINGERの項を読むと、「l_linger の値は論理値として単純な取扱いを受けます。非ゼロの値は時間制限として解釈され ません 」とあり、時間設定はできないと考えています。

id:aukjs

> RFC793の状態遷移から、ESTABLISHEDからFIN_WAIT_1まで、もしくはCLOSE_WAITから

> LAST_ACKまでの時間だと思います。

「思います」って。。。

そもそも、そのrfc793をみても、lingerで引っかかりません。

TCPの状態遷移なら知っています。知っているので、「TCP状態」でいうと

正確にはどこかという疑問があるのです。

> なお、HP-UX限定かもしれませんが、こちらのSO_LINGERの項を読むと、

>「l_linger の値は論理値として単純な取扱いを受けます。

> 非ゼロの値は時間制限として解釈され ません 」とあり、

> 時間設定はできないと考えています。

参考にしておきます。

2005/03/19 09:19:47
id:tonolove No.2

tonolove回答回数158ベストアンサー獲得回数02005/03/19 00:52:16

ポイント20pt

ピアソン・エデュケーション

UNIXネットワークプログラミングVOL1

[P181] 〜 に記述されています。¥8000

です。どうぞ。

この件についてはいくつかのCASEがあり数ページにわたっています。

冒頭のみ簡単にワープロ打ちします。

l_onoffが非ゼロで、l_lingerが非ゼロの場合、そのソケットのクローズに対して、カーネルはリンガー動作を行う。

ソケットの送信バッファ中にデータがある場合、

(a)全てのデータが送信され相手のTCPによって承認されるか,

(b)リンガー時間が糸冬 了するまで、プロセスはスリープ状態になる。

ソケットがノンブロッキングの場合、リンガー時間が設定されていてもcloseの終了を待たない。

残りのデータが承認される前にリンガー時間が終了するとcloseがEWOULDBLOCKを返す。(アプリがCLOSEの戻り値をチェックする事!)

頑張ってください。

以上

id:aukjs

すなわちTCP状態との対応があるわけではないということでしょうか?もしかしてトンチンカンな質問だったのでしょうか?

それならそれで、そういう回答もOKです。

ただし根拠も示してください。

根拠の無い思い込みならお断りします。

2005/03/19 09:25:19
id:tonolove No.3

tonolove回答回数158ベストアンサー獲得回数02005/03/19 11:06:02

ポイント20pt

1.closeが制御を返す時のシーケンス図が3つ4つ記載があります。

状態も示されています。

2.図7.5 種々のTCP状態を検出する方法 マトリクスあり。

  (相手ホストの状態と、4つのシナリオに対応した検出方法。)

xxxxのときESTABLISH状態である...とかそんな応答状態も含まれて居ます。

状態としては、こういったものを見て判断するのかなと。

残念ですがこの部分の実装経験が無い為、状態A->状態B!とビシッと回答不能。

回答が少なかったので、気になり本を紹介して差し上げたつもりで(その点、言葉たりず)

気になるようであれば、読んでみてはどうでしょうか。

手探りで実装を終えても気持ち悪いですからね。

ポイントは不要です。

id:aukjs

丁寧にありがとうございます。

ちなみに、その本はよんでます。

#全部理解したか?とたずねられると辛いですが

親切なつもりとは思いますが

示せないのなら回答はいりません。

-----------------------

難しいようなので、一旦締めます。

2005/03/23 09:43:00

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません