当前位置:文档之家› 双协议栈

双协议栈

双协议栈

摘要

双协议栈( Dual Stack) 采用该技术的节点上同时运行IPv4和IPv6两套协议栈。这是使IPv6节点保持与纯IPv4节点兼容最直接的方式,针对的对象是通信端节点(包括主机、路由器)。这种方式对IPv4和IPv6提供了完全的兼容,但是对于IP地址耗尽的问题却没有任何帮助。由于需要双路由基础设施,这种方式反而增加了网络的复杂度。

目录

1关于IPv4

2关于IPv6

关于IPv4

IPv4是Internet Protocol version 4(网际协议版本4)的英文简称,而中文简称为“网协版4”。

目前的全球因特网所采用的协议族是TCP/IP协议族。IP是TCP/IP协议族中网络层的协议,是TCP/IP协议族的核心协议。目前IP协议的版本号是4(简称为IPv4,v,version版本),它的下一个版本就是IPv6。IPv6正处在不断发展和完善的过程中,它在不久的将来将取代目前被广泛使用的IPv4。据国外媒体报道,欧盟委员会希望于2010年前将欧洲其成员国境内四分之一的商业和政府部门以及家用网络转换成IPv6标准。美国已经开始对已经与网络服务商签订IPv6协议的政府部门给与有条件的奖励政策。而欧盟希望跟随美国的步伐,促使其成员国的政府部门在这次转型过程中起到带头作用。

关于IPv6

IPv6是“Internet Protocol Version 6”的缩写,它是IETF设计的用于替代现行版本IP协议-IPv4-的下一代IP协议。

目前的全球因特网所采用的协议族是TCP/IP协议族。IP是TCP/IP协议族中网络层的协议,是TCP/IP协议族的核心协议。

IPv6正处在不断发展和完善的过程中,它在不久的将来将取代目前被广泛使用的IPv4。每个人将拥有更多IP地址。

双协议栈

双协议栈( Dual Stack) 采用该技术的节点上同时运行IPv4和IPv6两套协议栈。这是使IPv6节点保持与纯IPv4节点兼容最直接的方式,针对的对象是通信端节点(包括主机、路由器)。这种方式对IPv4和IPv6提供了完全的兼容,但是对于IP 地址耗尽的问题却没有任何帮助。由于需要双路由基础设施,这种方式反而增加了网络的复杂度。

一、双协议栈的工作方式

双协议栈是指在单个节点同时支持IPv4和IPv6两种协议栈。由于IPv6和IPv4是功能相近的网络层协议, 两者都基于相同的物理平台, 而且加载于其上的传输层协议TCP和UDP也基本没有区别, 因此, 支持双协议栈的节点既能与支持IPv4协议的节点通信, 又能与支持IPv6协议的节点通信。可以相信, 网络中主要服务商在网络全部升级到IPv6协议之前必将支持双协议栈的运行。

1 . 接收数据包

双栈节点与其它类型的多栈节点的工作方式相同。链路层接收到数据段, 拆开并检查包头。如果IPv4/IPv6头中的第一个字段, 即IP包的版本号是4, 该数据包就由IPv4栈来处理; 如果版本号是6, 则由IPv6栈处理; 如果建立了自动隧道机制, 则采用相应的技术将数据包重新整合为IPv6数据包, 由IPv6栈来处理。

2 . 发送数据包

由于双栈主机同时支持IPv4和IPv6两种协议, 所以当其在网络中通信的时候需要根据情况确定使用其中的一种协议栈进行通信, 这就需要制定双协议栈的工作方式。在网络通信过程中, 目的地址是作为路由选择的主要参数, 因而根据应用程序所使用的目的地址的协议类型对双协议栈的工作方式做出如下约定:

( 1) 若应用程序使用的目的地址为IPv4地址, 则使用IPv4协议;

假设节点A与节点B通信, A为双栈节点, 节点B支持IPv4协议( 目的地址为IPv4地址) 。则双栈节点A工作方式:

使用IPv4协议与节点B通信。

完备性证明: 节点A有两种选择, 使用IPv4协议或者IPv6协议与主机B通信。根据给定条件, A, B节点均支持

IPv4协议, 所以选择IPv4协议可以保证通信正常进行, 故约定是充分的。如果使用IPv6协议进行通信, 因为不能确定B是否为双栈节点( 给定条件仅是目的地址为IPv4地址) , 所以当B节点不支持IPv6协议时不能保证通信正常进行, 故约定是必要的。至此可以认为约定( 1) 是完备的。

( 2) 若目的地址为IPv6地址, 且为本地在线网络, 则使用IPv6协议。

( 3) 若应用程序使用的目的地址为IPv4兼容的IPv6地址, 并且非本地在线网络, 则使用IPv4协议, 此时的IPv6将

封装在IPv4中。IPv4兼容的IPv6地址, 是IPv6协议规范中提供的特殊地址。这类地址高阶96位均为0, 低价32位包含IPv4地址。IPv4兼容地址被节点用于通过IPv4路由器以隧道方式传送IPv6包,这些节点既理解IPv4又理解IPv6。能够自动将IPv6包以隧道方式在IPv4网络中传送的IPv4/IPv6双栈节点将使用这些地址。根据IPv6协议地址规范以及( 3) 假定的条件, 可以确定目的节点B同样是一个双栈节点, 而结合IPv4/IPv6过渡时期网络的基本状况, 节点A与节点B的通信将跨越IPv4网络,所以使用IPv4协议是可行的。当然, 也可以使用IPv6协议进行通信, 但在过渡初期, ( 3) 的约定将优于使用IPv6协议通信。

( 4) 若应用程序使用的目的地址是非IPv4兼容的IPv6地址, 非本地在线网络, 则使用IPv6协议。类似约定( 2) , 使用IPv6协议能够保证通信正常进行,而如果是跨越纯IPv4网络的通信, 将采用隧道等机制实现通信; 而如果通过本地网络, 则无须隧道机制即可完成通信。

( 5) 若应用程序使用域名作为目标地址, 则先从域名服务器得到相应的

IPv4/IPv6地址, 然后根据地址情况进行相应的处理。

以上( 1) 至( 5) 是双协议栈的工作方式, 随着IPv6网络规模的不断扩大, 这些工作方式必将做相应的修改和补

充, 这将取决于过渡的进程与IPv6网络的不断演进。

二、基于双协议栈的应用服务

1 . 基于双协议栈的域名服务域名系统( 简称: DNS) 的主要功能是通过域名和IP地址之间的相互对应关系, 来精确定位网络资源, 即根据域名查询IP地址, 反之亦然。DNS是Internet的基础架构, 众多的网络服务都是建立在DNS体系基础之上的。因此, DNS的重要性不言而喻。

