回答:
last_ack状態(TCPスタックを正しくリコールする場合)は、隣人からの接続を閉じるためのFINメッセージを受信した状態ですが、接続をフラッシュしてシャットダウンする必要があります。最終的なFINを自分で送信し、ACKを待ちます。
通常、last_ackにハングアップするということは、相手側がデータの送信を終了しても、アプリケーションがソケットを開いたままにすることを意味します。これは複数の理由で発生する可能性があります。クライアントからの最後のACKを失い、last_ack状態のままになるファイアウォールまたは他のロードバランサーがある可能性があります。数分(10程度)後に接続がタイムアウトしない場合は、おそらくバグがあります。
http://tangentsoft.net/wskfaq/articles/debugging-tcp.htmlの状態図をご覧ください
LAST_ACKは、TCP接続を閉じる直前の最後の状態です。
LAST_ACKは、エンドがピアからFINを受信し、ACKを送信し、FINを送信し、ピアからの最終ACKを待っていることを意味します。この時点で、アプリケーションはそれ以上何もできません。ソケットは閉じられています。アプリケーションが終了した可能性もあります。ここからは、最終ACKを取得するか、タイムアウトするまでFINを再送信するのはTCPです。ネットワークを調査する以外、管理者としてできることはあまりありません。
@lmoは、「TCP接続を閉じる直前の最後の状態」であると言うのが正しいと思いますが、これに加えて、ウィキペディアのページを読んだところ、これは「 (私の理解では)最も適切に動作する接続の終了であるアクティブクローズ」メカニズムであり、むしろ「バッドスタッフハプニング」に関連する「パッシブクローズ」シーケンスの一部です。
(FWIW、私はネットワークではなく言語です。ネットワークの人から説明をうれしく思います。)