TCP/IP协议栈在嵌入式异构网络互联中的应用

时间:2022年12月11日

/

来源:auio17

/

编辑:本站小编

收藏本文

下载本文

下面是小编为大家整理的TCP/IP协议栈在嵌入式异构网络互联中的应用,本文共9篇,供大家参考借鉴,希望可以帮助到有需要的朋友。本文原稿由网友“auio17”提供。

篇1:TCP/IP协议栈在嵌入式异构网络互联中的应用

TCP/IP协议栈在嵌入式异构网络互联中的应用

摘要:随着测控技术与网络技术日益紧密的结合,测控系统接入互联网已经成为大势所趋。本文阐述在一种异构网络互联――CAN总线与以太网互联系统设计方案中嵌入式TCP/IP协议栈的设计与实现。从而实现了将基于TCP/IP协议的计算机网络设备与基于CAN总线协议的底层现场网络连通。

关键词:TCP/IP协议栈 CAN总线 以太网 互联网 异构结构

引言

Internet现已成为社会重要的信息流通渠道。如果嵌入式系统能够连接到Internet上面,则可以方便、低廉地将信息传送到几乎世界上的任何一个地方。可以预言,嵌入式设备与Internet的结合代表着嵌入式系统和网络技术的真正未来。随着IPv6的应用,设备都可能获得一个全球唯一的IP地址,通过IP地址和互联网相连成为一个网络设备。但是传统的TCP/IP协议在实现实时性方面做得不够好,它把大量的精力花在保证数据传送的可靠性以及数据流量的控制上。而在实时性要求比较高的嵌入式领域中,传统的TCP/IP不能满足其实时要求。另外,传统TCP/IP的实现过于复杂,需占用大量系统资源,而嵌入式应用的系统资源往往都很有限。因此,需要把传统TCP/IP在不违背协议标准的前提下加以改进实现,使其实现性得到提高,占用的存储空间尽可能少,以满足嵌入式应用的要求。

在大型企业自动化系统中,上层企业管理层和生产监控层一般采用的都是以太网和PC机,而在下层车间现场都是采用现场总线和单片机测控设备。上下两层的沟通,通常采用工业控制机加以太网卡,再加上PC机插槽上的接口卡和并行打印口EPP接口卡来实现。这种连接方式成本高,开发周期长。针对这些情况,本文提出了一种单独的嵌入式CAN-以太网网关互连系统的设计方案,成功地实现以太网和现有的CAN总线网的直接数据传输。

(本网网收集整理)

1 异构网络互联系统结构设计

CAN总线是一个设备互连总线型控制网络。在CAN总线上可以挂接多达110个设备节点,各设备间可以自主相互通信,实现复杂网络控制系统。但设备信息层无法直接到达信息管理层,要想设备信息进入信息管理层就要通过一种数据网关。

这里设计了一个SX52网关,用于CAN总线与以太网的互连。图1所示的系统总体结构分为三部分:现场测控网络(CAN网络)、嵌入式透明SX52网关和以太网信息管理终端(如监控平台和网络数据库等)。以太网信息管理终端与CAN总线上的CAN节点通过Ethernet、SX52网关、CAN总线相互通信,其中SX52网关起核心异构网络的互连作用。

协议转换是异构网络互连的技术关键和难点。协议转换一般遥相呼应采用分层转换的方法,自低向上逐层进行。目前互连大都是在网络层或网络层展开的,因而必须对互连层以下各层协议逐层向上转换。这种转换方法的依据是协议分层的基本原理,即低层支持高层,高层调用低层,低层断开连接后,高层连接也随之断开,但高层断开连接却不会影响低层。从网络的分层结构上来看我们设计的互连系统具有如图2所示的分层结构。以太网上运行TCP/IP协议,它具有应用层、传输层、网络层以太网数据链路层和物理层;CAN总线具有应用层、数据链路层和物理层,其中应用层由用户自己定义,数据链路层和物理层由CAN协议所定义;SX52数据网关具有物理层、数据链路层和应用层,其应用层也就是Ethernet与CAN的信息数据交换层,SX52微控制器在此层相互解释并转发这两种不同协议的数据。

在本设计中,SX52网关被设计成了一个透明数据网关。也就是在以太网应用层构建和解析完整的CAN协议数据包。CAN协议数据包作为TCP/IP网络的应用层的数据进行传输。对通信数据的具体实际意义不做任何解释。

透明式网关由通信处理器、CAN总线控制器和以太网控制器三个部分组成。其中SX52单片机为核心处理器,实现CAN控制网络与以太网之间的协议转换。以太网信息管理 层的控制指令发送到嵌入式透明SX52网关,经过它将TCP/IP协议包数据转换为CAN协议形式发送至CAN控制网络中的指定设备节点,完成信息管理层对现场设备层的控制。同样地,当CAN网络上的设备数据(如定时采样数据或报警信息)要传输到信息管理层时,可将数据发送到嵌入式透明SX52网关,再通过网关协议转换程序将CAN协议数据封装成TCP/IP协议的以太网数据帧发送至以太网上的监控计算机。

2 SX52中TCP/IP协议栈的设计

按照层次结构思想,对计算机网络模块化的研究结果是,形成了一组从上到下单向依赖关系的协议栈(protocol stack),也叫协议族。在标准的TCP/IP协议族中有很多协议。这里SX52中TCP/IP协议栈层次结构如图3所示。

2.1 SX52 ARP协议的设计与实现

地址解析协议ARP(Address Resolution Protocol)可以实现逻辑地址到物理地址的动态映射。它提供了一种使以太网络节点可以传输一个IP数据包到目的地址的映射机制。

在SX52中,ARP协议是通过一个“IP地址对应以太网地址”的单登记实现的。当远程主机需要知道它的物理地址时,远程主机会向它发送ARP请求。这时它就会响应这个远程主机的请求,告诉对方自己的物理地址。当然,当应用层需要传输IP数据包时

,SX52 ARP协议也可以请求远程目的物理地址。

要传输的Internet数据包在以太网控制器的发送缓冲区中被构建,它使用最近接收到的数据包的目的以太网地址作为发送数据包的目的地址。当然,这可能不是正确的以太网地址,因此,在实际发送数据包之前,ARP协议将检查发送数据包中的IP地址是否存在于ARP核中。如果发送数据中包中的IP地址在这个核中,在以太网发送缓冲区中的数据包将使用ARP核中的以太网地址更新;如果不在,ARP协议将发送一个ARP请求包,然后等待一个应答。一旦这个ARP应答接收到,这个ARP核将使用刚接收到的目标以太网地址更新,接着,等待发送的数据包也将使用这个以太网地址更新,然后被发送出去。如果发送的ARP请求包没有应答,导致ARP定时器超时,这时等待发送的数据包将被废弃,正常的协议栈继续运行。使用的变量有:ARP核中的IP地址{hostlIP3,hostlIP2,hostlIP1,host1IP0};ARP核中的以太网物理地址{host1Eth0,host1Eth1,host1Eth2,host1Eth3,host1Eth4,host1Eth5};ARP协议的定时器{arpTimerMSB,arpTimerLSB}等。使用涉及的函数有:ARPInit,ARPCheckCache(),ARPSendResponse(),ARPUpdateEthAddr(),ARPCheckIfIs(),ARPCompare4(),ARPSendStPacket(),ARPSendCommon(),ARPSendRequest()。

2.2 SX52 IP协议的设计与实现

IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。IP提供不可靠、无连接的数据报传送服务。本设计中的IP协议是针对特殊的应用环境下的合理简化。CAN总线的控制网络是一种短帧(每个数据帧为8字节)的实时网络,所以,IP数据包无须分片(MF=DF=0),同时,设置IP为服务类型为一般类型,其头长为20字节,寿命TTL设置为64。使用的变量有:目的IP地址{remoteIP3,remoteIP2,remoteIP1,remoteIP0};源IP地址{myIP3,myIP2,myIP1,myIP0};IP校验和{ipCheckSumMSB,ipCheckSumLSB};IP数据包长度{ipLengthMSB,}ipLengthLSB};上层使用的协议ipProtocol,IP标识{ipIdentMSB,ipIdentLSB}。使用涉及的函数有:TCPIPInit(),CheckIPDatagram(),CheckIPDestAddr(),IPStartPktOut()等。

2.3 SX52 ICMP协议的设计与实现

