网络层协议栈

关键词: 反馈 协议

网络层协议栈(精选五篇)

网络层协议栈 篇1

关键词:4G无线系统,协议栈,跨层设计

随着第四代无线通信系统 (4G) 应用的愈加广泛, 无线通信在语音业务的基础上, 数据业务的比例显著提高, 这在无形中对网络质量提出了更高的要求。而现有的通信协议是以OSI作为标准的, 已无法满足通信环境的需要, 在4G无线通信系统中, 通信协议无法有效工作, 这就需要通过跨层反馈的方法对现有的协议栈进行改造, 从而提高4G无线通信系统的使用性能, 满足多种业务的需要。

一、协议栈的跨层设计机制

第四代无线通信系统 (4G) 是IP全覆盖的网络, 在系统中协议栈得到了广泛的应用, 实现了无线设备与互联网的相互关联[1]。当前通信系统采用的协议栈是以开放系统作为OSI的标准, 采用的结构是分层结构, 将协议栈各部分的运行过程抽象化, 使其能够更好地满足软件工程的信息安全准则。

无线通信系统所处的环境时刻发生着变化, 这样在分层结构的协议栈就只能在相邻的层之间通过固定的方式进行通信, 这在很大程度上限制了协议栈的工作, 使其无法适应无线移动环境的变化。因此, 在进行协议栈的跨层设计时就设计人员就会对其所处的环境进行考虑, 在通信条件最为恶劣的情况下进行设计分析, 这在一定程度上限制了协议栈的自身功能, 使得协议栈无法有效的利用有限的频谱资源及功率资源, 造成了资源的浪费[2]。

跨层反馈机制能够有效改进协议栈的不足, 协议栈各层间的信息传递能够很好地协调协议栈各层间的工作过程, 协议栈的跨层设计能够对无线通信网络系统进行优化配置, 使其与无线通信环境相适应, 这样无线通信系统应用的范围也就更加的广泛。

二、应用层上的跨层反馈机制

应用层是4G无线通信系统的重要组成部分, 是用户运行应用业务的接口。当前的应用都是在有线网络的基础上发展而来的, 在无线网络的实际运行中很多应用并不能高效工作, 只有以底层信息作为基础的应用才能够有效提高其在无线通信网络上的性能。

应用层在4G无线通信系统中主要功能是向其它层传递其Qo S的需求, 实现信息的交互[1]。应用层与其它层的信息交互方式主要包括以下几种:

应用层将Qo S的需求传递给传输层, 使其能够根据不同业务调整发送窗口及接受窗口值, 提高应用层的性能。网络层能够根据不同业务的Qo S需求采用不同物理网络接口传输数据, 链路层则可以根据应用层传递的Qo S需求为不同的业务提供不同的发送优先级。应用层与物理层则是以信源编码的方式生成业务。

三、链路层上的跨层反馈机制

链路层是通过前向纠错机制以及自动请求重发机制进行数据的可靠传输, 在链路层的辅助下, 移动主机接入信道的过程能够得到有效控制并最大限度地避免冲突, 并对数据帧进行封装, 使数据在链路层中的传输能够尽可能地降低开销。链路层上信息主要包括:重传数据帧的数量和长度、切换发起及完成的时间等等, 这些信息可以被其它层充分利用[3]。

3.1链路层与上层的信息交互

链路层与上层的信息交互主要包括与传输层、网络层的信息处理。当信道条件较差时, 链路层的重发机制可以被引入到更长的传输时延, 这极有可能造成TCP连接超时, 这样一来, 4G无线通信网络就需要启动重传机制, 发送速率会相应的降低。为了避免发送速率降低的情况出现, 链路层的重发机制需要通过TCP的往返时间及重传定时器的取值进行有效控制。

在移动主机需要改变子网位置时, 移动IP需要进行相应的切换。移动IP在检测到网络发生变化时发生切换, 但实际上, 移动IP的切换过程并没有充分利用移动设备的对信号强度的持续检测, 而链路层信息则利用了信道信号强度, 这在一定程度上降低了IP切换带来的时延[2]。

3.2链路层与下层的信息交互

