网络数据包捕获及分析Word文档格式.docx

上传人:b****6 文档编号:20070340 上传时间:2023-01-16 格式:DOCX 页数:7 大小:46.46KB
下载 相关 举报
网络数据包捕获及分析Word文档格式.docx_第1页
第1页 / 共7页
网络数据包捕获及分析Word文档格式.docx_第2页
第2页 / 共7页
网络数据包捕获及分析Word文档格式.docx_第3页
第3页 / 共7页
网络数据包捕获及分析Word文档格式.docx_第4页
第4页 / 共7页
网络数据包捕获及分析Word文档格式.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

网络数据包捕获及分析Word文档格式.docx

《网络数据包捕获及分析Word文档格式.docx》由会员分享,可在线阅读,更多相关《网络数据包捕获及分析Word文档格式.docx(7页珍藏版)》请在冰豆网上搜索。

网络数据包捕获及分析Word文档格式.docx

正常情况下,一个网络接口应该只响应两种数据帧:

①与自己硬件地址相匹配的数据帧;

②向所有计算机的广播数据帧。

在实际系统中由网卡来完成数据的收发。

网卡接收到传来的数据,网卡内的程序接收数据帧的目的MAC地址,然后根据网卡驱动程序设置的接收模式判断:

认为应该接收,就在接收后产生中断信号通知CPU;

认为不该接收就丢掉不管。

CPU得到中断信号产生中断,操作系统就根据网卡驱动程序设置的网卡中断程序地址调用驱动程序接收数据。

驱动程序接收数据后,放入信号堆栈让操作系统处理。

对于网卡来说一般有4种接收模式:

①广播方式:

该模式下的网卡能够接收网络中的广播信息。

②组播方式:

该模式下的网卡能够接收组播数据。

③直接方式:

该模式下只有目的网卡才能接收数据。

④混杂模式:

该模式下的网卡能够接收一切通过它的数据。

所以要想实现对网络的数据进行获取分析,首先应该把网卡设置成混杂模式。

1.2   数据获取

数据获取主要有两种方法:

通过数据链路层获取和通过

网络层获取。