为了让互联网中的路由器报告或提供有关意外情况的.信息,在TCP/IP协议系列中加入了一个专门用于发送差错报文的协议――互联网控制报文协议ICMP(Internet Control Message Protocol)。ICMP是IP的一部分在每个IP实现中都必须用到它。像其它所有的通信业务一样,ICMP报文是放在一个IP数据报的数据部分中传送的。ICMP报文的最终目的不是应用程序或目的机器上的用户,而是该机上处理它的Internet协议软件模块。也就是说:Internet控制报文协议允许路由器向其它路由器或主机发送差错或控制报文;ICMP在两台主机的Internet协议软件之间提供通信。

每个ICMP报文都以相同的3个字节开始:1个8位整数的报文类型(TYPE)字段用来识别报文,1个8位代码(CODE)字段提供有关报文类型的进一步信息,1个16位校验和字段。此外,ICMP报文还总是包括产生问题的数据报首部及其开头的64位数据。

ICMP使用IP来传送每一个差错报文。当路由器有一个ICMP报文要传递时,它会创建一个IP数据报并将ICMP报文封装其中,也就是说,ICMP报文被置于IP数据报的数据区中,然后这一数据报像通常一样被转发。即整个数据报被封装进帧中进行传递。

每一个ICMP报文的产生总是对应于一个数据报。路由器将一个ICMP报文将回给产生数据报的主机。在这里,只实现了ICMP的回应请求/应答服务,主要用于PING程序测试通信链路的畅通性,即只处理接收的报文类型为0x08的ICMP帧,发送的ICMP报文类型为0x00。它没有自己专有的变量,涉及的函数也只有ICMPGenCheckSum和ICMPProcPktIn()。

2.4 SX52 UDP协议的设计与实现

UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。UDP不提供可靠性,它把应用程序传给IP层的数据发送出去,但是并不保证它们能到达目的地。由于缺乏可靠性,我们似乎觉得要避免使用UDP,而使用一种可靠的协议,如TCP。但分析发现,UDP在我们的互连设计中有很多的优点:其一,UDP协议传输效率高,无须TCP通信前的连接开销;第二,UDP协议简单,无须复杂的状态机传输机制,可以很好地避免SX52网关死机复位后由于状态不一致而无法正常通信,且上层协议又很难发现的危险。因此,可以使用UDP来实现通信(避免TCP连接的开销),而让许多需要的特征(如动态超和重传、拥塞避免、查错等)放置在应用层设计和实现。使用的变量有:

UDP接收数据报的源端口{udpRxSrcPortMSB,udpRxSrcPortLSB};

UDP接收数据报的目的端口{udpRxDestPortMSB,udpRxDestPor

tLSB};

UDP接收数据报的长度{udpRxDataLenMSB,udpRxDataLenLSB};

UDP发送数据报的源端口{udpTxSrcPortMSB,udpTxSrcPortLSB};

UDP发送数据报的目的端口{udpTxDestPortMSB,udpTxDestPortLSB};

UDP发送数据报的长度{udpTxDataLenMSB,udpTxDataLenLSB}。

设计的相关函数有:UDPAppInit(),DPGenCheckSum(),UDPStartPktOut(),UDPProcPktIn(),UDPEndPktOut(),UDPAppProcPktIn(),UDPAppProcPktOut()等。

2.5 SX52 TCP协议的设计与实现

传输控制协议TCP(Transmission Control Protocol)是传输层的重要协议。它提供一个完全可靠的(没有数据重复或丢失)、面向连接的、全双工的流传输服务。本设计中,对复杂的TCP协议做了合理的简化:①因为CAN网络传输速度较快,数据量小且10Mbps的以太网传输一般不会发生阻塞,以太网上的主机也会有足够的能力及时处理通信数据,所以可以固定超时与重传的时间为5s。②RTL8019AS上有两个1500字节的接收缓冲区,且CAN网络为控制网,信息量小,所以可以固定接收窗口为1400字节。③因为我们采用一般的TCP服务就可以满足应用,所以可以忽略紧急指针和选项及填充字段的值。通过上述三点简化,实际上大大简化了TCP协议的实现。因为TCP的超时与重传时间的确定和窗口大小的控制有着较复杂的算法和实现机制。

它的实现变量有:tcpState,{tcpTmpSeq4,tcpTmpSeq3,tcpTmpSeq2,tcpTmpSeq1},{tcpTmpAck4,tcpTmpAck3,tcpTmpAck2,tcpTmpAck1},{tcpUnAckMSB,tcpUnAckLSB},tcpRxFlags,{tcpCheckSumMSB,tcpCheckSumLSB},{tcpLengthMSB,tcpLengthLSB},{tcpTmpMSB,TcpTmpLSB},{tcbLocalPortMSB,tcbLocalPortLSB},{tcbRemotePortMSB,tcbRemotePortLSB},{tcbSndUna4,tcbSndUna3,tcbSndUna2,tcbSndUnal},{tcbRcvNxt4,tcbRcvNxt3,tcbRcvNxt2,tcbRcvNxt1},tcbOffset,tcbFlags,{tcbSendWinMSB,tcbSendWinLSB},{tcpTimerMSB,tcpTimerLSB}等。

相关函数有:TCPIPInit(),TCPRxHeader(),TCPProcPktIn(),TCPTransmit(),TCPReTransmit(),TCPAppPassiveOpen(),TCPAppActiveOpen(),CPAppClose(),TCPAddRcvNxt(),TCPIncRcvNxt(),TCPIncSndUna(),TCPCopySeqToNxt(),TCPAckUpdate(),TCPUpdateSeq(),TCPChkSeq(),TCPRestorePrev(),TCPCmpNxtSeq(),TCPSendEmptyPkt(),TCPSendReset(),TCPSendSyn(),TCPSendISN(),TCPSendSynAck()TCPSendAck(),TCPSendFin(),TCPCheckSuminit(),CPCheckSumAcc(),TCPCheckSumAddHdr(),CPTxByte(),TCPStartPktOut(),TCPAppInit(),TCPAppTxBytes(),TCPAppTxData(),TCPAppTxDone(),TCPAppRxBytes(),TCPAppRxData(),等。

2.6 TCP和IP传输层协议的选择

把TCP/IP协议应用到控制网络中如何选择传输层协议类型很关键。如果要与现有的应用程序通信,必须使用与其相同的协议类型。在实际应用时,从可靠性来说,TCP提供了可靠的数据连接,UDP和直接访问IP的一些协议是不可靠的,数据报可能会丢失、损坏或重复;从性能上讲,UDP的性能最快,可靠性、流量控制重组包和连接维护等附加开销降低了TCP的性能。对于速度比较慢的系统来说,如温度、湿度传感器,选择TCP或UDP都无所谓,对于不太重要的传感器选用UDP就可以了;对于可靠性要求较高的传感器,应该选用TCP协议;对于实时性要求高的网络设备,如网络会议系统、IP音响、实时播放的电视等设备,数据传输率较高,应该选用UDP协议;有些有严格要求的同步系统应采用UDP;数据监控系统传输的可靠性要求较高,应采用TCP;Web和Email也应采用了TCP。总之,要根据实际情况来确定选用何种协议。

结语

针对本嵌入式异构网络互连方案,对TCP/IP协议栈简化设计为SX52型CAN总线与以太网互连方案,达到了测控通信系统高实时性、可靠性和嵌入式设计的要求。该互连方案很好地保证及管理监控层和生产测控层之间的连接,方便了上下层信息交换,能满足工厂、变电站等工业场合的应用要求。

篇2:TCP/IP协议栈在嵌入式异构网络互联中的应用

TCP/IP协议栈在嵌入式异构网络互联中的应用

摘要:随着测控技术与网络技术日益紧密的结合,测控系统接入互联网已经成为大势所趋。本文阐述在一种异构网络互联――CAN总线与以太网互联系统设计方案中嵌入式TCP/IP协议栈的设计与实现。从而实现了将基于TCP/IP协议的计算机网络设备与基于CAN总线协议的底层现场网络连通。

关键词:TCP/IP协议栈 CAN总线 以太网 互联网 异构结构

引言