IPv4地址正向解析的资源记录是“A”记录。IPv6地址解析目前有两种资源记录, 即“AAAA” 和“A6” 记录。“A6”记录支持一些“AAAA”所不具备的新特性, 如地址聚合, 地址更改( Renumber) 等。

在DNS服务器中同时存在“A” 记录和“AAAA” ( 或“A6”) 记录。由于节点既可以处理IPv4协议, 也可以处理IPv6协议, 因此无需DNS ALG等转换设备。无论DNS 服务器回答“A”记录还是“AAAA”记录, 都可以进行通信。

2 . 基于双协议栈的BBS服务

BBS是互联网上交流的平台, 在网络服务中起着重要的作用, 随着IPv4向IPv6的平滑过渡, 创建基于双协议栈的

BBS服务系统就显得很有必要。根据“ 基本的支持IPv6的socket ( 套接字) 接口扩展”, 修改相关部分代码, 就可实现兼容IPv6和IPv4的BBS系统。

( 1) IPv6套接口地址结构

在〈sys/socket.h〉中定义了IPv6的地址族———AF_INET6和协议族———PF_INET6, 或者将新的sockaddr_in6数据结构同原来的sockaddr_in数据结构区分开, 后者将在创建socket时使用。

( 2) IPv6的几种特殊地址在构造支持IPv6的BBS系统时, 要用到以下两种IPv6的特殊地址。①IPv4地址映射的IPv6地址。②IPv6通配地址。

( 3) 如何使程序兼容IPv4/IPv6大部分现有的网络应用程序是为IPv4编写的, 从上述原理可看出, 除了一些同IPv4的特性紧密相关的程序( 如使用多播、IP选项或原始套接口的程序) , 大部分IPv4应用程序若要转换成兼容IPv4/IPv6应用程序并不是很困难的。基于这种思想, 根据Socket API对IPv4和IPv6兼容所做的支持, 对现有的BBS系统( 基于IPv4的应用程序系统) 进行一系列的修改, 构造一个支持IPv6的BBS系统。采取以下主要步骤:

①构造一个双协议栈( Dual Stack) BBS服务器, 分别赋予IPv4和IPv6地址, 使得其上运行的BBS服务既能处理使用IPv4的客户, 又能处理使用IPv6的客户。

②对原来的IPv4套接字地址部分进行修改, 创建基于IPv6 套接字。

③将IPv6套接字绑定到IPv6通配地址和23号监听端口。

④采用兼容IPv4/IPv6的地址转换函数代替只支持IPv4的地址转换函数。

⑤修改程序中有关IP地址显示格式的代码, 以足够长度

支持IPv6地址的显示。

3 . IPv6校园网过渡方案

在过渡过程中, IPv6网段作为孤岛接入IPv4网络, 为实现IPv6网段之间以及IPv4、IPv6网段之间的互通, 必须综合各种过渡技术, 优化网络结构, 在保证网络安全可靠运行以及逐步过渡、节约投资的前提下, 设计过渡方案。根据以上基本原则以及网络运行状况, 对于校园网络的初期过渡方案

规划如下:

( 1) 跨IPv4网络的IPv6间通信采用隧道技术实现;

( 2) 基于IPv4的服务器逐步升级为双协议栈节点服务器;

( 3) IPv4/IPv6客户端互通则可以采用NAT- PT技术实现;

( 4) 本地IPv6网段联出口路由器接入上级IPv6网络。

在开展IPv6应用的初期, 应该尽量保证原有网络系统安全、稳定运行, 所以对于新增的IPv6网段, 应该以独立链路接入上级IPv6网络。选择双协议栈路由器作为IPv6网段的接入节点, 以保证新建IPv6网段能同时使用本地网络服务。

基于IPV4和IPv6的双协议栈网络设计与实施

基于IPV4和IPv6的双协议栈网络设计与实施 ——毕业论文 系部: 学生姓名: 专业班级: 学号: 指导教师: 年月日

【摘要】 在当前IPv4网络和IPv6网络共存的环境下,如何解决两代IP标准的网络互通互联问题是进行网络建设的一个重要课题。本课题以某高校现有网络环境为背景,探讨在原有IPv4网络上搭建IPv6网络的技术,并选择6to4隧道技术、双栈技术、NAT-PT技术作为实现该目的的过渡技术,完成基于IPv4和IPv6双协议栈网络的设计和实施。

目录 一、引言 (1) (一)网络应用现状概述 (1) (二)IPv6协议的优点 (1) (三)基于IPv4协议网络和基于IPv6协议网络的共存 (2) (四)IPv4向IPv6过渡的基本原则 (2) 二、基于IPv4协议和IPv6协议的双栈局域网设计 (3) (一)需求分析 (3) (二)双栈局域网设计 (3) 1、设计拓扑 (3) 2、功能和使用描述 (3) 三、基于IPv4协议和IPv6协议的双栈局域网实施 (4) (一)实施关键点分析 (4) (二)IPv4协议网络到IPv6协议网络过渡技术 (4) 1、双协议栈技术 (4) 2、IPv4/IPv6协议翻译技术 (5) 3、隧道技术 (6) (三)实施技术选择 (8) (四)技术实施配置 (8) 1、6to4隧道配置 (8) 2、NAT—PT技术配置 (10) 3、IPv6 DHCP配置 (11) 四、小结 (11) 五、致谢 (13) 六、参考文献 (14)

一、引言 (一)网络应用现状概述 当前,各类网络应用飞速发展,网络服务商、终端用户激增,这就要求网络具有更大的容量。现存的网络多数为基于IPv4协议的TCP/IP网络,具有一定的局限性和先天的缺陷。主要表现为: ·有限的地址空间:IPv4中地址长度为32,即有2^32-1个地址。 ·IPv4数据包的性能不足:尽管IP表现得不错,但是,IPv4在最大传输单元、最大包长度、IP头的设计以及校验和的使用等方面都有待提高。这些问题在IPv6中能够得到有效的解决。 ·安全性不高:基于IPv4协议的数据包只具有最少的安全性选项,没有提供加密和认证机制,不能保证数据资源的安全传输。IPv6已经将安全性选项加入到设计中,提高了IP协议的安全性能。在IPv6安全特性中包括数据的加密,并且对于所传输的加密数据和未加密数据进行身份验证。 ·路由瓶颈:Internet规模的增长导致路由器的路由表迅速膨胀,导致路由效率下降,特别是骨干网络路由效率急剧下降。另外,在移动通信网络中IPv4的地址归用户所有,这使得移动IP路由更加复杂,难以适应当今移动业务发展的需要。路由问题已经成为制约网络服务应用效率提升和发展的瓶颈。 基于以上原因,TCP/IP的工程师和设计人员早在80年代初期就致力于解决IPv4地址匮乏问题的研究。NAT技术的使用使得IPv4协议地址匮乏的问题得到缓解,但是由于地址匮乏的原因,IETF小组在1990年开始规划IPv4下一代协议,1998年IPv6协议草案标准出台。 (二)IPv6协议的优点 当前IPv6的标准体系已经基本完善,在这个过程中,IPv6逐步优化了协议体系结构,为业务发展创造机会,IPv6具有以下优势: ·地址充足:IPv6产生的初衷主要是解决IPv4地址匮乏问题。即将IPv4的32bit 地址,扩展到了128bit地址,提供了足够的地址资源。同时IPv6地址是有范围的,包括链路本地地址、站点本地地址和任意传播地址,这也进一步增加了地址应用的扩展性。 ·简化的报文头格式:通过简化固定的基本报头、采用64比特边界定位、取消IP 头的校验和域等措施,以提高网络设备对IP报文的处理效率。 ·扩展为先:IPv6 取消了IPv4 报文头中的选项字段,并引入了多种扩展报文头,在提高处理效率的同时还大大增强了IPv6 的灵活性,为IP 协议提供了良好的扩展能力。IPv4 报文头中的选项字段最多只有40字节,而IPv6 扩展报文头的大小只受到IPv6 报文大小的限制。 ·层次化地址结构:IPv6极大的地址空间使层次性的地址规划成为可能,同时国际

