<网络> 网络基础3
目录
DNS协议
DNS背景
域名简介
域名解析过程
ICMP协议
ICMP功能
ICMP协议格式
ping命令
一个值得注意的坑
NAT技术
NAT技术背景
NAT IP转换过程
NAPT
NAT技术的缺陷
内网穿透
NAT与代理服务器
正向代理
反向代理
正向代理和反向代理的异同
DNS协议
DNS(Domain Name System,域名系统)协议,是一个用来将域名转化为IP地址的应用层协议。
DNS背景
TCP/IP中通过IP地址和端口号的方式,来确定网络中一个主机上的一个程序。但IP地址是一长串数字,并不便于人们记忆,于是人们发明了一种叫做主机名的东西,是一个字符串,并用hosts文件夹来描述主机名和IP地址之间的对应关系。
最初,这个hosts文件是由互联网信息中心(SRI-NIC)来管理的。
- 如果一个新计算机要接入网络,或者某个计算机IP变更,都需要到信息中心申请变更hosts文件。
- 其他计算机也需要定期下载更新新版本的hosts文件才能正确上网。
- 当用户通过域名访问互联网服务时,会先通过域名在本地的hosts文件中找到其对应的IP地址,然后再用这个IP地址去访问对应的服务。
但这样太麻烦了,于是产生了DNS系统。
- 由一个组织的系统管理机构,维护系统内的每个主机的IP和主机名的对应关系。
- 如果新计算机要接入网络,或者某个计算机IP变更,就需要将对应信息注册到数据库中。
- 当用户通过域名访问互联网服务时,会自动查询DNS服务器,由DNS服务器检索数据库,得到对应的IP地址。
至今,我们的计算机上仍然保留了hosts文件,这个hosts文件当中一般存储的是主机名与IP地址之间的映射,用户也可以在hosts文件中自主添加域名和IP映射关系,在域名解析的过程中会优先查找hosts文件的内容。
通过cat /etc/hosts可以查看hosts文件当中的内容。
域名简介
域名是用来识别主机名称和主机所属的组织机构的一种分层结构的名称,例如www.baidu.com。
- com:一级域名,表示这是一个工商企业域名。同级的还有.net(网络提供商)和.org(开源组织或非盈利组织)等。
- baidu:二级域名,一般对应的就是公司名。
- www:只是一种习惯用法,之前人们在使用域名时,往往命名成类似于ftp.xxx.xxx/www.xxx.xxx这样的格式,来表示主机支持的协议。我们可以不加www前缀也能访问网页。
域名解析过程
在浏览器中输入url后,如果url当中包含域名,则需要进行域名解析。
- 首先会在浏览器的DNS缓存中去查询是否有对应的记录,如果查询到记录就可以直接得到对应的IP地址,完成解析。
- 如果在浏览器的DNS缓存中没有找到,就会去查询操作系统中的DNS缓存,如果查询到对应的IP地址则完成解析。
- 如果在操作系统的DNS缓存中没有找到,就会去查找本地的hosts文件,如果查询到对应的IP地址则完成解析。
- 如果在本地的hosts文件中也没有找到,就会去本地DNS服务器中查找。本地DNS服务器IP地址一般由本地网络服务商提供,如电信、移动等公司,一般通过DHCP自动分配。目前使用的比较多的是谷歌提供的公用DNS 8.8.8.8和国内公用DNS 114.114.114.114。如果在本地DNS服务器中有对应域名的缓存,则直接返回对应的IP地址,完成解析。
- 如果本地DNS服务器中仍然没有找到,那么本地DNS服务器就会拿着域名去根DNS服务器中询问,根DNS服务器会告诉本地DNS顶级域名服务器的IP地址。
- 本地DNS拿到顶级域名服务器的IP地址后,就会拿着域名去找顶级DNS服务器,顶级域名服务器会告诉本地DNS权威域名服务器的IP地址。
- 本地DNS服务器拿着域名去权威域名服务器中,查询域名对应的IP地址,最终将该域名对应的IP地址返回给浏览器,此时整个域名解析过程就完成了。
ICMP协议
ICMP(Internet Control Message Protoco)Internet控制报文协议,用于在IP主机、路由器之间传递控制信息,是一个TCP/IP协议。
ICMP协议的定位
在TCP/IP四层模型中,网络协议栈自顶向下分为应用层、传输层、网络层和数据链路层。
其中应用层最典型的协议有HTTP、HTTPS和DNS等,传输层最典型的协议有TCP和UDP,网络层最典型的协议就是IP,数据链路层最典型的协议就是MAC帧协议,但实际网络层还有两种协议叫做ICMP和IGMP。
ICMP、IGMP和IP协议虽然都属于网络层的协议,但ICMP协议和IGMP协议属于IP的上层协议。
- 也就是说,IP的上层协议不一定就直接是传输层的协议,IP的上层协议有可能也属于网络层的协议,但就是位于IP的上层。
- 与之类似的,数据链路层当中的ARP协议和RARP协议,这两个协议虽然与MAC帧协议都属于数据链路层,但这两个协议属于MAC帧的上层协议。
ICMP功能
ICMP的主要功能包括:
- 确认IP包是否成功到达目标地址。
- 通知在发送过程中IP包丢弃的原因。
- ICMP只能搭配IPv4使用,如果是IPv6的情况下,需要使用 ICMPv6。
举个例子
比如当主机A在向主机B发送数据的过程中,主机B因为某些原因已经离线了。
当发送的数据包到达主机B所在局域网的入口路由器时,入口路由器为了获得主机B的MAC地址,于是会向主机B发送ARP请求包,但由于主机B已经离线了,因此路由器在多次发送ARP请求包而得不到响应后,就会返回一个ICMP Destination Unreachable的包给主机A,此时主机A就知道自己发送的数据无法到达主机B。
ICMP协议格式
ICMP协议格式如下:
ICMP大概分为两类报文。
- 一类是通知出错原因的。
- 一类是用于诊断查询的。
ICMP包常见类型如下:
- 0 回送应答(Echo Reply)
- 3 目标不可达(Destination Unreachable)
- 4 原点抑制(Source Quench)
- 5 重定向或改变路由(Redirect)
- 8 回送请求(Echo Request)
- 9 路由器公告(Router Advertisement)
- 10 路由器请求(Router Solicitation)
- 11 超时(Time Exceeded)
- 17 地址子网请求(Address Mask Request)
- 18 地址子网应答(Address Mask Reply)
ping命令
ping命令是基于ICMP协议实现的,通常用于测试本地主机与另一台主机之间的通信信道是否正常。
例如,使用ping www.baidu.com
命令,测试本地主机与百度服务器之间的通信信道是否正常。
- 注意,此处ping的是百度的域名,该域名会由DNS解析成IP地址。
- ping命令不仅能验证网络的连通性,同时也会统计响应时间和TTL(IP包中的Time To Live,生存时间)。
- ping命令会先发送一个ICMP Echo Request给对端。
- 对端接收到之后,会返回一个ICMP Echo Reply。
一个值得注意的坑
telnet对应的端口号是23,ssh对应的端口号是22,那ping对应的端口号是多少?
这是问问题的人设的一个圈套,ping命令是基于网络层的ICMP协议,而端口号是属于传输层的内容,因此ICMP协议根本就不关心端口号这样的信息。
因此,ping命令实际是绕过了传输层的,在Linux当中实际也有绕过传输层的一套网络编程接口,叫做原生套接字。
综合开放性面试题:当你在浏览器输入url之后,发生了什么?
回答有三个阶段:
- 先讲HTTP,域名解析。DNS域名解析得到服务器IP地址,HTTP创建socket,TCP完成三次握手建立连接,然后构建HTTP请求报文,发送至目标服务器,服务器解析、构建响应,返回HTTP响应报文,浏览器接收报文,解析正文,对正文解释、浏览器渲染。
- 可以再讲一下HTTPS,在连接建立后不是立即通信,而是需要交换密钥。
- 与面试官沟通,是否再向底层解释,HTTP字节流拷贝到内核的TCP发送缓冲区... 滑动窗口、拥塞控制,网络层、数据链路层等细节详谈。
NAT技术
NAT(Network Address Translation,网络地址转换)技术,是解决IP地址不足的主要手段,并且能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
NAT技术背景
在IPv4协议中,IP地址数量不足是一个大问题,而NAT技术就是当前解决IP地址不够用的主要手段,是路由器的一个重要功能。
- 在进行对外通信时,NAT能够将私有IP经过一系列替换操作最终转为全局IP,也就是说,NAT是一种将私有IP和全局IP相互转化的技术方法。
- 装有NAT软件的路由器叫做NAT路由器,所有使用私有IP的主机在和外界通信时,都要在NAT路由器上将其私有IP转换成全局IP。
- 很多学校、家庭、公司内部每个终端设置的IP都是私有IP,而只在路由器或必要的服务器上设置全局IP。
- 全局IP要求唯一,但是私有IP不需要,在不同的局域网中出现相同的私有IP是完全不影响的。
- 路由器内部会维护一个NAT表,表内的映射关系互为键值关系!
NAT IP转换过程
假设某个局域网当中有A、B、C三台主机,在公网当中有一台服务器,以主机A访问公网中的这台服务器为例,我们来看看数据包在传输过程中IP地址的转换过程。
数据包从局域网到公网的过程
主机A向服务器发起数据请求的过程中,数据包中IP地址的转换过程如下:
- 刚开始,该数据包当中的源IP地址就是主机A的私有IP地址,目的IP地址就是服务器的公网IP地址。
- 当数据包经过NAT路由器时,路由器会将该数据包的源IP地址替换成自己的WAN口IP地址,此时该数据包的源和目的IP地址就都是公网IP了。
- 该数据包在互联网中经过各种路由转发,最终到达服务器主机。
服务器收到主机A的数据请求并处理后,就会对主机A发来的请求进行响应。
数据包从公网到局域网的过程
服务器向主机A进行响应的过程中,数据包中IP地址的转换过程如下:
- 刚开始,该数据包当中的源IP地址就是服务器的公网IP地址,目的IP地址就是路由器的WAN口IP地址。
- 数据包在互联网中经过各种路由转发,到达主机A所在局域网的NAT路由器,此时路由器会将该数据包的目的IP地址替换成主机A的私有IP地址。
- 最终路由器就会将该数据包转发给局域网中的主机A。
需要注意的是,因为主机A向服务器发起数据请求时,该数据包当中的源IP地址被替换成了NAT路由器的WAN口IP地址,相当于是该路由器代替主机A向服务器发起了数据请求,因此服务器发出的响应数据包的目的IP地址应该是NAT路由器的WAN口IP地址。
NAPT
地址转换表
- 当局域网当中的主机要访问外网时,NAT路由器会将这些数据包的源IP地址替换成自己的WAN口IP地址。
- 当外网发来响应数据时,NAT路由器又会将响应数据包的目的IP地址替换成局域网中对应主机的IP地址。
那NAT路由器是如何判断,应该将从外网收到的响应数据包转发给局域网中的哪一台主机呢?
- 实际在NAT路由器内部,有一张自动生成的,用于地址转换的表。
- 该转换表中维护的就是局域网中主机的私有IP,与其对应访问的外网当中的某个公网IP之间的映射关系。
- 局域网中的主机第一次向外网发起数据请求时,就会生成表中的映射关系。
- 比如在TCP建立连接时,会建立对应的映射关系,在TCP断开连接后,就会删除对应的映射关系。
在刚才的例子中,主机A第一次向服务器发起数据请求时,路由器中就会建立以下映射关系。
此时这张转换表只能保证从左到右的唯一性,而不能保证从右到左的唯一性,当服务器发来响应数据时,该数据包中的目的IP地址都是路由器的WAN口IP,此时NAT路由器就无法判断该数据包应该转发给主机A还是主机B,此时就需要用到NAPT技术。
NAPT
NAPT(Network Address Port Translation,网络地址端口转换),可以将多个内部地址映射为一个合法公网地址。
- 当局域网中的主机向外网发送数据时,路由器会将该数据包的源IP地址替换为自己的WAN口IP地址,并建立该主机私有IP与其对应访问的公网IP之间的映射关系。
- 但如果局域网中的多台主机同时访问同一个外网服务,当路由器收到外网发来的响应数据时,路由器无法判断该响应数据应该转发给局域网中的哪台主机,因为该局域网中所有主机的数据包都由路由器代替发送了,因此发来的响应数据包的目的IP地址都是路由器的WAN口IP地址。
- 于是NAPT在建立转换表的映射关系时,除了建立局域网中私有IP与其对应访问的公网IP之间的映射关系外,还会加上一个由NAT路由器选定的端口号。
- 此时当局域网中的多台主机同时访问同一个外网服务时,虽然外网发来的响应数据的目的IP地址都是路由器的WAN口IP,但发给局域网中不同主机的响应数据对应的目的端口号是不同的,此时路由器就能通过IP+Port的方式来区分发给不同主机的数据包。
比如局域网中的主机A和主机B都在访问同一个服务器,并且它们访问服务器时采用的端口号都是1025。
- 假设主机A发送的数据包先到达路由器,此时路由器将数据包的源IP地址替换成自己的WAN口IP地址,由于路由器用于访问该服务器的1025号端口没有被使用,因此该数据包的源端口号可以不变。
- 当主机B发来的数据包到达路由器时,路由器同样将数据包的源IP地址替换成自己的WAN口IP地址,但此时路由器用于访问该服务器的1025号端口已经被主机A使用了,因此路由器会重新选定一个端口号对数据包的源端口号进行替换。
此时转换表中就会建立如下两队映射关系:
此时这张转换表既能保证从左到右的唯一性,也能保证从右到左的唯一性,即映射是双向的!
- 当服务器发来的响应数据到达路由器时,虽然服务器发给主机A和主机B的数据包对应的目的IP地址是一样的。
- 但路由器是用自己的1025号端口代替主机A进行数据请求的,而用的是1026号端口代替主机B进行数据请求的。
- 因此现在路由器可以继续根据数据包的源端口号,来判断应该将该数据包转发给主机A还是主机B,进行对数据包中的目的IP地址和目的端口号进行替换,然后转发给局域网内对应的主机。
那么路由器构建映射表时,会不会因为主机数过多,导致路由器把端口号都用完了?
不现实。我们所在的局域网一定是一个主机数量很少的内网,因为如果我们所在的内网主机数很多,那么家用路由器是扛不住的,所以运营商一定会再添加运营商路由器并划分子网,直到每一个局域网都只含有少量的主机,并且如果主机过多,在数据帧发送时碰撞概率极大,报文都发布出去。
谈谈路由器
路由器是工作在网络层的一个设备,负载将数据包从一个网络转发到另一个网络,但不能狭义的认为路由器只能工作在网络层。
- NAT路由器在进行数据转发时,不仅有能力替换数据包的源和目的IP地址,而且在必要的情况下还可能会替换数据包的源和目的端口号,而端口号实际是传输层的概念。
- 为了对IP地址进行动态管理,大部分路由器都带有DHCP功能,而DHCP实际是应用层的一个协议。
因此现在的路由器其实并不仅仅提供网络层相关的服务,网络协议栈中的各层路由器可能都有涉及。
NAT技术的缺陷
NAT技术进行私有IP和公网之间的替换,主要就是依赖NAT路由器当中维护的网络地址转换表,但这张转换表也体现出了NAT的一些缺陷:
- 无法从NAT外部向内部服务器建立连接,因为外部无法知道内部的私网IP,也就无法主动与内部服务器建立连接。如果用户没有访问外网,那么在路由器的NAT表中就没有建立NAT映射关系,所以外网就无法主动访问内网主机,所以必须要内网主机先访问外网。例如,我们使用APP时需要登录,实际上就是用户先访问外网,建立通路关系
- 转换表的生成和销毁都需要额外开销。
- 通信过程中一旦NAT设备异常,即使存在热备,所有的TCP连接也都会断开。
内网穿透
两个内网主机A、B,A想访问B,可以吗?
两个内网主机之间不能直接通信,因为没有两个内网主机由没有公网IP,报文的目的IP就无法填写,所以只能A主机先访问外网的具有公网IP的一个服务器,B也访问同一个外网服务器,由服务器将A的消息转发到B主机,例如QQ、微信
那么就需要一个公共服务器作为媒介,让B与服务器先建立一个TCP长连接,然后A再向服务器发送数据,服务器再根据TCP长连接将A发来的数据转发到B主机 —— 这就是内网穿透。
内网穿透我们一般使用 frp 工具,是一个开源工具,在github、gitee中都可以找到。我们可以下载到服务器,部署服务端 frps 服务,B主机也下载安装客户端的 frpc ,如果B保持24小时不断电运行,让B主机与服务器建立长连接,从此往后另一台主机A不管在哪里,主要能访问服务器,那么就能访问主机B,从A的视角来看它就是在和B进行信息传递,这就是内网穿透!
代理服务器
代理服务器(Proxy Server)的功能就是代理网络用户去取得网络信息,代理服务器又分为正向代理和反向代理。
正向代理
正向代理,是一个位于客户端和目标服务器之间的服务器,客户端并不直接访问目标服务器,而是先访问代理服务器,由代理服务器代替客户端去访问对应的目标服务器,并将目标服务器的响应结果返回给客户端。
原理也是将报文的源IP进行替换,与NAT转换内网IP至公网IP一样。
我们连接wifi需要输入wifi密码,登录认证后才能连接上wifi,同样的,我们在学校中使用校园网也需要在浏览器访问校园网并做登录认证,这个过程是在做什么?
这个过程就是在获取局域网的私有IP!因为没联网的时候我们没有IP地址!路由器或校园网会为我们动态分配一个私网IP,供我们上网使用,然后运营商才能有机会使用NAT技术替换私网IP为路由器的WAN口IP,从而访问外网。
- 校园网的认证是在学校内部的服务器中的,因为路由器只有简单的认证功能,对于大量的用户账号密码的数据库管理、身份认证、多设备管理、缴费功能都不能满足,所以需要服务器做支撑,所以我们连接校园网输入密码验证时,是在服务器上认证,然后服务器分配私网IP,在此之后我们访问外网是发送的报文,实际上都是先发送到学校的服务器,再由学校服务器转发至运营商路由器再到外网!
- 如果学校没有服务器,让校园路由器直接连到运营商的路由器,那么我们的缴纳的校园网的费用就会直接交给运营商而不是学校,这就是学校建立服务器的原因。当然了,学校也需要使用运营商的路由器,所以学校也需要将部分收入交给运营商。
比如公司内部一般都会有自己的服务器,当我们使用公司内网上网时。
- 我们对外网发起的数据请求,首先会转发到公司的这台服务器上,然后由公司的这台服务器代替你对外网进行访问。
- 当公司的服务器收到对应外网的响应数据后,再由公司的这台服务器将数据转发给你。
正向代理的好处:
- 正向代理最大的一个好处就是可以加速资源访问。
- 比如公司中大量员工都要访问外网的同一个资源,那么正向代理服务器就可以将对应的资源缓存到本地,此时当其他人要访问该资源时,直接在正向代理服务器就可以获取,而不需要再次进行外网访问。
- 为做安全处理,如果没有正向代理服务器,那么我们就能实现内网穿透,正向代理服务器可以让外网数据必须通过自己才能到达内网,所以在这里可以进行拦截不安全的行为。例如,我们如果用校园网ssh我们的云服务器,此时可能链接失败,原因就是校园网的服务器拦截了ssh。
正向代理:为用户进行代理。
反向代理
反向代理,也是一个位于客户端和目标服务器之间的服务器,对于客户端而言,反向代理服务器就相当于目标服务器,用户不需要知道目标服务器的地址,用户只需要访问反向代理服务器就可以获得目标服务器提供的服务。
反向代理,也是一个位于客户端和目标服务器之间的服务器,客户端直接向反向代理服务器发起数据请求,然后再由反向代理服务器将客户端的数据请求转发给真正的目标服务器进行处理,数据处理完毕后反向代理服务器再将数据结果返回给客户端。
出现原因:大公司后台有很多服务器,所以就有很多 IP 可以进行访问资源,例如有很多IP地址都能访问百度网页,但是如果用户都只访问其中一台服务器,这台服务器明显承受不住了,而其他服务器却非常悠闲,这是不合理的,所以引入反向代理服务器,对外只公开反向代理服务器的IP地址,所有用户都只访问反向代理,但反向代理不处理具体业务,只会将用户发来的报文进行负载均衡的转发至后台的各个服务器。这就有效利用了每一个后台服务器的资源。
比如域名www.baidu.com对应的服务器实际就是一个反向代理服务器。
- 百度内部实际并不是只有一台服务器,但不同地区的人们都可以通过访问www.baidu.com享受到百度提供的服务,实际我们访问的就是百度的反向代理服务器。
- 当这台反向代理服务器收到客户端的数据请求后,就会将我们的数据请求转发给百度内部的某台服务器进行数据处理,然后再将数据处理的结果返回给客户端。
反向代理的好处:
- 反向代理可以起到负载均衡的作用。比如不设置反向代理服务器,那么用户在访问百度时,就会随机访问到百度内部的某台服务器,此时就可能导致某些服务器压力太大,而某些服务器却处于闲置状态。而设置了反向代理服务器后,我们就能够通过某些方法让用户的数据请求较为平均的落到每台服务器上。
- 反向代理还能起到安全防护的作用。有了反向代理服务器后,我们不需要直接将提供服务的服务器对应的信息暴露出去,此外,当由非法请求发送到反向代理服务器时,反向代理服务器就相当于一层软件屏障,可以在反向代理服务器当中部署一些防护措施,让这些非法请求在反向代理服务器这里就被过滤掉,而不会影响内部实际提供服务的服务器。
需要注意的是,代理服务器的主要工作只是对数据进行转发,因此代理服务器处理数据的压力不会特别大,并且代理服务器也可以有多个,因此不必担心代理服务器过载的情况。
正向代理和反向代理的异同
正向代理和反向代理的相同点:
- 正向代理服务器和反向代理服务器都是位于客户端和服务器之间的。
- 正向代理服务器和反向代理服务器的主要工作,都是把客户端的请求转发给服务器,再把服务器的响应转发给客户端
正向代理和反向代理的不同点:
- 正向代理是客户端的代理,帮助客户端访问其无法访问的服务器资源的,而反向代理则是服务器的代理,帮助服务器做负载均衡、安全防护等工作的。
- 正向代理一般是客户端架设的,比如公司的正向代理服务器是公司作为客户端架设的,而反向代理一般是服务端架设的,比如百度的反向代理服务器是百度作为服务端架设的。
- 正向代理中,服务器不知道真正的客户端到底是谁,服务器认为正向代理服务器就是真实的客户端,而反向代理中,客户端不知道真正的服务器是谁,客户端认为反向代理服务器就是真实的服务器。
- 正向代理用于请求的转发(例如借助代理绕过反爬虫).
- 反向代理往往作为一个缓存
所以内网穿透也属于反向代理,frp —— fast reverse proxy
VPN
当我们在大陆访问国外网络时一般都是不被允许的,这是因为我们发送的所有报文都需要经过运营商,再由运营商发送到外网,而由于国家政策原因,运营商的路由器直接拦截了我们发送至国外网络的报文请求,所以我们都无法访问国外网络。
但是我们国家有一些特殊地区,例如香港、澳门,这些地区没有限制访问国外网络,所以如果我们在香港地区有一台服务器,我们通过将请求报文发送至香港地区的服务器,再由该服务器转发至国外,当国外数据发送回服务器后,再由服务器转发回我们的主机,此时我们就可以访问国外的网络了。
但是运营商可能也会拦截我们发送至香港服务器的报文,,因为我们的HTTP报文的目的IP她能识别出来,所以我们需要对我们的报文进行加密传输(Socks5协议),HTTP套HTTP(HTTP报头+HTTP报头+加密数据),到达服务器之后由服务器进行去报头获得HTTP+加密数据,然后解密数据,再讲报文转发至国外,当服务器返回至我们的主机时,也使用同样的加密方式加密,主机再解密就可以绕过运营商。
所以此时我们的服务器也属于正向代理服务器。
NAT和代理服务器
路由器往往都具备NAT设备的功能,通过NAT设备进行中转,完成子网设备和其他子网设备的通信过程。
代理服务器看起来和NAT设备有一点像,客户端向代理服务器发送请求, 代理服务器将请求转发给真正要请求的服务器,服务器返回结果后,代理服务器又把结果回传给客户端。
那么NAT和代理服务器的区别有哪些呢?
- 从应用上讲,NAT设备是网络基础设备之一,解决的是IP不足的问题。代理服务器则是更贴近具体应用,比如通过代理服务器进行翻墙,另外像迅游这样的加速器,也是使用代理服务器。
- 从底层实现上讲,NAT是工作在网络层,直接对IP地址进行替换。代理服务器往往工作在应用层。
- 从使用范围上讲,NAT一般在局域网的出口部署,代理服务器可以在局域网做,也可以在广域网做,也可以跨网。
- 从部署位置上看,NAT一般集成在防火墙,路由器等硬件设备上,代理服务器则是一个软件程序,需要部署在服务器上。
代理服务器是一种应用比较广的技术
- 翻墙: 广域网中的代理.
- 负载均衡: 局域网中的代理