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