好文档 - 专业文书写作范文服务资料分享网站

PPP,PPPOE,PPTP,L2TP-各种VPN协议简介

天下 分享 时间: 加入收藏 我要投稿 点赞

用场景)我们了解到了PPP在拨号介入网络中的应用场景,今天,就详细介绍一下PPPoE协议。先看一幅PPPoE接入场景图:

PPPoE场景1

用户在自己的PC上拨号以建立到达图中SSG设备的PPPoE通道。下图和上图结构相同,在细节上画的更清晰了一些:

PPPoE场景2

从用户PC到modem,从modem到DSLAM,从DSLAM到PPPoEServer的链路和协议栈进本上在前文中都介绍了,读者可以在本场景图中自己回味一下。不清楚或者有疑问的地方欢迎和Hans做深入探讨。下面介绍PPPoE协议的细节:

上图第一行为Ethernetframe的格式,当ethernettype类型为0×8863时,表示payload承载的是PPPoE协商报文,当类型为0×8864时,表示承载的是PPPoE的

会话数据报文。Payload部分就是PPPoE报文的内容了。

第二行中是PPPoE的报文头,版本、类型字段的数值恒为0×01。Code字段在各种报文中的数值不同,在后面会一一介绍。会话ID表示此报文为哪个PPPoE会话的报文。长度字段表示后面Payload字段的长度。在这个层次上的Payload是一组的PPPoE标记(Tag)。第三行就显示了PPPoETag的组织格式,是以一串常见的TLV(类型、长度、值)三元组组成的。标记(Tag)对照表:

标记类型标记说明

0×0000表示PPPOE报文数据域中一串标记的结束,为了保证版本的兼容性而保留,在有些报文中有应用。

0×0101服务名,主要用来表明网络侧所能提供给用户的一些服务。

0×0102访问集中器名,当用户侧接收到了AC的回应的PADO报文时,就可获从所携带的标记中获知访问集中器的名子,而且还可以据此来选择相应的访问集中器。

0×0103主机唯一标识,类似于PPP数据报文中的标识域,主要是用来匹配发送和接收端的,因为对于广播式的网络中会同时存在很多个PPPOE的数据报文。

0×0104AC-Cookies,主要被用来防止恶意性DOS功击。

0×0105销售商的标识符。

0×0110中继会话ID,对于PPPOE的数据报文也同样可以像DHCP报文一样被中断到另外的AC上终结,这个字段则是用来维护另一个连接的。

0×0201服务名错误,当请求的服务名不被对端所接受时,会在响应的报文中携带这个标记。

0×0202访问集中器名出错。

0×0203一般性错误。

·

PPPoE的协商流程:

1、PADI(PPPOEActiveDiscoveryInitiation)报文

这是用户主机发起(广播方式)的一个PPPoE服务器探测报文。code字段为0×09,

会话ID为0×0000(此时还没有会话session),必须需要包含0×0101标记,这个标记表示主机需要的服务。有时还会带上0×0103这个tag,表示主机的唯一标识。2、PADO(PPPOEActiveDiscoveryOffer)报文

这是PPPoE服务器收到PADI报文之后的回应报文(目的MAC地址为客户端主机的MAC地址)。当PPPoE报文受到PADI报文后,如果此服务器可以回应主机0×0101标记请求的服务,则可以回应PADO报文。PADO的code字段为0×07,会话ID为0×0000。此报文必须包含0×0102标记以及一些针对收到的PADI报文的确认标记。3、PADR(PPPOEActiveDiscoveryRequest)报文

这是用户主机收到PPPoE服务器回应的PADO报文后,单播(目的地址为此用户选定的那个PPPoE主机的MAC)发起的请求报文。code字段为0×19,sessionID为0×0000。包含了0×0101标识。

4、PADS(PPPOEActiveDiscoverySession-confirmation)报文