链路层与下层的信息交互则是以信道条件与物理层的功耗情况作为依据, 调整链路层的差错控制机制, 这样可以有效减少传输错误, 同时也可以调整数据帧的长度提高吐量。这里需要强调的是, 物理层的信号处理需要建立在链路层对媒体接入的控制中。

四、网络层上的跨层反馈机制

网络层在4G无线通信网络中主要是用来完成路由及寻址, 确定传输数据分组的物理网络接口。4G无线通信网络协议多为IP协议, 通过对IP协议的切换处理, 移动主机能够更加直接地与外地网络连接。

4.1网络层与上层的信息交互

在4G无线网络通信系统中, 无线设备可以为不同的业务提供物理接口, 比如对于时延要求及高吞吐量的业务, 无线设备的无线局域网接口可以提供严格的控制, GPRS接口则可以为其提供有严格时延要求的业务。在应用层提出不同请求时, 网络层可以根据应用层不同的Qo S需求, 将数据分布到不同的物理网络接口上[3]。

4.2网络层与下层的信息交互

网络层与下层的信息交互则是集中在于链路层的信息切换上, 利用链路层的切换信息, 移动IP协议可以尽可能地减少切换时延。物理接口的误比特率可以为网络层提供引导, 使其在不同的物理接口上进行数据的切换与转发。

五、物理层上的跨层反馈机制

4G无线通信系统中, 物理层能够利用一定的发射方式将数据传输出去, 使其能够在一定的错误概率范围内被接收。

在4G无线通信系统中, 链路层主要负责数据的接收, 物理层则是提供信息, 使链路层的控制机制可以对信息进行调整, 确保无线系统在吞吐量上得到较高的增益[3]。链路层的功率调整指令及传输控制命令能够对物理层的性能进行有效改善, 从而改进物理层与其它层的信息交互[1]。

物理层在与应用层进行信息交互时, 应用层可以促使物理层进行特性调整, 比如数字视频业务便可以通过物理层获取信息, 以调整编码速率。物理层的信道状态信息可以在网络层的辅助下改变传输路径, 使其可以在不同信道上传输不同优先级的数据。

物理层的误比特率则可以通过链路层的发送功率增加来适当地降低, 同时, 链路层也可以采用更强的差错控制机制, 降低误比特率。这里需要强调的是, 在增加发送功率或者采用更强的差错控制机制时, 系统的功耗都会相应的增加, 这时就需要采用联合控制的方式对系统进行改善[1]。

物理层与其他层进行信息交互的同时, 也可以根据电池的供电状况调整发送方式, 这样发送的数据便可以在当前信道条件的基础上, 保持上层的Qo S需要, 并及时调整信道的发送方式。

六、结语

协议栈的跨层设计核心便是自适应, 而自适应指的是协议栈在考察网络条件后做出的反应机制, 其中包括了协议栈的上层对下层变化的自适应, 也包括下层对上层变化的自适应。在进行无线系统协议栈的设计研究时, 设计人员还需要对上层及下层进行变化预测, 实现信息的交互, 特别是在4G无线系统中, 更需要充分考虑协议栈的跨层设计的各个因素, 确保无线系统能够充分适应无线环境的变化, 进而充分利用有限的资源。

参考文献

[1]丁蕙, 李腊元, 郑锋.基于超宽带技术的无线传感器数据传输网络跨层优化研究[J].计算机工程与设计.2009 (06) :42-47.

[2]李钊, 陈广泉.无线认知网络的跨层设计[J].山东通信技术.2009 (04) :29-32.

网络层协议栈 篇2

(1)从应用层上来看,攻击者每次攻击时,与8300端口都有建立最多两、三百个tcp连接,

(2)从防火墙监控来看,攻击的流量非常微小,以至于防火墙的流量报警都未触发。

(3)每次攻击产生时,原先的玩家的tcp连接并未断开(应用程序未抛出TCP连接断开的异常),但服务端的再也接收不到来自客户端的任何消息。服务端进程的CPU飙到100%,而内存使用未发现异常。

(4)而且服务端也从未接收到来自攻击者的tcp连接的任何消息。

(5)我们对tcp半连接进行了监控,排除了基于tcp的半连接攻击。

(6)重启服务端程序后,一切恢复正常。

我们的动作以及思考:

