APP下载

捕获网络数据包技术浅析

2012-12-29郭丽莉

中国新技术新产品 2012年5期
关键词:监视器网卡路由器

郭丽莉

(中国联合网络通信有限公司四平市分公司,吉林 四平 136000)

引言

在码流中一个表示一个特定的叠块、层次、分量、分辨率和围地的连续的数据字段称为数据包。数据包数据以8比特字节对齐。

数据包数据首先由一个包头引导,码头后面是数据包体,它包含了每一个相关编码子块的编码字节在构造包头和包体时必须遵循上述数据排放次序。

1 数据包格式

在TCP/IP互联网上传输的一个分组叫IP数据包(Datagram),每个数据包包含一个头部和位于其后的数据。在数据包头部的源和目的地址都采用IP地址。

位于数据包传输路径上的每一个路由器从数据包首部提取目的地址,由目的地址在路由器的路由表中查找发往目的地的下一跳地址,然后路由器将数据包传递给下一跳,直至到达目的地。

路由表有3个基本字段:目的网络地址字段,目的网络地址的地址掩码字段和到达目的网络的下一跳字段。在数据包头部的目的地址总是数据包的最终目的地址。目的地址与其对应的掩码“按位与”操作,得出目的地址主机所在网络的网络地址。然后,根据这个网络地址,决定下一跳地址,通过一个特定的连接,将数据发给下一跳。

IP数据包首部(头)格式包含以下内容:

(1)版本号(Vers),包含了生成该数据包的IP协议的版本信息,它用来证实发送方,接收方和它们之间的所有路由器都同意的数据包格式。

(2)首部长度(Header Length)字段,给出了以32位字长为单位的首部长度。

(3)服务(Service Type)字段,包含 5个子字段,3个比特的优先级干字段指明本数据包的优先级,允许发送方表示本数据包的重要程度。优先级的值从0(普通优先级)到7(网络控制),D.T和R位表示本数据包所希望的运输类型,这些位的值为1时,D代表低延时,T要求高吞吐量,R要求高可靠性。

(4)总长度(Total Length)字段,给出了以8位组为单位的IP数据包长度。

(5)寿命(Time to Live)字段,设置了该数据包在互联网中允许存在的时间(秒)或允许经过的路由器的数目。它是一个介于1-255之间的整数。

(6)首部校验和(Header Checksum)字段,用于保证首部数据的完整性。IP校验和的计算是把首部看成一个16位的整数序列,对每个整数分别计算其二进制反码,然后相加,再对结果计算一次二进制反码而求得。为了计算校验和,假定首部校验和字段为0。

(7)源站地址(Source IP Address)和目的站地址(Desination IP Address)字段,包含了数据包的(原始)发送方和(最终)接收方的32位IP地址。

2 捕获网络数据包的方法

目前有两种方法可以从网络中捕获数据包,一种是采用专用硬件,如网络监视器等,另一种是利用普通计算机与网络连接的通用硬件一网络适配器,即网卡,由软件来完成数据包的捕获。下面我们分别加以阐述:

2.1 网络监视器

网络监视器关注网络活动,用户若想了解网络组件的行为和通信量,则要安装、使用网络监视器。

网络管理员使用网络监视器查看检测局域网(LAN)的问题,例如,在两台或更多计算机不能通信时,网络管理员使用网络监视器诊断硬件和软件问题,也可以将网络活动的记录复制到文件中,然后将文件发送给专AV,网络分析员或有关组织。在开发网络应用程序时,网络应用程序开发员可使用网络监视器以监视、调试网络应用程序。

为阻止网络上未授权的网络监视器的安装使用,网络监视器能检测到在网络局部运行的其他网络监视器的安装。通过系统管理服务器的网络监视器或系统肺视器的网络段对象.网络监视器可检测到远程使用的网络监视器驱动器的所有程序,这些程序被用于浦获网上数据。

