原文地址:VPN技术原理

VPN,Virtual Private Network(虚拟专用 网络),被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过公用网络的安全、稳定的隧道。虚拟专用网是对企业内部网的扩 展,它可以帮助异地用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。

IETF 组
织对基于IP 的VPN 解释为:通过专门的隧道加密技术在公共数据网络上仿真一条点到点的专线技术。所谓虚拟,是指用户不再需要拥有实际的长途数据线
路,而是使用Internet公众数据网络的长途数据线路。所谓专用网络,是指用户可以为自己制定一个最符合自己需求的网络。早期的专用网一般指的是电信
运营商提供的Frame Relay或ATM 等虚拟固定线路(PVC)服务的网络,或通过运营商的DDN 专线网络构建用户自己的专用网。


在的VPN 是在Internet 上临时建立的安全专用虚拟网络,用户节省了租用专线的费用,同时除了购买VPN 设备或VPN软件产品外,企业所付出
的仅仅是向企业所在地的ISP 支付一定的上网费用,对于不同地区的客户联系也节省了长途电话费。这就是VPN 价格低廉的原因。

以OSI 模型参照标准,不同的VPN 技术可以在不同的OSI 协议层实现。

如下表:

VPN在OSI中的层次 VPN实现技术 
应用层 SSL VPN 
会话层 Socks5 VPN 
网络层 IPSec VPN
数据链路层 PPTP及L2TP 

应用层VPN
SSL协议:
     安全套接字层(Secure Socket Layer,SSL)属于高层安全机制,广泛应用于Web 浏览程序和Web 服务器程序,提供对等的身份认证
和应用数据的加密。在SSL中,身份认证是基于证书的。服务器方向客户方的认证是必须的,而SSL 版本3中客户方向服务方的认证只是可选项,但是并没有
得到广泛的应用。SSL 会话中包含一个握手阶段,在这个阶段通信双方交换证书,生成会话密钥,协商以后通信使用的加密算法。完成了握手以后,对于B/S
的应用,应用程序就可以安全地传输数据而无需做很大修改,除了在传输数据时要调用SSL API而不是传统的套接字API,但是对于C/S结构的应用软
件,其解决方案与会话层的VPN异曲同工。
    SSL 是一个端到端协议,因而是在处于通信通路端点的机器上实现(通常是在客户机和服务器
上),而不需要在通信通路的中间节点(如路由器或防火墙)上实现。虽然理论上SSL可以用于保护TCP/IP 通信,但事实上SSL的应用几乎只限于
HTTP。在SSL通信中,服务器方使用443端口,而客户方的端口是任选的。

会话层VPN 
Socks4协议:
     Socks 处
于OSI 模型的会话层,在Socks协议中,客户程序通过Socks客户端的1080端口透过防火墙发起连接,建立到Socks服务器的VPN隧道,然
后代理应用程序的客户端与应用程序服务器进行通讯。在该框架中,协议能安全透明地穿过防火墙,并客户程序对目的主机是不可见的,从而很好地隐藏了目标主
机。SOCKS 的关键技术是对客户端应用程序进行Socks化,加入对Socks协议的支持,然后服务器端再解析Socks化的结果。
     Socks4协议,它为TELNET、FTP、HTTP、WAIS和GOPHER等基于TCP协议(不包括UDP)的客户/服务器程序提供了一个无需认证的防火墙,建立了一个没有加密认证的VPN隧道。

Socks5协议:
     Socks5
协议扩展了Socks4,以使其支持UDP、TCP框架规定的安全认证方案、地址解析方案中所规定的IPv4、域名解析和IPv6。为了实现这个
Socks协议,通常需要重新编译或者重新链接基于TCP的客户端应用程序以使用Socks库中相应的加密函数,并且增加了对数据传输的完整性、数据包的
压缩支持。

网络层VPN 技术

IPSec协议:
    IPSec 也是IETF 支持的标准之一,它和前两
种不同之处在于它是第三层即IP层的加密。 IPSec 不是某种特殊的加密算法或认证算法,也没有在它的数据结构中指定某种特殊的加密算法或认证算法,
它只是一个开放的结构,定义在IP数据包格式中,不同的加密算法都可以利用IPSec定义的体系结构在网络数据传输过程中实施。 
    IPSec
协议可以设置成在两种模式下运行:一种是隧道(tunnel)模式,一种是传输(transport)模式。在隧道模式下,IPSec 把IPv4 数据
包封装在安全的IP帧中。传输模式是为了保护端到端的安全性,即在这种模式下不会隐藏路由信息。隧道模式是最安全的,但会带来较大的系统开销。