(1)最开始,我们以为是服务端程序出现问题,导致CPU 100%,后来通过详细检查程序代码,并使用文本日志定时记录程序每个线程的状态(每5秒钟一次),排除了这一可能性。也就是说,在攻击的过程中,服务端内的各个线程的运行都是正常的。(后来,我们进一步确认了这一点 -- 我们在游戏服务器前加了一个简单的tcp代理服务器,游戏服务器不再对外暴露,所有客户端都与代理服务器连接,由代理服务器在游戏服务器和客户端之间转发所有的数据,结果代理服务器被攻击,代理服务器的代理程序进程的cpu达到100%(也是重启代理程序即恢复正常),而游戏服务器进程一直正常),

(2)排除程序的问题后,我们开始怀疑攻击者攻击的是TCP/IP协议栈(也许是根据TCP/IP的一些漏洞进行攻击),而导致操作系统在处理底层的TCP/IP数据报时,陷入忙碌的状态,而导致CPU 100%,而当底层陷入忙碌的时候,来自客户端的正常消息就来不及接收或者来不及提交到应用层(即我们的服务端程序)了。

我们还未确定,攻击的方式究竟是什么?以前我们碰到的大多是流量攻击,而针对这种低带宽的攻击或TCP/IP漏洞攻击,没有任何经验。不知哪位大侠碰到过类似的情况,能够指点一二,感激不尽了,呵呵

附:我在网上找到了一些可能与我们的攻击有关系的TCP/IP攻击相关的资料,与大家共享一下:

(1)TCP协议堵塞窗口算法攻击技术 :sec.chinabyte.com/207/8816207.shtml

(2)TCP RST攻击 :baike.baidu.com/view/1044719.htm

(3)低速率拒绝服务攻击原理 :blog.chinaunix.com/u/12592/showart_2058363.html

(4)TCP漏洞可导致致命DoS攻击 :sec.chinabyte.com/279/8339279.shtml

(5)泪滴攻击 :baike.soso.com/v4492311.htm

网络层协议栈 篇3

关键词:Ad Hoc;异步;接入协议;MAC层

0引言

无线Ad Hoe网络是一种自组织的对等式网络,又称作多跳网络(Multi-hop Network)或称自组织网络(Self-organized Network)。自组织网络具有无中心、临时自组织、分布式控制、节点移动和多跳等特点,这使得Ad Hoc网络MAC层的信道接入协议面临很多新问题。

(1)隐终端和暴露终端:Ad Hoc网络中节点的移动性和多跳性带来了隐终端和暴露终端的问题。隐终端是指在发送者的通信范围之外,而在接收者通信范围之内的节点。暴露终端是指在发送者通信范围之内,而在接收者通信范围之外的节点。一般地,隐终端的存在可能造成数据的冲突,而暴露终端的出现使得网络资源无法得到充分的利用。

(2)MAC层的公平接入:Ad Hoc网络没有中心控制节点,必须采用分布式机制实现网络节点接入MAC层的协调。如何保证各节点和不同业务流接入网络的公平性,是Ad Hoc网络MAC层接入协议需要解决的重要问题。

(3)QoS保障:Ad Hoc网络的移动性、多变性等特性,使得自组网要保障一定的Qos非常困难,MAC层QoS需解决实时业务快速获得信道使用权和避免时延抖动的问题。

(4)功率控制:Ad Hoc网络中的设备绝大多数靠电池供电,能量不等且有限,所以如何节能和控制节点的发送功率也是MAC协议设计必须考虑的因素。

1 MACAW协议

1.1 MACAW基本思想

MACAW(Multiple Access Collision Avoidance for Wireless)协议是对MACA(Multiple Access with Collision Avoidance)的改进,除了保留MACA中的RTS-CTS握手机制外,还使用了其它控制信号(DS,ACK,RRTS),以进一步解决暴露终端和隐终端问题。作为MACA协议的改进,首先,MACAW增加了链路层的确认机制,即由接收点回复ACK帧;其次,由发送节点发出DS帧,通知暴露终端该节点与目的节点握手成功,减少数据帧冲突;当暴露终端收到许多RTS而又不能回复时,由暴露终端发起RRTS通知邻节点竞争期开始的机制来提高节点的竞争效率。协议接入的过程称为RTS-CTS-DS-DATA-ACK五次握手或是RRTS-RTS-CTS-DS-DATA-ACK六次握手的交互方式。

