capwap协议重点分析
一、 CAPWAP概述
CAPWAP由两个部分组成:CAPWAP协议和无线BINDING协议。
(1)CAPWAP协议是一个通用的隧道协议,完成AP发现AC等基本协议功能,和具体的无线接入技术无关。即AP自动发现AC,AC对AP进行安全认证,AP从AC获取软件映像,AP从AC获得初始和动态配置等。此外,系统可以支持本地数据转发和集中数据转发。瘦AP架构让AC具有了对整个WLAN网络的完整视图,为无线漫游、无线资源管理等业务功能的实现提供了基础如图1.1所示。
(2)BINDING协议是提供具体和某个无线接入技术相关的配置管理功能。可以这么解释,前者规定了各个阶段需要干什么事,后者就是具体到在各种接入方式下应该怎么完成这些事。目前工作组只提供了802.11的binding协议(RFC5416,2009年4月发布),以支持802.11网络的配置管理功能。OpenCapwap也实现了这个协议。
图1.1 瘦AP架构图
二、 CAPWAP状态机分析(重点1)
AC与WTP通过CAPWAP状态机来建立隧道,CAPWAP状态机如示意图2.1所示,由图上可知,整个CAPWAP隧道建立的状态有:Idle, Discovery, Sulking, DTLS Setup, Authorize, DTLS Connect, DTLS Teardown, Join, Configure, Image Data, Data Check, Run, Reset。其中 DTLS是CAPWAP报文传输安全机制,保障了网络通信的安全。
CAPWAP状态机是被AC与WTP同时使用的,WTP系统中只有一个CAPWAP状态机,AC端有多个状态机。对于每个定义的状态,只有特定消息被允许发送和接受,每一个状态变迁都有AC与WTP的相关动作,详见RFC5415。CAPWAP状态机的最终目标是进入到RUN状态,进行实际的数据传输,而之前的过程都是AP发现AC,AP与AC建立CAPWAP隧道的过程。
图2.1 CAPWAP状态机流程图
其中AC和AP建立控制链路的过程如图2.2所示,包含了几个主要的状态:
1、 Discovery状态
该状态是一个WTP发现可关联AC的过程,在前期WTP可以通过1)读取静态配置文件中AC IP列表2)通过DNS域名解析3)DHCP返回AC IP列表4)广播等方式发送Discovery request,查找当前可关联的AC,当AC收到Discovery request,会发送Discovery response作为响应。
图2.2 AP发现AC的流程图
2、 Join状态
该状态是AC与WTP建立控制通道的交互过程,并在此交互过程中,AC检查WTP当前版本,如果WTP的版本无法与AC要求的相匹配,WTP和AC会进入Image Data状态做固件升级,来更新WTP版本;如果WTP版本符合要求,则进入configuration状态
3、 Image Data状态
Image Data状态是AC对WTP升级的过程,以便WTP的版本可正常关联AC
4、 Configuration状态
该状态用于做WTP的现有配置和AC设定配置的匹配检查,WTP发送configuration request到AC,里面包含现有WTP配置,当WTP当前配置与AC要求不符实,AC会通过configuration response通知WTP,WTP根据response内容对自身配置做重新设置。
5、 Run状态
当WTP进入Run状态,说明WTP与AC的控制和数据通道建立已成功,用户可根据需要,对指定的WTP做配置设置,如创建WLAN、Channel设置、Txpower设置等等,并可实时监控WTP的运行状态。
三、 CAPWAP报文格式(重点2)
1、CAPWAP报文
CAPWAP报文分为控制和数据两种消息,除了控制消息的Discovery Request和Discovery Response消息外其余的大部分消息均用DTLS进行加密封装。
CAPWAP的控制报文格式如下:
+-------------------------------------------+
| IP | UDP | CAPWAP | Control | Message |
| Hdr | Hdr | Header | Header | Element(s) |
+-------------------------------------------+
图3.1 CAPWAP控制报文帧格式一(Discovery Request/Response)
+------------------------------------------------------------------+
| IP | UDP | CAPWAP | DTLS | CAPWAP | Control| Message | DTLS |
| Hdr | Hdr | DTLS Hdr | Hdr | Header | Header | Element(s)| Trlr |
+------------------------------------------------------------------+
\---------- 认证---------------------/
\------------- 加密------------------/
图3.2 CAPWAP控制报文帧格式二(经DTLS 安全加密处理的)
CAPWAP的数据报文格式如下:(CAPWAP协议对数据报文的DTLS加密是可选的。)
+-------------------------------+
| IP | UDP | CAPWAP | Wireless |
| Hdr | Hdr | Header | Payload |
+-------------------------------+
图3.3 CAPWAP数据明文帧格式
+--------------------------------------------------------+
| IP | UDP | CAPWAP | DTLS | CAPWAP | Wireless | DTLS |
| Hdr | Hdr | DTLS Hdr | Hdr | Header| Payload | Trlr |
+--------------------------------------------------------+
\------ 认证---------------/
\------- 加密--------------/
图3.4 CAPWAP加密数据报文帧格式
2、CAPWAP 协议头分析
CAPWAP 协议的所有报文都包含 CAPWAP 首部,在控制信道收到则是控制报文,在数据信道收到则是数据报文,其帧格式见下:
具体字段的含义请参加文档说明。
图3.5 CAPWAP Header格式
四、 总结
理解CAPWAP状态机的状态跳转过程,弄清了具体的CAPWAP报文格式,就知道它发生什么数据,状态机从一种状态跳到另一种状态,这样就基本弄清了整个CAPWAP协议基本框架。当然CAPWAP协议还有很多细节去分析,但是在理解了CAPWAP协议基本框架后,再结合OpenCapwap源代码和网络抓包,分析细节是比较容易的了。希望本文档能对你有所帮助。
capwap协议重点分析的更多相关文章
- Android IOS WebRTC 音视频开发总结(八十六)-- WebRTC中RTP/RTCP协议实现分析
本文主要介绍WebRTC中的RTP/RTCP协议,作者:weizhenwei ,文章最早发表在编风网,微信ID:befoio 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID ...
- NS2仿真:两个移动节点网络连接及协议性能分析
NS2仿真实验报告2 实验名称:两个移动节点网络连接及协议性能分析 实验日期:2015年3月9日~2015年3月14日 实验报告日期:2015年3月15日 一.实验环境(网络平台,操作系统,网络拓扑图 ...
- 基于byte[]的HTTP协议头分析代码
smark 专注于高并发网络和大型网站架规划设计,提供.NET平台下高吞吐的网络通讯应用技术咨询和支持 基于byte[]的HTTP协议头分析代码 最近需要为组件实现一个HTTP的扩展包,所以简单地实现 ...
- 协议形式化分析Scyther 资料整理
1.性能分析 目前来说形式化的分析已经成为安全协议的一种很流行的方法,但是每种工具都用其不同适合的协议,Scyther软件是一种形式化分析工具,极大的促进了协议的分析和设计,scyther工具在运行界 ...
- tsung HTTP协议统计报告分析
tsung HTTP协议统计报告分析 by:授客 QQ:1033553122 1. Main Static l higest 10sec mean: 基于每10s的统计,最大耗时 l lowe ...
- [转帖]InfiniBand技术和协议架构分析
InfiniBand技术和协议架构分析 2017年06月06日 20:54:16 Hardy晗狄 阅读数:15207 标签: 云计算存储Infiniband 更多 个人分类: 存储云计算 版权声明 ...
- OAuth认证协议原理分析及同步消息到Twitter和Facebook使用方法
OAuth有什么用?为什么要使用OAuth? twitter或豆瓣用户一定会发现,有时候,在别的网站,点登录后转到 twitter登录,之后转回原网站,你会发现你已经登录此网站了,这种网站就是这个效果 ...
- iNode协议再次分析
iNode协议再次分析 声明: 1)本报告由博客园bitpeach撰写,版权所有,免费转载,请注明出处,并请勿作商业用途. 2)若本文档内有侵权文字或图片等内容,请联系作者bitpeach删除相应部分 ...
- (转) HTTP & HTTPS网络协议重点总结(基于SSL/TLS的握手、TCP/IP协议基础、加密学)
HTTP & HTTPS网络协议重点总结(基于SSL/TLS的握手.TCP/IP协议基础.加密学) 原文:http://blog.csdn.net/itermeng/article/detai ...
随机推荐
- mongodump 备份
规划 副本集,其中加了个隐藏节点,用来做备份,所以备份脚本直接在隐藏节点做,目前数据不大,直接本机磁盘存储,后续如果数据集大,那么在本地存最近一天的备份,远程根据需求存储几天的备份 创建备份用户 db ...
- linux设备模型
device_driver和device必须依附总线.总线.驱动.设备最终会落实为sysfs中的一个目录.kobject对应sysfs的一个目录. attribute直接落实sysfs中的一个文件,如 ...
- Java线程(七):Callable和Future
转自:http://blog.csdn.net/ghsau/article/details/7451464 本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果. C ...
- Java集合类学习笔记(List集合)
List集合是指一个元素有序.可重复的集合,集合中每个元素都有其对应的顺序索引. ArrayList和Vector作为List集合的两个典型实现,完全支持List接口的全部功能,并且在用法上几乎完全相 ...
- java时间戳
1.时间戳的定义 时间戳是指文件属性里的创建.修改.访问时间. 数字时间戳技术是数字签名技术一种变种的应用.在电子商务交易文件中,时间是十分重要的信息.在书面合同中,文件签署的日期和签名一样均是十分重 ...
- python学习03——设计,与input有关
笨办法学python第36节,我写的代码如下: from sys import exit def rule(): print "Congratulations! You made the r ...
- The last packet successfully received from the server was 2,926,157 milliseconds ago. The last packet sent successfully to the server was 2,926,158 milliseconds ago. is longer than the server configured value of 'wait_timeout'. 解决办法
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully rec ...
- SQLServer存储过程和触发器学习记录及简单例子
一.存储过程 存储过程即为能完成特定功能的一组SQL语句集.如果需要对查出的多条数据进行操作的话,这里需要理解游标(CURSOR)的概念,对于oracle有for each row命令,可以不用游标 ...
- 重叠I/O模型
一. 重叠I/O的概念当调用ReadFile和WriteFile时,如果最后一个参数lpOverlapped设置为NULL,那么线程就阻塞在这里,直到读写完指定的数据后,它们才返回.这样在读写大文件的 ...
- selenium+python+eclipse开发中遇到的问题
1.中文编码问题 报错提示:SyntaxError: Non-ASCII character '\xba' in file D:\autotest\PythonCase\src\selenium\te ...