(1通过链路层获取

在TCP/IP的体系结构中,数据链路层和物理层共同构成网络接口层,作为TCP/IP的第一层。

在这一层传输的数据格式是以太帧。

获取以太帧目前可以通过LibPcap和WinPcap两种捕包工具。

LibPcap是一种与系统无关,采用分组捕获机制的分组捕获函数库。

使用LibPcap 编写的程序可自由的跨平台使用。

而WinPcap是LibPcap 的Windows版本,集成于Windows95,98,ME,NT,2000和XP操作系统的设备驱动程序,可以从网卡捕获或者发送原始数据,同时能够过滤并且存储数据包。

(2通过网络层获取

通过网络层获取数据主要借助原始套接字。

套接字是网络应用编程接口。

套接字有三类:

流式套接字、数据报套接字和原始套接字。

前两种套接字只能访问到传输层。

而原始套接字则可以获取ICMP、TCP、UDP等数据包。

在Windows环境下可用Winsock来实现。

2  相关协议介绍2.1  IP协议

IP的基本功能:

寻址、路由选择和数据包的分割和组装。

它不提供可靠的传输服务。

依据IP报文格式在程序中声明IP首部:

typedef struct _IPHEADER {  

unsigned char  header_len:

4;

unsigned char  version:

unsigned char  tos;

unsigned short  total_len;

unsigned short  ident;

unsigned short  flags;

unsigned char  ttl;

作者简介:

卢建华(1982-,女,西安电子科技大学2006级硕士研究生,研究方向:

计算机应用。

蒋明(1958-,男,

西安电子科技大学高工,硕士生导师。

陈淑芳(1970-,女,山西省朔州市平鲁区职业中学讲师。

unsigned char  proto;

unsigned short  checksum;

unsigned int   sourceIP;

unsigned int   destIP;

}IPHEADER;

2.2  TCP协议

TCP提供全双工和可靠交付的服务。

该协议主要用于在主机间建立一个虚拟连接,以实现高可靠性的数据包交换。

依据TCP报文格式在程序中声明TCP报头:

struct TCPPacketHead {WORD  SourPort;

WORD  DestPort;

DWORD  SeqNo;

DWORD  AckNo;

BYTE  HLen;

BYTE  Flag;

WORD  WndSize;

WORD  ChkSum;

WORD  UrgPtr;

};

2.3  UDP协议

UDP是一个无连接协议,传输数据之前源端和终端不建立连接,也不使用拥塞控制、不保证可靠交付。

依据UDP报文格式在程序中声明UDP报头:

struct UDPPacketHead {WORD  SourPort;

WORD  Len;

2.4  ICMP协议

ICMP是TCP/IP协议集中的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。

依据ICMP报文格式在程序中声明ICMP报头:

struct ICMPPacketHead {BYTE  Type;

BYTE  Code;

WORD  Id;

    // 增加了标识变量

WORD  Seq;

   // 增加了序号变量

3  具体实现

系统的开发环境是VC++6.0,利用RAW SOCKET套接字来实现包捕获功能。

3.1  包捕获模块的实现

(1m_s = socket( AF_INET ,SOCK_RAW ,IPPROTO_IP ;

// 创建原始套接字

(2setsockopt(m_s,SOL_SOCKET,SO_RCVTIMEO,(constchar*&

rcvtimeo ,sizeof(rcvtimeo 

;

  // 设置IP头操作选项,超时接收选择(3SOCKADDR_IN sa;

sa.sin_family = AF_INET;

sa.sin_port = htons(6000;

// 设置端口号sa.sin_addr.s_addr= m_iphostsource;

// 设置IP地址

bind(m_s,(PSOCKADDR&

sa,sizeof(sa ;

// 将原始套接字绑定到本地网卡

(4设置套接字接收模式,并启动新的接收线程thread-Func

If( SOCKET_ERROR !

=WSAIoctl( m_s,SIO_RCVALL ,&

dwBufferInLen,sizeof(dwBufferInLen,&

dwBufferLen,sizeof(dwBufferLen,&

dwBytesReturned,NULL,NULL

       其中threadFunc方法的实现是:

   UINT  threadFunc ( LPVOID pParam {

  PeekMessage(&

msg, NULL, WM_USER, WM_USER,

PM_NOREMOVE;

  pDlg->

m_threadID=GetCurrentThreadId( ;

// 取得线

程的ID号

          While(TRUE        // 循环接收消息

{if( PeekMessage( &

msg , 0 ,WM_CLOSE,WM_CLOSE,

PM_NOREMOVE  

       {   closesocket( pDlg->

m_s  ;

// 检测

WM_CLOSE消息

   …………   break ;

}

memset( buf , 0 , sizeof(buf  ;

int iRet = recv( pDlg->

m_s , buf , sizeof( buf  , 0  ;

 // 从

套接字接收数据

// 分析模块…}}

3.2  包分析模块的实现

首先根据先前定义各协议的报头,解析IP报头内容,进而确定协议类型,TCP、UDP或ICMP,之后再分别进行相应的报头解析。

部分程序为:

定义一个IP头指针pIpHeader,利用指针的移动来实现包的解析。

然后依据IP数据包结构,分别读取IP数据包的各项信息。

根据proto字段进一步确定其为TCP数据包、UDP数据包还是ICMP数据包。

[下转27页]

Router(config#ip access-list extended internal_ACLRouter(config-ext-nacl#permit tcp any host 192.1.2.1 eq smtpRouter(config-ext-nacl#permit tcp any host 192.1.2.1 eq popRouter(config-ext-nacl#deny tcp any any ep popRouter(config-ext-nacl#deny tcp any any eq smtpRouter(config-ext-nacl#permit ip any anyRouter(config-ext-nacl#exit

Router(config#ip inspect name internal_CBAC ftpRouter(config#ip inspect name internal_CBAC httpRouter(config#ip inspect name internal_CBAC tcpRouter(config#ip inspect name internal_CBAC udpRouter(config#ip inspect name internal_CBAC icmpRouter(config#interface ethernet0

Router(config-if#ip access-group internal_ACL inRouter(config-if#ip inspect internal_CBAC in

(2在全局模式下,分别设置TCP的建立时间为15秒,TCP的空闲超时为60秒,UDP的空闲超时为20秒,半开连接阀值为400,1分钟连接尝试次数为400,主机最大半开连接数为250。

Router(config#ip inspect tcp synwait-time 15Router(config#ip inspect tcp idle-time 60Router(config#ip inspect udp idle-time 20

Router(config#ip inspect max-incomplete high 400Router(config#ip inspect max-incomplete low 300Router(config#ip inspect one-minute high 400Router(config#ip inspect one-minute low 300

Router(config#ip inspect tcp max-incomplete host 250 block-time 0

4  结束语

充分应用CBAC的访问控制特性,能够使我们在一定程度上较好的防御特定的DoS风暴攻击。

但应该注意,在修改超时值和连接阀值时,要考虑网络规模与具体应用,监控CBAC及网络活动日志,确保没有因为参数设置影响正常的网络应用。

另外,我们还可以结合CISCO IOS的ACL、入侵检测系统、日志和审查功能以及应用层过滤技术等,检测和防御更多类型的网络攻击,做好网络安全工作。

应用CBAC也存在一些局限性,如流量审查会增加路由器的负荷,不能审查加密的数据包,以及有限的应用层审查等。

参考文献

[1]李德全.拒绝服务攻击[M].北京:

电子工业出版社.2007.[2]W.Rchard Stevens.TCP/IP Illustrated Volume 1:

The Protocols[M].范建华等译.北京:

机械工业出版社.2000.

[3]Richard A. Deal.陈克忠译.Cisco Router Firewall Security[M].北京:

人民邮电出版社.2000.

HdrLen =( pIpHeader->

 header_len  * 4;

m=pIpHeader->

proto;

switch(m {

case IPPROTO_TCP:

pTCPHead=(struct TCPPacketHead *

(buf+HdrLen;

…………break;

case IPPROTO_UDP:

pUDPHead=(struct UDPPacketHead *

case IPPROTO_ICMP:

pICMPHead=(struct ICMPPacketHead *

default:

break;

根据不同的选择执行不同的程序,并把最后结果显示在

对话框中。

4 总结

本文主要实现的功能是对网络上的数据包进行捕获及分析。

即首先通过捕包模块把经过主机网卡的数据包截获,并存储在缓冲存储器中,然后通过分析模块对它进行分析,从而得到网络层和传输层协议的报头内容。

当然这个系统也有不完善的地方,如由于捕获到的数据包头不包含有帧信息,因此不能接收到与IP同属网络层的其它数据包,如ARP数据包、RARP数据包等。

[1]谢希仁.计算机网络[M].北京:

清华大学出版社.2001.[2]韩新宇,章惠君.Windows下实现网络数据包捕获[J].维普资讯网.

[3]Jenny J. He,Dimitra Simeonidou. Flow Routing and its Perfor-mance Analysis in Optical IP Networks.Photonic NetworkCommunications.2001.

[上接17页]

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1