L2TP协议笔记2---L2TP主要协议报文分析

本文详细解析了L2TP协议中隧道和会话的建立过程,包括控制连接请求、回复、连接确认及会话请求、回复、连接确认等关键步骤。介绍了控制消息、会话消息、错误报告及PPP链接控制报文的作用,并阐述了L2TP报文头格式和AVP的使用,帮助读者深入理解L2TP的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

五、L2TP的Tunnel和Session建立过程

 

① 1(SCCRQ)Start-Control-Connection-Request

      控制链接发起请求,由LAC或LNS向对端发送,用来初始化LAC和LNS之间的tunnel,开始tunnel的建立过程。

②  2(SCCRP)Strat-Control-Connection-Reply

      表示接受了对端的连接请求,tunnel的建立过程可以继续。

③  3(SCCCN)Start-Control-Connection-Connected

       对SCRRP的回应,完成tunnel的建立。

④  ZLB

      零长度消息报文,一般为查询报文,LAC可以用Hello报文进行恢复,也可以直接丢弃。

⑤  10(ICRQ)Incoming-Call-Request

       当LAC检测到有用户拨入电话的时候,向LNS发ICRQ,请求在已建立的tunnel中建立session。

⑥  11(ICRP)Incoming-Call-Reply

      用来回应ICRQ,表示ICRQ成功,LNS也会在ICRP中标识L2TP session必要的参数。

⑦  12(ICCN)Incoming-Call-Connected

      用来回应ICRP,L2TP session建立完成。

 


六、其它主要控制消息了解

控制报文: 0(reserved)

                       1(SCCRQ)

                       2(SCCRP)

                       3(SCCCN)

                       4(STOPCCN)Stop-Control-Connection-Notification

                       由LAC或LNS发出,通知对端tunnel将要停止,控制链接将要关闭。另外,所有活动的会话都会悄悄的被清除,原因会显示在Result Code AVP中。

                       5(reserved)

                       6(HELLO)

 

会话报文:

                        8(OCRP)Outgoing-Call-Reply

                        9(OCCN)Outgoing-Call-Connected

                        10(ICRQ)

                        11(ICRP)

                        12(ICCN)

                        13(reserved)

                        14(CDN)Call-Disconnect-Notify

                        由LAC或LNS发出,通知对端session将要停止。

 

错误报告报文:15(WEN)WAN-Error-Notify

 

PPP链接控制报文:16(SLI)Set-Link-Info

7(OCRQ)Outgoing-Call-Request                                       LNS发向LAC用来设置PPP协商的选项,这些选项在call的生存周期中可以随时变化,因此LAC有能力在活动的PPP session上更新内部的呼叫信息和行为。

 


 

七、L2TP报文头格式

 

 

Type(T):标识消息的类型,0表示是数据消息,1表示控制消息。

Length(L):置1时,说明Length域的值是存在的,对于控制消息L位必须置1。

X bit:保留位,所有保留位均置0。

Sequence(S):置1时,说明Ns和Nr是存在的,对于控制消息S必须置1。

Offset(O):置1时,说明Offset Size域是存在的,对于控制消息O必须置0。

Priority(P):只用于数据消息,对于控制消息P位置0,当数据消息此位置1时,说明该消息在本列队和传输时应得到优先处理。

Ver:必须是2,表示L2TP数据报头的版本。

Length:标识整个报文的长度(以字节为单位)。 

Tunnel ID:标识L2TP控制链接,L2TP Tunnel标识符只有本地意义,一个Tunnel两端被分配的Tunnel ID可能会不同,报头中的Tunnel是指接收方的Tunnel ID,而不是发送方的。本端的Tunnel ID在创建Tunnel时分配。通过Tunnel ID AVPs和对端交换Tunnel ID信息。

Session ID:标识Tunnel中的一个session,只有本地意义,一个session两端Session ID可能不同。

Ns:标识发送数据或控制消息的序号,从0开始,以1递增,到216再从0开始。

Nr:标识下一个期望接收到的控制消息。Nr的值设置成上一个接收到的控制消息的Ns+1。这样是对上一个接收到的控制消息的确认。数据消息忽略Nr。

Offset Size:如果值存在的话,标识有效载荷数据的偏移。

 


 

八、 AVP介绍及其格式

 

1、AVP介绍

    控制消息中要携带的相关参数,使用AVP(Attribute Value Pair,属性值对)的形式来表示,使协议具有很好的扩展性。

 

2、AVP格式

 

● 开始的6个bit是一个位掩码,用来描述AVP的普通属性,RFC2661定义了前2位,其余被保留。

● (M)命令位:用来控制收到不认识的AVP时必须执行的动作。如果在一个关联特殊的会话消息中M位被置为不认识的AVP,这个会话一定会被终止。如果在一个关联全部通道的消息中M位被置为不认识的AVP,整个通道包括通道内的会话一定会被终止。如果M为没有被设置,这个不认识的AVP会被忽略掉。 

● (H)隐藏位:用来识别一个AVP的属性域里的隐藏数据。 

● 保留位一定要置0,收到一个保留位为1的AVP,会把收到的AVP当做不认识。


 

九、部分主要AVP含义

 

(1)   Control Connection Management AVP

(2)   Protocol Version AVP :标识L2TP协议的版本。

(3)   Framing Capabilities AVP :倒数第二bit位A置1,标识支持帧异步;倒数第二bit位S置1,标识支持帧同步。

(4)   Beaer Capabilities AVP :

(5)   Tie Breaker AVP

标识发送者希望在LAC和LNS之间只存在一个tunnel;如果LAC和LNS同时都发起了SCCRQ,那么需要选择一个单一的tunnel。接收到SCCRQ端检查自己是不是向对端发送了SCCRQ,如果已经发送了,就比较Tie Breaker值的大小,值小的继续tunnel建立,值大的必须放弃tunnel。如果两个值相等,都放弃。

(6)   Host name AVP :标识发送端的主机名称。

(7)   Assigned Tunnel ID :本端(发送端)分配的tunnel ID。

(8)   Receive Window Size :

标识接收窗口的大小:如果没有发送这个AVP,对端必须假设接收窗口是4,远端在发送指定数量的控制消息后,必须等待对方确认。

(9)   Challenge :标识发送端希望对tunnel对端进行CHAP认证。

(10) Challenge Response :对接收到Challenge的响应。

(11) Assigned Session ID :

本端分配的Session ID,当LAC检测到用户呼叫的时候,向LNS发送ICRQ,请求在已经

存在的tunnel中建立session链接,LAC在本端为需要建立的session分配一个session ID,这个session ID只具有本地意义。LNS接收ICRQ后回应ICRP,在ICRP中也包含了LNS为这个session分配的一个具有本地意义的session ID。通过ICRQ和ICRP,本地就可以获得对端为这条session分配的session ID了。

注意:在L2TP包头中的session ID是指对端对session分配的session ID。

(12)Minimum BPS :标识呼叫链接可接受的最低的连接速率。

(13)Maximum BPS :标识呼叫链接可接受的最高的连接速率。

(14)Bearer Type :标识呼叫连接的是模拟信道还是数字信道。

(15)Framing Type :标识支持帧同步还是帧异步,如果A和S都置位说明都支持或者是不清除。

(16)Called Number :被呼叫方的电话号码。

(17)Calling Number :呼叫方的电话号码。

(18)Rx Connect Speed :LAC的接收速率,可能和发送速率是不对称的。

(19)Private Group ID :LAC用来标识客户属于某个特定的组织。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值