Internet现已成为社会重要的信息流通渠道。如果嵌入式系统能够连接到Internet上面,则可以方便、低廉地将信息传送到几乎世界上的任何一个地方。可以预言,嵌入式设备与Internet的结合代表着嵌入式系统和网络技术的真正未来。随着IPv6的应用,设备都可能获得一个全球唯一的IP地址,通过IP地址和互联网相连成为一个网络设备。但是传统的TCP/IP协议在实现实时性方面做得不够好,它把大量的精力花在保证数据传送的可靠性以及数据流量的控制上。而在实时性要求比较高的嵌入式领域中,传统的TCP/IP不能满足其实时要求。另外,传统TCP/IP的实现过于复杂,需占用大量系统资源,而嵌入式应用的`系统资源往往都很有限。因此,需要把传统TCP/IP在不违背协议标准的前提下加以改进实现,使其实现性得到提高,占用的存储空间尽可能少,以满足嵌入式应用的要求。

在大型企业自动化系统中,上层企业管理层和生产监控层一般采用的都是以太网和PC机,而在下层车间现场都是采用现场总线和单片机测控设备。上下两层的沟通,通常采用工业控制机加以太网卡,再加上PC机插槽上的接口卡和并行打印口EPP接口卡来实现。这种连接方式成本高,开发周期长。针对这些情况,本文提出了一种单独的嵌入式CAN-以太网网关互连系统的设计方案,成功地实现以太网和现有的CAN总线网的直接数据传输。

1 异构网络互联系统结构设计

CAN总线是一个设备互连总线型控制网络。在CAN总线上可以挂接多达110个设备节点,各设备间可以自主相互通信,实现复杂网络控制系统。但设备信息层无法直接到达信息管理层,要想设备信息进入信息管理层就要通过一种数据网关。

这里设计了一个SX52网关,用于CAN总线与以太网的互连。图1所示的系统总体结构分为三部分:现场测控网络(CAN网络)、嵌入式透明SX52网关和以太网信息管理终端(如监控平台和网络数据库等)。以太网信息管理终端与CAN总线上的CAN节点通过Ethernet、SX52网关、CAN总线相互通信,其中SX52网关起核心异构网络的互连作用。

协议转换是异构网络互连的技术关键和难点。协议转换一般遥相呼应采用分层转换的方法,自低向上逐层进行。目前互连大都是在网络层或网络层展开的,因而必须对互连层以下各层协议逐层向上转换。这种转换方法的依据是协议分层的基本原理,即

[1] [2] [3] [4] [5]

篇3:在TMS320VC5402上实现的嵌入式TCP/IP协议栈

在TMS320VC5402上实现的嵌入式TCP/IP协议栈

摘要:实现一个运行在16位数字信号处理器TMS320VC5402上的小型嵌入式TCP/IP协议栈。对TCP/IP协议中的IP协议、ARP协议、UDP协议进行分析,完成基于TCP/IP协议的嵌入式网络系统。

关键词:DSPTMS320VC5402TCP/IP协议栈嵌入式系统

引言

随着嵌入式系统应用范围的不断扩展及网络应用的日益普及,使得越来越多的嵌入式系统需要支持网络功能。TCP/IP是目前一种被广泛采用的网络协议。TCP/IP是一套把因特网上的各种系统互连起来的协议组,已成为事实上最常用的网络标准之一。本文对TCP/IP协议中的IP协议、ARP协议和UDP协议进行了分析,利用DSP的专用汇编语言实现了自己的通信协议。由此可使DSP直接对Ethernet发来的数据包解分析,并能按照TCP/IP协议正确打包和发送,最终实现DSP与PC机的数据通信,成功地完成了语音数据的采集和发送,实现了DSP与PC机的语音数据传输。

1TCP/IP协议分析

一般在嵌入式系统中实现的TCP/IP协议都是面向数据采集和传输的,所以大部分实现都是IP协议、ARP协议、UDP协议或者是TCP协议。本文完成的是IP协议、ARP协议和UDP协议。一般认为TCP/IP为四层协议,实现的协议栈结构如图1所示。

DSP程序自下而上实现以下协议:

①媒介访问控制MAC(MediaAccessControl),向以太网收发数据。传送的数据格式为Ethernet数据帧格式。Ethernet帧的长度是可变的,但都大于64字节,小于1518字节。它包括头部、数据和尾部三部分。8字节的前导用于帧同步,CRC域用于帧校验。目的地址和源端地址是指网卡的物理地址(MAC地址),具有唯一性。

②地址解析协议ARP(AddressResolutionProtocol),使得物理地址和IP地址可以对应起来。在Ethernet上,使用地址解析协议ARP协议来实现IP地址到MAC地址的动态转换。ARPRequest(ARP请求)和ARPResponse(ARP响应)类型都是0X0806.ARP报文格式包括硬件类型、协议类型、硬件地址长度、协议地址长度、操作字段、源端物理地址、源端IP地址、目的物理地址和目的IP地址。

③Internet网核心协议IP(InternetProtocol),实现IP网络上的数据传输的基础。IP协议提供了一种高效、不可靠和无连接的传输方式。IP报文是IP协议的基本处理单元,是由报头和数据两部分组成的。IP报头包括20字节的固定部分和变长的选项部分。20字节的固定部分包括IP协议的版本号、IP首部长度、服务类型、报文总长度、标识符、片偏移、报文生存时间、首部校验和以及源端IP地址和目的端IP地址。

④用户数据报协议UDP(UserDatagramProtocol),提供不可靠的数据传输功能。它不对要发送的数据进行缓冲,直接把从应用层收到的数据加上UDP首部发送出去。UDP不会把应用层多、次发送的数据合并成为一个包发送出去。这对于编写简单的请求/响应模式的应用是很方便的,而且利用UDP协议对传输速率也没有太大的影响。UDP协议的数据报格式包括源端口口、目的端口号、数据报长度、UDP校验和以及UDP数据。

⑤上层应用协议,对语音数据打包传输,实现DSP与PC机的语音数据传输。

2硬件接口电路

硬件接口电路如图2所示。

微处理器采用的是TI公司生产的TMS320VC5402数字信号处理器。它采用了改进的哈佛结构,操作速率达到了100MIPS.以太网控制芯片采用RTL8019AS,是台湾Realtek公司生产的一种高度集成的以太网控制器。它实现了以太网媒介访问层(MAC)和物理层(PHY)的全部功能。译码、电平变换及向功能由XC95144xl完成。它是Xilinx公司生产的低功耗CPLD器件。HR61001G是中山汉仁电子有限公司生产的10BASE-T接口器件,起低通滤波和隔离变压等作用。

3软件设计

3.1DSP上嵌入式TCP/IP协议的汇编程序设计

由于DSP的资源有限,所以网络协议根据嵌入式应用进行了裁减。本设计中完成了ARP、IP、UDP等部分协议,既能够保证DSP接入以太网,又使DSP资源能够满足嵌入式系统应用的要求。

首先介绍一下所设计的DSP接收和发送以太网数据包所使用的数据结构。作者选择了联合体结构作为DSP接收和发送以太网数据包的缓冲区。联合体允许大小和类型不同的定义临时存储在同一存储器空间。这样的好处是各层协议之间数据的传递,实质上是数据指针在传递,而不是数据拷贝传递。而且各层协议可以直接使用该缓冲区,因为缓冲区内的结构体完全

是按照各个协议的帧格式设计的。在联合体databuf中有四个结构体成员―ethernetpkt、ippkt、udppkt、arppkt,分别对应着以太网数据帧、IP协议、UDP协议、ARP协议的帧格式。这4个结构体成员是按照它们各自协议的帧格式进行定义的。值得注意的是,因为databuf中存储的`是RTL8019AS发送的以太网数据帧,联合体的成员共用databuf缓冲区,所以在各个结构体中要预留低层协议报头存储空间。例如,IP协议的结构体ippkt就要在结构体定义中留下ethernetpkt报头的存储空间,即ippkt定义中前9个整型空间不能使用,从第10个整型空间开始才是IP数据报的内容。

下面分4层介绍所完成的嵌入式TCP/IP协议。

①物理层:主要完成以太网控制器RTL8019AS的复位,寄存器的初始化,并设置RTL8019AS的工作方式、中断响应、DMA通道接收缓冲区的地址设置等。

初始化程序如下:

WRITE0x21,CR/*设置命令寄存器,选中第0页*/

WRITE0x4c,PSTART/*页起始地址寄存器初始化,设定接收缓冲区起始页地址*/

WRITE0x80,PSTOP/*页停止地址寄存器初始化,设定接收缓冲区终止页地址*/

WRITE0x4c,BNRY

/*页边界地址寄存器初始化,设定从接收缓冲区读取数据的位置,读指针*/

WRITE0x40,TPSR/*发送页地址寄存器初始化,设定发送缓冲区的起始页地址*/

WRITE0xcc,RCR

/*接收配置寄存器初始化,使用接收缓冲区,仅接收自己地址的数据包、广播地址数据包和多点播地址包,小于64字节的包丢弃,校验错的数据包不接收*/

WRITE0xe0,TCR

/*传输配置寄存器初始化,启用CRC自动生成和自动校验,工作在正常模式*/

WRITE0xc9,DCR

