05 2018 档案
摘要:perf事件是可以按照线程按照进程统计的呢,但是/proc/接口就不提供这样的功能 perf可以提供线程和进程的统计功能的,perf统计的原理是啥子呢 在perf_event_open处跟踪pid函数,发现结果是: 这就明白是咋回事了,一个进程的线程是如何获取的,然后进程的pid 最重要的结构体是p
阅读全文
摘要:ip_deliver_local函数中函数中完成合并 听过netfilter框架中也会 因为net_filter框架需要感知到第四层的信息,但是单个数据包是无法感知到这些信息的,所以需要在netfilter框架中合并数据包,
阅读全文
摘要:https://blog.csdn.net/qinyushuang/article/details/46611709 tc实际操控网络的流量 解释网络tc的架构,从架构上分析tc,与netfilter架构对比: https://www.cnblogs.com/yxwkf/p/5424383.html
阅读全文
摘要:ip_local_out->OUTPUT->dst_out->ip_output-> POSTROUTING -->ip_output_finish 上面的路径中啊,在OUTPUT和POSTROUTING之间的都没有发生什么新事情,设置了两个地方一个是skb->dev,一个是skb->protoco
阅读全文
摘要:udp->ip & tcp->ip udp到ip层是:ip_send_skb tcp到ip层是: ip_queue_xmit 拿tcp为例,在使用【ip_queue_xmit, ip_local_out】在这个函数区间之内,数据包的IP数据包就已经确定下了: ip_queue_xmit From S
阅读全文
摘要:虚机中的地址:192.168.0.110 PC机的地址是: 192.168.0.1 设置PC机的sudo iptables -t nat -I POSTROUTING -s 192.168.0.1 -d 192.168.0.110 -j SNAT --to-source 192.168.1.1 然后
阅读全文
摘要:从昨天晚上开始,我就立志要把RCU拿下,昨晚加今天早上看了RCU的东西,太细节的原理我就不扣了,放弃,知道RCU是怎么用的就可以了,赶紧看文件系统中dcache的管理了。 说说RCU,RCU其实是很简单,读者在读之前rcu_read_lock(); 以此来关闭本CPU上的抢占;然后读者用rcu_de
阅读全文
摘要:上一篇文件说了arp_announce,那么到这里arp_ignore,我们直接看代码应该也比较容易立即了 目前我知道的是arp_ignore = 0,只要IP是自己机器上的,都可以回复; 说实话就是检查目的地址的合法性 arp_ignore = 1, 只有ip是我接收端口上的我才会回复; arp还
阅读全文
摘要:arp_annouce=0的时候 手册上说的是到底是是说当我这个包出去的时候询问arp地址, 当arp_announce=0的时候,是说使用数据包中的地址去进行arp的请求, 当arp_announce=2的时候,是根据端口号决定如何进行arp的请求; 于是我就做了这样一个试验: 还是三大件,树莓派
阅读全文
摘要:A qumu ethA1 B 宿主机 ethA2 ethC2 C 树莓派 ethC1 在A和C中都是直接sudo route add default dev ethA1/ethC1 这样做是有问题的,相当于仅仅是让包从ethA1和ethC1中发出去了,此时如果是访问A2和C2当然是没有问题的,但是如
阅读全文
摘要:https://blog.csdn.net/beckdon/article/details/15815197 sudo ifconfig eth0:0 192.168.0.110/24 删除虚拟IP地址 sudo ip addr del 192.168.0.110 dev lo
阅读全文
摘要:看网上一篇教程啊,说LVM使用的就是在回环地址上绑定了IP地址,然后设置arp_filter和arp_ignore来达到负载均衡的目的,于是就自己把本地的回环地址给改掉了,改成了一个随便的值:192.168.3.110,然后发现访问不了外网了,用wireshark抓包发现是因为DNS解析失败,然后发
阅读全文
摘要:1)机器上有好几个IP地址,如何让网卡只接收自己IP地址的数据包; 如何只接收自己网卡的数据包 http://www.cnblogs.com/honpey/p/8447819.html 相关的配置arp_filter和arp_ignore这两个参数是干嘛的? 设置arp_ignore就好,这里控制的
阅读全文
摘要:/* * This is the main entry point to direct page reclaim. * * If a full scan of the inactive list fails to free enough memory then we * are "out of me
阅读全文
摘要:如何用ssh实现端口的映射? 为了解决什么问题,应该就是ssh服务器程序在22号端口监听,难道这就是用软件实现了 实现隧道的方法真是有好几种,包括使用ssh,包括使用tap,或者使用ssh都是可以的,今天试验下如何使用ssh实现隧道功能。 测试程序在 codebox/net/sock/inet/se
阅读全文
摘要:netstat -aon /proc/net/tcp /proc/net/udp /proc/net/unix 相关的代码是:tcp4_seq_show(struct seq_file *file, void *v),函数执行 established_get_first listening_get_
阅读全文
摘要:ifstat查看网卡流量的原理:读的是哪个/proc/ 接口啊 同diskIO一样,网络的IO也同样有统计计数的,是/proc/net/dev一个典型的输出就是这个样子的: 看下这里的收包的频率和发送的频率到底是啥样子的 更新网卡接受接受数据:ieee80211_rx_stats ieee80211
阅读全文
摘要:整个TCP接收的过程中有4个列表,这四个表之间的关系是啥咧? 刚开始的时候会把这个rcv真正放入到函数sk_receive_queue中,那么又是啥时候放到 在tcp_v4_rcv中直 tcp_queue_rcv 和 tcp_oao_queue是两处网sk_receive_queue中放入IO的地方
阅读全文
摘要:struct sock sock->sk_receive_queue 协议栈负责把数据放到sk_receive_queue中,进程通过recvmsg_from去从协议栈中读数据, 在sk_receive_queue中的都是一个完整的从用户发过来的skb数据包了,里面有完整的tcp的控制信息位于:tc
阅读全文
摘要:为啥systemtap没找到函数 hon@station6:~/codebox/stap/net$ sudo stap -L 'kernel.function("sock_recvmsg_nosec")'kernel.function("sock_recvmsg_nosec@/build/linux
阅读全文
摘要:kernel.trace("sched_switch") func:func:perf_trace_sched_stat_template get the function in probe begin { printf("Begin")}probe kernel.function("tracepo
阅读全文
摘要:register_trace_##name宏中 tracepoint_probe_register在这个函数中在同一个cp上可以挂多个处理函数, 查看函数:trace_block_rq_issue中定义了这个tracepoint以及tracepoint的钩子函数 tracepoint中给你输入了tr
阅读全文
摘要:只有在ret probe函数中,在这个函数中才会使用@entry函数去提取变量 是因为ret probe 有什么特殊的吗?在中间这个变量会变化吗? A new operator, @entry, is available for automatically saving an expression
阅读全文
摘要:sudo stap -g submit_bio.stp -D MAXACTION=100000 kern_path_locked lookup_one_len filename_create --> __lookup_hash --> d_alloc filename中的函数f
阅读全文
摘要:想着在submit_bio的地方,发现在guru模式下,stap是经常性地把内核整挂呀,不得已,也没有发现stap什么比较好的调试方法,所以索性直接使用stap的语法了,但是发现有问题呢,有的时候bv->bv_page->mapping->host, 我发现有的时候,这个地方得到的inode,然后我
阅读全文
浙公网安备 33010602011771号