回答:
TCP「キープアライブ」は、すべてのオペレーティングシステムに存在しない機能です。TCP標準自体には含まれておらず、信頼性もありません。RC1122はそれを指定していますが、明示的に述べています:
実装者はTCP実装に「キープアライブ」を含めることができますが、この慣行は広く受け入れられていません。キープアライブが含まれている場合、アプリケーションはTCP接続ごとにキープアライブをオンまたはオフにできる必要があり、デフォルトでオフになっている必要があります。
さらに重要:
データを含まないACKセグメントは、TCPによって確実に送信されないことに注意することが非常に重要です。したがって、キープアライブメカニズムが実装されている場合、特定のプローブへの応答の失敗をデッド接続として解釈してはなりません。
TCPキープアライブは、TCPプロトコルを特別な方法で使用し、データが付加されていない複製ACKを送信します。事は次のとおりです:あなたはそれが利用可能であると期待することはできません。また、一部のファイアウォールはTCPキープアライブをフィルタリングします。
BGPが正しく機能するためには、キープアライブ(メッセージを送信する頻度)と保留(その後、ピアが応答しないことを宣言する)に特定のタイマーを実装して、確実に送信する方法が必要です。したがって、BGPは独自のキープアライブメッセージを使用しており、TCPキープアライブと比較してオーバーヘッド(19バイト)はそれほど多くありません。