五、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用来标识客户属于某个特定的组织。
L2TP协议笔记2---L2TP主要协议报文分析相关推荐
- L2TP协议笔记1---L2TP概念及协议流程分析
这个协议是早前做防火墙测试工作时主要负责测试的协议,虽然只做了几个月,但感觉如果把当时的一些学习笔记和经验整理好放在网络中,不仅可以使自己的协议理解得到巩固,也让自己有机会在和别人交流中互相学习. ...
- 【网络协议笔记】TCP/UDP 协议整理
概要 运输层协议为运行在不同主机上的应用 进程 之间提供了 逻辑通信(logic communica-tion)功能. 运输层是在 端系统中 而不是在路由器中实现的. 在发送端,运输层将从发送应用程序 ...
- MQTT协议详解之CONNECT/CONNACK报文分析
1.MQTT.fx 发起不含遗嘱的连接 连接成功后,查看Wireshark抓包情况如下: 从上图抓包效果,我们可以看出: (1) MQTT协议是建立在TCP协议的基础上的应用层协议,也就是说MQTT协 ...
- 【智能路由器】ndpi深度报文分析源码框架
[智能路由器]系列文章连接 http://blog.csdn.net/u012819339/article/category/5803489 某些需求可能会要求路由能精确的分析出流经路由的流量是属于什 ...
- 趣谈网络协议笔记-二(第七,八,九讲)
趣谈网络协议笔记-二(第七,八,九讲) 勉励 人生而自由,却无往不在枷锁(牢笼)之中. ------卢梭@<社会契约论> 为那些有形的牢笼感到庆幸吧. 为自己出生于这个时代感到庆幸吧,因为 ...
- 趣谈网络协议笔记-二(第五讲)
趣谈网络协议笔记-二(第五讲) 目录 第二模块 底层网络知识讲解:第二层到第三层 第5讲 | 从物理层到MAC层:如何在宿舍离自己组网完联机游戏 第6讲 | 交换机与VLAN:办公室太复杂,我要回学校 ...
- [ 笔记 ] 计算机网络安全_2_internet协议的安全性
[笔记] 计算机网络安全:(2)internet协议的安全性 网络安全基础 internet协议的安全性 Web安全 网络扫描和网络监听 防火墙原理与设计 入侵检测系统 VPN技术 目录 [笔记] 计 ...
- 【计算机网络学习笔记07】PPP协议、IP编址、NAT技术
[计算机网络学习笔记07]PPP协议.IP编址.NAT技术 一.PPP协议 是TCP/IP网络中最重要的点到点的数据链路层协议. 1 PPP协议的组成 1)链路控制协议:建立并维护数据链路连接(身份验 ...
- 趣谈网络协议笔记-二(第十九讲)
趣谈网络协议笔记-二(第十九讲) HttpDNS:网络世界的地址簿也会指错路 自勉 勿谓言之不预也 -- 向为祖国牺牲的先烈致敬! 引用 dns缓存刷新时间是多久?dns本地缓存时间介绍 - 东大网管 ...
最新文章
- R语言tidyr包Unite()函数实战详解:多个数据列合并为一列
- RocketMQ工作原理 高级功能介绍
- 连接oracle10g数据库免安装oracle客户端解决办法 (转载)
- asp sql查询过滤空格_对比Excel,轻松学习SQL数据分析数据笔记02
- se16 and include table entries into TR SAT trace - Gross time and Net time
- CS231n Convolutional Neural Networks for Visual Recognition------Scipy and MatplotlibTutorial
- iOS-格式化金额,三位一逗号
- Mysql学习总结(73)——MySQL 查询A表存在B表不存在的数据SQL总结
- ireport怎么生成jasper文件
- Java selenium和python_c#和Java和python设置selenium超时时间
- I2S,PCM,IOM-2,I2C,SPI,UART,GPIO
- MD5加密 MD5加盐
- 行业分类代码 2017 最新版 创建sql语句
- d3d示例程序_3D打印改变我们现实的10个示例
- python--xlsx文件的读写
- Python爬虫爬取个人主页信息(拖拽验证码验证)+Linux部署
- MT7620a-Openwrt-Frp
- 基于软路由连接上网的相关配置
- 当你的才华撑不起你的野心的时候,你就应该努力
- dp与px的转换对照表
热门文章
- centos mysql二进制包_centos mysql5.7 二进制包安装
- selenium使用webdriver新开标签页
- docker 日志_解决docker容器日志导致主机磁盘空间满了的情况
- 无法删除所有指定的值_SQL-插入、更新、删除、创建
- stm32l4 外部中断按键会卡死_stm32f103c8怎么实现外部中断按键点灯,按一下就亮,再按一下就灭,求大神帮忙...
- html5 video在uc不自动播放,uc浏览器无法播放视频怎么办
- leetcode46.全排列
- 第四单元作业——UML分析总结学期总结
- UVAPOJ离散概率与数学期望入门练习[4]
- POJ3728 THE MERCHANT LCA RMQ DP