PPPoE服务器会为在这个会话分配一个唯一的会话进程ID,并在发送给主机的PADS报文中携带上这个会话ID。当然如果PPPoE服务器不满足用户所申请的服务的话,则会向用户发送一个PADS报文,而其中携带一个服务名错误的标记,而且此时该PADS报文中的会话ID填充0×0000。code为0×65。至此,一个PPPoE会话就建立成功了,用户和服务器两点之间可以进行会话,也就是可以发送PPP报文了。5、PADT(PPPOEActiveDiscoveryTerminate)报文

当用户或者服务器需要终止会话时,可以发送这种PADT报文。code字段为0xA7。sessionID为希望终止的会话ID。此报文不需要附加任何的tag标识。

·

PPPoE的会话数据报文:

一旦经过前面介绍的协商之后,PPPoE的会话就建立成功了,客户端和服务器获得了会话ID,也就是建立了一条点对点的隧道(tunnel)。此时两端之间就可以发送会话报文,也就是PPP报文了。此时ethernet报文头的type字段为0×8864。PPPoE头的code字段为0×00。此时PPPoE承载的payload就是PPP报文了。总结:PPPoE为非点对点链路的以太网物理链路上承载PPP报文提供了一种创建虚拟点对点隧道链路的协商方式和封装方式。

PPP,PPPoE,PPTP,L2TP-VPN简介(之四)-PPTP和L2TP简介2010-03-0302:27

在前文中,已经为读者介绍了PPPoE的场景和协议。与PPPoE类似的PPPframe

的常见封装方式还有PPTP和L2TP,同样,他们也被用在虚拟拨号的应用场景中。PPTP是来自于微软为首的几个公司的虚拟拨号协议。同PPPoE虚拟拨号的一样,核心思路也是分为了两部分,先协商一条虚拟的点对点“链路”,然后在此链路上传输PPP封装的报文。PPTP的链路协商报文是使用IP协议的TCP头来封装PPTP报文的(TCP为其保证了可靠性和重传机制),通过协商建立好连接后,封装在PPTP头内的PPP报文是通过IP协议的GRE头来封装的。所以,PPTP有一个天生的劣势,就是它只能承载在IP之上(当然,如果需要,你也可以再将IP承载在其他协议),我觉得,这就是依赖TCP来保证可靠传输的代价。而L2TP就要灵活的多。L2TP是思科公司的L2F协议的进化(很多地方介绍L2TP是L2F和PPTP二者合二为一的进化,但是从协议的设计来看,我觉得L2TP与L2F要比与PPTP显得亲近的多)。与PPTP不同,L2TP的链路控制报文和封装PPP数据报文用L2TP头封装后,同意使用一种方式传输--(如果是IP协议承载,就封装在UDP头内,此外,也可以封装在FrameRelay,ATM,X.25等协议)。L2TP的链路控制报文的保序、重传等可靠性是通过自己的L2TP头内的报文序列号来控制实现的。

L2TP的一条点对点tunnel可以承载n条PPP会话,在一条tunnel不同的会话可以使用会话ID来互相区分,而PPTP只能承载一路会话。

L2TP在IP网络上一般都使用IPSEC来进行加密实现安全性。PPTP有微软设计的MPP加密方式来加密。

此文主要点出了L2TP和PPTP的各自特点和基本应用方式,对于L2TP和PPTP的协议细节,网络上资料很多,RFC的讲述非常翔实,本文就不作过多的讲述了。如果有对其某些方面感兴趣的朋友,欢迎和Hans一起讨论。

PPP,PPPOE,PPTP,L2TP-各种VPN协议简介

用场景)我们了解到了PPP在拨号介入网络中的应用场景,今天,就详细介绍一下PPPoE协议。先看一幅PPPoE接入场景图:PPPoE场景1用户在自己的PC上拨号以建立到达图中SSG设备的PPPoE通道。下图和上图结构相同,在细节上画的更清晰了一些:PPPoE场景2从用户PC到modem,从modem到DSLAM,从DSLAM到PPPoES
推荐度:
点击下载文档文档为doc格式
9syia5d0ci05ej21u7xg
领取福利

微信扫码领取福利

微信扫码分享