ZigBee协议栈OSAL介绍

讨论ZigBee协议栈的构成以及内部OSAL的工作机理。 ZigBee协议栈OSAL介绍 操作系统抽象层 OSAL常用术语: 1.资源(Resource):任何任务所占用的实体都叫资源,如变量、数组、结构体 2.共享资源(Shared Resource):两个或两个以上任务使用的资源,为防止破坏资源,任务在操作共享资源时是独占状态。 3.任务(Task):即线程,简单的程序的执行过程。任务设计时将问题尽可能分成多个任务,每个任务独立完成某项功能,同时赋予优先级、CPU寄存器和堆栈空间。一般一个任务设计为一个无限循环。 4.多任务运行(Muti-task Running):其实同一时刻只有一个任务运行。 5.内核(Kernel):内核负责管理各个任务。包括:分配CPU时间;任务调度;任务间的通信。 6.互斥(Mutual Exclusion):多任务通信最常用方法是共享数据结构。 保护共享资源常用的方法: 关中断; 使用测试并置位指令(T&S指令); 禁止任务切换; 使用信号量; 7.消息队列(Message Queue):用于任务间传递消息。 OSAL提供如下功能: 任务注册、初始化和启动; 任务间的同步、互斥; 中断处理; 储存器分配和管理; OSAL运行机理: OSAL就是一种支持多任务运行的系统资源分配机制。 OSAL是一种基于事件驱动的轮询式操作系统。、 void osal_start_system(void)是ZigBee协议栈的灵魂,不断的查看事件列表,如果有事件发生就调用相应的事件处理函数。 SYS_EVENT_MSG是一个事件集合,是由协议栈定义的事件,即系统强制事件(Mandatory Events),它的定义为: #define SYS_EVENT_MSG 0x8000; 它包含如下事件: AF_INCOMING_MSG_CMD 收到一个新的无线数据

2020年Zigbee协议栈中文说明免费

1.概述 1.1解析ZigBee堆栈架构 ZigBee堆栈是在IEEE 802.15.4标准基础上建立的,定义了协议的MAC和PHY层。ZigBee设备应该包括IEEE802.15.4(该标准定义了RF射频以及与相邻设备之间的通信)的PHY和MAC层,以及ZigBee堆栈层:网络层(NWK)、应用层和安全服务提供层。图1-1给出了这些组件的概况。 1.1.1ZigBee堆栈层 每个ZigBee设备都与一个特定模板有关,可能是公共模板或私有模板。这些模板定义了设备的应用环境、设备类型以及用于设备间通信的簇。公共模板可以确保不同供应商的设备在相同应用领域中的互操作性。 设备是由模板定义的,并以应用对象(Application Objects)的形式实现(见图1-1)。每个应用对象通过一个端点连接到ZigBee堆栈的余下部分,它们都是器件中可寻址的组件。 图1-1 zigbe堆栈框架 从应用角度看,通信的本质就是端点到端点的连接(例如,一个带开关组件的设备与带一个或多个灯组件的远端设备进行通信,目的是将这些灯点亮)。 端点之间的通信是通过称之为簇的数据结构实现的。这些簇是应用对象之间共享信息所需的全部属性的容器,在特殊应用中使用的簇在模板中有定义。图1-1-2就是设备及其接口的一个例子:

图1-1-2 每个接口都能接收(用于输入)或发送(用于输出)簇格式的数据。一共有二个特殊的端点,即端点0和端点255。端点0用于整个ZigBee设备的配置和管理。应用程序可以通过端点0与ZigBee 堆栈的其它层通信,从而实现对这些层的初始化和配置。附属在端点0的对象被称为ZigBee设备对象 (ZD0)。端点255用于向所有端点的广播。端点241到254是保留端点。 所有端点都使用应用支持子层(APS)提供的服务。APS通过网络层和安全服务提供层与端点相接,并为数据传送、安全和绑定提供服务,因此能够适配不同但兼容的设备,比如带灯的开关。APS使用网络层(NWK)提供的服务。NWK负责设备到设备的通信,并负责网络中设备初始化所包含的活动、消息路由和网络发现。应用层可以通过ZigBee设备对象(ZD0)对网络层参数进行配置和访问。 1.1.2 80 2.15.4 MAC层 IEEE 802.15.4标准为低速率无线个人域网(LR-WPAN)定义了OSI模型开始的两层。PHY层定义了无线射频应该具备的特征,它支持二种不同的射频信号,分别位于2450MHz波段和868/915MHz 波段。2450MHz波段射频可以提供250kbps的数据速率和16个不同的信道。868 /915MHz波段中,868MHz支持1个数据速率为20kbps的信道,915MHz支持10个数据速率为40kbps的信道。MAC层负责相邻设备间的单跳数据通信。它负责建立与网络的同步,支持关联和去关联以及MAC 层安全:它能提供二个设备之间的可靠链接。 1.1.3 关于服务接入点 ZigBee堆栈的不同层与802.15.4 MAC通过服务接入点(SAP)进行通信。SAP是某一特定层提供的服务与上层之间的接口。 ZigBee堆栈的大多数层有两个接口:数据实体接口和管理实体接口。数据实体接口的目标是向上层提供所需的常规数据服务。管理实体接口的目标是向上层提供访问内部层参数、配置和管理数据的机制。 1.1.4 ZigBee的安全性 安全机制由安全服务提供层提供。然而值得注意的是,系统的整体安全性是在模板级定义的,这意味着模板应该定义某一特定网络中应该实现何种类型的安全。 每一层(MAC、网络或应用层)都能被保护,为了降低存储要求,它们可以分享安全钥匙。SSP是通过ZD0进行初始化和配置的,要求实现高级加密标准(AES)。ZigBee规范定义了信任中心的用

