![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络
xxb249
电脑爱好者,半个电脑程序员
展开
-
简约而不简单epoll之EPOLLRDHUP
在内核2.6.17(不含)以前版本,要想知道对端是否关闭socket,上层应用只能通过调用recv来进行判断,在2.6.17以后,这种场景上层只需要简单处理即可。一、未使用EPOLLRDHUP服务端代码:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <s...原创 2020-04-01 12:47:33 · 7604 阅读 · 2 评论 -
简约而不简单epoll之EPOLLOUT
本篇主要分析epoll边缘触发,通过模拟各种场景,来介绍EPOLLOUT,不涉及epoll底层源码实现。一、前提epoll_wait返回的条件1、等待时间到期2、发生信号事件,例如ctrl+c3、The associated file is available for read(2) operations,如果注册了EPOLLIN, socket接收缓冲区,有新的数据到来4...原创 2020-03-31 17:14:30 · 5274 阅读 · 4 评论 -
kvm网络那些事儿
在Linux下面我比较习惯用kvm虚拟出虚拟机,今天主要记录一下kvm网络相关的一些内容。一、网络模式kvm虚拟机支持两种网络模式:NAT和Brigde,这种模式有什么区别呢?NAT(网络地址转换):这种方式是虚拟系统通过网络地址转换,将地址映射到host主机地址上,通过主机进行网络访问。这样虚拟系统就可以访问外网和局域网内的其他主机。但是局域网内的其他主机不能访问虚拟系统,相当于单向...原创 2019-09-18 14:50:57 · 1001 阅读 · 0 评论 -
C语言创建tap设备并且设置ip
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <fcntl.h>#include <sys/socket.h>#include <netinet/in.h>#include <net/if.h>#include &a原创 2019-01-29 15:03:33 · 2356 阅读 · 0 评论 -
深入剖析Flannel-监控
在上一篇末尾提到了一个问题:当新容器加入到网络中,其他flannel是如何感知的呢?这个就要取决flannel的监控这部分实现了。flannel监控实际上是监视etcd某些key的变化,当这些key有变化时etcd会发送响应给flannel,这一点需要明确。接下来看一下flannel是如何实现的一、监控子网flannel监控处理一共有两个分别:监控整个子网和监控自己所在网络。先介绍一下监控...原创 2019-02-13 10:23:29 · 1423 阅读 · 0 评论 -
深入剖析Flannel-创建网卡(2)
在上一篇只介绍到了backend对象创建完毕,但是并没有真正生成网卡。本篇将介绍flannel是如何创建网卡且对其进行配置。一、注册网络我们在main函数中得知,创建网卡调用的函数为RegisterNetwork。/** * 注册网络 * @param ctx 上下文 * @param config 子网配置 */func (be *VXLANBackend) Regist...原创 2019-02-13 10:23:23 · 947 阅读 · 0 评论 -
深入剖析Flannel-创建网卡(1)
在上一篇介绍了flannel启动流程(main函数),只把整体流程介绍了一下并没有深入探讨,接下来几篇博客会深入介绍flannel到底做了哪些事件。今天就介绍创建网卡流程。一、创建子网管理对象1.1、创建管理对象flannel自身没有存储功能,所以它要依赖第三方存储系统,例如etcd、kube api。这里以etcd为例子进行分析。在上一篇提到创建子网管理对象调用的函数为newSubn...原创 2019-02-13 10:23:18 · 1291 阅读 · 0 评论 -
Flannel配置以及部署
上一篇,提及到要保证kubedns、tomcat、mysql调度到同一个node节点上,这是为什么呢?这个就涉及到了docker网络,如下图: Docker网络对于host主机来说是一个局域网(内部网络)外界无法直接访问到Docker网络,例如想访问PodA1,是不行。如上图所示,假如PodA1和PodB1进行通信,是没有办法直接通信的。那么如何让PodA1和PodB1通信呢?有很多种...原创 2018-04-17 09:07:52 · 6124 阅读 · 0 评论 -
深入剖析Flannel-简介
随着docker容器化兴起,云计算面对的挑战越来越大,例如:网络管理、存储等。一个数据中心很容易搞出成百上千个容器,这么多的容器我们需要如何管理呢?今天来介绍的flannel就是为了解决网络问题。一、网络管理方案目前使用最多的解决方案有两种:直接路由和overlay network。具体差异如下: 特点 代表 直接路由 采用直接路由的方式,这种方式性能损耗最低,...原创 2019-01-08 15:00:39 · 19892 阅读 · 0 评论 -
Wireshark编译环境搭建以及支持Etcd报文
一、安装编译软件 为了扩展支持etcd报文解析,需要自己编译wireshark,因此搭建wireshark编译环境是必要的。编译wireshark需要如下软件作为支撑: python2.7(最好是稳定版本,不一定最新) cygwin(主要是跨平台编译) 安装visualstudio 2010 安装NSIS打包...原创 2018-07-01 21:49:43 · 1029 阅读 · 2 评论 -
Netty源码分析之Reactor线程模型
Netty线程模型源码分析原创 2017-12-21 18:32:56 · 2374 阅读 · 0 评论 -
Centos6.7 Centos7.0 安装OpenVSwitch痛苦经历
由于RedHat系列系统默认不安装OpenVSwitch,因此需要自己安装。如果你是Centos6.7以前的版本,那么我只能说,你非常走运!!并且不用浏览本博客文章。下面我的linux系统环境[root@centos6 ~]# uname -aLinux centos6.7 2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC原创 2015-11-01 19:26:24 · 6108 阅读 · 1 评论