APP下载

SCTP协议在NAT技术上的应用研究

2014-07-23樊占军

网络安全技术与应用 2014年2期
关键词:传输层服务器端IP地址

樊占军 高 超

(91336部队 河北 066000)

0 引言

流控制传输协议(SCTP)是一种可靠的传输协议,它在两个端点之间提供稳定、有序的数据传递服务(类似于TCP),并且可以保护数据消息边界(类似UDP)。然而与TCP和UDP不同的是,SCTP是通过多宿主(Multi-homing)和多流(Multi-streaming)功能提供这些收益的,这两种功能均可提高可用性。尽管SCTP协议最初是为发送电话信号而设计的,但其带来了一个意外的突破:它通过借鉴UDP的优点解决了TCP的某些局限。它提供的特性使套接字初始化的可用性、可靠性和安全性都得以提高。

NAT技术作为一种关键的网络技术,不管是在广域网中还是局域网中都起到了不可忽视的作用,其有效解决了IP地址短缺和IP地址冲突的问题。然而NAT技术在推广之初只是为适应TCP协议和UDP的通信而设计的,在使用SCTP的过程当中,我们发现了一些普遍存在的问题,就是SCTP报文在当前的IP网络中的转发与NAT设备无法兼容的问题,这样就限制了SCTP协议的应用场所。

针对NAT对SCTP产生限制所体现出来的具体问题,根据实际情况提出了新的解决方案。

1 SCTP报文无法通过NAT设备

1.1 问题现象

与TCP相同的是,SCTP中对新连接的初始化时通过报文握手来完成的,但TCP使用的是三次握手而SCTP使用的是四次握手,当服务器端和客户端在没有NAT设备的IP网络中使用SCTP进行同一个层级的网络进行数据传输时,通信能顺利达成。通信的过程如图1所示:

图1 SCTP连接初始化过程(无NAT)

当客户端和服务器端分布在不同级别的两个网络中,并且它们的通信需要通过NAT设备时,通信无法达成。利用抓包软件对数据包进行跟踪分析,发现服务器端无法收到客户端的发送的INIT请求报文,通信终端过程如图2所示。

图2 SCTP连接初始化过程(有NAT)

据图2所示,分析得知报文在通过NAT设备时丢失。NAT设备为了完成完整的内网和外网地址转换功能,必须对传输层协议的端口号进行转换。而现有IPV4网络中大多数NAT设备对传输层协议的支持权限于传输控制协议(TCP)和用户数据报协议(UDP),不支持流控制协议(SCTP)。这导致现有商用的NAT设备收到SCTP报文后无法对其进行内网与外网地址间的映射,而直接丢弃,造成了SCTP无法在含有NAT设备的现有IP网络中使用。

1.2 解决方法

由于NAT支持既有的用户数据报协议(UDP),可以在客户端把需要发送的 SCTP报文伪装成 UDP报文进行发送,当UDP报文抵达服务器端时,再把其还原成原来的SCTP报文就可以了。其具体实施过程如下:

在使用SCTP协议的终端的网络协议栈中部署UDP封装/解封装层。该层位于SCTP协议层和网际协议IP层之间,主要工作时在SCTP报文前包裹一层UDP隧道,伪装成UDP包,利用NAT对UDP报文原生的支持来克服NAT对SCTP协议的不兼容性。经过UDP隧道头包装后的SCTP报文结构如图3所示:

图3 伪装后的SCTP报文

图3所示经过UDP隧道头包装过的SCTP报文在通过NAT设备的时候是被认为和普通的UDP报文是相同的,这样SCTP报文就能顺利的在NAT设备中进行通信了。整个通信过程关键就是对SCTP报文进行了UDP隧道头的处理。处理流程如图4所示:

图4 SCTP报文UDP隧道头处理过程

该流程包括以下步骤:

(1)发送端的UDP封装层收到传输层发来的SCTP报文后,在SCTP报文头前插入UDP隧道头,它的目的IP地址和源IP地址取自于SCTP报文中的目的IP地址和源IP地址;

(2)封装后的SCTP报文被看作为标准的UDP报文在NAT发送端的传输层进行处理;

(3)接收端收到NAT发送过来的UDP报文后,根据UDP隧道头的标识符号进行判断此报文是包裹着 UDP隧道头的SCTP报文还是标准的UDP报文;

(4)若是UDP隧道报文,则将报文送入UDP解封装层,该层提取UDP隧道头中的目的IP地址和源IP地址的信息,分别填充到标准SCTP头中的对应域中,UDP隧道头将会被删掉,还原成标准的SCTP报文;

(5)若是标准的UDP报文,则送入标准的UDP协议栈进行处理。提出的内存不影响标准TCP/IP协议栈的工作流程。

1.3 验证测试

通过sniffer抓包软件对网络中的流量进行抓包分析,经过UDP隧道头封装后的SCTP(INIT)报文从内网地址触发,经NAT设备转换后到达外网,并且可以在内网中收到外网的回复(INIT_ACK),通信达成,测试成功。

2 结束语

本文从修改 NAT设备收发端的SCTP协议的部分功能出发,针对NAT对IPV4网络中SCTP报文阻断的两个问题提出了适当的解决方法。这两个解决方法对原IPV4网络中的NAT设备不需做任何变动就可以实现SCTP报文在NAT设备中的通信,能够帮助SCTP更快地实现在当前网络中的应用,从部分功能上解决了SCTP和NAT设备在通信中的兼容性问题。

[1]沈伊,夏靖波,周汉勋.SCTP协议在雷达情报传输中的应用研究[J],通信技术,2008.

[2]李爱国.SCTP在工业以太网通信技术中的应用研究.现代通信技术,2012.2.

[3]李健.基于SCTP多归属主机特性的多路径传输算法研究.重庆邮电学院学报,2005.

猜你喜欢

传输层服务器端IP地址
基于Python语言的网络传输层UDP协议攻击性行为研究
Linux环境下基于Socket的数据传输软件设计
ZnO电子传输层在有机无机杂化钙钛矿太阳能电池中的应用
铁路远动系统几种组网方式IP地址的申请和设置
物联网无线通信传输层动态通道保障机制
IP地址切换器(IPCFG)
基于物联网GIS的消防智能巡检系统设计与实现
基于SNMP的IP地址管理系统开发与应用
基于Qt的安全即时通讯软件服务器端设计
公安网络中IP地址智能管理的研究与思考