基于IPv4IPv6双协议栈的通信模块及实现

龙源期刊网 http://biz.doczj.com/doc/9a7468576.html, 基于IPv4/IPv6双协议栈的通信模块及实现作者:解慧娟,林南晖 来源:《软件导刊》2011年第11期 摘要:介绍了IPv6下的套接字地址结构及Socket API函数,通过在IPv4/IPv6双协议栈服务器端创建一个IPv6套接字,并调用IPv6下协议无关的Socket API函数,实现了一个基于TCP 的客户/服务器通信模块。实验证明,该通信模块能同时支持IPv4与IPv6。 关键词:双协议栈;Pv6套接字;Socket API 函数;客户/服务器通信模块 中图分类号:TP311.52 文献标识码:A 文章编号:1672-7800(2011)011-0110- 1 Socket编程基础 1.1 socket接口分析 socket是套接字的功能实体,在socket编程中,首先要用socket( )创建一个套接字,通常由3个参数唯一确定:①address family,地址簇,PF_INET代表IPv4地址簇,PF_INET6代表IPv6地址簇;②type,连接类型,SOCK_STREAM即流式套接口,基于TCP,定义了一种可靠的,面向连接的服务,流式套接字通信流程如图1所示,SOCK_DGRAM即数据报套接口,基于UDP,定义了一种无连接的服务;③protocol,协议类型,通常设置为0,可使系统选择默认的由地址簇和连接类型所确定的协议。 1.2 IPv6套接字地址数据结构 IPv4的IP地址长32位,而IPv6地址长128位,因此在IPv6套接字中,地址数据结构必须做出改变来适应IPv6地址长度的改变。在中分别定义了一种新的地址簇---AF_INET6和新的协议簇---PF_INET6,前者将原来的sockaddr_in 数据结构与新的sockaddr_in6 数据结构同区分开,后者将在创建socket 时使用,表明创建的是一个IPV6套接字。 IPv6套接字地址结构以sockaddr_in6命名,它在头文件中的定义如下: unit8_t s6_addr[16]; /*128位的IPv6地址,网络字节顺序存储

7号信令协议栈

SS7信令系统协议简介 SS7信令协议栈,MTP1,MTP2,MTP3,SCCP,TCAP,ISUP,TUP 3.1 SS7信令协议栈 协议是通过网络传送数据的规则集合。 协议栈也就是协议的分层结构,协议分层的目的是为了使各层相对独立,或使各层具有不同的职能。SS7协议一开始就是按分层结构的思想设计的,但SS7协议 在开始发展时,主要是考虑在数字电话网和采用电路交换方式的数据通信网中传送各种与电路有关的信息,所以CCITT在80年代提出的SS7技术规范黄皮书 中对SS7协议的分层方法没有和OSI七层模型取得一致,对SS7协议只提出了4个功能层的要求。这4个功能层如下: 物理层:就是底层,具体是DS0或V.35。 数据链路层:在两节点间提供可靠的通信。 网络层:提供消息发送的路由选择.。 用户部份/应用部份:就是数据库事务处理,呼叫建立和释放。 但随着综合业务数字网(ISDN)和智能网的发展,不仅需要传送与电路有关的消息,而且需要传送与电路无关的端到端的消息,原来的四层结构已不 能满足要求。在1984年和1988年的红皮书和蓝皮书建议中,CCITT作了大量的努力,使SS7协议的分层结构尽量向OSI的七层模型靠近。 下图图示了SS7信令协议栈: MTP1(消息传递部分第一层):即物理层。 MTP1(消息传递部分第二层):即数据链路层。 MTP1(消息传递部分第三层):即网络层。

SCCP(信令连接控制部分) TCAP(事务处理应用部分) ISUP(ISDN用户部分) TUP(电话用户部分) MTP1 MTP1是SS7协议栈中的最底层,对应于OSI模型中的物理层,这一层定义了数字链路在物理上,电气上及功能上的特性。物理接口的定义包括:E-1,T-1,DS -1,V.35,DS-0,DS -0A(56K)。 MTP2 MTP2确保消息在链路上实现精确的端到端传送。MTP2提供流控制,消息序号,差错检查等功能。当传送出错时,出错的消息会被重发。MTP2对应OSI模型中的数据链路层。 MTP3 MTP3在SS7信令网中提供两个信令点间消息的路由选择功能,消息在依次通过MTP1,MTP2,MTP3层之后,可能会 被发送回MTP2再传向别的信令点,也可能会传递给某个应用层,如:SCCP或ISUP 层。MTP3还提供一些网管功能的支持,包括:流量控制,路由选择 和链路管理。MTP3对应OSI模型中的网络层。 SCCP(信令连接控制部分) SCCP位于MTP之上,为MTP提供附加功能,以便通过SS7信令网在信令点之间传递电路相关和非电 路相关的消息,提供两类无连接业务和两类面向连接的业务。 无连接业务是指在两个应用实体间,不需要建立逻辑连接就可以传递信令数据。面向连接的业务在数据传递之前应用实体之间必须先建立连接,可以是一般性的连

试验1IPv6与IPv4的双协议栈通信

实验1 IPv6与IPv4的双协议栈通信 1.1 实验目的 理解双栈技术是IPv4向IPv6过渡的基础,所有其它的过渡技术都以此为基础。 掌握实验环境中双协议栈的配置。 1.2 应用环境 1. 双协议栈方案的工作方式 双协议栈方案的工作方式如下: (1)如果应用程序使用的目的地址是IPv4地址,则使用IPv4协议。 (2)如果应用程序使用的目的地址是IPv6中的IPv4兼容地址,则同样使用IPv4协议,所不同的是,此时IPv6就封装(encapsulated)在IPv4当中。 (3)如果应用程序使用的目的地址是一个非IPv4兼容的IPv6地址,那么此时将使用IPv6协议,而且很可能此时要采用隧道等机制来进行路由、传送。 (4)如果应用程序使用域名来作为目标地址,那么此时先要从DNS服务器那里得到相应的IPv4/IPv6地址,然后根据地址的情况进行相应的处理。 对目前的环境来说,要实现纯粹IPv6的路由是很困难的,因此,人们一般采用IPv6 over IPv4 的点对点隧道技术。将IPv6分组打包,放入IPv4分组的数据区,加上IPv4的报头,在IPv4互联网世界中进行路由,到达目的地后再把数据区中的IPv6分组取出来作相应的处理,该继续路由的路由,该收发的收发。这样,就可以实现"双协议栈"的过渡方案。最后,对于实现IPv6协议栈,尽管在细节上,IPv6和IPv4有很大的不同,但是从原理和它们在网络体系结构中的位置来看,是相当的一致的。这些一致使得开发人员只需要很小的付出就可以实现从IPv4到IPv6协议栈的转换。 2. 双栈节点工作模式 IPv6过渡技术——IPv6/IPv4双栈技术: 双栈节点具有三种工作模式: (1)只运行IPv6协议,表现为IPv6节点; (2)只运行IPv4协议,表现为IPv4节点; (3)双栈模式,同时打开IPv6和IPv4协议

