随笔分类 - 网络
就是各种协议了
摘要:又开始了读网络部分的代码,真是有毒; 这次是要好好看看路由部分的代码 fib_table_insert是整个增加路由的入口 执行route add -net 192.163.0.0/24 dev eth0 在这行这句话的时候,到了内核中 fib_table_insert key_node在路由中的重
阅读全文
摘要:很多的网络方案中都是弄了个张网卡,然后在这个网卡上等着接受数据,比如vxlan网卡,比如网桥等等 vxlan网卡上你去配置一些规则, 最重要的事情,就是配置路由规则,看下数据包导入到那张网卡中去,如果是普通的网卡的话,直接就把数据包发送出去了,如果是特殊的网卡就处理数据包染后发送出去。
阅读全文
摘要:postrouting要解决的应该是源端地址,因为出了网卡之后,就要改成网卡的地址了,否则数据包是回不来的。这个也是vxlan的适用的场景,因为vxlan网卡把数据数据发送出去以后,网卡的源地址是自己的地址,其实感觉只要vxlan的网卡地址和物理机网络完全是在一个网段就没有必要去使用postrout
阅读全文
摘要:先自己想想preorouting试用的场景是什么,上面一篇文章已经说过了,是说网卡放过了这个数据包,然后是需要iptables对这个数据包做一个整改,这里的适用场景肯定是改目的地址啊,因为改了目的地址之后,机器上配置了forwarding是个1,这个时候linux的路由策略是被触发的,这个时候会把数
阅读全文
摘要:xu虚拟网络中最重要的是还是网卡, 理解虚拟网络最重要的还是网卡; 理解虚拟网络最重要的还是网卡; 理解网卡的行为,一个数据包到了网卡之后要做什么,到了网卡之后,网卡就把数据包网协议栈上去送了,然后在协议栈网上去送的过程中如果协议栈配置的是可以转发,那么直接就路由过去了;我们之所以对网卡感觉比较乱,
阅读全文
摘要:看样子bpf是iptables的替代方案;这几个概念都是属于哪一个层面的,首先vxlan是一种收包的方式,是说到了宿主机之后,包的传递的方式,这个是和iptable是重复的吗? 创建了一个wlan的设备,设置了这个设备的ip之后,连路由都创建好了,这里有个地方非常难想,就是网络设备到底是个什么东西
阅读全文
摘要:最近工作中是有网络方面的需求,在这里写一些golang网络server端的一些内容。还是有诸多的点没有想明白; 1)一个server端的例子; 2)epoll,每当有数据的时候就会有这么一个事件么,都是有事件的,这里就是fd的驱动,这里就是fd的驱动,为什么fd忽悠 fd上如果是注册了poll函数,
阅读全文
摘要:openssl库的话,是把加密的信息放在了用户态,底层使用的tcp协议,在下面这个例子里,其实是可以如何获取到server端的证书的 http://fm4dd.com/openssl/sslconnect.shtm 这里不算是什么稀奇的事情,反正openssl和http这些协议一抓一大把。http的
阅读全文
摘要:/usr/local/lib/python2.7/dist-packages/allauth/account/utils.py in setup_user_email, line 258 /usr/local/lib/python2.7/dist-packages/allauth/account/u
阅读全文
摘要:使用网络命名空间:net namespace 在namespace ns1中增加了两个网卡 sudo ip netns add ns1 sudo ip link add veth0 type veth peer name veth1 sudo ip link add veth2 type veth
阅读全文
摘要:待补充
阅读全文
摘要:也就是说啊,内核中的收发包的路径,很可能是经理driver_recv --> tcp -->driver_send这样一个过程,是个很长的路径呢...... 从dev_queue_xmit中来的数据包全部都是从ip_finish_output中来的吗? 所以,应该经常能抓到ip_local_out才
阅读全文
摘要:路由表查看 arp缓存 都是走的什么接口?
阅读全文
摘要:见 codebox/net/qdisk/xmit.log中保存了一份记录 调用关系 sch_direct_xmit --> dev_hard_start_xmit --> xmit_one --> netdev_start_xmit -->__netdev_start_xmit > ops->ndo
阅读全文
摘要:1) 当arp表项不存在的时候,数据包等待表项存在了再发,还是直接把数据包给丢掉; 2)如果网络目的地址不可达,是在那一层把数据丢弃,再是路由层就判断还是arp层呢?
阅读全文
摘要:[结论] 当协议失效的时候,skb会挂载arp的neigt的一个链表上,然后直接返回了,相当于数据包发下了,当arp收到数据包去修复neigh的目的地址的时候,会把之前所有的neihe中等待的skb全部都往下刷到网卡队列中去; 当协议没生效的时候,skb会直接刷到网卡的队列中去; 网卡多ip 为什么
阅读全文
摘要:和几个变量有非常大的关系 发送缓冲区的大小,如何单独设置一个socket的发送缓冲区 socketopt 发送缓冲区中的数据,如果被拥塞窗口限制住了,那么这些数据可能就放在tcpbuffer里的,此时是谁去把这些buffer中的数据给flush出去呢?是有定时器吗? tcp有许多timers tcp
阅读全文
摘要:网络上的同步写和异步写和磁盘的同步和异步不一样 网络上的同步写是写到tcp的缓冲区中,如果缓冲区没有地方了,那么是直接返回给用户态程序还是让用户程序卡住,这个是阻塞和非阻塞发生的地方。 注意:阻塞是指tcp缓冲区中是否有数,然后在机器不重启的情况下,tcp协议会保证你的数据到达对端!!!!也就是tc
阅读全文
摘要:tc的学习原来是想着直接从用户态学习的,但是万万没想到哇,qdisc class两个概念直接把我给搞晕了,直接看代码吧 调用:tc qdisc add dev tap0 root handle 1: htb default 2 在增加tc class的时候的调用栈是: 在qdisc中打点,发现每创建
阅读全文
摘要:为啥我用netem做了一个流量的控制 但是发送的时候,感觉真正发送数据的时候还是没有达到每一个数据包都是1s的延迟呀,这里的1s的延迟是啥意思啊? 这里的delay并不是说每个数据包都delay 5s,而是说delay5s之后,一下子全部都发送出去? sudo tc qdisc add dev et
阅读全文
浙公网安备 33010602011771号