ソケットの解放

ソケットに対する送受信を禁止するためにはshutdownシステムコールが利用される。システムコールの実体はsys_shutdown関数である。sys_shutdown関数は、ソケット操作関数テーブル(struct proto_ops)を経由し、プロトコル固有のshutdown関数を呼び出すだけである。

ソケットに対しcloseシステムコールを発行すると、ファイル操作関数テーブルsocket_file_opsを通して、sock_close関数が呼び出される。sock_close関数では、まず非同期I/OのためのSIGIO発生要求をキャンセル(sock_fasync関数)し、その後ソケット操作関数テーブルを経由し、プロトコル固有のrelease関数を呼び出し、プロトコル固有の終了処理を行う。プロトコル固有の終了処理終了後、ソケットの解放を行う(iput関数)。

捕捉 TCPなどではsocket自体は解放されるが、内部的にはしばらくコネクション状態は保持される。


(NIS)HirokazuTakahashi
2000年06月11日 (日) 22時29分57秒 JST
1