隧道技术简介

隧道技术 

隧道技术(Tunneling)是一种通过使用互联网络的基础设施在网络之间建立一条虚拟链路以传递数据的方式。使用隧道传递的数据可以是不同协议的PDU,隧道将其他协议的PDU重新封装后通过网络发送,新的PDU提供路由信息,以便通过互联网传递被封装的数据。由于PDU经过重新封装,使得数据的发送方和接收方就像在一条专有“隧道”中进行数据传输和通信,隧道技术因此得名。

一般来说,隧道是在高层(或同等层)分组中携带低层数据。例如,在一个IPv4或IPv6分组中携带IPv4数据,在一个UDP、IPv4或IPv6分组中携带以太网数据。隧道转变了在头部中协议严格分层的思路,并允许形成覆盖网络(即这些“链路”实际是其他协议实现的虚拟链路,而不是物理连接的网络)。通过隧道的建立,可实现将数据强制送到特定的地址、隐藏私有的网络地址、在IP网上传递非IP数据包、提供数据安全支持等功能。

应用概述

为了建立隧道,隧道两端的通信方(一般角色为客户端和服务器)必须使用相同的隧道协议。隧道技术可分别以第2层隧道协议或第3层隧道协议为基础。第2层隧道协议对应于OSI模型中的数据链路层,使用帧作为数据交换单位,如:点对点隧道协议(Point-to-Point Tunneling Protocol, PPTP)、第2层隧道协议(L2TP)、第2层转发协议(L2F)等。第3层隧道协议对应于OSI模型的网络层,使用包作为数据交换单位,如:IP安全协议(IPsec,实际是一套协议包)、IP in IP等。此外还有通用路由封装(General Router Encapsulation, GRE),它定义了在任意一种网络层协议上封装任意一个其它网络层协议。GRE使用IPv4或IPv6携带流量,因此更像是一种第3层隧道技术。

隧道技术是虚拟专用网络(Virtual Private Network, VPN)以及移动IP等实现的技术基础。

单向链路

当链路仅在一个方向工作时,这种链路称为单向链路(UDL)。由于它们需要交换信息(例如PPP配置信息),因此很多隧道协议在这种情况下不能正常运行。为了解决这种问题提出了一种标准,可在辅助Internet接口上创建隧道,它可与UDL操作相结合。单向链路的典型情况是由卫星提供下行流量(流向用户)而形成一条Internet连接,或者是调制解调器提供上行流量而形成一条拨号链路。这在卫星连接的用户主要是下载而不是上传的情况下是有用的,并且通常用于早期的卫星Internet连接。它使用GRE将链路层的上行流量封装在IP分组中。

为了在接收方自动建立和维护隧道,规定了一种动态隧道配置协议(DTCP)。DTCP设计在下行链路中发送组播Hello信息,因此任何有兴趣的接收方都可知道已有UDL及其MAC和IP地址。另外,Hello信息表示网络中一个隧道端点的接口,它可通过用户端的辅助接口到达。在用户选择隧道端点后,DTCP在GRE隧道中将同一MAC作为UDL封装返回流量。服务提供商接收由GRE封装的这些第2层帧(通常是以太网),将它们从四道中提取并适当转发。因此,上游(提供商)UDL需要手工配置隧道,下游(用户)自动配置隧道。这种UDL处理方法实际上是为上层协议不对称地“隐藏”链路。因此,这条链路“两个”方向上的性能(延迟、带宽)可能非常不对称(最直观的感受是家用宽带的上传速率往往比下载速率要低得多),并可能对高层协议产生不利影响。

上述情况说明隧道的一个重要问题是配置的工作量,这个工作以前一直由手工完成。在通常情况下,隧道配置协议涉及选择一个隧道端点,以及对方的IP地址配置位于隧道端点的设备,也许还需要选择协议和提供认证信息。为此出现一些相关技术以协助自动配置或使用隧道。一种从IPv4向IPv6过渡的方法称为6to4。在6to4中,IPv6分组在一个IPv4网络中通过隧道传输,它的好处在于只需要一个全球惟一的IPv6地址便可使得整个站点获得IPv6的连接。

6to4采用特殊的IPv6地址使在IPv4海洋中的IPv6孤岛能相互连接。此时IPv6的出口路由器与其他的IPv6域建立隧道连接。IPv4隧道的末端可从IPv6域的地址前缀中自动提取,因为站点的IPv4地址包含在IPv6地址前缀中。6to4另一个特点是它可以自动从IPv6 地址的前缀中提取一个IPv4地址。通过这个机制,站点能够配置IPv6而不需要向注册机构申请IPv6地址空间。这同时也简化了ISP提供商的管理工作。

 

                                                                                         本文部分内容摘自《TCP/IP详解 卷1:协议(中文版)第2版》、百度百科
 

你可能感兴趣的:(计算机网络,学习笔记)