MACAW采用了一种乘法增加线性减少退避算法(MILD)代替二进制指数(BEB)退避,同时也实现了退避复制机制,保证了接入的公平性。另外,它还使用了多流模型以达到业务流的平衡传输。

1.2 MACAW算法描述及状态流程

MACAW可用控制规程、退避规程和超时规程来描述。工作于MACAW协议下的节点可处于8种状态:IDLE.CONTEND、WFCTS,WFContend,WFDS,WFData.WFACK,QUIET。

图1所示是Ad Hoc网络中的四个节点。下文以此网络为例,说明MACAW的算法。

控制规程:

(1)A有数据要发向B,则A从IDLE状态进入CON-TEND状态,随机选择定时器值,定时器超时发送RTS,进入WFCTS状态。B收到A发给自己的RTS信号后发送CTS信号、设置定时器,从IDLE状态进入WFDS状态。

(2)A收到B发送的CTS信号后,清除定时器,发送DS和DATA给B,进入WFACK状态,设置定时器;B收到A发送的DS信号,进入WFData状态并设置定时器,收到A发送的数据分组后清除定时器,发送ACK进入IDLE状态。A收到B发回的ACK信号,清除定时器,重新回到IDLE状态。

(3)B处于IDLE状态后,收到确认过的数据包再次发起的RTS,发送ACK信号给A;如A处于CONTEND状态时,收到RTS,发送CTS给源节点,进入WFDS状态,设置定时器。

(4)c监听到A和B的通信握手后,进入QUIET状态,此时如接收到RTS分组,进入WFContend状态。

(5)处于IDLE状态的节点收到RRTS,发送RTS给源节点,进入WFCTS状态并设置定时器。

退避规程:

(1)收到目的节点非本节点的RTS或CTS握手信号,节点从当前状态进入QUIET状态。

(2)收到目的节点非本节点的DS信号,节点从当前状态进入QUmT状态。

(3)收到目的节点非本节点的RRTS信号,节点从当前状态进入QUIET状态。

超时规程:

(1)节点处于WFContend定时器超时,节点随机选择定时器值进入CONTEND状态。

(2)如节点是从WFContend进入CONTEND状态的,则定时器超时后,节点发送RRTS分组,进入IDLE状态。如节点是从IDLE状态进入CONTEND状态的,定时器超时,节点发送RTS,进入WFCTS状态。

(3)其他状态下定时器超时,节点进入IDLE状态。

图2是MACAW协议的状态转移流程图。

2 FAMA-NTR协议

2.1 FAMA-NTR的基本思想

FAMA-NTR(Non-persistent Transmit Request)协议是基于无隐藏终端的全连通网络结构提出的。协议结合了非坚持的载波监听和RTS/CTS握手机制,认为RTS的长度要大于最大传播时延才能保证控制分组不与数据分组冲突。

FAMA-NTR节点发送数据前,要先进行载波监听,信道空闲则发送握手信号;如果监听到了载波或者解析到了RTS和CTS分组则进行退避。发送节点与接收节点之间采用RTS-CTS-DATA三次握手完成通信过程,要求发送RTS分组的时长要大于最大传播时延,以保证监听机制有效运转。

2.2 FAMA-NTR的算法描述及状态流程

FAMA-NTR协议可以分为六种状态:START,PASSIVE、REMOTE.XMIT、RTS、BACKOFFO其中START状态是指节点开机初始化;PASSIVE状态是指节点初始化完毕,进入主动侦听状态;REMOTE状态是指节点在侦听到信道有信号时进行退避;XMIT状态是指节点开始发送数据业务;RTS状态是指节点成功发送RTS;BACKOFF状态是指节点根据退避计数器进行退避。

工作于FAMA-NTR协议的节点接入信道的过程如下:

网络层协议栈 篇4

