linux 网络协议栈
文章平均质量分 63
分析linux TCP/IP 协议栈源码,最终提出自己的优化分析。
Andre-S
linux系统开发中。。。
展开
-
Linux TCP CC状态机
万字详文:TCP 拥塞控制详解 - 知乎 bcc/tools/tcpcong.py at master · iovisor/bcc bcc/tools/tcpcong_example.txt at master · iovisor/bcc原创 2024-10-26 09:30:06 · 363 阅读 · 1 评论 -
QEMU - user network
可以看出 tcp连接是建立成功的,后面由于guest os/SLIRP上ssh不支持,SLIRP就断开guest和host的tcp连接了。理论上,guest os会通过dhcp client和SLIRP上的dhcp server沟通,自动配置guest os的网卡。用的host的 localhost ip 和 host OS的tcpip stack。Guest OS tcpip stack 和 SLIRP tcpip stack沟通。可以看出guest上没有支持sshd,所有该ssh的tcp连接没有成功。原创 2024-08-31 11:23:33 · 606 阅读 · 0 评论 -
QEMU - e1000全虚拟化前端与TAP/TUN后端流程简析
怎样在qemu上实现层三设备的全虚拟化。原创 2024-01-30 22:39:57 · 838 阅读 · 1 评论 -
Linux - network tracing tool
引用。原创 2023-07-23 17:43:27 · 195 阅读 · 0 评论 -
linux - skb 基本概念理解
skb的基本理解和常用操作二. 两种非线性区的使用方式2.1 DMA and Fragmented sk_buff Containing Paged Data原创 2023-04-04 22:38:08 · 440 阅读 · 0 评论 -
丢包分析工具
丢包分析工具原创 2023-02-26 11:08:06 · 398 阅读 · 0 评论 -
如何分析linux tcp/ip 丢包问题
在linux平台上,如何定位本地丢包问题。原创 2023-02-26 10:26:58 · 1904 阅读 · 0 评论 -
Linux - iputils - ping
一般是因为网卡没有释放发送buffer,可检查网卡驱动的tx done函数。创建了两个socket。sockbuff大小。原创 2023-02-09 20:30:04 · 429 阅读 · 0 评论 -
tc ebpf sample - tethering offload on linux pc
【代码】tc ebpf sample - tethering offload on linux pc。原创 2022-11-30 22:30:48 · 876 阅读 · 0 评论 -
network-tc-ebpf
linux tc ebpf 示例原创 2022-10-30 09:27:45 · 430 阅读 · 0 评论 -
Linux - 虚拟网络设备 - 链路聚合,bond,team
引用高级网络配置之BOND 与 TEAM网络接口 一. bond基本概念: 将多块网卡虚拟成为一块网卡,使其具有相同的ip地址,来实现提升主机的网络吞吐量或者是提高可用性,这种技术被称作bonding。模式0( 平衡轮循) -mode=0(balance-rr) 轮循策略,所有接口都使用采用轮循方式在所有Slave 中传输封包; 任何Slave 都可以接收 - 模式1( 主动备份) -mode=1(active-backup) 容错。同时只有一个Slave在工作,但是...原创 2022-04-05 13:08:05 · 4241 阅读 · 0 评论 -
Linux - 网络子系统 - ss的三种tcp速率解析
一. send_bps根据RTT和拥塞窗口计算的发送速率,可能实际速率小于此值。例如,当由于TSQ等机制导致发送延迟,而占不满拥塞窗口。 tcp_input.c - net/ipv4/tcp_input.c - Linux source code (v5.17.1) - Bootlin s.send_bps = (double) info->tcpi_snd_cwnd * (double)info->tcpi_snd_mss * 8000000. / rtt; ==》info-&g..原创 2022-03-28 21:01:35 · 4251 阅读 · 0 评论 -
Linux - 网络子系统 - TCP RTT and RTO
TCP中RTT的测量和RTO的计算 TCP系列15—重传—5、Linux中RTO的计算一. 基本概念二. linux 代码原创 2022-02-27 19:42:05 · 2828 阅读 · 0 评论 -
TCP知识点概述
TCP在TIME-WAIT状态下的时候,如果接收到reset包,它可能会提前结束TIME-WAIT状态,包括 停止等待ARQ和连续ARQ。转载 2021-12-19 21:09:04 · 191 阅读 · 0 评论 -
ipv4 options - Record route
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <unistd.h>#include <netinet/in_systm.h>#include <netinet/ip.h>#include <arpa/inet.h>static unsigned char *optr; /* pointer into options bei.原创 2021-12-02 22:12:24 · 437 阅读 · 0 评论 -
IPv6 extension header
RFC 3542 - Advanced Sockets Application Program Interface (API) for IPv6 RFC 2460 (Obsoleted: Dec 1998 - Jul 2017, 39 pages)#include <stdlib.h>#include <unistd.h>#include <stdio.h>#include <string.h>#include <sys/types.h&g原创 2021-11-28 22:59:28 · 1917 阅读 · 0 评论 -
TCP CC tracing
#!/usr/bin/python## tcp_cc Trace TCP IPv4 tcp_slow_start and tcp_cong_avoid_ai().# For Linux, uses BCC, eBPF. Embedded C.from __future__ import print_functionfrom bcc import BPFfrom bcc.utils import printb# define BPF programbpf_text =...原创 2021-11-14 21:08:16 · 1564 阅读 · 0 评论 -
raw packet - python
#!/usr/bin/env python3from raw_packet.Utils.base import Basefrom raw_packet.Utils.network import RawIPv4, RawUDP, RawEthernetfrom argparse import ArgumentParserfrom random import randintfrom getmac import get_mac_addressfrom time import sleepfrom .原创 2021-11-03 23:21:42 · 326 阅读 · 0 评论 -
Linux - Netlink
引用内核通信之 Netlink 源码分析和实例分析 Linux Netlink基本使用 Netlink 内核实现分析(一):创建原创 2021-10-07 22:38:33 · 146 阅读 · 0 评论 -
同步/异步,阻塞/非阻塞 IO 模型理解
引用IO - 同步,异步,阻塞,非阻塞 (亡羊补牢篇) select、poll、epoll之间的区别总结(IO同、异步、(非)阻塞)----内核态、用户态 使用异步 I/O 大大提高应用程序的性能...转载 2020-04-06 15:22:32 · 388 阅读 · 0 评论 -
Linux - setsockopt, ioctl 实现
引用linux 内核 IOCTL 网络控制框架实现分析一. setsockopt二. ioctlsock_ioctl()是套接字类型文件的ioctl接口实现。首先根据不同层次或类型调用相应的处理函数,然后,通过套接字传输层接口进入到不同类型的套接字的实现中。STREAM, DGRAM, RAW类型的套接字都是inet_ioctl()。inet_ioctl()是IPv4协议族套接字层ioctl接口的实现函数。根据不同的层次(如,路由,ARP, 网络设备)调用相应的处理函数,而..原创 2021-10-07 21:40:41 · 430 阅读 · 0 评论 -
动图图解!代码执行send成功后,数据就发出去了吗?
代码执行send成功后,数据就发出去了吗?回答这个问题之前,需要了解什么是Socket 缓冲区。一. socket 缓冲区1.1 什么是 socket 缓冲区编程的时候,如果要跟某个IP建立连接,我们需要调用操作系统提供的socket API。socket在操作系统层面,可以理解为一个文件。我们可以对这个文件进行一些方法操作。用listen方法,可以让程序作为服务器监听其他客户端的连接。用connect,可以作为客户端连接服务器。用send或write可以发送...转载 2021-09-25 21:58:55 · 480 阅读 · 0 评论 -
硬核图解!断网了,还能ping通 127.0.0.1 吗?为什么?
你女神爱不爱你,你问她,她可能不会告诉你。但网通不通,你ping一下就知道了。可能看到标题,你就知道答案了,但是你了解背后的原因吗?那如果把127.0.0.1换成0.0.0.0或localhost会怎么样呢? 你知道这几个IP有什么区别吗?话不多说,我们直接开车。拔掉网线,断网然后在控制台输入ping 127.0.0.1。$ ping 127.0.0.1 PING 127.0.0.1 (127.0.0.1): 56 data bytes 64 bytes ...转载 2021-09-25 21:16:39 · 320 阅读 · 0 评论 -
Linux - 虚拟网络设备 - bridge,veth,namespace
引用网络配置(桥接、bond、team一. bridge网桥(Bridge)是早期的两端口二层网络设备,用来连接不同网段。网桥的两个端口分别有一条独立的交换信道,不是共享一条背板总线,可隔离冲突域。网桥比集线器(Hub)性能更好,集线器上各端口都是共享同一条背板总线的。后来,网桥被具有更多端口、同时也可隔离冲突域的交换机(Switch)所取代。 网桥(Bridge)像一个聪明的中继器。中继器从一个网络电缆里接收信号, 放大它们,将其送入下一个电缆。相比较而言,网桥对从关卡上传下来的信息更敏锐一些。原创 2021-09-12 22:12:16 · 1951 阅读 · 0 评论 -
Linux - 虚拟网络设备- TUN,TAP,ip tunnel
引用Tun/Tap interface tutorial 什么是IP隧道,Linux怎么实现隧道通信? Linux内核网络设备--TUN. TAP设备一. concepTUN设备:一种虚拟网络设备,点对点的设备。三层设备,即处理的是IP数据包。不需要物理地址,即不需要ARP。用于创建路由。因为通过读写/dev/tun设备可以直接从协议栈的三层读写ip包,所以tun设备常用于vpn、tunnel、ipsec之类的。TAP设备:一种虚拟网络设备,ethernet以太网设备。二层设备,即处...原创 2021-09-12 21:45:37 · 5685 阅读 · 0 评论 -
Linux Route
引用理解OpenStack高可用(HA) linux网络知识:路由策略(ip rule, ip route) Linux系列—策略路由、ip rule、ip route原创 2021-08-03 22:20:39 · 109 阅读 · 0 评论 -
Linux - 网络子系统 - RAW Socket
引用linux 原始套接字实现分析 Linux raw socket原创 2021-07-10 23:29:48 · 179 阅读 · 0 评论 -
linux网络协议栈相关的优秀文章
Monitoring and Tuning the Linux Networking Stack: Sending Datahttps://blog.packagecloud.io/eng/2017/02/06/monitoring-tuning-linux-networking-stack-sending-data/Monitoring and Tuning the Linux Netwo...原创 2019-11-12 22:30:29 · 195 阅读 · 0 评论 -
LRO -- skb_buff->frags[] & skb_buff->frag_list
/*更新整个lro skb的相关数据*/static void lro_add_common(struct net_lro_desc *lro_desc, struct iphdr *iph, struct tcphdr *tcph, int tcp_data_len){ struct sk_buff *parent = lro_desc->parent; __be3...原创 2019-11-28 22:30:35 · 677 阅读 · 0 评论 -
Linux tcpdump 常用方法
引用1. A tcpdump Tutorial with Examples — 50 Ways to Isolate Traffichttps://danielmiessler.com/study/tcpdump/2. Linux tcpdump 命令详解https://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html...原创 2020-03-22 11:24:18 · 219 阅读 · 0 评论 -
iperf3用法和源码详解
一.udp模式1.1 iperf在udp模式下,以100Mbps为数据发送速率,客户端到服务器192.168.1.1上传带宽测试,测试时间为60秒。server: iperf -u -sclient: iperf -u -c 192.168.100.1 -b 100M -t 602.客户端同时向服务器端发起30个连接线程,以5...原创 2020-03-22 12:18:30 · 4181 阅读 · 2 评论 -
网卡调优基本套路
一.衡量参数二.工具三.调优方向原创 2020-08-02 10:02:53 · 1266 阅读 · 0 评论 -
TCP/IP 最大路径MTU
一. 最大路径MTU概念二. 基于ICMP的PMTUD三.UDP的路径MTU发现四.TCP的路径MTU发现原创 2020-09-22 22:07:08 · 168 阅读 · 0 评论 -
Linux - 网络子系统 - CT
引用连接跟踪(conntrack)原理、应用以及Linux内核实现 Linux内核那些事之连接跟踪一. OverallCT:连接跟踪 - connection tracking,conntrack。 连接跟踪是许多网络应用的基础。例如,Kubernetes Service、ServiceMesh sidecar、 软件四层负载均衡器 LVS/IPVS、Docker network、OVS、iptables 主机防火墙等等,都依赖 连接跟踪功能例如,上图是一台 IP 地址为...转载 2021-06-27 21:59:45 · 879 阅读 · 0 评论 -
Linux - 扩展Linux网络栈
引用Scaling in the Linux Networking Stack 扩展Linux网络栈一. Overall本文的描述了Linux网络栈中的一组补充技术,用于增加多处理器系统的并行性和提高性能。描述的结束为:RSS: Receive Side Scaling RPS: Receive Packet Steering RFS: Receive Flow Steering Accelerated Receive Flow Steering XPS: Transmit Pa转载 2021-06-27 21:51:14 · 131 阅读 · 0 评论 -
Linux - ebpf - network
引用Linux网络新技术基石 |eBPF and XDP一. Overall原创 2021-06-27 21:43:21 · 330 阅读 · 0 评论 -
Linux - 网络子系统 - Transport Layer: UDP
引用Monitoring and Tuning the Linux Networking Stack: Receiving Data Monitoring and Tuning the Linux Networking Stack: Sending Data一. Overall原创 2021-06-27 21:12:17 · 82 阅读 · 0 评论 -
Linux - 网络子系统 - Transport Layer: TCP
引用TCP/IP协议栈在Linux内核中的运行时序分析 这一篇TCP总结请收下 图解Linux网络包接收过程原创 2021-04-10 21:36:02 · 283 阅读 · 0 评论 -
Linux MBIM
引用cdc_mbim - Driver for CDC MBIM Mobile Broadband modems Microsoft MB Interface Model Overview USB IF Document Library - MBIM v1 0 - errata原创 2020-11-03 23:04:19 · 882 阅读 · 0 评论 -
Linux Netowrk - Netfilter
引用简介简单配置iptables配置简单介绍 #nat 配置 #五个位置也被称为五个钩子函数(hook functions),也叫五个规则链。 # 1.PREROUTING (路由前) # 2.INPUT (数据包流入口) # 3.FORWARD (转发关卡) # 4.OUTPUT(数据包出口) # 5.POSTROUTING(路由后) #我们现在用的比较多个功能有3个: # 1.filter 定义允许或者不允许的 # 2.nat 定...原创 2020-11-15 16:29:24 · 155 阅读 · 0 评论