摘要:root@ubuntu:~# kubectl logs antrea-busybox root@ubuntu:~# kubectl logs antrea-busybox --previous root@ubuntu:~# kubectl get pods NAME READY STATUS RES
阅读全文
摘要:暴露一个http服务的方式 service 是 k8s 暴露http服务的默认方式, 其中 NodePort 类型可以将http 服务暴露在宿主机的端口上,以便外部可以访问。 service模式的结构如下. service -> label selector -> pods 31217 -> app
阅读全文
摘要:root@ubuntu:~# kubectl apply -f ./antrea/build/yamls/antrea.yml customresourcedefinition.apiextensions.k8s.io/antreaagentinfos.clusterinformation.antr
阅读全文
摘要:Valgrind工具详解 1.Memcheck 最常用的工具,用来检测程序中出现的内存问题,所有对内存的读写都会被检测到,一切对malloc、free、new、delete的调用都会被捕获。所以,它能检测以下问题: 1、对未初始化内存的使用; 2、读/写释放后的内存块; 3、读/写超出malloc分
阅读全文
摘要:#include<stdio.h> #include<stdlib.h> void main() { int *ptr = (int *)0; *ptr = 100; } root@ubuntu:~/c++# gcc seg.c -o seg root@ubuntu:~/c++# ./seg Seg
阅读全文
摘要:root@ubuntu:~/c++# ./u_server Listener on port /tmp/echo_socket Waiting for connections ... Welcome message sent successfully Adding to list of socket
阅读全文
摘要:# -*- coding: UTF-8 -*- from scapy.layers.inet import IP, ICMP, TCP from scapy.layers.l2 import Ether import sys import logging logging.getLogger("sca
阅读全文
摘要:TFO的fast open标志体现在TCP报文的头部的OPTION字段 开启 echo 3 > /proc/sys/net/ipv4/tcp_fastopen # 1 开启客户端,2 开启服务端,3 都开启 tc qdisc add dev lo root netem delay 300ms # 设
阅读全文
摘要:性能检测工具安装 # curl -O http://downloads.es.net/pub/iperf/iperf-3.0.6.tar.gz # tar axf iperf-3.0.6.tar.gz # cd iperf-3.0.6 # ./bootstrap.sh # ./configure #
阅读全文
摘要:转载 https://zhuanlan.zhihu.com/p/59400622 TCP/IP怎么就这么多队列啊?今天我们就来细看一下TCP/IP的几个队列,包括建立连接时的半连接队列(sync),全连接队列(accept)和接收报文时的receive、outoforder、prequeue以及ba
阅读全文
摘要:prequeue 在linux内核中,每一个网络数据包,都被切分为一个个的skb,这些skb先被内核接收,然后投递到对应的进程处理,进程把skb拷贝到本tcp连接的sk_receive_queue中,然后应答ack。以往的内核处理这些skb的时候,是直接通过内核调度的,有数据来了,就进行进程调度,这
阅读全文
摘要:提高UDP交互性能 这是一篇个人认为非常非常厉害的文章,取自这里。讲述了如何提升UDP流的处理速率,但实际涉及的技术点不仅仅限于UDP。这篇文章中涉及的技术正好可以把前段时间了解的知识串联起来。作者:Toshiaki Makita 讲述内容 背景 提升网络性能的基本技术 如何提升UDP性能 作者介绍
阅读全文
摘要:概要 分析 Linux 网络协议栈性能有多种方式和工具。本文主要通过 Perf 生成 On-CPU 火焰图的方式,分析 Linux 内核网络协议栈在特定场景下的性能瓶颈,从而知晓当前协议栈的网络状况。 关于 On/Off-CPU 概念定义 1 2 3 On-CPU: where threads ar
阅读全文
摘要:root@ubuntu:~# ulimit -c unlimited root@ubuntu:~# echo 1 > /proc/sys/kernel/core_uses_pid root@ubuntu:~# mkdir /corefile root@ubuntu:~# echo /corefile
阅读全文
摘要:image.png 1. SYN_REVD, ESTABELLISHED 状态对应的队列 TCP 建立连接时要经过 3 次握手,在客户端向服务器发起连接时, 对于服务器而言,一个完整的连接建立过程,服务器会经历 2 种 TCP 状态:SYN_REVD, ESTABELLISHED。 对应也会维护两个
阅读全文
摘要:有部分应用场景采用的仍然是无连接协议,例如 DNS、StatsD 等,都是采用的 UDP 。 UDP 不是面向连接的,所以不能像 TCP 通过建立多个连接来提高对服务器的并发访问,如果通过多线程共享一个 UDP Socket 可能会无法充分利用所有的 CPU 资源。 这里简单介绍其优化方法,当然,这
阅读全文
摘要:root@cloud:~# iptables -t nat -L POSTROUTING -n --line-number Chain POSTROUTING (policy ACCEPT) num target prot opt source destination 1 KUBE-POSTROUT
阅读全文
摘要:ESTAB 状态下的 Recv-Q Send-Q 分别表示内核协议栈的发送缓冲区和接受缓冲区中保存的内容字节数。 在 Linux 上,TCP 的三次握手在内核里完成。内核通过一个半连接和已连接 2 个队列来实现。 已连接队列的大小由 net.core.somaxconn 和 int listen(i
阅读全文
摘要:tcp_timestamps是在RFC 1323中定义的一个TCP选项。这篇wiki介绍一下timestamps的设计目的和相关原理,尤其强调一些比较tricky的地方。 关于RFC1323 这是一篇介绍针对High-bandwidth, Long delay链路设计的一些TCP扩展选项的资料。强烈
阅读全文
摘要:root@ubuntu:~# netstat -s | grep reject 71 packetes rejected in established connections because of timestamp root@ubuntu:~# netstat -s | grep reject 7
阅读全文
摘要:1、定义 2、核心接口 queues主要由成员函数push(),front(),back(),pop()构成。 push()将元素置入queue中。 front()会返回queue内的下一个元素(也就是第一个被置入的元素) back()会返回queue的最后一个元素(也就是最后一个被插入的元素) p
阅读全文
摘要:UNDERSTANDING OPENFLOW RULES OpenVswitch (OVS) is a virtual switch that connects virtual machines together using virtual links and ports. Traditionall
阅读全文
摘要:^C[root@bogon raw-sockets-example]# cat raw_udp_client.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/
阅读全文
摘要:#include<stdio.h> #include<stdlib.h> #include<string.h> #include<netinet/ip_icmp.h> #include<netinet/tcp.h> #include<netinet/udp.h> #include<arpa/inet
阅读全文
摘要:client #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <time.h> #include <arpa/inet.h> #include <sys/socket.h>
阅读全文
摘要:https://blog.cloudflare.com/zh-cn/when-tcp-sockets-refuse-to-die-zh-cn/ 在我们的Spectrum服务器上工作时,我们注意到了一些奇怪的现象:我们认为应该关闭了的TCP套接字一直在徘徊。我们意识到我们并不真正了解TCP套接字何时应
阅读全文
摘要:阻塞 connect 客户端调用 connect 发起对服务端的 socket 连接,调用 connect 函数将激发 tcp 三次握手过程.如果客户端的 socket 描述符为阻塞模式(默认),则 connect 会阻塞到连接建立成功或连接超时(linux内核中对 connect 的超时时间限制是
阅读全文
摘要:众所周知,TCP协议是一个 可靠的 的协议。TCP的可靠性依赖于大量的 Timer 和 Retransmission 。现在咱们就来细说一下TCP协议的那些 Timer 。 1. Connection-Establishment Timer 在TCP三次握手创建一个连接时,以下两种情况会发生超时:
阅读全文
摘要:inux 系统默认的建立 TCP 连接的超时时间为 127 秒,对于许多客户端来说,这个时间都太长了, 特别是当这个客户端实际上是一个服务的时候,更希望能够尽早失败,以便能够选择其它的可用服务重新尝试。 socket 是 Linux 下实现的传输控制层协议,包括 TCP 和 UDP,一个 socke
阅读全文
摘要:Controller是什么 也就是「控制器」,控制Kubernetes的资源实体。怎么控制呢?通过监听资源变化事件。这个事件可能是用户发起的(他希望把资源从A状态更新到B状态),Controller就会获取这个事件并处理事件,即更新目标资源。Kubernetes默认有很多控制器,他们控制着Kuber
阅读全文
摘要:转载 luozhiyun的博客:https://www.luozhiyun.com Informer机制# 机制设计# Informer主要有两个作用: 通过一种叫作 ListAndWatch 的方法,把 APIServer 中的 API 对象缓存在了本地,并负责更新和维护这个缓存。ListAndW
阅读全文
摘要:1. 前言 在K8S内部通信中,肯定要保证消息的实时性。之前以为方式有两种: 客户端组件(kubelet,scheduler,controller-manager等)轮询 apiserver, apiserver通知客户端。如果采用轮询,势必会大大增加apiserver的压力,同时实时性很低。如果a
阅读全文
摘要:Unix domain socket 又叫 IPC(inter-process communication 进程间通信) socket,用于实现同一主机上的进程间通信。socket 原本是为网络通讯设计的,但后来在 socket 的框架上发展出一种 IPC 机制,就是 UNIX domain soc
阅读全文
摘要:实际上,默认的情况下,如果一个网络应用程序的一个套接字 绑定了一个端口( 占用了 8000 ),这时候,别的套接字就无法使用这个端口( 8000 ), 验证例子如下: #include <stdio.h> #include <stdlib.h> #include <string.h> #includ
阅读全文
摘要:https://toscode.gitee.com/zc520yzy/dpvs/blob/master/doc/tutorial.mdDPVS Tutorial Terminology One-arm and two-arm KNI Device Full-NAT Mode Simple Full-
阅读全文
摘要:路由条目的意义 default via 10.10.16.254 dev enahisic2i0 proto static 9.251.0.0/16 via 172.17.0.1 dev docker0 10.10.16.0/24 dev enahisic2i0 proto kernel scope
阅读全文
摘要:主机1 主机2 82节点 root@ubuntu:/etc/keepalived# systemctl start keepalived root@ubuntu:/etc/keepalived# cat keepalived.conf ! Configuration File for keepali
阅读全文
摘要:struct rte_mbuf *mbuf_copy(struct rte_mbuf *md, struct rte_mempool *mp) { struct rte_mbuf *mc, *mi, **prev; uint32_t pktlen; uint8_t nseg; if (unlikel
阅读全文
摘要:创建 ClusterIP 类型的 Service apiVersion: apps/v1 kind: Deployment metadata: name: my-deployment spec: selector: matchLabels: app: metrics department: sale
阅读全文
摘要:创建一个名为flannel.1的VXLAN网卡 root@ubuntu:~/cmd# ip -d link show flannel.1 198: flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UN
阅读全文
摘要:ICMP协议字段解释 ICMP协议 ICMP类型: ICMP报文类型 代码:不同的ICMP类型,可能还需要代码做进一步的区分,比如type=3(终点不可达),就区分网络不可达(0),主机不可达(1),协议不可达(2),端口不可达(3)等 [root@bogon ~]# ping 8.8.8.8 PI
阅读全文
摘要:[root@bogon ~]# ip -o netns list cnitest-938a85b8-38bb-3c59-f5c3-699e4dc14623 cnitest-042782b7-ccc7-fb8a-280a-8577c9c1de36 cnitest-595a9dd4-418f-79e2-
阅读全文
摘要:This solution tries to hw-offload flows in the flow classification cache. On success the NIC does the classification and hints the packets with a flow
阅读全文
摘要:Flow steering defines the concept of domain and priority. Each domain represents a user agent that can attach a flow. The domains are prioritized. A h
阅读全文