天天看點

P2P之UDP打洞原理、應用及架構設計

一、NAT類型

大多數NAT可分為如下類型

cone nat:把相同的内網位址和端口始終轉換為同一個外網位址和端口

如192.168.0.2:8000始終轉為外網的218.52.37.243:60000,在此session的生命期内,不管目的ip位址和端口是什麼,轉化的外網位址都不變

symmetric:相同的内網位址和端口,在對端的位址端口不同時,轉變為不同的外網位址和端口

如192.168.0.2:8000給位址A和位址B發包時,轉化為不同的外網端口60000和60001,對應兩個session

nat具有攔截不速之客的功能,從資料包進入内網受限的角度上分,cone nat又分為如下幾種

1 full cone 幾乎沒有任何限制,任何位址都可以往轉化後的外網位址發包,nat會允許資料包通過

2 restrict cone nat 隻允許相同ip位址的主機發的包通過

3 port restrict cone 隻允許相同ip位址,相同端口的包通過

symmetric nat在限制方面和port restrict cone是一緻的

二、比較流行的nat的一些特性

iptables:symmetric nat,轉化後的外網端口盡量為内網原端口,本端口被占用時,新配置設定的端口号似乎并無規律(不是累+1的)

windows ics/nat:對内網端口(1025-3000)的端口盡量轉換為原端口,該端口被占用或者超過3000的端口時,很可能從1025開始配置設定端口号

繼續閱讀