1、pptp需要兩個連接,一個控制連接,使用tcp1723端口。
另一個是數據連接 ,比較特殊,沒有直接使用tcp或udp,而是先將ip數據包封裝在ppp中,再將ppp封裝在gre中,最後將gre封裝在ip數據包中。
2、關於pptp的數據連接
由於沒有端口號,在nat時會遇到的問題:
a、於由沒有端口,nat可以針對gre協議只做其ip的轉換,但如果內網中有多個pptp連接,在收到gre數據包時該給誰呢?
b、gre包中有一個call id字段,用來標識唯一會話的,可以把call id值當做端口來看,路由器對pptp隧道的建立施全程監控,並在每一臺PPTP客戶機的私用IP地址、CALL ID和公共IP地址以及PPTP服務器接收的CALL ID之間建立單獨的映射關係。
c、nat把客戶端的call id值當做源端口,然後告訴服務器一個假的call id來充當轉換後的端口。這樣的端口改變還可以避免不同的客戶端告訴服務器相同的call id。
d、服務器對於同一個ip多個客戶機的連接分配了不同的call id值。
http://www.wildlee.org/2010_09_1087.html
http://alansky.blog.51cto.com/634963/666650