链路层VPN 技术 
PTP协议:
     PPTP(点
到点隧道协议)是由PPTP论坛开发的点到点的安全隧道协议,为使用电话上网的用户提供安全VPN业务,1996 年成为IETF草案。PPTP是
PPP 协议的一种扩展,提供了在IP 网上建立多协议的安全VPN 的通信方式,远端用户能够通过任何支持PPTP 的ISP 访问企业的专用网络。
     PPTP 提
供PPTP 客户机和PPTP服务器之间的保密通信。PPTP 客户机是指运行该协议的PC 机,PPTP 服务器是指运行该协议的服务器。通过
PPTP,客户可以采用拨号方式接入公共的IP 网。拨号客户首先按常规方式拨号到ISP的接入服务器,建立PPP 连接;在此基础上,客户进行二次拨号
建立到PPTP 服务器的连接,该连接称为PPTP隧道。PPTP隧道实质上是基于IP协议的另一个PPP连接,其中IP包可以封装多种协议数据,包括
TCP/IP、IPX和NetBEUI。对于直接连接到IP网的客户则不需要第一次的PPP拨号连接,可以直接与PPTP服务器建立虚拟通路。
    PPTP 的
最大优势是Microsoft 公司的支持,另外一个优势是它支持流量控制,可保证客户机与服务器间不拥塞,改善通信性能,最大限度地减少包丢失和重发现
象。PPTP 把建立隧道的主动权交给了客户,但客户需要在其PC 机上配置PPTP,这样做既会增加用户的工作量,又会造成网络的安全隐患。另
外,PPTP 仅工作于IP,不具有隧道终点的验证功能,需要依赖用户的验证。

L2F/L2TP 协议:
     L2F(Layer 2 Forwarding)
是由Cisco 公司提出的,可以在多种介质(如ATM、FR、IP)上建立多协议的安全VPN 的通信方式。它将链路层的协议(如HDLC、PPP、
ASYNC等)封装起来传送,因此网络的链路层完全独立于用户的链路层协议。该协议1998 年提交给IETF,成为RFC2341。 
     L2F
远端用户能够通过任何拨号方式接入公共IP网络。首先,按常规方式拨号到ISP 的接入服务器(NAS),建立PPP 连接;NAS 根据用户名等信息发
起第二次连接,呼叫用户网络的服务器,这种方式下,隧道的配置和建立对用户是完全透明的。L2F允许拨号服务器发送PPP帧,并通过WAN 连接到
L2F 服务器。L2F 服务器将包去封装后,把它们接入到企业自己的网络中。与PPTP 所不同的是,L2F 没有定义客户。
    L2F 的主要缺陷是没有把标准加密方法包括在内,因此它基本上已经成为一个过时的隧道协议。

VPN,Virtual Private Network(虚
拟专用网络),被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过公用网络的安全、稳定的隧道。虚拟专用网是对企业内部网
的扩展,它可以帮助异地用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。

虚拟专用网络是专用网络的延伸,它包含了类似 Internet 的共享或公共网络链接。通过VPN可以以模拟点对点专用链接的方式通过共享或公共网络在两台计算机之间发送数据。这个学名叫"虚拟专用网络"的VPN到底是个什么呢?

比方说:从北京到广州的班机,VPN就如机场在众多的的主干班机上辟出的一条临时专用班机来供贵宾直通到广州。并且,VPN的存在不会影响其它信息照常传递,又能像传统的专网一样保障内部信息在公共信道上传输时的机密性、完整性和可用性。


果说得再通俗一点,VPN实际上是"线路中的线路",类型于城市大道上的"公交专用线",所不同的是,由VPN组成的"线路"并不是物理存在的,而是通过
技术手段模拟出来,即是"虚拟"的。不过,这种虚拟的专用网络技术却可以在一条公用线路中为两台计算机建立一个逻辑上的专用"通道",它具有良好的保密和
不受干扰性,使双方能进行自由而安全的点对点连接,因此被网络管理员们非常广泛地关注着。

公众信息网是对整个社会开放的公众基础
网络,具有覆盖范围广、速度快、费用低、使用方便等特点。 VPN 技术就是利用公众信息网中传输 , 就如同在茫茫的广域网中为用户拉出一条专线。对于
用户来讲,公众网络起到了 “ 虚拟专用 ” 的效果。通过 VPN ,网络对每个使用者也是专用的。也就是说, VPN 根据使用者的身份和权限,直接
将使用者接入他所应该接触的信息中。所以 VPN 对于每个用户,也是 “ 专用 ” 的,这一点应该是 VPN 给用户带来的最明显的变化。

