ILD

packet mmap
2018-5-8
PACKET socket通常用来发送和接收链路层的包。如果没有开启PACKET_MMAP,收发包的处理是非常低效的,一次系统调用只能取得一个包,如果想要知道包的时间戳,需要两次系统调用。相反,PACKET_MMAP非常高效,它提供了一个大小可配置的环形缓存,该缓存映射到用户态,用来发送和接收数据包

packet socket 指定ARP协议的问题
2018-5-9
packet socket指定接收ARP协议,当接口放入桥中时,接收不到ARP数据包。1234567891011struct sockaddr_ll sll;int sock; sock = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ARP)); memset(

Linux socket filtering
2018-5-9
1 IntroductionLinux Socket Filtering (LSF) 衍生自 Berkeley Packet Filter (BPF).BPF允许用户程序添加一个filter到任何的socket,来允许或拒绝某些类型的数据包通过socket。LSF和BSD的BPF的过滤代码结构相同。

基于tun/udp的VPN的MTU计算
2019-5-24
MTU指的是以太帧的payload的最大长度,为1500。以太帧的最大长度要再加上14个字节的以太头,4个字节的校验,最大变成1518,如果在算上4个字节的VLAN,那么可以达到1522。以太帧最短是64个字节。Linux使用ping测试MTU,ping -M do -s 1470 8.8.8.8

igmp snooping & proxy
2019-10-10
multicast routing多播路由需要用户态配置。用户态igmp proxy守护进程接收lan侧的igmp请求,转发给WAN侧。并配置转发条目。查看多播路由表# ip mroute(192.168.110.110, 224.1.1.1) Iif: eth4094 Oifs: b

netlink消息类型和格式
2020-1-6
Netlink types最顶层的netlink消息类型是套接字层指定的,创建了这种类型的套接字,就只能和这种类型的netlink消息通信:如:nlsock = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE); 常见的netlink消息类型有:#define

Copyright © insidelinuxdev.net 2017. Some Rights Reserved.