NAT和Proxy的区别
在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
NAT和Proxy的区别的更多相关文章
- no-proxy 和proxy 的区别
Child <- many-to-one ->Parent class Child { private Parent paren ...
- VMWare虚拟机bridged、host-only和NAT网络模式的区别和用法
VMWare提供了三种工作模式,它们是bridged(bridged 模式).NAT( 网络地址转换模式)和host-only(主机模式) . 1 VMWare虚拟机bridged.host-onl ...
- 桥接,NAT,Host Only的区别
桥接,NAT,Host Only的区别 一.Brigde——桥接 :默认使用VMnet0fish批注:只要在虚拟机中将IP设对,即使宿主机的IP是错的,也可以通信.但是如此物理网卡被禁用了,则不能 ...
- vmware中的bridge、nat、host-only的区别
概述: VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式).要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模 ...
- vmware(1):vmware中的bridge、nat、host-only的区别
VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式) bridged(桥接模式) 在这种模式下,VMWare虚拟出来的操作系统就 ...
- NAT和桥接的区别
NAT 桥接 NAT相当于是局域网中的局域网,把192.168.21.1当作外网ip,重新划分了一个网关(192.168.33.x) 网桥只是把网络桥接起来,还是原来的网关(192.168.21.x) ...
- 虚拟机bridged, NAT and host-only网络区别
In Linux, a network of each type is created when running vmware-config.pl. In Windows, they are auto ...
- hibernate 中的 lazy=”proxy” 和 lazy=”no-proxy” 的区别
网上找到个描述的很精妙的例子 Child <- many-to-one ->Parent class Child { private ...
- 代理延迟加载中proxy和弄no-proxy区别
Child <- many-to-one ->Parent class Child { private Parent paren ...
随机推荐
- 使用STM32CubeMX生成RTC工程[秒中断]
现在我们在之前的工程(http://www.cnblogs.com/libra13179/p/7170791.html)中修改 /** ******************************** ...
- centos-yum离线源
配置离线源 在个别开发环境中,我们可能有限制不能连外网. 这个情况可以通过用一台同内网的机器配置离线源,然后通过vsftp公用. 安装ftp rpm命令详解 $ rpm -ivh apache-1.3 ...
- Java中,&&与&,||与|的区别
在java的逻辑运算符中,有这么四类:&&(短路与),&,|,||(短路或). &&和&都是表示与,区别是&&只要第一个条件不满足,后面 ...
- JavaScript的 onclick 事件是如何调用jquery 方法的
看见个不错的问答,关于JavaScript的 onclick 事件是如何调用jquery 方法的,特此标注,链接如下:http://segmentfault.com/q/101000000033350 ...
- DataGrip 连接数据库查询出来的结果乱码的问题
打开连接数据源选项 选择 Advanced----Charset 填入 GBK 应用即可 目前遇到的是连接 SYbase数据库
- unity 4.6.1脚本解析出错,没有激活的勾,方法顺序出错
检查方法声明上的注释:如/**xx*/或/*xx*/改为//形式 没有激活的勾: 1.如/**xx*/或/*xx*/改为//形式 2.必须保留Start函数
- 理解 IntelliJ IDEA 的项目配置和Web部署(转载)
理解 IntelliJ IDEA 的项目配置和Web部署 1.项目配置的理解 IDEA 中最重要的各种设置项,就是这个 Project Structre 了,关乎你的项目运行,缺胳膊少腿都不行.最 ...
- ARP协议,以及ARP欺骗
1.定义: 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议.主机发送信息时将包含目标IP地址的ARP请求广播到网络上 ...
- JS封装Cookie
/* @黑眼诗人 <www.farwish.com> */<script> //设置cookie: cookie名,cookie值,天数 function setCookie( ...
- angularjs 做不到实时脏值查询
angularjs 做不到脏值查询 ,数据请求过来,不操作其他按钮,请求的值就是展示不出来:(相当于,只有手动触发,angularjs内部才会把脏值查询出来): 解决办法:在请求过来的值旁边加上$sc ...