全球旧事资料 分类
口,那么即使不通过TCP协议、UDP协议或IP协议,也能够直接操作Ether
et等的数据链路的报头。
如果是一般的TCPIP协议通信,那么数据链路的报头之后为IP报头,再其后为TCP协议或UDP协议的报头。数据链路访问接口能够自己完成全部TCP协议的报头、IP协议的报头和Ether
et报头。当在计算机网络上要接收全部的包时使用它。
由于操作系统的不同,访问数据链路的方法也不同,所以非常麻烦。因此,在编制一个包的监控程序的时候,使用了pcap,它是作为访问数据链路的通用程序库而开发的。虽然使用像pcap那样的程序可以提高软件的开发效率,但由于能够利用像黑箱那样的系统,所以这样恐怕会降低对协议或系统的理解程度。所以本实验要求使用标准接口来加以说明。
另外,因为pcap是为了监控包而编制的,所以它不能够编制包括数据链路在内的包而加以发送。为了达到发送目的,必须使用数据链路访问接口。4.Li
ux系统中数据链路层的访问
在使用Li
ux系统时,利用一个套接字可以访问一种数据链路。因而,也可以利用通常的套接字系统调用。例如,如果要直接利用Ether
et发送一个包,那么打开一个套接字的时候,使用下面的语句:
ssocketPF_PACKETSOCKET_PACKEThto
sETH_P_ALLPF_PACKET是一个能够处理所有协议的协议系列。另外,如果使用下面的语句,则只能够监控IP包:ssocketAF_PACKETSOCKET_PACKEThto
sETH_P_IP除了ETH_P_IP之外,还可以指定ETH_P_ARP或E_P_IPv6。在这种情况下,只能处理ARP包或IPv6包。
【实验内容】
1.系统总的需求如下:设计一个数据包监控程序,此程序主要包含3个主要模块:底层模块、
中层模块和上层统计模块。其中底层模块是数据包的捕获过程中层模块包括MAC层处理模块、IP层处理模块、TCP处理模块、UCP处理模块和ICMP处理模块上层统计处理模块包括数据包的统计模块、数据包协议统计模块、网络网元发现模、数据包构造模块和数据包过滤模块。
底层模块中数据包的捕获是利用socket访问链路层来读取数据包,细节请参考『实验原理』中的相关内容。
f中层模块详见下面的“协议分析模块结构”部分。上层统计处理模块中第一个要完成的任务是网络网元发现。什么是网络网元发现简而言之就是发现网络上的主机。具体来说就是通过网络监听获取所有在网络上传输的数据包。因为每一听获取所有在网络上传输的数据包。因为每一个网络上传输的数据包都会带有两个48位的MAC地址它唯一标志网段上的每一个主机网卡。因此通过截获网络上所有的数据包并将从数据包中提r
好听全球资料 返回顶部