Recent Posts
-
2018-12-04
socket activation
这几天在研究runc的实现过程, 注意到它使用了的go-systemd的socket activationpackage, 出于好奇心,于是一探究竟.服务的并行启动 systemd是一套用来管理主机上各个Daemon运行的工具, 开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动.上面提到的并行很有意思, 不相干的Daemon并行启动自然没有什么问题,但倘若Daemon B依赖于Daemon A,那么它就必须等到Daemon A完成启动后才能启动,...
-
2018-11-16
OpenFlow协议原理简介
Overview对于用户来说,网络构建是一项基础性的工作。他们从设备制造商订购网络设备、组网,投入使用后还要对网络流量进行管理。通常大的甲方不会只从一家制造商订购设备,而是会选择把份额分配给不同的制造商。这么做的理由很明显:未来更新设备的主动权。但多个制造商也有坏处,如果每家的产品操作和管理方式不一致,又会使得运维成本提升。怎么办呢?不如设备制造商都遵循同一个标准吧。OpenFlow就是这样一个协议,它解耦了流量管理与具体硬件的关系,只要网络设备支持OpenFlow,那么我就可以用同一种方...
-
2018-11-16
inet socket 与 packet socket
调试过网络程序的人大多使用过tcpdump,但你知道tcpdump是如何工作的吗? tcpdump这类工具也被称为Sniffer,它可以在不影响应用程序正常报文的情况下,将流经网卡的报文呈现给用户。本文不分析tcpdump的具体实现,而只是借tcpdump来揭示一些网络编程中一个大多数人都容易忽略的一个主题:Socket参数对用户接收报文的影响相信所有接触过Socket编程的人都应该认识下面这个API#include <sys/socket.h>sockfd = socket(...
-
2018-10-23
Open-vSwitch Inside(1)--vswitchd
Open-vSwitch Inside(1)–vswitchdvswitchd 守护进程是 OVS 中最重要的进程,它管理本机上的所有虚拟交换机,维护它们的运行状态。它与框架中的其他组件都有独立的通信通道。Figure.1 展示了 OVS 重要组件之间的联系Figure.1 Open vSwitch Architecture vswitchd 通过 OpenFlow 协议与控制器通信(每个虚拟交换机可能与不同的控制器建立连接) vswitchd 通过 OVSDB 协议与 ovsdb-s...
-
2018-10-22
Open-vSwitch Inside(0)--overview
Open vSwitch简介Open vSwitch是一个开源的虚拟交换机,主要用于在虚拟化服务器环境中,灵活转发虚拟机(VM)或容器之间以及与物理网络之间的网络流量,如图Figure 1所示。Figure.1 Open vSwitch Application为什么需要OVS?从Figure 1来看,Linux自带的bridge似乎也能完成传统意义上的交换机二层转发功能。那么与bridge相比,OVS好在哪里呢?答案是:可扩展和精确控制。如果说bridge是功能机,那么OVS就是智能机,我...