arp协议栈

竭诚为您提供优质文档/双击可除 arp协议栈 篇一:实验2地址解析协议aRp 实验2地址解析协议(aRp) 【实验目的】 1.掌握aRp协议的报文格式 2.掌握aRp协议的工作原理 3.理解aRp高速缓存的作用 4.掌握aRp请求和应答的实现方法 5.掌握aRp缓存表的维护过程 【学时分配】 2学时 【实验环境】 该实验采用网络结构二 【实验原理】 一、物理地址与逻辑地址 1.物理地址 物理地址是节点的地址,由它所在的局域网或广域网定义。物理地址包含在数据链路层的帧中。物理地址是最低一

级的地址。 物理地址的长度和格式是可变的,取决于具体的网络。以太网使用写在网络接口卡(nic)上的6字节的标识作为 物理地址。 物理地址可以是单播地址(一个接收者)、多播地址(一组接收者)或广播地址(由网络中的所有主机接收)。有些 网络不支持多播或广播地址,当需要把帧发送给一组主机或所有主机时,多播地址或广播地址就需要用单播地址来模拟。 2.逻辑地址 在互联网的环境中仅使用物理地址是不合适的,因为不同网络可以使用不同的地址格式。因此,需要一种通用的编址系统,用来惟一地标识每一台主机,而不管底层使用什么样的物理网络。 逻辑地址就是为此目的而设计的。目前internet上的 逻辑地址是32位地址,通常称为ip地址,可以用来标识连接在internet上的每一台主机。在internet上没有两个主机具有同样的ip地址。 逻辑地址可以是单播地址、多播地址和广播地址。其中广播地址有一些局限性。在实验三中将详细介绍这三种类型的地址。 二、aRp协议简介 internet是由各种各样的物理网络通过使用诸如路由

CI 协议栈简介

DVB / ETSI EN-50221 Common Interface Stack The GkWare Common Interface Stack already enables PayTV on thousands of DVB Setttop boxes worldwide, including single-slot and dual-slot systems and little and big-endian CPUs. The ANSI-C sourcecode is portable and only a small lowlevel PCMCIA I/O driver has to be developed for new platform integrations. Compatibility for all modules available to the general public is guaranteed. FEATURES Support for SCM CiMax, I&C StarCI and direct GPIO connections Simple Integration of custom Resources Flexible PMT => CAPMT converter PCMCIA Card-Info-Structure decoder included Full ETSI R206-001 profile level 1 implementation PVR / Headend descrambling mode, including support for Aston Professional CAM series Supports friendly coexistence with other PCMCIA drivers (e.g. Compact Flash, Network Interface or Bluetooth) SUPPORTED EN50221 RESOURCES Resource Manager Application Information Version 1 and 2 MMI DateTime CA Support Host Control LowSpeed Communication SUPPORTED PLATFORMS ARM7 (Thumb) ARM9 MIPS ST (OS20) x86 REQUIREMENTS approximately 32kb RAM + 16kb per Slot Multitasking OS recommended (but not required) (existing ports for Nucleus+, uCOS, pSoS, Win32) SUPPORTED CHIPSETS Conexant CX2249x, CX241xx, CX2417x ST 5105, 5519 Philips LPC 2214 NEC EMMA Series TI AV711x Technotrend DVB-PCI Budget series (including clones) KNC-One TV-Station Cineview slot (including clones) Whatever CI module you have... we make it work ! MMI Menu Sample Various licensing models are available, including low-volume closed-source and royalty-free with a limited sourcecode redistribution license. GkWare e.K. - Humboldtstrasse 177 - 45149 Essen - Germany http://biz.doczj.com/doc/9a7468576.html, - support@http://biz.doczj.com/doc/9a7468576.html, - +49 174 5208026

双协议栈

双协议栈 摘要 双协议栈( Dual Stack) 采用该技术的节点上同时运行IPv4和IPv6两套协议栈。这是使IPv6节点保持与纯IPv4节点兼容最直接的方式,针对的对象是通信端节点(包括主机、路由器)。这种方式对IPv4和IPv6提供了完全的兼容,但是对于IP地址耗尽的问题却没有任何帮助。由于需要双路由基础设施,这种方式反而增加了网络的复杂度。 目录 1关于IPv4 2关于IPv6 关于IPv4 IPv4是Internet Protocol version 4(网际协议版本4)的英文简称,而中文简称为“网协版4”。 目前的全球因特网所采用的协议族是TCP/IP协议族。IP是TCP/IP协议族中网络层的协议,是TCP/IP协议族的核心协议。目前IP协议的版本号是4(简称为IPv4,v,version版本),它的下一个版本就是IPv6。IPv6正处在不断发展和完善的过程中,它在不久的将来将取代目前被广泛使用的IPv4。据国外媒体报道,欧盟委员会希望于2010年前将欧洲其成员国境内四分之一的商业和政府部门以及家用网络转换成IPv6标准。美国已经开始对已经与网络服务商签订IPv6协议的政府部门给与有条件的奖励政策。而欧盟希望跟随美国的步伐,促使其成员国的政府部门在这次转型过程中起到带头作用。 关于IPv6 IPv6是“Internet Protocol Version 6”的缩写,它是IETF设计的用于替代现行版本IP协议-IPv4-的下一代IP协议。

目前的全球因特网所采用的协议族是TCP/IP协议族。IP是TCP/IP协议族中网络层的协议,是TCP/IP协议族的核心协议。 IPv6正处在不断发展和完善的过程中,它在不久的将来将取代目前被广泛使用的IPv4。每个人将拥有更多IP地址。 双协议栈 双协议栈( Dual Stack) 采用该技术的节点上同时运行IPv4和IPv6两套协议栈。这是使IPv6节点保持与纯IPv4节点兼容最直接的方式,针对的对象是通信端节点(包括主机、路由器)。这种方式对IPv4和IPv6提供了完全的兼容,但是对于IP 地址耗尽的问题却没有任何帮助。由于需要双路由基础设施,这种方式反而增加了网络的复杂度。 一、双协议栈的工作方式 双协议栈是指在单个节点同时支持IPv4和IPv6两种协议栈。由于IPv6和IPv4是功能相近的网络层协议, 两者都基于相同的物理平台, 而且加载于其上的传输层协议TCP和UDP也基本没有区别, 因此, 支持双协议栈的节点既能与支持IPv4协议的节点通信, 又能与支持IPv6协议的节点通信。可以相信, 网络中主要服务商在网络全部升级到IPv6协议之前必将支持双协议栈的运行。 1 . 接收数据包