<转>VPN技术原理的更多相关文章

  1. vpn技术原理详解

    转载于:http://blog.csdn.net/quqi99/article/details/7334617 假设有这样一个需求,需要从家中访问公司内网机器,可以用ssh遂道技术来作转发,遂道分正向 ...

  2. VPN工作原理

    引言 在过去几十年中,世界发生了很大的变化.现在很多公司除了处理本地或地区性事务外,还要考虑全球市场和物流的问题.很多公司在全国甚至全球都设有分支机构,而这些公司都需要做的一件事情就是:找到能够与分公 ...

  3. Atitit.ide技术原理与实践attilax总结

    Atitit.ide技术原理与实践attilax总结 1.1. 语法着色1 1.2. 智能提示1 1.3. 类成员outline..func list1 1.4. 类型推导(type inferenc ...

  4. Atitit.异步编程技术原理与实践attilax总结

    Atitit.异步编程技术原理与实践attilax总结 1. 俩种实现模式 类库方式,以及语言方式,java futuretask ,c# await1 2. 事件(中断)机制1 3. Await 模 ...

  5. Atitit 语音识别的技术原理

    Atitit 语音识别的技术原理 1.1. 语音识别技术,也被称为自动语音识别Automatic Speech Recognition,(ASR),2 1.2. 模型目前,主流的大词汇量语音识别系统多 ...

  6. Atitit.gui api自动化调用技术原理与实践

    Atitit.gui api自动化调用技术原理与实践 gui接口实现分类(h5,win gui, paint opengl,,swing,,.net winform,)1 Solu cate1 Sol ...

  7. 新手入门:史上最全Web端即时通讯技术原理详解

    前言 有关IM(InstantMessaging)聊天应用(如:微信,QQ).消息推送技术(如:现今移动端APP标配的消息推送模块)等即时通讯应用场景下,大多数都是桌面应用程序或者native应用较为 ...

  8. Web端即时通讯技术原理详解

    前言 有关IM(InstantMessaging)聊天应用(如:微信,QQ).消息推送技术(如:现今移动端APP标配的消息推送模块)等即时通讯应用场景下,大多数都是桌面应用程序或者native应用较为 ...

  9. seo伪原创技术原理分析,php实现伪原创示例

    seo伪原创技术原理分析,php实现伪原创示例 现在seo伪原创一般采用分词引擎以及动态同义词库,模拟百度(baidu),谷歌(google)等中文切词进行伪原创,生成后的伪原创文章更准确更贴近百度和 ...

随机推荐

  1. 改变Vim在iTerm2中的光标

    vim ~/.vimrc 添加 " Change cursor shape between insert and normal mode in iTerm2.appif $TERM_PROG ...

  2. 缺少索引导致的服务器和MYSQL故障。

    故障现象: 网站访问缓慢. 数据库RDS: CPU满,连接数满,其他值都是空闲. apache服务器:CPU正常,IO正常,流量报警,内存爆满. 解决思路: 一.没遇到过此情况,一脸懵逼. 二.请教大 ...

  3. Redis for .NET 系列之实现分页需求

    代码笔记: var tableName = "Table1"; redisClient.AddItemToSortedSet(tableName, ); redisClient.A ...

  4. Unity API

    关于 int Mathf.PingPong(t, length); 原理,相当于 #include <iostream> #include <vector> int test( ...

  5. HTML5+ 学习笔记3 storage.增删改查

    //插入N条数据 function setItemFun( id ) { //循环插入100调数据 var dataNum = new Number(id); for ( var i=0; i< ...

  6. 浏览器兼容性之JavaScript篇

    近期公司职务变动,我大部分工作时间都在做web前端开发.工作性质主要是跟javascript和css(层叠样式表)打交道,而JavaScript兼容性一直是Web开发者的心病,当然我也不例外,虽然我大 ...

  7. POJ 2299 Ultra-QuickSort

    离散化+树状数组求逆序数 Ultra-QuickSort Time Limit: 7000MS Memory Limit: 65536K Total Submissions: 35024 Accept ...

  8. 3.聚类–K-means的Java实现

    K-means的步骤 输入: 含n 个样本的数据集,簇的数据K 输出: K 个簇 算法步骤: 1.初始化K个簇类中心C1,C2,---Ck (通常随机选择) 2.repeat 步骤3,4 3,将数据集 ...

  9. 【C语言入门教程】1.1 基本程序结构

    基本程序结构就是从上至下顺序执行的程序,C语言程序必须有且只有一个主函数,程序从主函数开始执行,直到主函数结束.下例是根据半径求圆形面积的程序源代码. #include <stdio.h> ...

  10. Linux/CentOS 同步网络时间

    由于硬件的原因,机器或多或少的跟标准时间对不上,一个月的误差几秒到几分钟不等.对于服务器来说时间不准,会有很多麻烦.例如,支付的时候,无法下单,游戏无法登录等. 方法一:用 ntpdate从时间服务器 ...