网络数据包分析系统的设计与实现

来源 :商品与质量·理论研究 | 被引量 : 0次 | 上传用户:qq452723692
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:文章阐明网络数据包分析成为研究网络安全的重要方法,然后设计了基于TCP/IP协议的网络数据包分析器,实现了对网络数据的适时截取和分析,为使用者了解当前的网络数据包状况提供了很好的参考。
  关键词:网络数据包; TCP/IP协议; 数据包分析
  
  一、引言
  随着近年来Internet的发展壮大,计算机网络在政治、军事、金融、商业、交通、电信、文教等方面的作用日益增强。网络上各种新业务,比如电子商务、电子现金、数字货币、网络银行、移动支付等业务的兴起,以及各种专网,比如金融网、公安网等的建设,使得在网络上传输的数据越来越敏感,也使得数据安全问题变得越来越重要。
  网络性能分析工具是分析网络状态和研究网络安全的重要方法,通过对网络数据的截取和分析,可以了解当前网络的工作状态和是否有网络攻击行为,并据此决定是否启用网络防御措施。文章设计了一种基于TCP/IP网络数据包分析系统,实现了对IP和TCP数据报文的截获分析的功能①。
  二、网络数据包截获及分析工具设计
  该软件是运用Microsoft Visual C++开发的,它能够迅速地构建下一代应用程序,这些应用程序可以应用到任何互联网设备,并能与任何平台集成②。从总体上看,该软件主要由两大主要部分(功能)构成:
  (1)数据包截获:用程序实现本地网卡状态为"混杂"模式,当网卡处于这种"混杂"方式时,该网卡具备"广播地址",它对遇到的每一个帧都产生一个硬件中断以便提醒操作系统处理流经该物理媒体上的每一个报文包③。
  (2)数据包分析:通过对数据包帧的格式的分析,判断数据包所含协议的类型,源IP地址及目的IP地址,源端口和目的端口④。这样我们对数据包的安全性有所了解。
  数据包捕获模块用于监视和验证网络流量情况,它可以截取或者阅读网络上OSI协议模型中各个协议层次上的数据包。它可以捕获通过原始套接口(Socket)的原始数据包(Raw Packet),当一个数据包到达网络接口时数据包捕获程序就直接从缓存区捕获的数据包,以供数据分析和处理时调用。在数据包捕获程序中,通过设置网卡工作于混杂状态,对网络链路进行监听并收集数据包,从而获得数据包头信息。
  三、数据包截获及分析工具代码实现
  (一)创建套接字。使用Socket()函数创建原始套接字Socketfd=Socket(AF INEF,SOCK RAW,0)⑤。第一个参数是地址类型,设为AFINET~I|是用于不同主机之间的通信;第二个参数即Socket的类型参数,这里使用SOCK RAW;第三个参数是协议参数,指定程序使用具体的协议。这里使用0,表示TCP/IP协议。
  (二)将网卡设置为混杂模式。在程序中使用WSAIoct10函数是用来将网卡设置为混杂模的。IntWSAloctl(SOCKETS,DWORDdwloC-ontrolCode,LPVOID
  IpvinBufer,DWORDcbinBuffer,LPVOID lpvoutBufer,DWORD cbout-Bufer,LPDWORD lpcbByteReturned,LPW SAOV?ELAPPED
  lpOverlapped,LPWSAOVERLAPPED-COMPLETION-ROUTINE IpcompIetionRoutine)⑥。
  (三)捕获数据包。网络接口设置为混杂模式以后,进人捕获数据包的模块。调用Recv(socket,bufer,sizeof(bufer),0)函数⑦。其中第一个参数是以连接套接字的描述符。第二个参数是接收数据的缓冲区地址。第三个参数是缓冲区大小。第四个参数是调用方式,O表示无特殊行为。
  (四)数据包分析。本系统数据包分析模块的实现主要是通过对数据包进行解析然后通过判断iphdr->protocol来实现对数据包的分析的。下面是数据包分析模块实现的主要代码⑧:
  iphdr=(ip_header*)buf;
  TCP协议解析: if(iphdr->protocol==6)//判断此数据包为TCP协议
  {tcphdr=(tcp_header*)(buf+(iphdr->ver_ihl&0x0f)*4);
  sListLine.Format("ThisisaTCPpacket,bread=:%d,packetlen=%.",bread,(iphdr->ver_ihl&0x0f)*4);
  strData.Format("sPort:%d,dPort:%d",ntohs(tcphdr->sPort),ntohs(tcphdr->dPort));
  sListLine+=strData;
  sip.S_un.S_addr=iphdr->sAddress;
  sa=inet_ntoa(sip);
  dip.S_un.S_addr=iphdr->dAddress;
  da=inet_ntoa(dip);
  四、结论
  通过网络数据包截获及分析工具,我们基本上可以了解到网络数据包中所包含的一般信息,该程序提取出数据包中比较有代表性的信息:协议,源/目的地址,源/目的端口以及数据包长度。通过这些信息,我们就可以对网络状态有一个大体上的了解;通过源/目的地址可以知道在网络上有哪些活动的主机;通过数据包长度的累加可以了解到当前网络的流量。本文介绍的以原始套接字的方式对网络数据进行捕获的方法实现起来比较简单,尤其是不需要编写VxD虚拟设备驱动程序就可以实现抓包,使得其编写过程变的比较简便。但由于捕获到的数据包头不包含有帧信息,因此不能接收到与IP同属网络层的其它数据包,如ARP数据包、RARP数据包等。由于所学知识有限,没有对数据包做进一步的分析,而是仅仅给出了对一般信息的分析方法。通过本论文的介绍,可对原始套接字的使用方法以及TCP/IP协议结构原理等知识有一个基本的认识。
  参考文献:
  [1]狄博.TCP/IP协议分析及通信应用编程.计算机与现代化,2006(03):77-81.
  [2]郎锐,孙方.Visual C++网络通信程序开发基础及实例解析第2版,机械工业出版社,2006.
  [3]方敏.网络应用程序设计[M].西安:西安电子科技大学出版社.2005.
  [4]汤小丹.计算机操作系统[M].西安:西安电子科技大学出版社.2001.
  [5]AnthonyJones JimOhlund.Windows网络编程技术[M].北京:机械工业出版社,2001.
  [6]黄海鹰.Visual C++6.0程序设计---基础与实例分析[M].北京:清华大学出版社,2004.
  [7]张宏林.Visual C++6.0程序设计与开发技术大全[M].北京:人民邮电出版社,2006.
  [8]Balasubramaniyan J.S.An architecture for intrusion detection using autonomous agents[J].IEEE Computer Society,1998:63-112.
  作者简介:艾翔,男,西北政法大学信息网络中心助理工程师,研究方向:信息网络。
其他文献
青岛出版社竭诚奉献大型综合性系列丛书——中华饮食文库,其四大特点前无成例;涵盖最全(大典、饮食史、饮食文献汇编、饮食文物图鉴四大系列,构筑全面系统的中国饮食文化体
池塘养殖在我国已经有几千年的历史.这种生产模式不仅具有经济功能,还具有文化价值.随着我国经济与文化水平的提高,这种价值将会进一步凸显.对其生态服务价值的评估,可为渔业
用悬停自由尾流模型计算悬停旋翼的流场,用工程算法计算机载火箭的气动特性,将旋翼流场影响下的弹道计算与气动力计算相结合,对武装直升机挂装火箭的气动特性及弹道特性进行
随着新课改教材的推行,信息技术的运用,为研究性学习提供了必要条件。“研究性学习”课程在各学科中成为学习的重要组成部分,研究性学习的目的是为了让学生以研究者的身份学
我是学应用数学的,闲来爱看英文杂志。自在学校阅览室见到贵刊,颇有相得之感,故今年订阅了贵刊。国内众家英语杂志中,唯对《科技英语学习》和《英语世界》情有独钟,可以说是
在我们人类看来,苍蝇的寿命很短。因为,一只苍蝇在盛夏季节只能存活1个月左右,即便在温度较低的情况下,它的寿命也不过延长2至3个月。  不久前,爱尔兰都柏林三一学院的杰克逊教授率领研究小组,应用“临界闪光融合频率”技术,测量出不同动物的眼睛处理闪光速度的能力。这项技术简称为CFF,它提供了一种感知时间的方法。它由快速闪耀的闪光点组成,看起来像一个连续光源,如果能识别出个别的闪光,那么时间对它而言就流
现代教育论认为,教学活动中的教与学是内在联系、不可分割的统一整体.儿童只有自己参与各种活动,有了切身的体验,形成自己的假设,并给予证实和否定。才能从中获得真实的知识
报刊杂志上的广告以“铺天盖地”写之,并不过分。但是,其中大多数的的广告是没有风度,没有艺术的,用沪语来讲,是“急吼吼”的广告。读这些广告,给人的印象就是千方百计想从
为贯彻、落实北京市期刊精品战略,提高北京市期刊综合质量,市新闻出版局与市出版工作者协会于国庆节前联合实施了期刊优秀封面、版式设计奖评选。 参加本次封面、版式设计奖
大量的实验研究表明人们广泛的存在公平偏好心理,本文通过介绍西方学者对公平偏好测度及影响因素的研究,梳理和总结了测度个人公平偏好的方法和影响个人公平偏好的因素表,并指出了该领域未来的研究方向。