协议栈工作原理介绍

协议栈工作原理介绍 CC2540集成了增强型的8051内核,TI为BLE协议栈搭建了一个简单的操作系统,即一种任务轮询机制。帮你做好了底层和蓝牙协议深层的内容,将复杂部分屏蔽掉。让用户通过API函数就可以轻易用蓝牙4.0,是开发起来更加方便,开发周期也可以相应缩短。 1.1.1工程文件介绍 安装完BLE协议栈之后,会在安装目录下看到以下文件结构: 图 3.2BLE栈目录

可看到Projects文件夹里面有很多工程,我们主要介绍SimpleBLECentral和SimpleBLEPeripheral。 ble文件夹中有很多工程文件,有些是具体的应用,例如 BloodPressure、GlucoseCollector、GlucoseSensor、HeartRate、HIDEmuKbd等都为传感器的实际应用,有相应标准的Profile(即通用的协议)。 其中还有4中角色:SimpleBLEBroadcaster、SimpleBLECentral、SimpleBLEObserver、SimpleBLEPeripheral。 他们都有自己的特点。 ?Broadcaster广播员——非连接性的信号装置 ?Observer观察者——扫描得到,但不能链接 ?Peripheral从机——可链接,在单个链路层链接中作为从机?Central主机——扫描设备并发起链接,在单链路层或多链路层 中作为主机。 最后的BTool文件夹为BLE设备PC端的使用工具。 1.1.2OSAL介绍 协议栈是一个小操作系统。大家不要听到是操作系统就感觉到很复杂。回想

我们当初学习51单片机时候是不是会用到定时器的功能?嗯,我们会利用定时器计时,令LED一秒改变一次状态。好,现在进一步,我们利用同一个定时器计时,令LED1一秒闪烁一次,LED2二秒闪烁一次。这样就有2个任务了。再进一步…有n个LED,就有n个任务执行了。协议栈的最终工作原理也一样。从它工作开始,定时器周而复始地计时,有发送、接收…等任务要执行时就执行。这个方式称为任务轮询。 图 3.3任务轮询 现在我们直接打开协议栈,直接拿他们的东西来解剖!我们打开协议栈文件夹Texas Instruments\BLE-CC254x-1.2.1\Projects \ble\SimpleBLEPeripheral\CC2540DB里面的工程文件SampleApp.eww。

OMCI协议 介绍 中文版

OMCI协议(1) 1、OMCI协议栈的结构 GPON 系统的协议栈,主要由物理媒质相关(PMD)层和GPON 传输汇聚(GTC)层组成。GTC 层从结构层次来分可以分成两个子层:GTC 成帧子层和TC 适配子层。从功能层次可以分为C/M平面和U平面。GTC 层可分为两种封装模式:ATM 模式和GEM 模式,目前GPON 设备基本都采用GEM 模式。GEM 模式的GTC 层可为其客户层提供3 种类型的接口:ATM 客户接口、GEM客户接口和ONT 管理和控制接口(OMCI) 2、PMD层 GPON 的PMD 层对应于OLT 和ONU 之间的光传输接口(也称为PON 接口),其具体参数值决定了GPON 系统的最大传输距离和最大分路比。OLT 和ONU 的发送光功率、接收机灵敏度等关键参数主要根据系统支持的ODN 类型来进行划分。根据允许衰减范围的不同,ODN 类型主要分为A、B、C 三大类,结合目前实际应用需求和光收发模块的实际能力工业界还定义了B+类,扩展了GPON 系统支持 1244.16 Mbit/s/155.52 Mbit/s; 1244.16 Mbit/s/622.08 Mbit/s; 1244.16 Mbit/s/1244.16 Mbit/s; 2488.32 Mbit/s/155.52 Mbit/s; 2488.32 Mbit/s/622.08 Mbit/s; 2488.32 Mbit/s/1244.16 Mbit/s; 2488.32 Mbit/s/2488.32 Mbit/s。 目前主流厂家的GPON 产品均支持2488.32Mbit/s/1244.16Mbit/s,并且在20km 传输距离下支持1:64 分路比。 OMCI协议(2) 1、GTC层 TC 层(也称为GTC 层)是GPON 的核心层,主要完成上行业务流的媒质接入控制和ONU 注册这两个关键功能。GTC 层包括两个子层:GTC 成帧子层和TC 适配子层。 1)GTC帧子层 GTC 成帧子层包括3个功能: 复用和解复用。PLOAM 和GEM 部分根据帧头指示的边界信息复用到下行TC 帧中,并可以根据帧头指示从上行TC 帧中提取出PLOAM 和GEM 部分。 帧头生成和解码。下行帧的TC 帧头按照格式要求生成,上行帧的帧头会被解码。此外还要完成嵌入式OAM。

1.ZigBee协议栈简介

1、ZigBee协议栈简介 本节内容仅仅是对ZigBee协议栈的一些大家必须理解清楚的概念进行简单的讲解,并没有对ZigBee协议栈的构成及工作原理进行详细的讨论。让刚接触ZigBee协议栈的朋友们对它有个初步的感性认识,有助于后面使用ZigBee协议栈进行真正的项目开发。 什么是ZigBee协议栈呢?它和ZigBee协议有什么关系呢 协议是一系列的通信标准,通信双方需要共同按照这一标准进行正常的数据发射和接收。协议栈是协议的具体实现形式,通俗点来理解就是协议栈是协议和用户之间的一个接口,开发人员通过使用协议栈来使用这个协议的,进而实现无线数据收发。 图1展示了ZigBee无线网络协议层的架构图。ZigBee的协议分为两部分,IEEE 802.15.4定义了PHY(物理层)和MAC(介质访问层)技术规范;ZigBee 联盟定义了NWK(网络层)、APS(应用程序支持子层)、APL(应用层)技术规范。ZigBee协议栈就是将各个层定义的协议都集合在一直,以函数的形式实现,并给用户提供API(应用层),用户可以直接调用。 图1 ZigBee无线网络协议层 在开发一个应用时,协议较底下的层与应用是相互独立的,它们可以从第三方来获得,因此我们需要做的就只是在应用层进行相应的改动。 介绍到这里,大家应该清楚协议和协议栈的关系了吧,是不是会想着怎么样才能用协议栈来开发自己的项目呢?技术总是不断地在发展地,我们可以用ZigBee厂商提供的协议栈软件来方便地使用ZigBee协议栈(注意:不同厂商提供的协议栈是有区别的,此处介绍TI推出的ZigBee 2007协议栈也称Z-Stack)。 Z-stack是挪威半导体公司Chipcon(目前已经被TI公司收购)推出其CC2430开发平台时,推出的一款业界领先的商业级协议栈软件,由于这个协议栈软件的出现,用户可以很容易地开发出具体的应用程序来,也就是大家说的掌

