创建req scoket时的三个长度检查 0.0.1. 创建半链接时的三个长度检查在处理TCP-SYN首包时候, tcp_conn_request函数里, 会有三个不同条件的长度检查。 inet_csk_reqsk_queue_is_full 半链接的个数超过sk_max_ack_backlog, 则丢包。 sk_acceptq_is_full: accept 队列长度超过sk_max_ack_backlog,则丢包。 sysctl_ 2025-05-05 TCP #IPv4
网口状态标志位解析part2: 内核如何维护网卡carrier的状态 0.0.0.1. operstate的小插曲2006年内核引入operstate特性,在当时协议栈的维护者中也是颇有争议的!!!引入operstat特性的patch 0.1. 标志位IFF_UP0.1.1. 设置/清除标志位IFF_UPip link set eth0 up: 每个eth口在内核里有对应的struct net_device。 每个netdev设备里有一个上的fla 2025-05-03 Netdev #netdev
网口状态标志位详解(Part 1/2) 1. 常见问题我们在平常定位问题,经常会通过ip link或ifconfig查看网络环境和配置。其中网口的标志位是其中很重要的一个检查环节。在输出结果里,会有两组标志位信息 一组是尖括弧里包含的值<BROADCAST,MULTICAST,UP,LOWER_UP\>,有很多标志位的组合。 另一组是 state UP。还有其他状态如DOWN, LOWERLAYERDOWN等。这些信息 2025-05-01 Netdev #netdev
struct-group 0.1. __struct_group浏览IPv6代码时候,看到这样一个新玩法,__struct_group 123456789118 struct ipv6hdr {...132 __u8 hop_limit;133134 __struct_group(/* no tag */, addrs, /* no attrs 2024-09-21 others #others
内核如何管理同网口下多个ip地址(网口别名) 0.0.1. 总结内核如何管理 网口上的IPv4 地址: 每个网口下面有多个IPv4地址,每个IP地址存放到一个struct in_ifaddr的结构体里。这个结构体里存放别名、ip地址和掩码信息。 每个网口下面有一个单链表,每个ifa 节点通过ifa_next指向下一个 ifa 节点。通过这个链表把多个 ifa 地址链接在一起。 每个 net_namespace下有多个网口,通过一个 hash 2024-05-03 Netdev #address
bfp 在内核运行的核心入口函数及其变形 0.1. bpf prog内核运行核心入口函数0.1.1. 总结:___bpf_prog_runbfp 在内核运行的核心入口函数:___bpf_prog_run___bpf_prog_run是bfp的核心函数入口,该函数被多个不同stack size的函数调用。函数指针数组interpreters这把上面的这些函数汇集到一起。当bpf程序被加载到内核时候,内核创建为它一个bpf_prog结构体,根 2022-08-27 BPF #BPF
aws上部署hexo步骤记录 0.1. 安装步骤12345sudo apt-get updatesudo apt install docker.io -ydocker pull xxxxxxx/hexo:v1.0docker create --name=blog -p 4000:4000 xxxx/hexo:v1.0docker start blog 2021-10-24 Tools #Tools
IPv6: how to support IPv6 ext header 0.1. 概述0.1.1. 与IPv4的几点不同IPv6在扩展头和协议处理上跟IPv4还有些不一样。 IPv6报文格式设计上,上层协议和扩展头都作为IPv6的nexthdr类型串联在一起,不像IPv4那样扩展头是单独的option,上层协议类型放到ip头里的proto字段。 IPv6的扩展头大部分采用tlv格式,大部分扩展头前几个字节会保存nexthdr,本扩展的长度这两个信息,然后跟本扩展头相 2020-10-03 Route #IPv6
内核OVS的学习总结 OVS里最重要的几个元素:vport,flow,datapath。其中datapth是vport和flow的桥梁。 0.1. VPORT内核包含多个datapath(brige),上面包含一个或者多个vport。其中一个VPORT表示一个端口,一个vport只能归于一个特定的datapath。每个vport有自己的type, 对应不同的vport ops.每个内核网口被注册为vport的时候 2020-03-25 Netdev #ovs