TDSCDMA网络测试仪IP数据采集卡的研制教案资料_第1页
TDSCDMA网络测试仪IP数据采集卡的研制教案资料_第2页
TDSCDMA网络测试仪IP数据采集卡的研制教案资料_第3页
TDSCDMA网络测试仪IP数据采集卡的研制教案资料_第4页
TDSCDMA网络测试仪IP数据采集卡的研制教案资料_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Good is good, but better carries it.精益求精,善益求善。TDSCDMA网络测试仪IP数据采集卡的研制-第18卷第4期重庆邮电学院学报(自然科学版)Vol.18No.42006年8月JournalofChongqingUniversityofPostsandTelecommunications(NaturalScience)Aug.2006文章编号:1004-5694(2006)04-0448-03TD-SCDMA网络测试仪IP数据采集卡的研制刘伟,张治中(重庆邮电大学通信网与测试技术重点实验室,重庆400065)*摘要:为顺应3G网络IP化的趋势,根据TD-

2、SCDMA网络协议中IP数据包传输相关描述,研制了TD-SCDMA网络测试仪IP数据采集卡,利用网卡加WinPcap驱动的方法实现IP数据包采集,为上层协议分析提供有效消息。在Realtek8139网卡上的测试表明,该设计能可靠地完成IP数据包的采集,完全可以应用于当前TD-SCDMA网络测试。关键词:TD-SCDMA;测试仪;数据采集卡;PCI总线;WinPcap中图分类号:TN915.06文献标识码:A0引言它和分组域一起实现实时和非实时的多媒体业务,并可以实现与电路域的互操作5。近年来TD-SCDMA一直是通信行业关注的一个焦点,回顾TD-SCDMA的研发与产业化进展、技术试验、政府引导

3、等,明显看出我国对TD-SCDMAIP数据采集在TD-SCDMA网络测试仪中是非常重要的一部分。本文描述的是纯IP数据包的采集实现(非IPoverATM部分)。的关注达到了一个新的高度。为了进一步支持TD-SCDMA产业化进展,国家对当前TD-SCDMA产1IP数据采集卡的硬件实现业发展的各个环节给予了支持1。针对我国正大力开发TD-SCDMA第三代移动通信(3G)系统、即将大规模组建3G网络,却没有所必需的实验研发、建网和运行测试设备的现状,在国际上传统通信测试仪表厂商只推出了基于CDMA2000和WCDMA2种标准的测试仪表的情况下,研制出具有自主知识产权的TD-SCDMA移动通信网络测试

4、仪,完善TD-SCDMA产业链,形成系列产品并推向市场,必将产生巨大的社会效益和经济效益。该测试仪主要测试的接口包括Iub,Iur,IuCS,IuPS,Nc,Nb,C/D/E/G/Gr/MSCS-SCP,Gn/Gp,Gi等2-4,主要实现协议分析(解码)、呼叫跟踪、业务统计及分析、网络异常分析、网络分析和优化、协议仿真等功能,采用工控机结构,多链路、多通道的硬件由多个基于PCI总线的数据采集卡(规程板)组成。IP数据采集卡是其中的一个PCI数据采集卡。TD-SCDMA网络从R99演进到R4版本,逐步改进。TD-SCDMA的下一步发展趋势是向R5版本演进,R5版本是全IP化的版本,Iu,Iur和

5、Iub接口增加了基于IP的可选传输方式,使得无线接入网实现了IP化;在核心网方面,最大的变化是在R4的基础上增加了IP多媒体子系统(即IMS系统),从3GPP和TCP/IP相关协议2-5可以看出,TD-SCDMA网络中的IP数据与通常的IP网络中的数据规范相同而且更简单,完全可以直接通过网卡捕获完成数据采集,我们需要做的只是取出网络中的数据供上层分析软件作信令分析。IP数据采集卡的工作流程大致为:由TD-SCDMA网络的相应接口传输过来的以太网帧到达网卡网卡内的单片程序接收帧的目的MAC地址,根据计算机上的网卡驱动程序设置的接收模式判断该不该接收,认为该接收后就产生中断信号通知CPUCPU得到

6、中断信号产生中断,操作系统根据网卡的驱动程序设置的网卡中断程序地址调用驱动程序接收数据放入堆栈应用程序对数据进行处理。我们选择了RealtekRTL8139C芯片的10M/100M自适应网卡来处理以太网帧,该网卡遵循PCI2.2总线规范,支持IEEE802.3u100Base-T和IEEE802.3x全双工流控制,它内建了符合MII规格的收发器(Tranceiver),可以使用DMA直接使用位于内存的缓冲区来保存网络上接收的数据包。为完成对数据包的捕获,需要对网卡的工作模式进行设置。*收稿日期:2005-09-07修订日期:2006-06-03基金项目:国家高技术研究发展计划(863重大专项)

