在internet共用上網技術上,一般有兩種方式,一種是proxy代理型,一種是NAT Gateway型,關於兩者的區別與原理,身邊很多人都不是很明白,下面我來講講我的理解,如有不對的,歡迎指正.
1.先說應用例子: 伺服器端,用wingate就是Proxy,用sygate就是NAT 用戶端,需要在IE中設定Proxy 伺服器的就是用Proxy,用戶端只需設定網關即可就是用NAT
2.再說工作原理:
NAT工作在網路層,而Proxy工作在應用程式層
正因為如此,NAT方式下用戶端只需要設定一個網關地址,HTTP,QQ,FTP都可以使用.而Proxy方式下,需要為每一種應用協議指定Proxy 伺服器,如IE中需要設定,QQ中需要設定,MSN需要設定,FTP也需要設定,增加了用戶端使用的複雜性.
NAT絕大部分情況下只是修改資料包中的地址和連接埠,然後記錄對應關係後把資料轉寄出去。
proxy不同於nat,proxy用戶端需要訪問互連網時,會先通知proxy伺服器軟體要做什麼,然後proxyProxy 伺服器去扮演客戶請求而完成,然後將結果回傳給用戶端。Proxy伺服器端先要分析資料包的內容,弄清楚要幹什麼,然後以自己的身份來“代理”完成這個請求,並且將結果發送回用戶端。
比如http,解析出請求 的方向,然後以proxy主機的身份,把這個請求發送給遠端的web伺服器,遠端資料返回以後,它又以主機的身份把資料傳送給用戶端。同時,還把這些資料放到CACHE中,如果其它客戶有相同的內容請求,就直接從CACHE中拿資料,不用現向互連網上的伺服器請求資料.
因為proxy在實現上具體到了應用程式層上的協議,因此帶來了一些額外的管理功能和cache功能。
這樣打個比方
nat=貨運碼頭,管你是啥貨,只管發就是了 proxy=代理商,先要看你買啥,清楚了後再幫你買,可能直接從庫房中提貨,也可能去其它地方調貨,也有可能不代理你要買的貨.
3.最後說優缺點
對用戶端來說: NAT設定簡單,無需用戶端軟體 Proxy針對每一種應用設定Proxy 伺服器,或者安裝一個用戶端軟體,設定相對複雜一些.並且並不一定支援所有的應用,如VPN用戶端登入很多Proxy就無法代理應用.
對伺服器來說: Proxy需要耗用的資源更多一些(記憶體,硬碟等),以存CACHE內容,正因如此,在大量使用者的情況下,獲得的效能更高一些. NAT方式相當於一個軟路由器,在中小訪問量的情況下,速度也不錯,資源佔用少,所以適用普遍使用. 從安全方面來說,二者並不差別. nat和proxy都是一台接入互連網的伺服器上的服務軟體.
proxy的優勢在用戶端管理上,拿ISA2004來說吧,裝了Firewall用戶端的機器.伺服器上可以進行更細的管理,限制用戶端對某種協議及連接埠的訪問. |