Voice VLAN属于一种辅助VLAN(Virtual Local Area Network虚拟局域网),其主要目的在于将语音和数据通过VlAN隔离出来,防止突发数据流量对Voice VLAN内的语音流量的冲击,提供可靠的语音和视频服务。设备通过识别端口的语音流,将对应的接入端口加Voice Vlan中,使得语音数据集中在Voice VLAN中进行传输,对语音流进行有针对性的QOS(Quality of Service,服务质量)配置,提高语音流量的传输优先级,保证通话质量[1]。

二、Voice VLAN设计原理

图1所示Voice VLAN拓扑参考结构,PC1机通过与Vo IP 1串连后接入交换机A的Ethernet1/1端口,PC2机通过与Vo IP 2串连后接入交换机A的Ethernet1/2端口。其中Vo IP 1支持发出的是Tag语音流(携带有Voice VLAN的VLAN Tag),VoIP 2发出的是Untag语音流。Voice VLAN设为VLAN2,用来传输语音数据,VLAN4、6为业务数据VLAN。端口Ethernet1/1和Ethernet1/2识别语音数据与数据业务,分配服务通道将业务不同QOS发送到交换机B,交换机B将语音及数据业务分别发送至语音网关和服务器。

Voice Vlan在交换机A上转发的具体流程设计如下:(1)交换机A全局配置VLAN2、4、6,VLAN2为Voice Vlan,VLAN4、6为数据VLAN,预设OUI地址:000f-e234-1234、000f-2200-0000。(2)Vo IP1为自动获取IP地址和Voice VLAN信息的IP电话,Ethernet1/1端口加入VLAN2、4,设置PVID(PORT VLAN ID,端口VLAN标识)为数据VLAN4,由于VoIP1设备是支持自动获取Voice VLAN设备,可设为自动模式。当收到的Tag语音,根据Tag中的VLAN ID将报文在相应的VLAN内进行转发。对于Untag数据报文,在默认VLAN4中传输。在自动模式时,如果一段时间后,该端口没有再次收到源MAC地址符合OUI地址的报文,将自动退出Voice VLAN,这段时间也称为Voice VLAN的老化时间。(3)Voip2为手工配置IP地址的电话,发送不带VLAN Tag的语音报文,Ethernet1/2端口加入VLAN2、6。由于自动模式的端口不支持接收不带Tag的语音流,所以Ethernet1/2端口只能配置为手动模式,同时将缺省VLAN 2设置为Voice VLAN。当报文通过时,端口将根据OUI,对符合OUI的报文,在Voice VLAN中传播,源地址不合法的报文将直接被丢弃(包括一些认证报文,如802.1x认证报文)。因此在手动Voice VLAN中同时传输Untag语音和数据业务,使能安全模式,数据业务会被丢弃,如要传输数据,只能转发带Tag的数据报文。

三、Voice VLAN程序设计

利用三层交换机中协议栈中的访问控制链表进行实现图2所示voice vlan拓扑功能。

3.1主要数据结构

在整个voice vlan函数中,我们需要生成Voice Vlan全局状态变量,及端口状态变量用来记录交换机及端口的最新状态。

3.2主要API接口功能

3.2.1 Voice vlan全局状态查询API接口

此API接口函数调用Voice Vlan全局状态变量,流程图2通过不同分支跳转查取当前交换机Voice vlan状态信息。

3.2.2 Voice vlan设置全局状态API接口

此API接口函数主要对voice vlan全局状态控制,如流程图3所示,设置ID标识,voice vlan信号量,ACL访问控制链表,老化时间等状态。

3.2.3 voice vlan端口状态查询API接口

此API接口函数调用Voice Vlan端口状态变量,图4通过不同分支跳转查取当前端口的Voice vlan状态信息。

3.2.4 voice vlan端口设置API接口

此API接口函数主要对voice vlan端口状态控制,如流程图5所示,使能voice vlan端口控制,端口ACL访问控制链表加载,端口模式设置,端口安全等级设置等。

四、voice valn配置实现

针对图1的拓扑结构,我们可进行如下配置以实现Voice VLAN通信功能[3]

交换机A全局配置:使能Vlan2、4、6,Vlan2设为Voice Vlan,设置1800s的老化时间,预设OUI地址

Ethernet1/1端口配置:端口使能自动模式的vioce vlan,使能安全模式,使能默认端口vlan标识为4

