心得
拽的一比丶
头脑是我的一切,身体只是一个附件!
展开
-
ovsdb-client下发配置基本操作
测试vsctl 添加br1.结果为发送一个"method":"list_dbs"的请求2.返回数据库的名称3.根据返回的数据库名称,Open_vSwitch,发送“method”:“get_Schema”请求4.获取生成该数据库“Open_vSwitch”的Schema5.发送“method”:“transact”请求,查询数据库Open_vSwitch中的Birdge表的各个状态6....原创 2019-01-07 10:23:27 · 2590 阅读 · 7 评论 -
Ovsdb-client 基本命令
1.ovsdb-client简介Ovsdb-client是通过ovsdb管理协议,来与ovsdb数据库服务器进行通信。通信的方法根据协议RFC 7047规定的有以下各种命令,见(ovsdb-client使用)。本文主要讲一下ovsdb-client的基本命令及用法。2.ovsdb-client使用1.ovsdb-client list_dbs 该命令是连接到服务器,检索已知数据库的列表,每...原创 2019-01-07 10:21:09 · 5991 阅读 · 0 评论 -
OVS基本操作
ovsdb-server -v --remote=punix:/var/run/openvswitch/db.sock – //启动调试模式ovsdb-tool create /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema //根据schema创建数据库rm -f /usr/local/etc/openvswitch/...原创 2019-01-07 10:20:12 · 2196 阅读 · 0 评论 -
Tcp服务器
tcp服务器(socket)#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <stdlib.h>#include <netinet/in.h>#include <unistd.h>#include <wait.h>void usage(char* proc)//此函数用来打印使用方法{原创 2017-06-28 09:59:28 · 411 阅读 · 0 评论 -
线程安全
一,什么是线程安全? 1,线程安全就是说多线程访问同一代码,不会产生不确定的结果。换句话说,线程安全就是多线程访问时,采用加锁机制,当一个线程访问该类的某个数据时,用锁对数据进行保护,其他线程不能访问该数据直到该线程读取完,其他线程才可使用,线程安全不会出现数据不一致或者数据污染。反之,线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据。 2,举个例子:转载 2017-06-14 00:32:37 · 222 阅读 · 0 评论 -
异步等待
进程异步等待,不需要父进程阻塞等待,当子进程退出时会给父进程发送信号,父进程捕捉到信号,然后去执行信号处理函数,信号处理函数中调用waitpid等待子进程,完成回收,否则子进程会变成僵尸进程。#include <stdio.h>#include <stdlib.h>#include <signal.h>void handler(int sig){ waitpid(-1,NULL,1)原创 2017-06-14 00:31:35 · 394 阅读 · 0 评论 -
信号(signal)
信号(signal)**信号是什么?信号非常常见,上课铃声,红绿灯,鸣笛等都是信号。操作系统中也有信号,为什么操作系统要设置信号,这是为了保护操作系统,防止用户进行操作时,采取了某些办法,导致系统软硬件出现异常。**那么信号如何产生键盘。在linux操作系统下,通过ctrl+c,ctrl+z等组合键可以产生信号。通过输入kill命令。linux下,通过命令行输入kill -sig pid可以向原创 2017-04-19 14:21:22 · 408 阅读 · 0 评论 -
poll
poll提供的功能与select类似,不过在处理流设备时,它能够提供额外的信息。#include <poll.h> int poll(struct pollfd fd[], nfds_t nfds, int timeout);poll与select不同,select用三个文件描述符集,pollfd结构包含了要监视的event和发⽣生的event,不再使⽤用select“参数-值”传递的⽅方式。同时原创 2017-06-30 16:08:23 · 576 阅读 · 0 评论 -
shell进度条
shell编写一个进度条 i=0 bar='' arr=("\\" "|" "/" "-") index=0 for ((i=1 ;i<101 ;i++)) do printf "[%-100s][%d][%c]\r" "$bar" "$i" "${arr[$index]}" bar=$bar'#' let index=$i%4 sleep 0.1原创 2017-06-30 10:14:54 · 266 阅读 · 0 评论 -
eval
功能说明:告知shell取出eval的参数,重新运算求出参数的内容。 语 法:eval [参数] 补充说明:eval可读取一连串的参数,然后再依参数本身的特性来执行。 参 数:参数不限数目,彼此之间用分号分开。 1.执行命令行之前扫描它两次,再次运算求出参数的内容。 复制代码 代码如下:[root@localhost centos]# a=”ls |more” [root@local原创 2017-06-28 10:27:54 · 242 阅读 · 0 评论 -
TCP相关信息
URG与PSH: 1.在TCP协议的报头中,有6个控制位其中一个控制位位URG,URG为紧急指针字段。即使所发送的报文段的优先级大于其他数据。例如:已经发送了很长的一段数据要在远程主机上运行。突然要中断这个数据,则用户在键盘上输入control+c键,如果没有紧急指针字段,则会将数据放在末尾,到数据发送完才收到信号,因此紧急指针字段打乱了TCP数据段的发送顺序。 还有一点,URG所发的数原创 2017-06-19 15:11:28 · 348 阅读 · 0 评论 -
CRC校验
CRC又称循环冗余校验 首先假设传送的数据有M位,冗余码的位数为除数的位数减1位,假设除数位1011,即n=4,则冗余码的位数为3,即给M后面补3个0,然后用得到新的M+3(000)的数据,除以除数所得的余数就为冗余码,这时将新的冗余码替换掉原来的000,得到新M+3位冗余码的数据,然后发送出去,接收端收到数据就用新的M+3的数据除以除数1011,如果余数为0,则没有差错。 所采取的除法为模2运原创 2017-06-18 15:40:19 · 2377 阅读 · 1 评论 -
路由生产算法
路由分为域内路由和域间路由 内部网关协议IGP,指的是在一个自治系统内部的路由器所采用的路由算法,通常有RIP和OSPF协议,即域内路由。 外部网关协议EGP,指的时在一个或多个自治系统之间所采用的算法,有EGP协议(旧),和BGP协议。RIP路由协议采用的算法是距离向量算法:每一个相邻路由器发送过来的路由表都要经过以下步骤: 1、对地址为X的 路由器发过来的路由表,先修改此路由表中的所有项原创 2017-06-18 14:40:16 · 518 阅读 · 0 评论 -
代理服务器与NAT技术
代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。在一般情况下,我们使用网络浏览器直接去连接其他Internet站点取得网络信息时,须送出Request信号来得到回答,然后对方再把信息以bit方式传送回来。代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,原创 2017-06-18 14:11:40 · 1341 阅读 · 0 评论 -
arp协议
arp协议叫做地址解析协议,通常与ip地址共同使用,将ip地址转换成硬件地址(MAC地址)。arp既可以放在网络层,也可以放在数据链路层,因为它做了两层的工作。 当一个主机向另一个主机发送数据报时,通过arp协议,向局域网中发送arp请求,所有在局域网中的主机都可以收到,但会在网络层丢弃,只有一台符合目的ip的主机会发送给源主机arp响应包含自己mac地址,因此源主机就可以向目的主机发送报文。原创 2017-06-18 12:43:59 · 338 阅读 · 0 评论 -
c++智能指针
c++智能指针** 智能指针是什么?智能指针运用了一种思想->RAII(资源分配即初始化) 资源分配及初始化:定义一个类来封装资源的分配和释放,在构造函数初始化对象,析构函数释放对象,可以正确的初始化和释放。为什么出现智能指针,智能指针能够有效地解决异常安全问题,或者资源未被释放,而导致内存泄漏。例如:中断语句导致代码跳出,导致内存未被释放。常见的智能指针有哪些?Auto_ptr,Scoped_原创 2017-04-17 14:46:00 · 289 阅读 · 0 评论 -
C语言求二进制中1的个数
#include int main(){int num=-1;int count=0; while(num){ num=num&(num-1); count++;}printf("count = %d\n",count); return 0;}原创 2016-10-30 13:54:13 · 598 阅读 · 0 评论 -
ovs流表下发过程
一、OVS是内核态和用户态配合工作的,所以首先要加载内核态。在datapath/datapath.c中会调用module_init(dp_init);来初始化内核模块。其中比较重要的是调用了dp_register_genl(),这个就是注册netlink函数,从而用户态进程ovs-vswitchd可以通过netlink调用内核。可以看出,在内核中,包含对datapath的操作,例如OVS_D...原创 2019-01-07 10:25:06 · 4740 阅读 · 0 评论