7、(2005AA123780);科技部中小企业创新基金(05c26215111405);科技部中小企业创新基金(No.05C26215111405);重庆市科委科技攻关项目(CSTC,2005AC2040)和重庆市经委指导性计划项目(No.05-1GX-DZ180)。作者简介:刘伟(1978-),男,重庆人,硕士研究生,研究方向为通信网测试,E-mail:L_30;张治中,教授,主要研究方向为通信网测试,光交换和宽带信息网络技术等。aaaaaa第4期刘伟,等:TD-SCDMA网络测试仪IP数据采集卡的研制44922.1IP数据采集卡的软件调试混杂模式-1。代码如下(去掉错误检测等代码,下同):p

8、cap_if_t*alldevs;pcap_if_t*d;正常情况下,网络接口应该只响应这样的2种数据帧:与自己硬件地址相匹配的数据帧和发向所有机器的广播数据帧。而对于网卡来说一般有以下4种接收模式:广播模式:该模式下的网卡能够接收网络中的广播信息;组播模式:设置在该模式下的网卡能够接收组播数据;直接模式:在这种模式下,只有目的网卡才能接收该数据;混杂模式:在这种模式下的网卡能够接收一切通过它的数据,而不管该数据是否是传给它的。所以我们把网卡设置为混杂模式,它就能接收传输在网络上的每一个信息包。2.2Winpcap以太网介质接入控制(mediumaccesscontrol,MAC)子层及其以下

9、层协议由硬件实现,逻辑链路控制(logicallinkcontrol,LLC)子层及其上层协议均由软件实现。Windows操作系统下的网络设备驱动程序遵守网络设备接口规范(networkdeviceinterfacespecification,NDIS),它在分层的网络驱动程序框架中规定了一个标准接口,从而使抽象低层次的硬件提供了高层次网络上的网络管理。我们采用的winpcap(windowspacketcapture)也是用的NDIS,将自己注册为一个协议处理驱动。Winpcap是windows平台下一个免费、公共的网络访问系统7。开发winpcap项目的目的在于为win32应用程序提供访问

10、网络底层的能力。它提供了以下各项功能:捕获原始数据报,包括在共享网络上各主机发送/接收的以及相互之间交换的数据报;在数据报发往应用程序之前,按照自定义的规则将某些特殊的数据报过滤掉;在网络上发送原始的数据报;收集网络通信过程中的统计信息。Winpcap的主要功能是独立于主机协议而发送和接收原始数据报。我们主要用到winpcap的捕获功能,通过对winpcap驱动和winsock的利用8,很多编程变得简单,下面简要介绍数据包的捕获过程。charerrbufPCAP_ERRBUF_SIZE;pcap_findalldevs(&alldevs,errbuf);/获得网络设备指针for(d=allde

11、vs;d;d=d-next)d-name;/d-name就是我们需要的网卡名字字符串pcap_freealldevs(alldevs);/释放alldev资源事实上,winpap也提供另外的高级信息。特别是pcap_findalldevs()函数返回的每个pcap_if结构体都同样包含一个pcap_addr结构的列表,它包含:一个地址列表,一个掩码列表,一个广播地址列表和一个目的地址列表。在此不再详述。2.2.2打开相应网卡并设置为混杂模式打开网卡的功能是通过pcap_open_live()来实现的,下面是pcap_open_live的函数声明:pcap_t*pcap_open_live(ch

12、ar*device,intsna-plen,intpromisc,intto_ms,char*ebuf)Device就是前面我们获得的网卡的名字。它有3个参数snaplen,promisc,to_ms。snaplen用于指定所捕获包的特定部分,这样在某些场合就可以减少拷贝数据的数量从而提高包捕获的效率。promisc指明网卡处于混杂模式,此时网卡可以捕获到发往其它主机的数据包。我们正需要此功能。to_ms参数指定读数据的超时控制,超时以ms计算。当在超时时间内网卡上没有数据到来时,对网卡的读操作将返回。如果该参数为0那么意味着没有超时控制,对网卡的读操作在没有数据到来时将永远堵塞。如果为-1那

