L2TP:第二层隧道协议
(L2TP: Layer 2 Tunneling Protocol)
第二层隧道协议(L2TP)是用来整合多协议拨号服务至现有的因特网服务提供商点。 PPP 定义了多协议跨越第二层点对点链接的一个封装机制。非凡地,用户通过使用众多技术之一(如:拨号 POTS、ISDN、ADSL 等)获得第二层连接到网络访问服务器(NAS),然后在此连接上运行 PPP 。在这样的配置中,第二层终端点和 PPP 会话终点处于相同的物理设备中(如: NAS)。
L2TP 扩展了 PPP 模型,答应第二层和 PPP 终点处于不同的由包交换网络相互连接的设备来。通过 L2TP ,用户在第二层连接到一个访问集中器(如:调制解调器池、 ADSL DSLAM 等),然后这个集中器将单独得的 PPP 帧隧道到 NAS 。这样,可以把 PPP 包的实际处理过程与 L2 连接的终点分离开来。
对于这样的分离,其明显的一个好处是,L2 连接可以在一个(本地)电路集中器上终止,然后通过共享网络如帧中继电路或英特网扩展逻辑 PPP 会话,而不用在 NAS 上终止。从用户角度看,直接在 NAS 上终止 L2 连接与使用 L2TP 没有什么功能上的区别。 L2TP 协议也用来解决“多连接联选组分离”问题。多链接 PPP ,一般用来集中 ISDN B 通道,需要构成多链接捆绑的所有通道在一个单网络访问服务器(NAS)上组合。因为 L2TP 使得 PPP 会话可以出现在接收会话的物理点之外的位置,它用来使所有的通道出现在单个的 NAS 上,并答应多链接操作,即使是在物理呼叫分散在不同物理位置的 NAS 上的情况下。
L2TP 使用以下两种信息类型,即控制信息和数据信息。控制信息用于隧道和呼叫的建立、维持和清除。数据信息用于封装隧道所携带的 PPP 帧。控制信息利用 L2TP 中的一个可靠控制通道来确保发送。当发生包丢失时,不转发数据信息 。
12
16
32 bit
T
L
X
X
S
X
O
P
X
X
X
X
VER
Length
Tunnel ID
Session ID
Ns (opt)
Nr (opt)
Offset Size (opt)
Offset Pad (opt)
T ― T 位表示信息类型。若是数据信息,该值为0;若是控制信息,该值为1。
L ― 当设置该字段时,说明 Length 字段存在,表示接收数据包的总长。对于控制信息,必须设置该值。
X ― X 位为将来扩张预留使用。在导出信息中所有预留位被设置为0,导入信息中该值忽略。
S ― 假如设置 S 位,那么 Nr 字段和 Ns 字段都存在。对于控制信息,S 位必须设置。
O ― 当设置该字段时,表示在有效负载信息中存在 Offset Size 字段。对于控制信息,该字段值设为0。
P - 假如 Priority (P)位值为1,表示该数据信息在其本地排队和传输中将会得到优先处理。
Ver ― Ver 位的值总为002。它表示一个版本1 L2TP 信息。
Length ― 信息总长,包括头、信息类型 AVP 以及另外的与特定控制信息类型相关的 AVPs。
Tunnel ID ― 识别控制信息应用的 Tunnel。假如对等结构还没有接收到分配的 Tunnel ID,那么 Tunnel ID 必须设置为0。一旦接收到分配的 Tunnel ID,所有更远的数据包必须和 Tunnel ID 一起被发送。
Call ID ― 识别控制信息应用的 Tunnel 中的用户会话。假如控制信息在 Tunnel 中不应用单用户会话(例如,一个 Stop-Control-Connection-Notification 信息),Call ID 必须设置为0。
Nr ― 期望在下一个控制信息中接收到的序列号。
Ns ― 数据或控制信息的序列号。
Offset Size & Pad ― 该字段规定通过 L2F 协议头的字节数,协议头是有效负载数据起始位置。Offset Padding 中的实际数据并没有定义。假如 Offset 字段当前存在,那么 L2TP 头 Offset Padding 的最后八位字节后结束。