/*数据配置寄存器初始化,使用FIFO缓存,工作在正常模式,DMA传输数据16位宽*/

WRITE0x01,IMR/*中断屏蔽寄存器初始化,使能数据包正确接收中断*/

WRITE0xff,ISR/*复位中断状态寄存器*/

WRITE0x61,CR/*设置命令寄存器,选中第1页*/

WRITE0x4d,CURR

/*当前页地址寄存器初始化,指向当前正在写的页的下一页,写指针*/

其中WRITE为宏指令,其定义如下:

WRITE.macrodata,reg

STdata,*(net_reg)

PORTW*(net_reg),reg

RPT#(20-1)

NOP

.endm

②网络层:主要实现IP协议和ARP协议。当DSP接收到正确的以太网数据包以后,调用check_packet函数处理。如果是ARP请求,则发送一个ARP应答;如果是ARP应答,则把对方的IP地址和以太网地址放到ARP缓存中;如果是IP包,则调用IP处理模块处理,接收数据。

check_packe函数如下:

arp:CMPM*(databuf.ethernetpkt.protocol),#0x0608

;判断协议类型是否为ARP协议

BCip,NTC

CALLarp_process;调用ARP协议处理模块

ST#taskfree,*(task);设置空闲任务指针

Btaskfree;跳转到空闲任务

Ip:CMPM*(databuf.ethernet.protocol),#0x0008;判断协议类型是否为IP协议

CC

ip_process,TC;若为IP协议,调用IP协议处理模块

ST#taskfree,*(task);设置空闲任务指针

Btaskfree;跳转到空闲任务

arp_process:接收ARP请求后,封装好ARP数据报,调用send_packet函数完成发送。在本设计中,DSP工作复位时,ARP协议发送一个ARP请求,发送自己的IP地址和物理地址给PC机。

ip_process:接收IP数据报后,判断协议,协议如果为17,即是UDP协议,则调用函数udp_process,处理UDP数据报,否则丢弃该数据报。在本设计中,正确接收一帧数据报后,会给PC机一个应答信息,通知PC机已经正确接收了数据报,可以继续发送数据。应答信息的封装首先调用create_udp_packet完成对应答信息的UDP协议的封装,然后调用create_ip_packet函数,这个函数完成了把封装好的UDP数据报再封装成IP数据报。最后调用send_packet函数完成发送。

③传输层:如果IP数据报中的协议类型为17,则为UDP数据报,需要调用udp_process函数处理数据报。正确接收了数据后,给发送一个应答信息,上面已经提到了具体过程,这里不再复述了。这里介绍一下UDP协议的一个难点―UDP数据的和校验。UDP和校验要求加上UDP伪首部以后再进行校验,伪首部格式包括32位源IP地址、32位目的IP地址、8位数据0、8位协议和16位UDP数据长度。作者根据接收缓冲区的内存管理特点,即接收缓冲区的成员结构共用同一块数据存储区,所以将IP协议的帧头从生存时间开始到帧头结束封装成UDP伪首部。其实这样做,只需将8位生存时间改为全0,16位首部和改为UDP数据长度即可,8位的协议、32位源IP地址和32位的目的IP地址不用改动。作UDP和校验的时候,从IP协议帧头的报文生存时间开始到IP数据报的数据部分结束作带进位的相加,最后比较对和校验就可以了。

④应用层:由于传输的是语音数据,将采集的数据经过A律压缩放到DSP数据缓冲区databuf中,应用TCP/IIP协议将其发送给PC机。将PC机发送来的语音数据A律压缩通过DSP的多通道缓冲串行口发送给声卡。对于语音数据的处理,交给PC机完成,这里只实现数据的传输。

注:TCP/IP协议源码见网站。

3.2PC机上的应用程序设计

使用的VB编程,利用Winsock控件完成语音数据的接收。这方面有很多例子可以借鉴,所以就不作太多的介绍。

结语

目前,基于DSP的嵌入式以太网的多媒体应用越来越受到广泛的关注和应用,而且基于TCP/IP协议的嵌入式网络系统已经成功地应用到了语音传输、远程图像控制和数据传输中。其便于操作、传输速度快等优点,受到了有关专家的一致好评。本文利用数字信号处理器DSP和RTL8019AS完成了嵌入式智能设备接入以大网,成功实现了应用嵌入式网络系统完成语音数据传输的功能。

篇4:嵌入式 TCP/IP 协议单片机技术在网络通信中的应用

嵌入式 TCP/IP 协议单片机技术在网络通信中的应用

摘要:介绍了嵌入式TCP/IP协议单片机在网络通信中的数据传输技术。将TCP/IP协议嵌入式单片机中,借助网卡芯片CS8900实现了单片机在局域网内和通过局域网在因特网上的数据传输。用户终端以单片机系统板为媒介,通过网络与远程数据终端实现数据通信。

关键词:TCP/IP协议 单片机 因特网 局域网 网卡芯片

在因特网上,TCP/IP协议每时每刻保证了数据的准确传输。在数据采集领域,如何利用TCP/IP协议在网络中进行数据传输成为一个炙手可热的话题。在本系统中,笔者利用TCP/IP协议中的UDP(用户数据报协议)、IP(网络报文协议)、ARP(地址解析协议)及简单的应用层协议成功地实现了单片机的网络互连,既提高了数据传输的速度,又保证了数据传输的正确性,同时也扩展了数据传输的有效半径。

1 TCP/IP协议简介

TCP/IP协议是一套把因特网上的各种系统互连起来的协议组,保证因特网上数据的准确快速传输。参考开放系统互连(OSI)模型,TCP/IP通常采用一种简化的四层模型,分别为:应用层、传输层、网络层、链路层。

(1)应用层

网络应用层要有一个定义清晰的会话过程,如通常所说的Http、Ftp、Telnet等。在本系统中,单片机系统传递来自Ethernet和数据终端的数据,应用层只对大的数据报作打包拆报处理。

(2)传输层

传输层让网络程序通过明确定义的通道及某些特性获取数据,如定义网络连接的端口号等,实现该层协议的传输控制协议TCP和用户数据协议UDP。在本系统中使用UDP数据报协议。

(3)网络层

网络层让信息可以发送到相邻的TCP/IP网络上的任一主机上,IP协议就是该层中传送数据的机制。同时建立网络间的互连,应提供ARP地址解析协议,实现从IP地址到数据链路物理地址的映像。

(4)链路层

由控制同一物理网络上的不同机器间数据传送的底层协议组成,实现这一层协议的协议并属于TCP/IP协议组。在本系统中这部分功能由单片机控制网卡芯片CS8900实现。

(本网网收集整理)

2 硬件框图

如图1所示,系统提供RJ45接口连接Ethernet网络,并且提供一个串口给用户使用。系统板可以将从Ethernet上过来的IP数据报解包后送给串口,也可将从串口过来的数据封装为IP包送到局域网中。外部RAM使用61C1024(128KB),从而为数据处理提供了很大的缓存;使用E2PROM――X25045,既可以作为看门狗使用,也可以将IP地址、网卡物理地址和其他参数保存在里面。

CS8900芯片是Cirrus Logic公司生产的一种局域网处理芯片,它的封装是100-pin TQFP,内部集成了在片RAM、10BASE-T收发滤波器,并且提供8位和16位两种接口,本文只介绍它的8位模式。

NE103是一种脉冲变压器,在CS8900的前端对网络信号进行脉冲波形变换。

3 工作原理

3.1 CS8900的工作原理

