代理、网关与隧道的详细介绍
代理服务器、网关服务器与隧道协议的详细介绍,以及他们的关系和区别!
1、代理(Proxy)
代理(英语:Proxy)也称网络代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止攻击。
上图中,代理服务器既是服务器又是客户端。客户端向代理发送请求报文,代理服务器必须向服务器一样,正确的处理请求和连接,然后返回响应。同时,代理自身要向服务器发送请求,这样,其行为必须像正确的客户端一样,要发送请求并接收响应。
代理服务器的特点:
客户端不知道真正的服务器是谁,服务器也不知道客户端是什么样的
客户端同代理服务器,代理服务器同服务器,这两者之间使用的通讯协议是一样的
代理服务器会对接收的请求进行解析,重新封装后再发送给服务器;在服务器响应后,对响应进行解析,重新封装后再发送给客户端。
2、网关(Gateway)
在计算机网络中,网关(英语:Gateway)是转发其他服务器通信数据的服务器,接收从客户端发送来的请求时,它就像自己拥有资源的源服务器一样对请求进行处理。有时客户端可能都不会察觉,自己的通信目标是一个网关。
在传统TCP/IP术语中,网络设备只分成两种,一种为网关(gateway),另一种为主机(host)。网关能在网络间转递数据包,但主机不能转送数据包。在主机(又称终端系统,end system)中,数据包需经过TCP/IP四层协议处理,但是在网关(又称中介系统,intermediate system)只需要到达网际层(Internet layer),决定路径之后就可以转送。在当时,网关(gateway)与路由器(router)还没有区别。
在现代网络术语中,网关(gateway)与路由器(router)的定义不同。网关(gateway)能在不同协议间移动数据,而路由器(router)是在不同网络间移动数据,相当于传统所说的IP网关(IP gateway)。
网关服务器的特点:
客户端不知道真正的服务器是谁,服务器也不知道客户端是什么样的
客户端同代理服务器,代理服务器同服务器,这两者之间使用的通讯协议或者协议的版本是不一样的
代理服务器会对接收的请求进行解析,转换协议后再发送给服务器;在服务器响应后,对响应进行解析,转换协议后再发送给客户端。
3、隧道协议(Tunneling Protocol)
隧道协议(英语:Tunneling Protocol)是一种网络通讯协议,在其中,使用一种网络协议(发送协议),将另一个不同的网络协议,封装在负载部分。使用隧道的原因是在不兼容的网络上传输数据,或在不安全网络上提供一个安全路径。
隧道的特点:
该协议是为承载协议自身以外的流量而编写的协议
允许数据从一个网络移动到另一个网络
只关心流量的传输,不对承载的流量进行解析
4、代理与网关的对比
代理连接的是两个或者多个使用相同协议的应用程序,而网关连接的则是两个或多个使用不同协议的端点。网关扮演的是“协议转换器”的角色,即使客户端和服务器使用的是不同的协议,客户端也可以通过它完成与服务器之间的事务处理。
5、隧道与网关的对比
简单来说,如果使用网关,服务器与客户端是相互不知道的,因为数据是网关转发的;但是如果使用隧道,服务器与客户端是直接通信的。
我们预设如下场景:
在一个网络中,防火墙禁止端口443上的连接,因此网络中的用户无法访问使用HTTPS协议的网站。但是,防火墙允许端口80上的连接。网络中的用户想要访问该服务器有两种方法:一种是通过网关,一种是通过HTTP隧道。
(1)使用网关
该种方式由网关(而不是客户端)初始化远端HTTPS服务器的SSL会话,然后代表客户端执行HTTPS事务。响应会由网关接收并解密,然后通过(不安全)的HTTP传送给客户端。
该种方式有几个缺点:
客户端到网关之间的连接是普通的非安全HTTP;
尽管网关是已认证的主体,但客户端无法对远端服务器执行SSL客户端认证;
网关要支持完整的SSL实现。
(2)使用隧道
该种方式SSL流量被封装到一条HTTP报文中,并通过HTTP端口80上的连接发送,最后被解封为普通的SSL流量。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
评论