一、     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加密数据报文帧格式

2CAPWAP 协议头分析

CAPWAP 协议的所有报文都包含 CAPWAP 首部,在控制信道收到则是控制报文,在数据信道收到则是数据报文,其帧格式见下:

具体字段的含义请参加文档说明。

图3.5  CAPWAP Header格式

四、     总结

理解CAPWAP状态机的状态跳转过程,弄清了具体的CAPWAP报文格式,就知道它发生什么数据,状态机从一种状态跳到另一种状态,这样就基本弄清了整个CAPWAP协议基本框架。当然CAPWAP协议还有很多细节去分析,但是在理解了CAPWAP协议基本框架后,再结合OpenCapwap源代码和网络抓包,分析细节是比较容易的了。希望本文档能对你有所帮助。

capwap协议重点分析的更多相关文章

  1. Android IOS WebRTC 音视频开发总结(八十六)-- WebRTC中RTP/RTCP协议实现分析

    本文主要介绍WebRTC中的RTP/RTCP协议,作者:weizhenwei ,文章最早发表在编风网,微信ID:befoio 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID ...

  2. NS2仿真:两个移动节点网络连接及协议性能分析

    NS2仿真实验报告2 实验名称:两个移动节点网络连接及协议性能分析 实验日期:2015年3月9日~2015年3月14日 实验报告日期:2015年3月15日 一.实验环境(网络平台,操作系统,网络拓扑图 ...

  3. 基于byte[]的HTTP协议头分析代码

    smark 专注于高并发网络和大型网站架规划设计,提供.NET平台下高吞吐的网络通讯应用技术咨询和支持 基于byte[]的HTTP协议头分析代码 最近需要为组件实现一个HTTP的扩展包,所以简单地实现 ...

  4. 协议形式化分析Scyther 资料整理

    1.性能分析 目前来说形式化的分析已经成为安全协议的一种很流行的方法,但是每种工具都用其不同适合的协议,Scyther软件是一种形式化分析工具,极大的促进了协议的分析和设计,scyther工具在运行界 ...

  5. tsung HTTP协议统计报告分析

    tsung HTTP协议统计报告分析 by:授客 QQ:1033553122 1.   Main Static l  higest 10sec mean: 基于每10s的统计,最大耗时 l  lowe ...

  6. [转帖]InfiniBand技术和协议架构分析

    InfiniBand技术和协议架构分析 2017年06月06日 20:54:16 Hardy晗狄 阅读数:15207 标签: 云计算存储Infiniband 更多 个人分类: 存储云计算   版权声明 ...

  7. OAuth认证协议原理分析及同步消息到Twitter和Facebook使用方法

    OAuth有什么用?为什么要使用OAuth? twitter或豆瓣用户一定会发现,有时候,在别的网站,点登录后转到 twitter登录,之后转回原网站,你会发现你已经登录此网站了,这种网站就是这个效果 ...

  8. iNode协议再次分析

    iNode协议再次分析 声明: 1)本报告由博客园bitpeach撰写,版权所有,免费转载,请注明出处,并请勿作商业用途. 2)若本文档内有侵权文字或图片等内容,请联系作者bitpeach删除相应部分 ...

  9. (转) HTTP & HTTPS网络协议重点总结(基于SSL/TLS的握手、TCP/IP协议基础、加密学)

    HTTP & HTTPS网络协议重点总结(基于SSL/TLS的握手.TCP/IP协议基础.加密学) 原文:http://blog.csdn.net/itermeng/article/detai ...

随机推荐

  1. mongodb-replset安装

    节点分配 10.110.18.89 10.110.18.90 10.110.18.94 配置文件 systemLog: destination: file path: "/data/mong ...

  2. Leetcode 详解(Valid Number)

    Validate if a given string is numeric. Some examples:"0" => true" 0.1 " => ...

  3. XML 详解

    import urllib import requests from xml.etree import ElementTree as ET root = ET.XML(open('D:\E\seman ...

  4. iOS中文网址路径转换URLEncode

    如果返回的URL中有中文可以用此方法转换 今天发现一个蛋疼的问题,服务端返回的urlString里面有时含有中文,使用 [NSURL URLWithString:urlString]生成URL对象时, ...

  5. 激活Microsoft Office professional plus 2010

    1. 下载工具 http://pan.baidu.com/s/1dDDFhEL 2. 启动工具 双击Office 2010 Toolkit.exe 在Activation选项栏中选择AutoKMS C ...

  6. UML 类图常用表示方法.

    UML中类图实例 接口:空心圆+直线(唐老鸭类实现了‘讲人话’): 依赖:虚线+箭头(动物和空气的关系): 关联:实线+箭头(企鹅需要知道气候才迁移): 聚合:空心四边形+实线+箭头(雁群和大雁的关系 ...

  7. QT_BEGIN_NAMESPACE和QT_END_NAMESPACE的作用

    本文根据在网上找到的一些资料总结来的,并加入了一些自己的想法. 在源代码中是这样定义的: # define QT_BEGIN_NAMESPACE namespace QT_NAMESPACE { # ...

  8. <![CDATA[]]>作用

    <![CDATA[]]>的作用是让XML解析器将标签中的字符串当作普通文本对待,以防止某些字符串对XML格式造成破坏.

  9. Java中获取长度length和size的问题

    1.length属性是针对Java中的数组来说的,要求数组的长度可以用其length属性: 2.length()方法是针对字符串来说的,要求一个字符串的长度就要用到它的length()方法: 3.ja ...

  10. hihoCoder#1000

    刚开始学习C语言,准备在做hiho的题目的过程中来学习,在此进行记录,如果代码中有错误或者不当的地方还请指正.   时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 求两个整 ...