网络数据包的获取与libpcap应用.ppt
《网络数据包的获取与libpcap应用.ppt》由会员分享,可在线阅读,更多相关《网络数据包的获取与libpcap应用.ppt(35页珍藏版)》请在三一办公上搜索。
1、网络数据获取方法,1 网络信息获取,网络信息获取是指通过物理线路接入到实际的网络中,实现获取该网络当前传输的所有信息,即获取当前传输的数据包,并根据信息的源主机、目标主机、服务协议和端口等信息简单过滤掉不关心的垃圾数据,然后提交给上层应用程序进行进一步处理。,一、TCP/IP体系结构,-|SMTP|DNS|HTTP|FTP|TELNET|应用层-|TCP|UDP|传输层-|IP|ICMP|ARP RARP|网络层-|IEEE 802 以太网 SLIP/PPP PDN etc|数据链路层-,数据包接收过程,二、以太网 以太网最初是由XEROX公司研制,并且在1980年由数据设备公司DEC(DIG
2、IAL EQUIPMENT CORPOR ATION)、INTEL公司和XEROX公司共同使之规范成形。后来它被作为802.3标准为电气与电子工程师协会(IEEE)所采纳。以太网是最为流行的网络传输系统之一。以太网的基本特征是采用一种称为载波监听多路访问/冲突检测CSMA/CD(Carrier Sense Multiple Access/Collision Detection)的共享访问方案。,TCP/IP与以太网,以太网和TCP/IP可以说是相辅相成的。以太网在一二层提供物理上的连线,使用48位的MAC地址 TCP/IP工作在上层,使用32位的IP地址两者间使用ARP和RARP协议进行相互转
3、换。,载波监听指在以太网中的每个站点都具有同等的权利,在传输自己的数据时,首先监听信道是否空闲,如果空闲,就传输自己的数据,如果信道被占用,就等待信道空闲。,冲突检测为了防止发生两个站点同时监测到网络没有被使用时而产生冲突。以太网采用广播机制,所有与网络连接的工作站都可以看到网络上传递的数据。,CSMA/CD过程,以太网的广播通讯,在以太网中,所有的通讯都是广播的,通常在同一个网段的所有网络接口都可以访问在物理媒体上传输的所有数据,网卡的MAC地址每一个网络接口都有一个唯一的硬件地址,这个硬件地址也就是网卡的MAC地址。大多数系统使用48比特的地址,这个地址用来表示网络中的每一个设备一般来说每
4、一块网卡上的MAC地址都是不同的每个网卡厂家得到一段地址,然后用这段地址分配给其生产的每个网卡一个地址。,在正常的情况下,网络接口应该只响应这样的两种数据帧:1.与自己硬件地址相匹配的数据帧。2.发向所有机器的广播数据帧。,数据的收发是由网卡来完成的网卡接收到传输来的数据,网卡内的单片程序接收数据帧的目的MAC地址,根据计算机上的网卡驱动程序设置的接收模式判断该不该接收。认为该接收就接收后产生中断信号通知CPU认为不该接收就丢掉不管,所以不该接收的数据网卡就截断了,计算机根本就不知道.CPU得到中断信号产生中断,操作系统就根据网卡的驱动程序设置的网卡中断程序地址调用驱动程序接收数据驱动程序接收
5、数据后放入信号堆栈让操作系统处理。,网卡来说一般有四种接收模式:广播方式:该模式下的网卡能够接收网络中的广播信息。组播方式:设置在该模式下的网卡能够接收组播数据。直接方式:在这种模式下,只有目的网卡才能接收该数据。混杂模式:在这种模式下的网卡能够接收一切通过它的数据,而不管该数据是否是传给它的。,总结一下首先,我们知道了在以太网中是基于广播方式传送数据的,也就是说,所有的物理信号都要经过我的机器,其次,广播模式下,网卡的一种模式叫混杂模式(promiscuous),在这种模式下工作的网卡能够接收到一切通过它的数据,而不管实际上数据的目的地址是不是它。再次,通过设置交换机监听端口。监听端口带宽要
6、大于所监听的端口带宽,防止丢包。,2 网络数据包捕获技术,不同的操作系统实现的底层包捕获机制可能是不一样的,但从形式上看大同小异。数据包常规的传输路径依次为网卡接口、设备驱动层、数据链路层、IP层、传输层、最后到达应用程序。而包捕获机制是在数据链路层增加一个旁路处理,对发送和接收到的数据包做过滤/缓冲等相关处理,最后直接传递到应用程序。,2 网络数据包捕获技术,旁路处理机制,基于socket的网络的编程方法,数据链路提供者接口(DLPI),伯克利数据包过滤器(BPF)Lipcap,零拷贝技术,libnet 提供的接口函数主要实现和封装了数据包的构造和发送过程。libpcap 提供的接口函数主要
7、实现和封装了与数据包截获有关的过程。libnids 提供的接口函数主要实现了开发网络入侵监测系统所必须的一些结构框架。libicmp 等相对较为简单,它封装的是ICMP数据包的主要处理过程(构造、发送、接收等)。,数据包捕获流程,一、libpcap的数据类型定义,struct pcap_addr:网卡地址描述 pcap_addr*next;sockaddr*addr;sockaddr*netmask;sockaddr*broadaddr;sockaddr*dstaddr;pcap_addr*next;如果非空,指向链表中一个元素的指针;空表示链表中的最后一个元素。sockaddr*addr;指
8、向包含一个地址的sockaddr的结构的指针。sockaddr*netmask;如果非空,指向包含相对于addr指向的地址的一个网络掩码的结构。sockaddr*broadaddr;如果非空,指向包含相对于addr指向的地址的一个广播地址,如果网络不支持广播可能为空。sockaddr*dstaddr;如果非空,指向一个相对于addr指向的源地址的目的地址,如果网络不支持点对点通讯,则为空。,struct pcap_file_header bpf_u_int32 magic;u_short version_major;u_short version_minor;bpf_int32 thiszon
9、e;/*gmt to local correction*/bpf_u_int32 sigfigs;/*accuracy of timestamps*/bpf_u_int32 snaplen;/*max length saved portion of each pkt*/bpf_u_int32 linktype;/*data link type(LINKTYPE_*)*/;u_short version_major;Libpcap的主版本号。u_shart version_minor;Libpcap的从版本号。bpf_u_int32 sigfigs;时间戳描述。bpf_u_int32 snapl
10、en;保存的每个pkt的分片号的最大值。bpf_u_int32 linktype;数据链的类型。细节说明:libpcap dump文件头;libpcap dump文件中的第一个记录包含了一些标志的保存值,这些标志在打印阶段用到。这儿的很多域都是32位的int,所以compilers不用进行转化;这些文件需要具有跨层次的可交换性。无论如何不要改变结构的层次(包括仅仅改变这个结构中域的长度);,struct pcap_if/*网卡数据链的一个元素*/struct pcap_if*next;char*name;/*name to hand to pcap_open_live()*/char*desc
11、ription;/*textual description of interface,or NULL*/struct pcap_addr*addresses;u_int flags;/*PCAP_IF_ interface flags*/;pcap_if*next;如果非空,指向链的下一个元素。如果为空是链的最后一个元素。char*name;指向一个字符串,该字符串是传给pcap_open_live()函数的设备名;char*description;如果非空,指向一个对设备的人性化的描述字符串。pcap_addr*addresses;指向网卡地址链中的第一个元素。u_int flags;PCA
12、P_IF_ 网卡的标志。现在唯一可用的标识是PCAP_IF_LOOKBACK,它被用来标识网卡是不是lookback网卡。,struct pcap_pkthdr/*dump 文件中的数据包头*/struct timeval ts;/*time stamp*/bpf_u_int32 caplen;/*length of portion present*/bpf_u_int32 len;/*length this packet(off wire)*/;timeval ts;数据报时间戳;bpf_u_int32 caplen;当前分片的长度;dpf_u_int32 len;这个数据报的长度;细节描述
13、:在dump文件中的每个数据报都有这样一个报头。它用来处理不同数据报网卡的不同报头问题。,struct pcap_stat/*用来保存网卡静态变量的结构*/u_int ps_recv;/*number of packets received*/u_int ps_drop;/*number of packets dropped*/u_int ps_ifdrop;/*drops by interface XXX not yet supported*/;u_int ps_recv;接受数据报的数目;u_int ps_drop;被驱动程序丢弃的数据报的数目;u_int ps_ifdrop;被网卡丢弃的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 数据包 获取 libpcap 应用

链接地址:https://www.31ppt.com/p-6374114.html