zoukankan      html  css  js  c++  java
  • 显示系统中所有的socket信息

    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_next

    难道只得到listening和establiseded的sock吗?

    tcp_seek_last_pos

    inet_hashinfo tcp_hashinfo是一个全局的变量,都是从这个全局的哈希表中得来的,得来的

    可不可以看到每一个socket上的数据传输速度呢?传输的速度、传输的package的数目,

    • nethogs: 按进程查看流量占用
    • iptraf: 按连接/端口查看流量
    • ifstat: 按设备查看流量
    • ethtool: 诊断工具
    • tcpdump: 抓包工具
    • ss: 连接查看工具
    • 其他: dstat, slurm, nload, bmo

    http://www.jb51.net/LINUXjishu/151977.html

    ss可以统计详细的socket信息

    lsof是怎么读取全部打开的文件的呀?

    使用lsof -p <pid>能够列出所有该进程所有占用的文件,这个该很好获取 /proc/<pid>/fd,进程打开的所有的文件,然后是进程打开的文件,系统现在打开的所有的文件是通过哪个接口读出来的?会遍历所有文件的/proc/<pid>/fd/,可以看codebox: lsof.stp read.stp。

    从网络设备和socket上,一直有个问题,尤其是tcp已经有流量控制了,为啥还要有流量

    单机上网络流量控制。如何控制网络的流量

    在网络整个协议栈上有几个重要的节点,这个也是iptables存在的原因,iptables中设置了几个重要的链,这几条链包括INPUT/OUTPUT/PREROUTING/POSTROUTING/FORWARD/,有这样5个链,接收数据包的流程,比如接收到数据包,接收的数据包会在函数中netif_receive_skb,然后在ip层是ip_recv,
    比如在函数ip_rcv的最后由函数:
     
    ip_rcv:                    NF_HOOK(NFPROTO_IPV4, NF_INET_PRE_ROUTING, net, NULL, skb, dev, NULL, ip_rcv_finish);
    ip_local_deliver:     NF_HOOK(NFPROTO_IPV4, NF_INET_LOCAL_IN, net, NULL, skb, skb->dev, NULL, ip_local_deliver_finish);
    ip_forward:             NF_HOOK(NFPROTO_IPV4, NF_INET_FORWARD,net, NULL, skb, skb->dev, rt->dst.dev,ip_forward_finish);
     
    在这几个关键的节点上可以对数据包作丰富的处理,
    然后net_filter提供的所有的filter包括,在PREROUTING之前做的事情,
     46 enum nf_inet_hooks {
     47     NF_INET_PRE_ROUTING, 接收到了数据包,在进行路由之前,修改数据包的信息;
     48     NF_INET_LOCAL_IN,  路由之后,在这个数据包进如高层协议之前要做的事情;
     49     NF_INET_FORWARD, 在路由确定了之后,数据包进行转发;已经确定过了转发的出口
     50     NF_INET_LOCAL_OUT, 
     51     NF_INET_POST_ROUTING,,经过路由,还没有确定转发的出口
     52     NF_INET_NUMHOOKS
     53 };
    NAT使用了其中的三条链:pre_routing/post_routing/forward
    prerouting/post_routing是原始的NAT的逻辑,forward呢?
    output规则链是在传出去之前,就把数据包的目的给换掉,从而完成端口的转发,如何完成
    所以post_routing和output规则链有个重要的区别是一个是改源地址一个是改目的地址,都是
     
  • 相关阅读:
    缓慢变化纬的解决方法
    行转列且有序
    异常处理
    继承
    js的隐式转化
    初步了解微任务
    axios中断请求AbortController
    Vue解决V-HTML指令潜在的XSS攻击('v-html' directive can lead to XSS attack vue/no-v-html)
    axios下载后台传过来的流文件并设置下载文件名(如excel)
    axios异步获取文件流数据
  • 原文地址:https://www.cnblogs.com/honpey/p/9030840.html
Copyright © 2011-2022 走看看