Nat

UDP 和 NAT - 超時是雙向的嗎?

  • November 14, 2011

每次客戶端發送或接收數據包時,通過 NAT 連接的 UDP 連接的超時是否會重置,或者是否有任何(常見)實現需要客戶端主動發送某些內容以保持連接處於活動狀態?

我正在開發一個 UDP 流應用程序,我想知道如果沒有有效負載數據,除了伺服器已經發送的心跳之外,我是否必須讓客戶端發送周期性心跳。

NAT 需要一個狀態表,即原始(src_ip, src_port)元組到重寫元組的映射。在某些實現中,該表還將包括(dst_ip, dst_port).

理論上,每次從 NAT 內部向外部發送新數據包時,都會重置從該狀態表中刪除條目的超時時間。每次在相反方向接收到新數據包時,它也可能會被重置,但RFC 3022並沒有具體說明這一點。它只是說一旦會話完成狀態將被刪除,但它沒有定義什麼構成會話。

因此,只要您繼續向外發送流量,它就應該保持流動。

但是,如果主要流量是入站的,則可能需要偶爾從客戶端向伺服器發送出站心跳數據包。

引用自:https://serverfault.com/questions/330799