Ethernet1/2端口配置:端口使能手动模式的vioce vlan,使能安全模式,端口加入数据vlan6

五、结束语

Voice Vlan作为VLAN的衍生技术,用户只需要在全局和端口下进行简单的配置,开启Voice VLAN功能,即可对语音数据进行分类处理,而不需要配置复杂的二层ACL和QoS,也不必关心各规则的匹配顺序以及下发至端口造成的其他问题,保证用户的通话质量。

本程序模块在设计中参照IEEE 802.1Q Virtual Bridged Local Area Network标准,目前已在三层交换机协议栈上应用。

摘要:利用IP数据包,通过专线点对点联结进行语音通信的VoIP(voice over IP)技术,因即能保证通话的服务等级、质量,又节省单独信道使用成本,成为大多数运营商采用的一种技术。本文着重介绍了一种保证点对点联结的语音技术Voice Vlan,并对其在三层交换机中的实现进行了详细论述,最后对voice vlan的前景进行展望。

关键词:语音VLAN,组织唯一标识符,应用程序接口,访问控制链表

参考文献

[1]H3C Voice_VLAN技术白皮书(V1.00)

[2]FHN张鹏Voice VLAN软件详细设计说明书

IMS网络的SIP协议栈研究 篇5

关键词:IMS网络,SIP协议,多媒体通信

一、引言

随着通信技术的发展及人们对通信要求的提高, 当今的通信业务集音频、数据信息、视频于一体。同时, Internet及IP网络的发展也为各种通信业务提供了基础。

SIP是IETF指定的用于实现多媒体回话控制的协议, 该协议具有实现简单、扩展性强的特点, 并且具有强大的多媒体会话和业务扩展能力以及用户查找和定位能力。由于SIP可以和现有的Internet协议紧密联系, 从而获得了广泛应用, 并且SIP已被3GPP组织作为R5/R6多媒体子系统 (IMS) 的呼叫控制协议。本文将对IMS网络和SIP协议进行介绍, 并提出一种基于IMS网络的SIP信令协议栈。

二、IMS网络结构及SIP协议

IMS是3GPP在R5版本中提出的支持IP多媒体业务的子系统。IMS以SIP为核心呼叫控制协议, 为移动终端提供多媒体呼叫控制业务, 具有应用服务器层、会话控制层、传输与终端层三层结构, 包括CSCF、HSS、MGCF和MGW等实体。

IMS中最重要的实体是CSCF和HSS, CSCF负责处理多媒体会话业务, 相当于SIP服务器, 包括代理CSCF (P-CSCF) 、查询CSCF (I-CSCF) 和服务CSCF (S-CSCF) 。HSS (归属用户服务器) 是IMS中所有与用户和服务相关的数据主存储器, 存储了用户身份、注册信息、接入参数和服务触发信息等。

SIP是IETF制定基于ASCII码的面向IP电话和多媒体会议的应用层控制协议, 用于建立、修改和终止多媒体会话, 使参与会话的成员可以通过多播方式、单播连网或二者结合的方式进行通信。

典型SIP协议中有客户机和服务器之分, 客户机是为了向服务器发送请求而与服务器建立连接的应用程序, User Agent和Proxy中含有客户机;服务器是用来向来自客户机的请求提供服务并处理应答的应用程序。SIP协议具有四层结构, 最底层是语法和编码层, 第二层是传输层, 第三层是事物层, 最顶层是事物用户层 (TU层) 。

三、基于IMS网络的SIP信令协议栈

在SIP协议中, 用户代理客户端通过向代理服务器发送在网络中的路由请求即可以建立起一个会话过程。因为注册服务器需要提供用户代理的位置信息, 所以需要将SIP地址映射转换为IP地址。IMS中的呼叫会话控制功能 (CSCF) 的网络实体是代理服务器和注册服务器, CSCF即是控制实现实时多媒体业务的多媒体服务器。IMS包括三种呼叫会话控制功能:代理CSCF (P-CSCF) 、问讯CSCF (I-CSCF) 、服务CSCF (S-CSCF) 。CSCF通过SIP协议来实现上述控制控制功能, 其中P-CSCF为移动用户接入IMS提供的SIP代理服务器, I-CSCF是运营网络的入口代理服务器, 同时可以对其它网络隐藏其归属网络的拓扑图, S-CSCF是SIP的注册服务器, 执行用户的会话控制服务。因此, IMS网络可以在CSCF的基础上利用SIP协议经过注册过程和会话过程来实现多媒体通信的目的。

