返信

connectとacceptプログラムについて

「ネットワークはなぜつながるのか」で説明されているsocketライブラリーのconnectプログラムとacceptプログラムにつき、同書を読んだ範囲では分からない点がありますので、もう少し教えてください。

(1)connectもacceptもコネクション確立に関係するプログラムであり、そのため、UDPでは使われないと理解しました。

(2)「ネットワークはなぜつながるのか」の305頁上段に次のようにありす。
「そして、新しいソケットにクライアント側のIPアドレスとポート番号、接続を受け付けたサーバー側のIPアドレスとポート番号といった制御情報を登録してサーバー・プログラムに通知します。」

この時、サーバー・プログラム経由でacceptに通知が来るということですか。
また、データ送受信用のバッファ確保と「ACK+SYN」信号送出はacceptが指示するのですか。

(3)同書の97頁に次のように書かれています。
「(SYNが1、ACKが1)を確認したら、三つめのパケットを送り返します。
(中略) これで、接続動作は終わりです。Socketのconnectの実行もここで終わりですから、そうしたら、アプリケーションに制御を戻します。」

ここは、「ACK+SYN」の受信を確認したら、通知がconnectに来て、connectがtcpプログラムに「ACK」を返すように指示してから、実行を終えると理解してよいですか。

(4)コネクション確立の最後にサーバーが「ACK」を受けたときもacceptが対応するのですか。この「ACK」を受けたとき、サーバー側はどんな処理をするのですか。

名前: 
平山広行
日時: 
02/12/11 17:32

<code>Only

  • 使用できるHTMLタグ: <code>
  • 文字で図を描く場合に<code>と</code>で囲んでください
画像認証
機械的なスパムメッセージ送信を防止するために画像認証を設けています。ご協力ください。
Image CAPTCHA
Enter the characters shown in the image.