摘要: 一. ovs 从源码编译安装: 安装依赖项: 下载源码包 生成配置文件 配置 编译 启动 测试 二. Ovs的卸载 启动ovs之后,如果改动ovs源代码并且想更新ovs服务,进行如下操作: 参考资料 "Open vSwitch on Linux, FreeBSD and NetBSD" 作者: "y阅读全文
posted @ 2018-09-14 20:17 yearsj 阅读(25) 评论(0) 编辑
摘要: 接着上文 "IO多路复用(一) Select、Poll、Epoll" ,接下来将演示一个TCP回射程序,源代码来自于该博文https://www.cnblogs.com/Anker/p/3258674.html 博主的几篇相关的文章,在这里将其进行了整合,突出select、poll和epoll不同方阅读全文
posted @ 2018-09-14 16:22 yearsj 阅读(17) 评论(0) 编辑
摘要: 在上一篇博文中提到了五种IO模型,关于这五种IO模型可以参考博文 "IO模型浅析 阻塞、非阻塞、IO复用、信号驱动、异步IO、同步IO" ,本篇主要介绍IO多路复用的使用和编程。 IO多路复用的概念 多路复用是一种机制,可以用来监听多种描述符,如果其中任意一个描述符处于就绪的状态,就会返回消息给对应阅读全文
posted @ 2018-09-14 15:57 yearsj 阅读(247) 评论(0) 编辑
摘要: 最近看到OVS用户态的代码,在接收内核态信息的时候,使用了Epoll多路复用机制,对其十分不解,于是从网上找了一些资料,学习了一下《UNIX网络变成卷1:套接字联网API》这本书对应的章节,网上虽然关于该主题的博文很多,并且讲解的很详细,但是在这里还是做一个学习笔记,记录一下自己的想法。 IO模型 阅读全文
posted @ 2018-09-11 21:25 yearsj 阅读(291) 评论(4) 编辑
摘要: 最近一直在阅读ovs的源码,看到用户态代码的时候,需要对用户态的代码进行调试,一开始想直接使用linux中的GDB进行调试,但是ovs的工程太过于复杂,从网上找了些文章,发现vs2017能够支持linux c++程序的调试,捣鼓了一下午,遇到了一些坑,终于搭建好了开发环境。 最新版的vs 2017支阅读全文
posted @ 2018-09-06 20:16 yearsj 阅读(66) 评论(0) 编辑
摘要: 关于TTS(元组空间搜索算法)的详细介绍可以参考[OVS+DPDK Datapath 包分类技术](https://www.cnblogs.com/neooelric/p/7160222.html)这篇文章,本文只对该篇博客进行简单的介绍,其中案例和图片都来自于[OVS+DPDK Datapath 包分类技术](https://www.cnblogs.com/neooelric/p/7160222.html)阅读全文
posted @ 2018-08-22 22:04 yearsj 阅读(36) 评论(0) 编辑
摘要: 在ovs交换机中,报文的处理流程可以划分为一下三个步骤:协议解析,表项查找和动作执行,其中最耗时的步骤在于表项查找,往往一个流表中有数目巨大的表项,如何根据数据报文的信息快速的查找到对应的流表项是ovs交换机的一个重要的功能。 在openflow协议中,支持多级流表的形式,可以类比于将一个复杂的功能进行打散,分解成过个小的功能,实现一个流水线的功能阅读全文
posted @ 2018-08-22 19:14 yearsj 阅读(26) 评论(0) 编辑
摘要: SDN是一种框架和思想,核心诉求是通过软件控制网络,实现业务的自动化部署,为方便软件来控制网络,希望控制面和转发面是分离的。 例如,传统的交换机内部,由交换机负责具体的网络流量往哪里转发,在SDN中,有一个控制器进行流量转发的计算,然后将结果发送给交换机,交换机只进行简单的转发,从分布式的控制转发过程称为集中式的控制,使得控制和转发平面相分离。阅读全文
posted @ 2018-08-22 18:46 yearsj 阅读(27) 评论(0) 编辑
摘要: netlink socket是一种用于用户态进程和内核态进程之间的通信机制。它通过为内核模块提供一组特殊的API,并为用户程序提供了一组标准的socket接口的方式,实现了全双工的通讯连接。阅读全文
posted @ 2018-08-21 16:22 yearsj 阅读(19) 评论(0) 编辑