13、么对网卡的读操作将立即返回,不管有没有数据可读。代码如下:pcap_t*adhandle;charerrbufPCAP_ERRBUF_SIZE;adhandle=pcap_open_live(d-name,/网卡名称65535,/捕获包的大小2.2.1获得网卡列表1,/混杂模式安装了winpcap驱动之后,其中的pcap.h提供了pcap_findalldevs()函数来实现获得网卡列表(主要是获得网卡的名称),该API返回一个pcap_if结构的链表,表的每项内容含有全面的网卡信息:字段名字、含有名字的描述、有关驱动器的易读信息。它定义为*参数alldevsp是pcap_if_t结构体的指针

14、,如果函数pcap_findalldevs函数执行成功,将获得一个可用网卡的列表,里面存储的就是第一个元素的指针;Errbuf存储错误信息的字符串。返回值int:如果返回0则执行成功,错误返回1000,/读超时为1秒errbuf);/errorbuffer2.2.3捕获数据包并保存为文件pcap_dump()实现将数据包内容依次写入pcap_dump_open()指定的文件中,函数声明如下:voidpcap_dump(u_char*user,conststructpcap_pk-*参数constu_char*sp即数据包内容指针。代码如下:dumpfile=pcap_dump_open(adh

15、andle,argv);/打开文件/*以下代码循环捕获数据并调用packet_handler函数把数据存储到堆文件*/alldevsp,char*errbuf)intpcap_findalldevs(pcap_if_th,constu_char*sp)thdr450重庆邮电学院学报(自然科学版)第18卷pcap_loop(adhandle,0,packet_handler,(unsignedchar*)dumpfile);voidpacket_handler(u_char*dumpfile,conststruct有运行稳定高效、代码简单、同时方便改进等特点。参考文献:pcap_pkthdr*h

16、eader,constu_char*pkt_data)pcap_dump(dumpfile,header,pkt_data);1王炎.TD-SCDMA系统测试情况分析EB/OL.2005-08-04.3设计结果2cn.3GPPTS23.002V5.12.0.Networkarch-i数据包保存下来之后就可以读取出来供应用软件分析。为验证捕获效果,我们通过接收另一个机器的已知数据IP包然后用该软件抓包,再用pcap_tectureEB/OL.(2003-09-20)2006-05-30./ftp/Specs/2004-09/Rel-5/23_series/23002-5c0.zip.open_o

17、ffline()打开一个堆文件,用pcap_loop()来循环从文件中读取数据,并打印了其中每个包的内容,证实了我们的设计。在文中我们采用的所有代码在VC编译环境下用C+语言实现9,可以打印出捕获的数据包。至此,整个数据采集完成并得到验证。该方案通过初步实践确认在TD-SCDMA网络建网初期数据量不太大的情况下完全能实现IP数据包的采集。如果在一个繁忙的网络上进行截获则需要对应用程序进行必要的性能优化以避免丢失数据包,可以采用多线程的方法来解决:程序中使用3个线程进行操3453GPPTS25.401V5.9.0.UTRANoveralldescriptionEB/OL.(2003-09-20)

18、2006-05-30./ftp/Specs/2004-09/Re-l5/25_series/25401-590.zip.3GPPTS23.060V5.9.0.GeneralPacketRadioService(GPRS);Servicedescription;Stage2EB/OL.(2003-09-20)2006-05-30./ftp/Specs/2004-09/Re-l5/23_series/23060-590.zip.3GPPTS29.060V5.11.0.GeneralPacketRadioService(GPRS);GPRSTunnelling作:只进行捕获操作,它将驱动程序获得的数

19、据Protocol(GTP)acrosstheGnandGpinter-包添加到数据包队列的头部;只进行过滤操作,faceEB/OL.(2003-09-20)2006-05-30.它检查新到的队尾的数据包,检查其是否满足过滤/ftp/Specs/2004-09/条件,如果不满足则将其删除出队列;包处理操作。进行数据6Re-l5/29_series/29060-5b0.zip.李小文,李贵勇,陈贤亮,等.TD-SCDMA第如果有要求更高的应用,就不得不采用一些专用芯片如网络处理器进行处理,对此我们将进一步三代移动通信系统、信令及实现M.北京:人民邮电出版社,2003.完善设计。7TheWinPc

20、apTeam.TheWinPcapmanual4结束语andtutorialEB/OL.2006-05-30.http:/.在当前3G尚未商用的前提下,我们通过多次模拟实验证明,利用该IP数据采集卡,通过100M网卡读入由TD-SCDMA网络的相应接口传输过来的IP数据包,利用winpcap驱动捕获数据包并将其转换成可以识别的数据供上层分析是能够满足TD-SCDMA网络测试要求的。事实上,采用winpcap89ANTHONYJ.JimOhlund.MicrosoftWin-dows网络编程M.2版.北京:清华大学出版社,2002.DAVIDJ.Kruglinski.VisualC+技术内幕M.4版.北京:清华大学出版社,1999.(责任编辑:刘勇)驱动方案对网卡的型号并无严格要求,该采集卡具Ondesignandimplementation

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论