当网络监视器检测到运行在网上的网络监视器的其他安装时,它会显示下列信息:

.计算机名称

.登录此计算机的用户名称

.远程计算机上的网络监视器状态(运行、捕获、传输)

.远程计算机的适配器地址

.远程计算机上的例络监视器版本号

在一些情况下,网络结构会阻止网络监视器的一个安装来检侧另一个安装。例如,若一安装与用户安装被路由器隔开,而此路由器不能向用户转送组播,则用户安装不能检测到另一个安装。

网络监视器应用网络驱动器接口说明(NDIS)的特性,复制它所检测的所有帧到它的捕获缓冲区,这是个内存里可交大小的存储区,缺省大小为IMB:若需要,可手上调整其大小。缓冲区是一个存储映射文件,它占用磁盘空间。

由于网络监视器仅使用NDIS的本地方式,而非随机方式(网络适配器以此在网上发送所有帧),故即使用户的网络适配器不支持随机方式时也可使用网络监视器.当使用NDIS驱动器捕获帧时。网络性能不受影响(将网络适配器置于随机方式会使CPU增加30%或更多负荷)。

2.2 以太网捕获数据包的实现原理

在以太网上通讯的每张网卡上都拥有一个全球唯一的物理地址,也叫MAC地址。该地址是一个48比特的二进制数。在以太网卡中内建有一个数据包过滤器。该数据包过滤器的作用是保留以本身网卡的MAC地址为通讯目的的数据包和广播数据包,丢弃所有其它无关的数据包,以免CPU对无关的数据报作无谓的处理。

要想捕获到流经网卡的不属于本主机的数据,必须绕过系统正常工作的处理机制,直接访问网络底层。我们可以把网卡的状态设为“混杂”(promiscuous)模式,当网卡工作在这种“混杂”模式时,该网卡就具备了“广播地址”,它对所接收到的每一个顿都产生一个硬件中断以提醒操作系统处理流经该网卡上的侮一个报文包。操作系统通过直接访问链路层,截获相关数据,由应用程序而非上层协议(如IP层、TCP层)对数据过滤处理,这样就可以捕获到流经网卡的所有数据。

2.3 共享和交换以太网下的捕包

首先从TCP/IP模型的角度来看数据包在局域网内发送的过程:当数据由应用层自上而下地传递时,在网络层形成IP数据报,再向下到达数据链路层,由数据链路层将IP数据报分割为数据帧,增加以太网包头,再向下一层发送.需要说明的是,以太网的包头中包含着本机和目标设备的MAC地址,也就是说,数据链路层的数据帧发送时,是依靠48bits的以太网地址而非IP地址来确认的,以太网的网卡设备驱动程序不会关心IP数据报中的目的IP地址,它所需要的仅仅是MAC地址。

结束语

实现网络捕包的一个最重要的条件就是要能够接收网络上所有的数据包。计算机网络从传输方式的角度分为两类:采用点到点连接的网络和采用广播方式的网络,广域网中一般采用点到点连接方式,而几乎所有的局域网都以广播方式作为通信的基础,网上的站点共享信道,一个站点发出的数据包,其他站点均能收到,也就是说,任一台计算机都可以接收到网络中同一个共享域的所有的数据通讯。

[1]王兴宝.网络管理与维护[M].北京:机械工业出版社.2001.

[2]刘远生.网络安全技术与应用实践[M].北京:清华大学出版社.2010.

[3]刘晓辉,陈洪彬.网络管理工具技术应用实战详解[M].北京:化学工业出版社.2010.

猜你喜欢

监视器网卡路由器
在DDS 中间件上实现双冗余网卡切换的方法
买千兆路由器看接口参数
路由器每天都要关
Server 2016网卡组合模式
基于FPGA消息识别和过滤的1553B总线监视器的设计
无线路由器的保养方法
高速公路智能网络监视器的应用
读编往来
无线路由器辐射可忽略