BLE协议栈简介

BLE协议栈简介 协议是一系列的通信标准,通信双方需要共同按照这一标准进行正常的数据发射和接收。协议栈是协议的具体实现形式,通俗点来理解就是协议栈是协议和用户之间的一个接口,开发人员通过使用协议栈来使用这个协议的,进而实现无线数据收发。 下图为BLE协议栈的结构框图: 图 3.1BLE栈架构 协议栈包括两个部分:控制器和主机。控制器和主机在标准蓝牙BR/EDR 设备这两个部分通常是单独实现。任何配置文件和应用程序都是建立在GAP和

GATT协议层上。 ·PHY层:1Mbps自适应跳频GFSK(高斯频移键控),运行在免证的2.4GHz 频段。 ·LL层:RF控制器,控制设备处于准备(standby)、广播(advertising)、监听/扫描(scanning)、初始化(initiating)、连接(connected)这五种状态中一种。 ·HCI层:为接口层,向上为主机提供软件应用程序接口(API),对外为外部硬件控制接口,可以通过串口、SPI、USB来实现设备控制。 ·L2CAP层:为上层提供数据封装服务,允许逻辑上的端到端数据通信。 ·SM层:提供配对和密匙分发服务,实现安全连接和数据交换。 ·GAP层:直接与应用程序或配置文件(profiles)通信的接口,处理设备发现和连接相关服务。另外还处理安全特性的初始化。 ·ATT层:导出特定的数据(称为属性)到其他设备。 ·GATT层:定义了使用ATT的服务框架和配置文件(profiles)的结构。BLE中所有的数据通信都需要经过GATT。 TI的这款CC2540器件可以单芯片实现BLE蓝牙协议栈结构图的所有组件,包括应用程序。 通过上面的介绍,我们基本了解了BLE协议栈的各层功能,其中需要我们直接接触的主要是GAP和GATT这两个层。

【CC2640】CC2640开发板、软件以及协议栈介绍

【CC2640】CC2640开发板、软件以及协议栈介绍 CC2640的开发板有哪些? 总的来说,可以提供给CC2640和CC2640R2F的开发板有两种,一种是SensorTag,另外一种是LaunchPad。SensorTag开发板上搭载了很多外部的传感器,比如六轴加速度传感器、温湿度传感器、光照传感器等等,同时也附带一个512K的外部Flash,它需要搭配使用 CC-DEVPACK-DEBUG来完成烧录和调试的功能。使用SensorTag开发板可以使用TI提供的例程,在5分钟内搭建起BLE终端设备采集传感器数据并通过BLE把数据传输手机APP上并显示应用场景示例。 LaunchPad上已经集成了烧录器,不需要再配置 CC-DEVPACK-DEBUG板来完成烧录和调试的工作,同时的附带的外部flash的大小也增加到了1M,但是并不带有传感器。LaunchPad的好处是接出来芯片的各个引脚,可以方便的使用连线的方式搭建和测试符合自己应用的硬件环境,比如对GPIO口的操作或者测试功耗等等,同时配合LaunchPad TI也提供了更丰富的应用例程,包括一些直接可以和手机APP连接的例程。 CC2640和CC2640R2F在芯片架构和原理上相同,但是软件功能上略有不同,不同点在哪? 从封装来看,CC2640R2F和CC2640都支持QFN封装(而

且都是PinToPin的),CC2640R2F增加了一种2.7mm*2.7mm 的芯片级封装; 在软件开发包支持的方面,CC2640R2F使用的是version ,而CC2640使用的是version ,这两个开发包从软件实现的功能上来看,都是一样的,但是version 3.00版本的开发包释放了更多的Flash空间给客户应用程序使用; 从开发板的支持来看,CC2640R2F使用搭载CC2640R2F的LaunchPad,而CC2640使用的是搭载CC2650的LaunchPad;从蓝牙协议栈来说,目前两个开发包都支持蓝牙4.2协议,而CC2640R2F本身支持蓝牙5.0PHYs,在17年4月发布的蓝牙协议栈支持蓝牙5.0的协议,对于CC2640来说只支持到蓝牙4.2协议。 CC2640和CC2640R2F的核心区别和重点是什么? http://biz.doczj.com/doc/9a7468576.html,2640R2F支持蓝牙5.0的PHYs,内键对蓝牙5.0的新特性:发送长广播的支持。 http://biz.doczj.com/doc/9a7468576.html,2640R2F可以为客户应用程序编程,提供更大的Flash 空间支持。同样是运行TI运行SimpleBLEPeripheral例程,基于蓝牙4.0协议,CC2640R2F可以提供给客户应用程序的空间是83Kbytes,而CC2640是41Kbytes;如果是基于蓝牙4.2的协议,CC2640R2F可以提供给客户应用程序的空间是80Kbytes,而CC2640是31Kbytes; http://biz.doczj.com/doc/9a7468576.html,2640R2F除了支持Pin2Pin的QFN的封装方式,还另外

ZigBee协议栈原理简介

第1章ZigBee协议栈原理 2007 年4 月,德州仪器推出业界领先的ZigBee 协议栈(Z-Stack)。Z-Stack 符合ZigBee2006 规范,支持多种平台,包括基于CC2420 收发器以及TI MSP430 超低功耗单片机的平台、CC2530 SOC 平台等。Z-Stack 包含了网状网络拓扑的几近于全功能的协议栈,在竞争激烈的ZigBee 领域占有很重要地位。 4.1 Zigbee 设备类型 在 ZigBee 网络中存在三种逻辑设备类型:Coordinator(协调器),Router(路由器)和End-Device(终端设备)。ZigBee 网络由一个Coordinator 以及多个Router 和多个End_Device组成。 下图是一个简单的ZigBee 网络示意图。其中黑色节点为Coordinator,红色节点为Router, 白色节点为End-Device。 1、Coordinator(协调器) 协调器负责启动整个网络。它也是网络的第一个设备。协调器选择一个信道和一个网络ID(也称之为PAN ID,即Personal Area Network ID),随后启动整个网络。协调器也可以用来协助建立网络中安全层和应用层的绑定(bindings)。 注意,协调器的角色主要涉及网络的启动和配置。一旦这些都完成后,协调器的工作就像一个路由器。 2、Router(路由器) 路由器的功能主要是:允许其他设备加入网络,多跳路由和协助它自己的由电池供电的子终端设备的通讯。通常,路由器希望是一直处于活动状态,因此它必须使用主电

