2 つの TCP エンドポイント間で確立された TCP 接続を考えてみましょう。そのうちの 1 つは次のいずれかを呼び出します。
close(): ここでは、これ以上の読み取りまたは書き込みは許可されていません。shutdown(fd, SHUT_WR): これにより、全二重接続がシンプレックス接続に変換されます。この場合、エンドポイントの呼び出しSHUT_WRは引き続き読み取ることができます。
ただし、どちらの場合も、FIN パケットがワイヤ上でピア エンドポイントに送信されます。問題は、FIN を受信する TCP エンドポイントが、他のエンドポイントがclose()またはを使用したかどうかをどのように区別できるかというSHUT_WRことです。後者のシナリオでは、まだデータを送信できるはずだからです。