本节通过引入有限状态机进行修改和二次开发, 实现了一个稳定高效的SIP协议栈, 通过提供SIP操作的基本数据结构和应用程序编程接口 (API) , 如用于表示SIP中各类对象的数据结构、对消息和消息体进行解析的API以及实现四类有限状态机的API。该协议栈主要包括4个模块:状态机模块、解析器模块、工具模块、上层封装接口模块, 其结构图如图1所示。

3.1状态机模块

状态机模块可以完成UAS或UAC对接收事务的响应, 并对该事务的状态进行记录, 在特定状态下触发相应的事件或回调函数。

一个事务和一个状态机相关, 事务有4类, 因此对事务的处理可以用4种有限状态机来表示, 包括:ICT (请求客户端事务的状态) 、IST (请求服务器端事务的状态) 、NICT (非请求客户端事务的状态) 、NIST (非请求服务器端事务的状态) 。状态机的状态跳转由事件触发, 事件是应用程序与状态机间通信的手段, 一个事件包括事件类型和关联的事物两部分, 有限状态机包括3种事件:发送SIP消息 (请求和应答) 、接收SIP消息 (请求和应答) 、计时器事件 (重传和上下文删除或结束) 。在SIP协议栈中, 对事件的响应以回调函数实现。回调函数以函数指针存在, 在状态跳转时被事务处理函数调用。本协议栈定义osip_t对象作为所有回调函数的管理对象, 外围UA应用程序必须通过该对象实现对协议栈回调函数的使用。除此之外, osip_t还包含4个状态机事务对象的相关信息。

3.2解析器模块

解析器模块主要完成对SIP消息的语法解析, 它的作用是将收到的SIP消息从文本解析为SIP消息结构体 (sip_t) , 处理完后将待发送的sip_t结构还原成SIP文本消息后在发送。SIP消息的解析过程为:对收到的消息解析起始行, 若是SIP请求则解析SIP请求方法、请求URI和SIP版本, 若非SIP请求则解析SIP版本、状态码和原因短语;然后依次进行解析SIP头域、解析SIP消息体并保存各项参数完成解析过程。

3.3工具模块

工具模块主要提供完善的SDP协商机制和对话管理的API。本协议栈中的SDP协商工具使用从SDP offer去构建SDP answer的方法, 通过分析invit请求中消息体SDP部分的媒体参数描述来构造对于invit请求的响应消息中的SDP消息部分。在对话中, 可以动态创建新的事务来开始端点之间的SIP通信过程, 帮助管理UA的消息排序和UA之间正确的路由。本协议栈的对话管理工具主要是创建对话并对对话消息进行管理。

3.4上层封装接口模块

上层封装接口模块根据MVC模式中的Model层的调用方式提供面向Model层的简便易用的操作协议栈接口。上层封装接口模块在e Xosip封装SIP协议调用接口的基础上进一步封装, 供Model层调用, 从而使用简单的几行代码就可以实现一个音视频的呼叫。

四、结束语

SIP协议可以创建、管理和终结IMS网络中各种类型的多媒体业务, 从而使各种类型的客户端通过SIP都可以建立高质量的端到端通信。本文提出一种SIP协议栈, 实现了SIP软终端, 可以在IMS网络下实现具备基于SIP的视频和音频通信功能。

参考文献

[1]孙建勇.基于SIP协议的软终端的研究与实现[D].北京邮电大学, 2004.

[2]陈朝鹏.SIP协议在IMS系统中的应用[J].中国科技信息, 2006 (2) .

[3]徐晓宇, 张惠民.SIP会话协议在第三代移动网络中关键问题研究[J].数据通信, 2004 (2) .

[4]季光献.一种新的面向IMS网络的SIP协议栈[J].电信科学, 2012 (4) .

注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:66553826@qq.com

上一篇:网络协议课程设计 下一篇:网络经销协议