返信
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