2008年2月16日星期六
向网卡回放winpcap数据
winpcap是一个开源的库,用来在win32平台下进行抓包和网络分析。ethereal或wireshark利用winpcap进行sniffer,嗅探下来的数据有些情况下需要在网卡上回放。winpcap提供pcap_sendpacket()和pcap_sendqueue_transmit()函数来向网卡发包。pcap_sendpacket()发送单个的mac帧,而pcap_sendqueue_transmit()可将自pcap文件生成的mac帧队列在网卡上回放。pcap_sendqueue_alloc()为发送队列分配缓冲区空间pcap_next_ex()从pcap文件取得一个packetpcap_sendqueue_queue()将packet加入到队列pcap_sendqueue_destroy()发送之后将队列空间释放如果不限定缓冲区大小,队列缓冲区可能会溢出,为此指定队列缓冲区大小。当同步释放数据包时,缓冲区的大小会对数据包释放时间有影响,经测试,缓冲区越大,数据包释放的同步性越好,反之,缓冲区越小,数据包释放的同步延时就越大。
订阅 博文 [Atom]