博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Tcpdump
阅读量:5064 次
发布时间:2019-06-12

本文共 1177 字,大约阅读时间需要 3 分钟。

pcap_create
-->pcap_create_interface
-->handle->activate_op = pcap_activate_linux;
pcap_activate
-->status = p->activate_op(p);   <--> pcap_activate_linux
-->status = activate_new(handle);
-->socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL));
-------------------------------------
-->packet_create
-->register_prot_hook
-->dev_add_pack
-->ptype_head
-->list_add_rcu(&pt->list, head);
Received packets:
deliver_skb
-->pt_prev->func(skb, skb->dev, pt_prev, orig_dev);  <--> packet_rcv || packet_rcv_spkt
-->__skb_queue_tail(&sk->sk_receive_queue, skb);
-->sk->sk_data_ready(sk);   || sock_def_readable
-->sk_wake_async(sk, SOCK_WAKE_WAITD, POLL_IN);
-->wait_for_more_packets
-->skb_queue_walk
-->__skb_recv_datagram
-->skb_recv_datagram
-->packet_recvmsg
-->sock->ops->recvmsg
-->sock_recvmsg_nosec
-->sock_recvmsg
-->SYSCALL_DEFINE6(recvfrom, int, fd, void __user *, ubuf, size_t, size,
        unsigned int, flags, struct sockaddr __user *, addr,
        int __user *, addr_len)
-->INLINE_SYSCALL (recvfrom, 6, fd, buf, n, flags, NULL, NULL);
-->recvfrom
-->pcap_read_packet
-->pcap_read_linux
-->n = p->read_op(p, cnt, callback, user);
-->pcap_loop

转载于:https://www.cnblogs.com/johnson37/p/8884385.html

你可能感兴趣的文章
php实现隐藏字符串的功能
查看>>
设计模式08: Composite 组合模式(结构型模式)
查看>>
编写高质量代码改善C#程序的157个建议——建议157:从写第一个界面开始,就进行自动化测试...
查看>>
公网IP和私有IP的区别和用途
查看>>
在一台win10上启动多个mysql
查看>>
TensorFlow 从零到helloWorld
查看>>
第十三章:Python の 网络编程进阶(二)
查看>>
Orleans 高级特性-目录
查看>>
Python中的startswith和endswith函数使用实例
查看>>
配置类Configuration怎样使用
查看>>
maven打包可运行的jar包(包含依赖工程)
查看>>
javaCV - 视频截帧,清晰度调整,转gif,视频转音频
查看>>
Ansible系列之roles使用说明
查看>>
python之操作系统介绍,进程的创建
查看>>
第六次Java作业
查看>>
TabActivity 切换到后台遇到的问题
查看>>
关于Struts2的ONGL与ValueStack的解读
查看>>
@class、#import
查看>>
iOS 正则表达式使用的三种方式&语法
查看>>
alpha冲刺12
查看>>