源供电。但是当使用树型网络模式时,允许路由间隔一定的周期操作一次,这样就可以使用电池给其供电。 3、End-Device(终端设备) 终端设备没有特定的维持网络结构的责任,它可以睡眠或者唤醒,因此它可以是一个电池供电设备。通常,终端设备对存储空间(特别是RAM)的需要比较小。 注意:在Z-Stack 1.4.1 中一个设备的类型通常在编译的时候通过编译选项 (ZDO_COORDINATOR 和RTR_NWK)确定。所有的应用例子都提供独立的项目文件来 编译每一种设备类型。 栈配置(Stack Profile) 栈参数的集合需要被配置为一定的值,连同这些值在一起被称之为栈配置。ZigBee 联盟定义了这些由栈配置组成的栈参数。网络中的所有设备必须遵循同样的栈配置。为了促进互用性这个目标,ZigBee 联盟为ZigBee2006 规范定义了栈配置。所有遵循此栈配置的设备可以在其它开发商开发的遵循同样栈配置的网络中使用。

linux,ip协议栈源代码分析,pdf

竭诚为您提供优质文档/双击可除linux,ip协议栈源代码分析,pdf 篇一:netfilter源代码分析详解 一、概述 http://biz.doczj.com/doc/9a7468576.html,filter/iptables框架简介 netfilter/iptables是继2.0.x的ipfwadm、2.2.x的ipchains之后,新一代的linux防火墙机制。netfilter采用模块化设计,具有良好的可扩充性。其重要工具模块iptables连接到netfilter的架构中,并允许使用者对数据报进行过滤、地址转换、处理等操作。 netfilter提供了一个框架,将对网络代码的直接干涉降到最低,并允许用规定的接口将其他包处理代码以模块的形式添加到内核中,具有极强的灵活性。 2.主要源代码文件 linux内核版本:2.4.21 netfilter主文件:net/core/netfilter.c netfilter主头文件:include/linux/netfilter.h ipv4相关: c文件:net/ipv4/netfilter/*.c

头文件:include/linux/netfilter_ipv4.h include/linux/netfilter_ipv4/*.h ipv4协议栈主体的部分c文件,特别是与数据报传送过程有关的部分:ip_input.c,ip_forward.c,ip_output.c,ip_fragment.c等 二、netfilter/iptables-ipv4总体架构netfilter主要通过表、链实现规则,可以这么说,netfilter是表的容器,表是链的容器,链是规则的容器,最终形成对数据报处理规则的实现。详细地说,netfilter/iptables的体系结构可以分为三个大部分: http://biz.doczj.com/doc/9a7468576.html,filter的hook机制 netfilter的通用框架不依赖于具体的协议,而是为每种网络协议定义一套hook函数。这些hook函数在数据报经过协议栈的几个关键点时被调用,在这几个点中,协议栈将数据报及hook函数标号作为参数,传递给netfilter框架。 对于它在网络堆栈中增加的这些hook,内核的任何模块可以对每种协议的一个或多个hook进行注册,实现挂接。这样当某个数据报被传递给netfilter框架时,内核能检测到是否有任何模块对该协议和hook函数进行了注册。若注册了,则调用该模块的注册时使用的回调函数,这样这些模块就有机会检查、修改、丢弃该数据报及指示netfilter将该数据报传入用户空间的队列。

Z-Stack协议栈代码介绍

8.1 TI Z-Stack协议栈代码介绍 TI公司在提供Zigbee无线单片机CC2530的同时,也提供了Z-Stack协议栈源代码,以方便设计人员将Z-Stack直接移植到CC2530上使用,使其支持IEEE 802. 15. 4/ZigBee 协议。TI也提供比较多的工具软件,如CC2530的FLASH编程软件,包监视分析软件,以及一些在协议之上的应用案例,简单点对点通信软件、智能家居应用软件等。 为了使我们自己的系统稳定可靠运行,必须保证硬件的设计稳定可靠,满足需要的功能要求外,软件的设计也是同样重要的。为了使整个系统能很好的正常工作,必须让软硬件协同操作,在TI的Z-Stack协议栈之上开发我们自己的软件系统,不愧为一种很好的、省力的方式。自己去写Z-Stack协议栈代码并让其稳定运行是不现实的,不是投入太大就是时间太长。这样,对TI的Z-Stack协议栈代码进行必要的了解是非常必要的。 通过IAR软件打开TI的Z-Stack协议栈,如下图所示: 第一次打开工程印象最深刻的就是左边一排文件夹,非常多,很庞杂,感觉无从下手。我们先不深入目录之下,先了解每个目录放的是什么内容,那么知道各个文件夹大概是什么功能,分布在 ZIGBEE 的哪一层,那么在以后的工作中无论是查询某些功能函数还是修改某些功能函数,甚至是添加或删除某些功能函数就能顺利的找到在什么地方了,方便对Z-Stack协议栈软件的更深入的学习了解。 下面对Z-Stack协议栈的文件夹进行介绍:

APP(ApplicationProgramming):应用层目录,这是用户创建各种不同工程的区域,在这个目录中包含了应用层的内容和这个项目的主要内容,在协议栈里面一般是以操作系统的任务实现的。 APP:用户应用程序及接口,包括串口数据处理、无线接收数据处理、用户LCD显示处理、传感器数据读取和发送等。 HAL(Hardware (H/W) Abstraction Layer):硬件层目录,包含有与硬件相关的配置和驱动及 操作函数。 MAC:MAC 层目录,包含了 MAC 层的参数配置文件及其 MAC 的 LIB 库的函数接口文件。 MT(Monitor Test):实现通过串口可控各层,于各层进行直接交互。 NWK(ZigBee Network Layer):网络层目录,含网络层配置参数文件及网络层库的函数接口文件,APS 层库的函数接口 OSAL(Operating System (OS) Abstraction Layer):协议栈的操作系统。 Profile:AF(Application work)层目录,包含 AF 层处理函数文件。 Security:安全层目录,安全层处理函数,比如加密函数等。 Services:地址处理函数目录,包括着地址模式的定义及地址处理函数。 Tools:工程配置目录,包括空间划分及 ZStack 相关配置信息。 ZDO(ZigBee Device Objects):ZDO 目录。 ZMac: MAC 层目录,包括 MAC 层参数配置及 MAC 层 LIB 库函数回调处理函数。 ZMain:主函数目录,包括入口函数及硬件配置文件。 Output:输出文件目录,这个是EW8051 IDE 自动生成的。 Z-Stack 协议栈用操作系统的思想来构建,采用事件轮询机制。当各层初始化之后,系统进 入低功耗模式,当事件发生时,唤醒系统,开始进入中断处理事件,结束后继续进入低功耗模式。如果同时有几个事件发生,则判断优先级,逐个处理事件。这种软件构架可以极大地降级系统的功耗。 整个Z-Stack 的主要工作流程,大致分为系统启动,驱动初始化,OSAL 初始化和启动, 进入任务轮循几个阶段,下面将逐一详细分析。 1、TI的Z-Stack协议栈启动流程 可打开ZMain文件夹中的ZMain.c文件,查看int main(void)函数,协议栈即从此函数开始运

相关主题