Posted on September 21st, 2006 at 1:12 by fr3@K
NAT (不包含防火牆) 處理 UDP 封包的行為中, 對 p2p 影響最大的兩類為:
- External Port Mapping
- Filtering
External Port Mapping 指的是當使用內部同一個端口 (L:l) 對外部發封包的時候, NAT 對外面是否使用同一個端口 (N:?):
- 若 NAT 對外使用的都是同一個端口 (n1 == n2 && n2 == n3), 則該 NAT 的 External Port Mapping 行為是 endpoint independent (與外部端點無關).
- 若只有在外部端點 IP 不變只變 port 的情況下, NAT 對外使用的都是同一個端口 (n1 == n2 && n2 != n3) 則該 NAT 的 External Port Mapping 行為是 address dependent (與外部端點地址有關).
- 若對任何不同的外部端點 NAT 對外使用的都不是同端口 (n1 != n2 && n2 != n3 && n1 != n3) 則該 NAT 的 External Port Mapping 行為是 address port dependent (與外部地址與端口都有關).
Filtering 指的是在不考慮封包掉了的情況下, 當一個位於內部的端口 (L:l) 對外部的一個端口 (X:x1) 發了封包, 外部不同端口 (X:x1, X:x2 and Y:y) 對 NAT 上 map 出來的端口 (N:n) 發封包時的過濾行為:
- 若內部端口都能收到任何外部端口所發的封包, 則 該 NAT 的 Filtering 行為是 endpoint independent.
- 若內部端口能收到外部同一個 IP 的另一個端口 (X:x2) 所發的封包, 則該 NAT 的 Filtering 行為是 address dependent.
- 若內部端口僅能收到外部同一個 IP 固定端口 (X:x1) 所發的封包, 則該 NAT 的 Filtering 行為是 address port dependent.
在所有 NAT 上, 這兩類行為都同時存在. 但組合起來時, 不是如直覺般產生九種組合 (3 X 3 的矩陣). 細想一下就會知道只能有六種組合:
- External Port Mapping 為 endpoint independent 時, Filtering 可為 endpoint independent, address dependent 或 address port dependent.
- External Port Mapping 為 address dependent 時, Filtering 可為 address dependent 或 address port dependent.
- External Port Mapping 為 address port dependent 時, Filtering 只能是 address port dependent.
![]() |
|
| Previous Post « 給小乖乖 « |
Next Post » Bug Freedom » |