CS8900与单片机按照8位方式连接,网卡芯片复位后默认工作方式为I/O连接,基址是300H,下面对它的几个主要工作寄存器进行介绍(寄存器后括号内的数字为寄存器地址相对基址300H的`偏移量)。

・LINECTL(0112H)

LINECTL决定CS8900的基本配置和物理接口。在本系统中,设置初始值为00d3H,选择物理接口为10BASE-T,并使能设备的发送和接收控制位。

・RXCTL(0104H)

RXCTL控制CS8900接收特定数据报。设置RXTCL的初始值为0d05H,接收网络上的广播或者目标地址同本地物理地址相同的正确数据报。

・RXCFG(0102H)

RXCFG控制CS8900接收到特定数据报后会引发接收中断。RXCFG可设置为0103H,这样当收到一个正确的数据报后,CS8900会产生一个接收中断。

・BUSCT(0116H)

BUSCT可控制芯片的I/O接口的一些操作。设置初始值为8017H,打开CS8900的中断总控制位。

・ISQ(0120H)

ISQ是网卡芯片的中断状态寄存器,内部映射接收中断状态寄存器和发送中断状态寄存器的内容。

・PORT0(0000H)

发送和接收数据时,CPU通过PORT0传递数据。

・TXCMD(0004H)

发送控制寄存器,如果写入数据00C0H,那么网卡芯片在全部数据写入后开始发送数据。

・TXLENG(0006H)

发送数据长度寄存器,发送数据时,首先写入发送数据长度,然后将数据通过PORT0写入芯片。

以上为几个最主要的工作寄存器(为16位),CS8900支持8位模式,当读或写16位数据时,低位字节对应偶地址,高位字节对应奇地址。例如,向TXCMD中写入00C0H,则可将00h写入305H,将C0H写入304H。

系统工作时,应首先对网卡芯片进行初始化,即写寄存器LINECTL、RXCTL、RCCFG、BUSCT。发数据时,写控制寄存器TXCMD,并将发送数据长度写入TXLENG,然后将数据依次写入PORT0口,如将第一个字节写入300H,第二个字节写入301H,第三个字节写入300H,依此类推。网卡芯片将数据组织为链路层类型并添加填充位和CRC校验送到网络同样,单片机查询ISO的数据,当有数据来到后,读取接收到的数据帧。读数据时,单片机依次读地址300H,301H,300H,301H…。

3.2 单片机工作流程

如图人所示,单片机首先初始化网络设备。网卡IP地址和物理地址存在X25045中,单片机复位后首先读取这些数据以初始化网络。

单片机主要完成数据的解包打包。当有数据从RJ45过来,单片机对数据报进行分析,如果是ARP(物理地址解析)数据包,则程序转入ARP处理程序(因为在网络上正是ARP协议将IP地址和物理地址相映射)。如果是IP数据包且传输层使用UDR协议,端口正确,则认为数据报正确,数据解包后,将数据部分通过串口输出。反之,如果单片机从串口收到数据,则将数据按照UDP协议格式打包,送入CS8900,由CS8900将数据输出到局域网中。

可以知道,单片机主要处理协议的网络层和传输层,链路层部分由CS8900完成。因单片机将数据接收后完整不变地通过串口输出,所以将应用层交付用户来处理,用户可以根据需求对收到的数据进行处理。

在单片机的程序处理中,包含了完整的APR地址解析协议。通过在单片机中正确设置网关、子网掩码等参数,实现了通过局域网单片机与外部因特网上的终端设备的数据通信。

4 应用

这种嵌入式TCP/IP协议的单片机系统板,具有成本低、硬件少、占用面积少、传输速度快、使用方便等优点。适用于现有的网络传输系统,有着广泛的应用前景,特别是数据采集、数据传输领域。目前,在屏幕板数据成像、远程数据采集系统中被使用。

篇5:嵌入式TCP/IP协议单片机技术在网络通信中的应用

嵌入式TCP/IP协议单片机技术在网络通信中的应用

摘要:介绍了嵌入式TCP/IP协议单片机在网络通信中的数据传输技术。将TCP/IP协议嵌入式单片机中,借助网卡芯片CS8900实现了单片机在局域网内和通过局域网在因特网上的数据传输。用户终端以单片机系统板为媒介,通过网络与远程数据终端实现数据通信。

关键词:TCP/IP协议 单片机 因特网 局域网 网卡芯片

在因特网上,TCP/IP协议每时每刻保证了数据的准确传输。在数据采集领域,如何利用TCP/IP协议在网络中进行数据传输成为一个炙手可热的话题。在本系统中,笔者利用TCP/IP协议中的UDP(用户数据报协议)、IP(网络报文协议)、ARP(地址解析协议)及简单的应用层协议成功地实现了单片机的网络互连,既提高了数据传输的`速度,又保证了数据传输的正确性,同时也扩展了数据传输的有效半径。

1 TCP/IP协议简介

TCP/IP协议是一套把因特网上的各种系统互连起来的协议组,保证因特网上数据的准确快速传输。参考开放系统互连(OSI)模型,TCP/IP通常采用一种简化的四层模型,分别为:应用层、传输层、网络层、链路层。

(1)应用层

网络应用层要有一个定义清晰的会话过程,如通常所说的Http、Ftp、Telnet等。在本系统中,单片机系统传递来自Ethernet和数据终端的数据,应用层只对大的数据报作打包拆报处理。

(2)传输层

传输层让网络程序通过明确定义的通道及某些特性获取数据,如定义网络连接的端口号等,实现该层协议的传输控制协议TCP和用户数据协议UDP。在本系统中使用UDP数据报协议。

(3)网络层

网络层让信息可以发送到相邻的TCP/IP网络上的任一主机上,IP协议就是该层中传送数据的机制。同时建立网络间的互连,应提供ARP地址解析协议,实现从IP地址到数据链路物理地址的映像。

(4)链路层

由控制同一物理网络上的不同机器间数据传送的底层协议组成,实现这一层协议的协议并属于TCP/IP协议组。在本系统中这部分功能由单片机控制网卡芯片CS8900实现。

2 硬件框图

如图1所示,系统提供RJ45接口连接Ethernet网络,并且提供一个串口给用户使用。系统板可以将从Ethernet上过来的IP数据报解包后送给串口,也可将从串口过来的数据封装为IP包送到局域网中。外部RAM使用61C1024(128KB),从而为数据处理提供了很大的缓存;使用E2PROM――X25045,既可以作为看门狗使用,也可以将IP地址、网卡物理地址和其他参数保存在里面。

CS8900芯片是Cirrus Logic公司生产的一种局域网处理芯片,它的封装是100-

[1] [2] [3]

篇6:TCP/IP在网络中的高效配置

TCP/IP在网络中的高效配置

TCP/IP在网络中的高效配置<?xml:namespace prefix = o ns = “urn:schemas-microsoft-com:office:office” />

罗光亮  龙岗区信息咨询开发中心  深圳.龙岗

 

摘  要:本文详细分析了在网络中最常用的TCP/IP协议的原理和寻址方式,通过实例来描述TCP/IP在网络中进行子网分割和应用,使人对TCP/IP有一个更为充分的认识和应用。

关键词:协议;寻址;因特网

 

引言

随着计算机网络应用的日益普及,TCP/IP Internet协议已成为计算机工业中开放系统互连的事实上的标准。TCP/IP协议,即Transmission Control Protocol/Internet Protocol(传输控制协议/因特网协议),是目前最完美并广为接受的通信协议之一,它应用于在广域网中实现不同类型的网络以及不同类型的芯片和操作系统的主机之间的相互通信,各种类型的以太网中,如Windows 95/98的对等网、Windows NT、Unix、Linux、NetWare,目前都广泛地支持该协议。

 

TCP/IP寻址

在管理

TCP/IP网络时,一个最有挑战性的工作是管理IP地址和保管记录好IP与地理位置的对应关系,尤其对于一个新的管理员或刚接触管理IP地址的人更是如此。信息从一个主机取出,放到另一个主机的时候,有三种东西起了作用,即主机名、主机地址、主机路径。这就关系到IP寻址的问题。

一、IP地址类型

为了控制IP寻址的方式,制定了类型结构,即把IP地址分为五类(A-E类),有三种用在了商业网络中。

A类  A类地址的高端位总是置为0。只要最左一位置

0,剩下的位数不管是0或1,都是A类地址。因为第一个八位组决定网络地址的类型,只要第一个八位组小于128就是A类地址。如:10.35.64.23是一个A类的TCP/IP地址。如果用缺省的A类地址子网掩码255.0.0.0。则网络部分地址为10.0.0.0,主机部分地址为:0.35.64.23。总共有128(0-127)个A

类地址,但每个A类网络可以有16777216(224)个不同的主机标识。

B类  B地址是IP地址的高端前两位置位10。并且B类IP地址中,前两个8位组表示网络部分,后两个8位组表示主机部分。B类地址范围是从128.0.0.0至191.255.0.0。如136.35.26.64是

一个B类TCP/IP地址。用B类缺省子网掩码255.255.0.0与此地址进行位操作,则网络部分为136.35.0.0,主机部分为0.0.26.64。B类可以有16384个网络地址,每个网中可有65536(216)个不同的主机标识。

C类  C类地址高端的三位设置为110。C类地址前三个八位组作为网络地址,最后一个八位组作为主机地址。C

类地址的范围是从192.0.0.0到223.255.255.255。如198.35.64.85是一个C类TCP/IP地址,用C类缺省子网掩码255.255.255.0,则网络部分是:198.35.64.0,主机部分是0.0.0.85。C类有2097152个网址,每个C类网可有256(28)个不同的主机标识。目前局域网中最常用的是C类IP

地址,我单位(龙岗区信息中心)局域网主机的`IP地址为:192.168.168.1和192.168.168.2,子网掩码是255.255.255.0。

最后两类IP地址到现在还没有应用,这里不作介绍。

二、子网分割(以C类地址为例)

在实际应用中,即使是使用C类网址,也会浪费掉相当一部分IP地址,有一种更有效的方法使用IP地址,这就是子网分割。子网分割就是利用主机地址提供更多网址的技巧,减少了每段网中的主机数,并且更有效地利用配置给我们的网络地址。

每个IP地址有两部分组成,一部分为网络地址,一部分为主机地址。C

类地址用前三个8位组表示网络地址,最后一个8位组为主机地址。像如下形式表示,其中N代表网络,H代表主机。

NNNNNNNN.NNNNNNNN.NNNNNNNN.HHHHHHHH

建一个子网掩码,就是把部分H变为N,由此得的结果用于网络地址。决定有多少个H需要变为N的公式为2x-2=Y,其中X表示用于网络地址的位数,Y是得到的网络个数结果。如用主机部分的前三位给网络部分,地址如下所示:

NNNNNNNN.NNNNNNNN.NNNNNNNN.NNNHHHHH

用公式计算,我们有23-2=6个子网,每个子网可以有25-2=30个主机。在缺省的情况下,C类地址的子网掩码是255.255.255.0,这表示前三个8位组用作网络地址,最后一个8位组用作主机地址。现在我们决定有最后8位组的前三位也用于网址,而只用后五位作为主机地址,我们把前三位设置为1,把后五位主机地址设置为0。

128    64   32    16    8    4    2    1

1      1    1     0     0    0

篇7:TCP/IP在网络中的高效配置

罗光亮  龙岗区信息咨询开发中心  深圳.龙岗

摘  要:本文详细分析了在网络中最常用的TCP/IP协议的原理和寻址方式,通过实例来描述TCP/IP在网络中进行子网分割和应用,使人对TCP/IP有一个更为充分的'认识和应用。

关键词:协议;寻址;因特网

引言

随着计算机网络应用的日益普及,TCP/IP Internet协议已成为计算机工业中开放系统互连的事实上的标准。TCP/IP协议,即Transmission Control Protocol/Internet Protocol(传输控制协议/因特网协议),是目前最完美并广为接受的通信协议之一,它应用于在广域网中实现不同类型的网络以及不同类型的芯片和操作系统的主机之间的相互通信,各种类型的以太网中,如Windows 95/98的对等网、Windows NT、Unix、Linux、NetWare,目前都广泛地支持该协议。

TCP/IP寻址

在管理TCP/IP网络时,一个最有挑战性的工作是管理IP地址和保管记录好IP与地理位置的对应关系,尤其对于一个新的管理员或刚接触管理IP地址的人更是如此。信息从一个主机取出,放到另一个主机的时候,有三种东西起了作用,即主机名、主机地址、主机路径。这就关系到IP寻址的问题。

一、IP地址类型

为了控制IP寻址的方式,制定了类型结构,即把IP地址分为五类(A-E类),有三种用

[1] [2] [3] [4] [5] [6]

篇8:H.248/Megaco协议在全IP网络中的应用

H.248/Megaco协议在全IP网络中的应用

摘要:软交换和全IP网络是通信技术发展的趋势。介绍了应用于MGC和MG之间的H.248/Megaco协议,以及如何在TCP和UDP上传输该协议的各种消息。讨论了提高该协议在IP网上传输安全性的两种方法。

关键词:H.248*Megaco 软交换 全IP网络 安全

随着IPv6技术的成熟和市场的发展,网络的全IP化是未来通信网络发展的必然趋势,传统电路交换网和互联网也正在正经相融合,电信网的核心部分将演化成为单一的分组网络。作为下一代网络(NGN)控制核心的软交换,结合了传统电话网络可靠性和IP技术的灵活性、有效性等优点,是传统的电路交换网向分组化网络过渡的重要网络概念。软交换的核心思路就是通过业务与呼叫控制分离能主呼叫控制与承载分离实现相对独立的业务体系,使业务真正于网络,灵活有效地实现业务的提供。因此将传统的网关分解为媒体网关控制器MGC(Media Gateway Controller)和媒体网关MG(Media Gateway),这种结构的最大好处在于业务和网络规模具有良好的可扩展性。

媒体网关可以划分为中继媒体网关、ATM中继媒体网关和综合业务媒体网关等类型,主要用于终结电路交换网的媒体流以及负责各种用户或接入网的综合接入。媒体网关控制器则对与媒体网关中的媒体通道的连接控制相关的呼叫状态部分进行控制。目前,媒体网关控制器与媒体网关之间通过H.248/Megaco协议进行通信。媒体网关控制器可以通过它实现对媒体网关的控制,媒体网关也可以通过向媒体网关控制报告用户端的事件,从而实现正常的通信。

1 软交换的体系结构及H.248/Megaco协议

软交换设备(Soft Switch)也称为呼叫服务器(Call Server)或者媒体网关控制器MGC,它是NGN的控制功能实体,为NGN提供具有实时性要求的业务呼叫控制和连接控制功能,是呼叫与控制的核心。MGC的功能主要包括呼叫控制功能、业务提供功能、业务交换功能、资源管理功能、互联互通功能、SIP代理功能、媒全网关接入功能等。软交换网络从功能上可以分为应用层、控制层、传输层和接入层,如图1所示。

应用层利用底层的各种网络资源为用户提供丰富多样的网络业务。主要包括应用服务器AS(Application Server)、AAA服务器(Authority Authentication and Accounting Server)、策略服务器PS(Policy Server)和智能网SCP等。其中最主要的功能实体是应用服务器,它是软件交换网络体系中业务的执行环境。

控制层主要提供呼叫控制、连接控制、协议处理等能力,并为业务层提供访问层各种网络资源的开放接口。该层的主要组成部分是MGC。

传输层负责提供各种信令和媒体流传输的通道,网络的核心传输网将是IP分组网络。

接入层提供各种网络和设备接入到核心骨干网的方式和手段,主要包括信令网关、媒体网关、接入网关等多种接入设备。

在通信系统中,控制是通过协商解决的,相应地就必须有协议。在NGN体系结构中,软交换作为控制中心,正是通过支持H.248/Megaco、SIP、SIGTRAN、BICC、H.323等多种协议实现的。

软交换设备之间采用SIP(Session Initiation Protocol)协议或者BICC(Bearer Independent Call Control)协议,软交换设备与信令网关之间采用信令传送协议SIGTRAN(Signaling Transport)在IP网络中传递电路交换信令。在软交换设备与媒体网关、H.248终端以及接入网关之间则采用H.248/Megaco协议。

H.248/Megaco协议是由ITU-T第16工作组提出的媒体网关控制协议,它是在早期的MGCP协议(RFC2705)基础上结合其它媒体网关控制协议特点发展而成的种协议。它提供控制媒体的建立、修改和释放机制,同时也可携带某些随路呼叫信令,支持传统网络终端的呼叫,解决了H.323的复杂、伸缩性差着问题,是下一代网络关键的媒体网关控制协议。

H.248/Megaco的另一个特点是消息格式既可以采用文本格式,也可以采用ASN.1的二进制编码格式。在对媒体流进行描述时,如果消息格式是文本格式,则采用SDP描述媒体流。如果消息格式是二进制编码格式,则使用协议规定的编码。因此在协议实现时,若要求各厂商设备互通,就需要实现两种编码方式。这一特点是IETF和ITU-T合作的结果。H.248/Megaco协议中的主要概念有终结点、关联和包:(本网网收集整理)

(1)终结点(Termination)是媒体网关上的一个逻辑实体,能够发送和接收一种或多种媒体,如模拟用户接入网关中的电话线、中继网关中的中继电路,一个终端在任一时刻属于且只能属于一个关联。

(2)关联(Context)是一些终端之间的联系,描述了终端间拓扑关系和媒体混合/交换的参数,表示一组终结点之间的连接关系。在一个关联中可以存在若干个终结点,其数目完全由媒体网关的特性决定。空关联表示所有与其它终点没有

联系的终结点。

(3)包(Package)通过允许终结点具有可选的特性、事件、信号和数据,媒体网关控制协议实现了对具有不同特点的终结点的支持。同时,为了实现媒体网关与媒体网关控制器的互操作,这些可选项可以被组合成包。

H.248/Megaco协议建立了多种传输机制,保证了协议消息在媒体网关和媒体网关控制器之间的可靠传输。

2 TCP/UDP协议的区别及运用场合

H.248/Megaco定义的各种协议消息既可以在TCP上传输,也可以在UDP上传输,TCP和UDP之间的主要区别是可靠性和复杂度。

TCP协议可以提供端到端可靠的数据传输。TCP协议采用了多项提高可靠性的技术以克服底层IP网络传输的不可靠性,它并不区分结构化的数据流,只支持数据流的传输。应用程序必须在连接之前了解数据流的内容,并对其格式进行协商,对数据流的进一步处理完全留给应用程序本身来完成。TCP也允许用户指定连接的安全性和优先级,这两个功能并非是现在所有的TCP产品中都有,但在TCP标准中作了定义。TCP协议还提供了全双工联接、向应用进程提供PUSH功能和流量控制。

UDP协议面向应用程序提供数据传输服务,并且支持组播。与IP层相比,IP层只负责互联网上的一对主机之间的数据传输,实现主机间的通信;而UDP层通过端口机制标识同一主机上运行的多个进程,完成进程间通信。与TCP协议相比,它们同属于传输层,都是完成面向进程的数据传输服务。不同之处在于,TCP协议提供的是面向连接的、可靠的数据传输服务,而UDP提供的是面向无连接的、不可靠的数据传输服务。

所以,对广播或多播应用程序必须使用UDP。此时任何期望的错误控制必须加入到应用程序中。UDP也可以用于较简单的请求一应答式应用程序,但是应用程序内部必须有检查错误的功能,至少涉及确认、超时和重传。UDP不适用大量数据的传输,因为大量数据的传输要求将窗口式流控、拥塞避免和慢启动等特性在应用程序中实现,这也意味着要在应用程序中重建TCP。

利用UDP传输H.248/Megaco消息时,如果对等实体没有提供相应的通信端口,各种指令应当被送到默认端口上:对于文本编码的操作,端口号应当使用2944;对于二进制编码操作;则端口号应当使用2945。在UDP上传输消息可能会发生丢失,如果没有及时响应的话,命令就会重复,从而导致MG状态的不可预料性,所以,传输进程必须能够提供一种“At-Most-Once”功能,以防止命令的重复执行。

利用TCP传输H.248/Megaco消息时,如果对方没有提供端口的话,各种指令应当被送到默认端口上。TCP是一个基于流的协议,使用TPKT来描述TCP流中的'各种消息。在面向事务的协议中,事务请求与响应消息仍然有可能由于这样那样的原因而丢失。因此,建议各种实体使用TCP传输机制作为每一次请求和响应过程实现应用层的定时器,这一点与对UDP上应用层帧结构的描述是类似的。

虽然在TCP上传输的水洗步会发生传输丢失,但是事务请求或其响应消息的丢失在实际实现中仍然有可能发生。如果没有及时响应的话,指令就会重复。大多数指令的操作要求是不一样的。因此,MG的状态是无法预料的,所以,在使用TCP时也应该提供“At-Most-Once”功能。

另外,在协议中还加入了三次握手机制和计算重传机制来进一步提高协议的可靠性。

3 协议传输安全与加密

由于IP网络是一个开放的网络,极易受到非法攻击。为了防止未经授权的实体利用媒体网关控制协议建立非法呼叫,或者干涉合法呼叫,应当建立一整套严密的安全机制,对此协议的传输进行保护。目前提出了两种方案来解决在IP网络上传输H.248/Megaco协议的安全问题:一种是采用IPsec对协议传输进行安全保护;另一种是采用过渡性AH方案。

利用Ipsec对H.248/Megaco消息的传输主要包括封装安全载荷协议ESP(Encapsulating Security Payload)、网络认证协议AH(Authentication Header)和密钥管理协议IKE(Internet Key Exchange)三部分。它规定了如何在对等层之间选择完全协议、确定安全算法和密钥交换,向上提供了访问控制、数据源认证、数据加密等网络安全服务。

封装安全载荷协议ESP对媒体网关/终端设备和软交换设备之间传送的消息提供加密,为IP数据包提供完整性检查、认证和加密,在MGC向MG传送会话密钥SK(Session Key)时用于加密包含密钥的会话描述信息。

网络认证协议AH对在媒体网关/终端设备和软交换设备之间传送的消息提供数据源认证、无连接完整性保护和可选的抗重发保护。此协议还提供了数据完整性和反重插保证,能保证通信免受篡改,但不能防止窃听,用于保护媒体网关控制器MGC和媒体网关之间的协议连接。

密钥管理协议IKE提供媒体网关/终端设备和软交换设备之间进行密钥协商的机制,以保证密钥的安全性。

如果底层协议不支持IPsec,则应建议采用过渡性AH方案。由于IPSec要求AH头或ESP头紧跟在IP包头后面,这在应用层上的实现有一定难度,所以H.248/Megaco定义了一种折衷的AH头,调整了数据完整性检查的范围,作为在底层操作系统或传输网络不支持IPSec时的一种临时解决方案。过渡性AH方案是在H.248/Megaco协议头中定义可选的AH头来实现对协议连接的保护,过渡性AH方案只能提供一定程序的保护,例如该方案不能提供防窃听保护。同时,为了保护在媒体网关之间传输的媒体流免受由非法实体发起恶意攻击,媒体网关控制器也可以通过媒体网关控制协议向媒体网关提供会话密钥,用来对音频消息进行加密。

由于IPSes工作在网络层,在当前的IPv4网络上完全实现H.248/Megaco的安全机制有一定难度。另外,H.248/Megaco协议采用的IPSec对系统性能有较大的影响,这种影响在采用公钥算法对数据包进行加解密时尤其明显。与IPv4不同,IPv6已经把Ipsec集成到了自身协议中,通过IPsec提供IP层的安全性。IPv6实现了认证头AH和封装安全载荷ESP两种机制,前者实现数据的完整性及对IP数据包的来源的认证,保证分组确实来自源地址所标记的节点,后者提供数据加密功能,实现端到端的加密。

3GPP已经决定以IPv6为基础构筑下一代移动网络,很多通信厂商正致力于构建基于IPv6的全IP的3G核心网(A11-IP Core Network)。3GPP R4以及随后的R5结构中都将传统的MSC分割成MGC和MG,它们之间采用H.248/Megaco等协议相互通信,从而实现呼叫控制和处理,与网络承载相分离。因此基于IP的H.248/Megaco协议的应用,以及适应IPv6环境的进一步发展,是未来移动通信研究的一个重要课题

篇9:关于OSPF路由协议在企业网络中的应用

现在的企业网络搭建中经常会用到OSPF,在此对该协议做一些阐述,

ospf 称为开放最短路径优先协议,所有设备厂商都支持的一种协议属于链路状态路由协议,适用于大型园区企业网络当中。

OSPF具有很多优点,1.采用触发更新路由,只要网络拓扑结构一旦发生变化,立即会触发更新路由表。2.根据链路状态来发送一些路由。3.采用组播发送路由协议。共有两个可用的组播ip地址224.0.0.5、224.0.0.6。5.适用的网络规模很大,几乎没有规模的限制6.metric cost。7.收敛速度比较快,而且不会造成路由环路8.有三张表格:(1)邻居表格通过发送HELLO包来与邻居交换机互换信息(2)链路状态数据库又称为LSDB(3)根据lsdb数据库运算出整个路由表(9)支持可变长子网掩码和子网不连续。而这些优点都是其它低端路由协议所不具备的。(10)支持到同一个目的地址的多条等代价路由。

OSPF路由表的产生过程:

每个路由器根据链路状态向其他路由器发送LSA(数据链路状态数据库),然后网络中的路由器将受到的所有LSA汇总成一个LSDB(链路状态数据库)。然后每台路由器使用SPF算法计算出一张最短路由的路径树状结构,从而得到各个节点的路由,产生路由表。

ospf可划分为单区域配置和多区域配置,单区域常应用于一些小型的网络中。

在企业网络中大部分使用的是多区域ospf,整个网络可以看做由多个自制系统组成。在ospf的不同区域中,area 0为骨干区域,在骨干区域中,为了保障数据包转发的速度,路由器的数量越少越好,而且作为area 0中的路由器,稳定性要非常强,传输速度越快越好。

area1 为标准区域,每个标准区域都必须与骨干区域(area 0)用路由器相连,而且在标准区域之间是不能直连的。

Stub区域通常位于自制系统边界,又称为末节区域。

完全Stub区域又称为完全末节区域。这种区域中,没有去往任何其他自制系统的路由。

ospf模型中根据路由器所处的位置不同,所起到的作用和名称也不尽相同;路由器的端口被分配到多个区域中去,那么这个路由器称为ABR(区域边界路由器)。ABR均为骨干区域的边界路由。连接自制系统的路由器称为ASBR(自制系统边界路由器)。由于二者之间大部分运行的路由协议不同,所以通常需要对该路由进行重分发,才能实现自治区域与其他网络的通信。

关于OSPF多区域配置:

设备需求:6台路由器,其中ROUTER2有4个SERIAL接口。

实验目的:

其中R1、R2、R3、R4在不同的区域内运行ospf协议;

R1在area 1作为Stub区域,R4在area 2作为完全Stub区域。

R5、R6在自制区域内运行RIP v1,实现全网互通。

在RIP中学习一条默认路由与OSPF进行通信;

在OSPF 中area0区域学习到所有详细的路由表

在area 2区域中只学到一条默认路和本区域内网络设备的路由表由向全网各个网络设备之间实现通信

以CISCO路由器为例:

下面为配置信息:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1111111111111111111111111111

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Router>en 15[进入路由器管理级别15]

Router#conf ter

Router(config)#hostname R1[为路由器起别名]

R1(config)#INT F0/0【进入接口配置IP地址】

R1(config-if)#ip addres 192.168.1.1 255.255.255.0

R1(config-if)#no shut

R1(config-if)#int s1/0

R1(config-if)#ip add 192.168.2.1 255.255.255.0

R1(config-if)#no shut

R1(config-if)#router ospf 10【为R1配置】

R1(config-router)#network 192.168.1.0 0.0.0.255 area 1 【ospf的网段写法,首先写出该网段的IP 地址,然后跟上该网段的反掩码,最后跟上该网段所属的area x区域】

R1(config-router)#network 192.168.2.0 0.0.0.255 area 1

R1(config-router)#exit【R1路由配置完毕】

~~~~~~~~~~~~~~~~~~~~~~~~~~~

2222222222222222222222222222

~~~~~~~~~~~~~~~~~~~~~~~~~~~

Router>en 15

Router#conf ter

Enter configuration commands, one per line.  End with CNTL/Z.

Router(config)#hostna R2

R2(config)#int s1/0

R2(config-if)#ip add 192.168.2.2 255.255.255.0

R2(config-if)#no shut

R2(config-if)#int s1/1

R2(config-if)#ip add 192.168.3.1 255.255.255.0

R2(config-if)#no shut

R2(config)#int s1/2

R2(config-if)#ip add 192.168.6.1 255.255.255.0

R2(config-if)#no shut

R2(config)#router ospf 10【配置ospf协议】

R2(config-router)#network 192.168.2.0 0.0.0.255 area 1

R2(config-router)#network 192.168.3.0 0.0.0.255 area 0

R2(config)#router rip【配置RIP】

R2(config-router)#network 192.168.6.0

R2(config)#router ospf 10

R2(config-router)#redistribute rip subnets 【对rip协议进行重分发,在ospf 区域中学习到各个区域中的详细路由表】

R2(config)#route RIP【下面的rip区域中学习到默认路由】

R2(config-router)#redistribute static

R2(config)#int null 0【注入一条默认路由】

R2(config-if)#ip route 0.0.0.0 0.0.0.0 null 0

R2(config)#

R2(config)#

R2(config)#exit【R2路由配置完毕】

~~~~~~~~~~~~~~~~~~~~

333333333333

~~~~~~~~~~~~~~~~~~~~

Router>en 15

Router#conf ter

Router(config)#int s1/1

Router(config-if)#ip ad 192.168.3.2 255.255.255.0

Router(config-if)#no shut

Router(config)#int s1/0

Router(config-if)#ip add 192.168.4.1 255.255.255.0

Router(config-if)#no shut

Router(config-if)#router ospf 10【配置OSPF】

Router(config-router)#network 192.168.3.0 0.0.0.255 area 0

Router(config-router)#network 192.168.4.0 0.0.0.255 area 2

Router#conf ter

Router(config)#router ospf 10   【作为完全Stub区域的边界路由器,需要在Stub 中声明不要自动汇总路由表,这样能够提高早area 2的各个网络设备之间的速度,需要注意的是末节区域需要在该区域的所有路由器上都声明 area x stub】

Router(config-router)#area 2 stub no-summary 【R3路由配置完毕】

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

4444444444444444444444

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Router>en 15

Router#conf ter

Enter configuration commands, one per line.  End with CNTL/Z.

Router(config)#int s1/0

Router(config-if)#ip add 192.168.4.2 255.255.255.0

Router(config-if)#no shut

Router(config-if)#hostname R4

R4(config)#int f0/0

R4(config-if)#ip add 192.168.5.1 255.255.255.0

R4(config-if)#no shut

R4(config-if)#loop

R4(config)#router ospf 10

R4(config)#router ospf 10  [ospf路由协议的配置方法]

R4(config-router)#network 192.168.4.0 0.0.0.255 area 2

R4(config-router)#network 192.168.5.0 0.0.0.255 area 2

R4(config-router)#exit

R4(config-router)#area 2 stub【设置末节区域】

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

55555555555555555555555555555

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Router>en 15

Router#conf ter

Router(config)#hostname R5

R5(config)#int s1/2

R5(config-if)#ip add 192.168.6.2 255.255.255.0

R5(config-if)#no shut

R5(config-if)#int s1/0

R5(config-if)#ip add 192.168.7.1 255.255.255.0

R5(config-if)#no shut

R5(config-router)#router rip

R5(config-router)#network 192.168.6.0

R5(config-router)#network 192.168.7.0

R5(config-router)#

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

666666666666666666666666666666

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Router>en 15

Router#conf ter

Router(config)#int s1/0

Router(config-if)#ip add 192.168.7.2 255.255.255.0

Router(config-if)#no shut

Router(config-if)#

Router(config-if)#int f0/0

Router(config-if)#ip add 192.168.8.1 255.255.255.0

Router(config-if)#no shut

Router(config-if)#loop

Router(config-if)#

Router(config-if)#exit

Router(config)#router rip【RIP的路由协议配置】

Router(config-router)#network 192.168.7.0【跟上直连的网段】

Router(config-router)#network 192.168.8.0

Router(config-router)#【R6配置完毕】

试验完成

观察R2上的路由表

Gateway of last resort is 0.0.0.0 to network 0.0.0.0

R    192.168.8.0/24 [120/2] via 192.168.6.2, 00:00:22, Serial1/2

O IA 192.168.4.0/24 [110/128] via 192.168.3.2, 00:31:30, Serial1/1

O IA 192.168.5.0/24 [110/129] via 192.168.3.2, 00:02:02, Serial1/1

C    192.168.6.0/24 is directly connected, Serial1/2

R    192.168.7.0/24 [120/1] via 192.168.6.2, 00:00:22, Serial1/2

O    192.168.1.0/24 [110/65] via 192.168.2.1, 00:31:30, Serial1/0

C    192.168.2.0/24 is directly connected, Serial1/0

C    192.168.3.0/24 is directly connected, Serial1/1

S*   0.0.0.0/0 is directly connected, Null0

R2#

观察R4上的路由表

R4为完全末节区域,学习到的路由表只有自己本区域和一条直连路由,

Gateway of last resort is 192.168.4.1 to network 0.0.0.0

C    192.168.4.0/24 is directly connected, Serial1/0

C    192.168.5.0/24 is directly connected, FastEthernet0/0

O*IA 0.0.0.0/0 [110/65] via 192.168.4.1, 00:02:18, Serial1/0

R4#

观察R5上的路由表

R5为RIP区域,在小型网络中应用,外界的路由太多会影响本区域内网络设备的通信速度,因此学习除了本区域,外部区域的路由均为静态默认路由

Gateway of last resort is 192.168.6.1 to network 0.0.0.0

R    192.168.8.0/24 [120/1] via 192.168.7.2, 00:00:19, Serial1/0

C    192.168.6.0/24 is directly connected, Serial1/2

C    192.168.7.0/24 is directly connected, Serial1/0

R*   0.0.0.0/0 [120/1] via 192.168.6.1, 00:00:08, Serial1/2

R5#

本文出自 “学海无涯” 博客,请务必保留此出处zhangc.blog.51cto.com/5627676/950016

关于OSPF路由协议在企业网络中的应用

嵌入式系统设计中UML的应用论文

路由器在网络地址转换中的应用网络知识

光网络技术在城域承载网中的应用网络知识

高职英语网络教学中案例教学的应用探究论文

下载TCP/IP协议栈在嵌入式异构网络互联中的应用(推荐9篇)
TCP/IP协议栈在嵌入式异构网络互联中的应用.doc
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
热门文章
    猜你喜欢
    点击下载本文文档