- 博客(206)
- 资源 (29)
- 收藏
- 关注
原创 linux - ping -I 的一种异常场景处理分析
linux会根据路由规则选择一个其他网卡的ip,但,还是会从该指定网卡发送。用ping -I 指定一个没有配置ip地址且已经up起来的网卡。
2023-07-23 21:08:36 364
原创 linux - skb 基本概念理解
skb的基本理解和常用操作二. 两种非线性区的使用方式2.1 DMA and Fragmented sk_buff Containing Paged Data
2023-04-04 22:38:08 300
原创 linux-中断下半部
中断分成上下半部处理可以提高中断的响应能力,在上半部处理完成后便将中断打开(通常上半部处理越快越好),这样就可以响应其他中断了,等到中断退出的时候再进行下半部的处理。
2023-02-27 21:24:31 289
转载 RCU浅析理解
RCU - Read-Copy-Update (读时加锁,写时拷贝,读后更新)为读写锁的升级版特点:运行读者和写者并发执行;最大程度减少读者侧的开销;没有死锁问题没有优先级反之问题没有内存泄漏问题很好的实时延迟写者的同步开销比较大,写者之间需要互斥处理。
2023-02-23 22:40:53 403
原创 Linux - iputils - ping
一般是因为网卡没有释放发送buffer,可检查网卡驱动的tx done函数。创建了两个socket。sockbuff大小。
2023-02-09 20:30:04 311
原创 tc ebpf sample - tethering offload on linux pc
【代码】tc ebpf sample - tethering offload on linux pc。
2022-11-30 22:30:48 797
原创 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 4126
原创 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 3987
原创 Linux - 网络子系统 - TCP RTT and RTO
TCP中RTT的测量和RTO的计算 TCP系列15—重传—5、Linux中RTO的计算一. 基本概念二. linux 代码
2022-02-27 19:42:05 2628
转载 TCP知识点概述
TCP在TIME-WAIT状态下的时候,如果接收到reset包,它可能会提前结束TIME-WAIT状态,包括 停止等待ARQ和连续ARQ。
2021-12-19 21:09:04 132
转载 Linux tracing systems & how they fit together
I’ve been confused about Linux tracing systems foryears. There’s strace, and ltrace, kprobes, and tracepoints, and uprobes, and ftrace, and perf, and eBPF,and how does it all fit together and what does it all MEAN?Last week I went to Papers We Love and.
2021-12-19 20:31:18 298
原创 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 397
原创 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 1880
原创 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 1527
原创 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 277
原创 Linux - Netlink
引用内核通信之 Netlink 源码分析和实例分析 Linux Netlink基本使用 Netlink 内核实现分析(一):创建
2021-10-07 22:38:33 102
原创 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 369
转载 活久见!TCP两次挥手,你见过吗?那四次握手呢?
我们都知道,TCP是个面向连接的、可靠的、基于字节流的传输层通信协议。那这里面提到的"面向连接",意味着需要 建立连接,使用连接,释放连接。建立连接是指我们熟知的TCP三次握手。而使用连接,则是通过一发送、一确认的形式,进行数据传输。还有就是释放连接,也就是我们常见的TCP四次挥手。TCP四次挥手大家应该比较了解了,但大家见过三次挥手吗?还有两次挥手呢?都见过?那四次握手呢?今天这个话题,不想只是猎奇,也不想搞冷知识。我们从四次挥手开始说起,搞点实用的知识点。一.
2021-09-25 22:36:35 1064
转载 动图图解!代码执行send成功后,数据就发出去了吗?
代码执行send成功后,数据就发出去了吗?回答这个问题之前,需要了解什么是Socket 缓冲区。一. socket 缓冲区1.1 什么是 socket 缓冲区编程的时候,如果要跟某个IP建立连接,我们需要调用操作系统提供的socket API。socket在操作系统层面,可以理解为一个文件。我们可以对这个文件进行一些方法操作。用listen方法,可以让程序作为服务器监听其他客户端的连接。用connect,可以作为客户端连接服务器。用send或write可以发送...
2021-09-25 21:58:55 415
转载 连接一个 IP 不存在的主机时,握手过程是怎样的?
文章首发于个人公众号「小白debug」原文链接:连接一个 IP 不存在的主机时,握手过程是怎样的?连接一个IP 不存在的主机时,握手过程是怎样的?连接一个IP 地址存在但端口号不存在的主机时,握手过程又是怎样的呢?让我回想起曾经也被面试官问过类似的问题,意识到应该很多朋友会对这个问题感兴趣。所以来给大家唠唠。这两个问题可以延伸出非常多的点。看完了,说不定能加分!一. 正常情况的握手过程是怎么样的上面提到的问题,其实是指TCP的三次握手流程。这绝对是面试八股...
2021-09-25 21:39:19 393
转载 硬核图解!断网了,还能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 224
sourceinsight4.0
2017-09-24
kiwi syslog server
2017-09-24
好用的串口助手
2017-03-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人