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 ...
随机推荐
- 5. Tomcat窗口标题修改
具体修改方法如下: 进入tomcat的bin目录,打开catalina.bat .找到下面的内容: if not "%OS%" == "Windows_NT" ...
- spring 的 切片Aspect 最常用记录方法执行时间
/** * */ package com.icil.esolution.aspect; import java.util.Date; import org.aspectj.lang.Proceedin ...
- javascript创建节点的事件绑定
javascript创建节点的事件绑定 timeupdate事件是<video>中用来返回视频播放进度的事件,绑定在<video>标签返回视频播放位置(每秒计). 现video ...
- Swoole 结合TP5搭建文字直播平台
直播模块流程: 主进程服务:主进程同时开启两个服务 http服务,负责向前端传递页面,处理登录等事务 websocket服务,服务处理直播以及聊天室等事务 在项目根目录(框架代码同级目录)建立scri ...
- html中控制Tab键的顺序
在做项目中,需要控制html页面上登陆表单的按Tab键的顺序,代码如下: <tr> <td width="19%&quo ...
- java通过过滤器 设置跨域允许
前人种树:https://www.cnblogs.com/CBDoctor/p/4235082.htmlhttps://blog.csdn.net/yuting0787/article/details ...
- vue:在路由跳转中使用拦截器
1:首先在路由对象中的某一个具体的路由对象加这样一个属性 meta: { requireAuth:true } 2:然后在main.js中添加这段代码 router.beforeEach((to, ...
- 模糊查询内存查询java实现
下面说说看到的工作项目中的代码,是这个样子的,事先查询一次数据库,将查询到的整张表的数据存到内存,以后使用时不再查询数据库,而直接操作内存中的数据,这主要用于数据库中的数据比较稳定,不会轻易改变的情况 ...
- Unable to connect to zookeeper server within timeout: 5000
错误 严重: StandardWrapper.Throwable org.springframework.beans.factory.BeanCreationException: Error crea ...
- Python 字符串基本操作
字符串是Python的一种基本类型,字符串的操作包括字符串格式化输出.字符串的截取.合并,字符串的查找和替换等操作. 字符串定义 Python中有3种表示字符串的方法:单引号.双引号.三引号.引号使用 ...