现在位置: 首页 > tcpdump
一 概述 前篇已经讲述了接收实现,而对于libpcap抓包的重要工具,本身其实也集成了packet_mmap抓包方式。那么既然可以用于捕获抓包。packet_mmap可以实现发送抓包吗?答案当然是肯定的。不过网上对于packet_mmap发送介绍少之又少。接下来会讲解packet_mmap发送数据包遇到的问题。 二 使用 packet_mmap原理跟接收原理一致,就不过重复讲述。唯一区别前篇原理中提到的状态标识,发送的状态标识跟接收的标识不一样。这后面会细说。...
阅读全文
一 概述 · 前篇了解了libpcap库如何实现抓包 · 中篇深入内核底层讲述了抓包的原理 · 后篇自己实现过抓包过程 上述篇章中讲述的只是原始的抓包流程。 原始的抓包流程?简单的说就是创建socket,设置bpf后,每次接收数据包都要调用recvfrom系统调用。而每次调用recvfrom内核底层抓到的数据包都需要用内核copy到用户。不管是系统调用,还是copy都是相当耗cpu性能的。而linux内核提供了一种更高效的抓包方式packet_mmap. 二 packet_m...
阅读全文
一 概述 在了解了tcpdump的原理后,你有没有想过自己去实现抓包过滤? 可能你脑子里有个大概的思路,但是知道了理论知识,其实并不能代表你完全的理解。只要运用后,你才知道哪些点需要注意,之前没有考虑到的。 二 如何实现抓包过滤 在写代码前,先捋下思路,和相应的理论知识。 libpcap 库中实现抓包关键代码 sock_fd = cooked ? socket(PF_PACKET, SOCK_DGRAM, protocol) : socket(PF_PACKET, SOCK_RAW, protocol); libpcap...
阅读全文
一 概述 前篇通过libpcap分析,可以很清楚的发现其实用户层调用了三个系统调用,就实现了将内核网卡抓的包,返回给用户层。 · 1.创建一个socket ; sock_fd = cooked ?socket(PF_PACKET, SOCK_DGRAM, protocol) :socket(PF_PACKET, SOCK_RAW, protocol); · 2 设置bpf 规则,使得规则在内核返回给用户的包就已经经过bpf过滤。 · 3 recvfrom 接收抓到的数据包 而对于内核做了那些呢? · 链路层网口抓的包,是如何给到对应的socket...
阅读全文
一 概述 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 至于tcpdump参数如何使用,这不是本章讨论的重点。 liunx系统抓包工具,毫无疑问就是tcpdump。而windows的抓包工具,wireshark也是一款主流的抓包工具。wireshark 使用了winpcap库。tcpdump 基于 libpcap库。而winpcap库是类似于linux下的libpcap。 因此本文着重探讨libpcap库的原理。 二 libp...
阅读全文
2013-05-30 23:02 工业·编程 ⁄ 共 4456字 暂无评论
1. Wireshark与tcpdump介绍 Wireshark是一个网络协议检测工具,支持Windows平台和Unix平台,我一般只在Windows平台下使用Wireshark,如果是Linux的话,我直接用tcpdump了,因为我工作环境中的Linux一般只有字符界面,且一般而言Linux都自带的tcpdump,或者用tcpdump抓包以后用Wireshark打开分析。 在Windows平台下,Wireshark通过WinPcap进行抓包,封装的很好,使用起来很方便,可以很容易的制定抓包过滤器或者显示过滤器,具...
阅读全文
2012-08-22 23:37 工业·编程 ⁄ 共 2418字 评论 1 条
本文旨在分析使用抓包工具抓取到的数据包。 (一)抓包工具 tcpdump:linux下的抓包利器 wireshark:带GUI的抓包工具,其前身是大名鼎鼎的Ethereal (二)抓包 这里只简述tcpdump的一般用法,详细资料可参考tcpdump使用手册。 wireshark带有GUI,操作比较简单,暂不赘述。 tcpdump -i eth1 tcp -Xnlps0 port 16815 src host 192.168.0.0 and dst net 192.168.0.1 tcpdump -i eth1 -Xnlps0 dst net 172.23.9.155 and port 37861 ...
阅读全文