自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 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 4715

原创 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 2579 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 5964

原创 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 2178

原创 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 562

原创 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 256

原创 eval

功能说明:告知shell取出eval的参数,重新运算求出参数的内容。 语  法:eval [参数] 补充说明:eval可读取一连串的参数,然后再依参数本身的特性来执行。 参  数:参数不限数目,彼此之间用分号分开。 1.执行命令行之前扫描它两次,再次运算求出参数的内容。 复制代码 代码如下:[root@localhost centos]# a=”ls |more” [root@local

2017-06-28 10:27:54 236

原创 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 404

原创 TCP相关信息

URG与PSH: 1.在TCP协议的报头中,有6个控制位其中一个控制位位URG,URG为紧急指针字段。即使所发送的报文段的优先级大于其他数据。例如:已经发送了很长的一段数据要在远程主机上运行。突然要中断这个数据,则用户在键盘上输入control+c键,如果没有紧急指针字段,则会将数据放在末尾,到数据发送完才收到信号,因此紧急指针字段打乱了TCP数据段的发送顺序。 还有一点,URG所发的数

2017-06-19 15:11:28 330

原创 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 2311 1

原创 路由生产算法

路由分为域内路由和域间路由 内部网关协议IGP,指的是在一个自治系统内部的路由器所采用的路由算法,通常有RIP和OSPF协议,即域内路由。 外部网关协议EGP,指的时在一个或多个自治系统之间所采用的算法,有EGP协议(旧),和BGP协议。RIP路由协议采用的算法是距离向量算法:每一个相邻路由器发送过来的路由表都要经过以下步骤: 1、对地址为X的 路由器发过来的路由表,先修改此路由表中的所有项

2017-06-18 14:40:16 510

原创 代理服务器与NAT技术

代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。在一般情况下,我们使用网络浏览器直接去连接其他Internet站点取得网络信息时,须送出Request信号来得到回答,然后对方再把信息以bit方式传送回来。代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,

2017-06-18 14:11:40 1329

原创 arp协议

arp协议叫做地址解析协议,通常与ip地址共同使用,将ip地址转换成硬件地址(MAC地址)。arp既可以放在网络层,也可以放在数据链路层,因为它做了两层的工作。 当一个主机向另一个主机发送数据报时,通过arp协议,向局域网中发送arp请求,所有在局域网中的主机都可以收到,但会在网络层丢弃,只有一台符合目的ip的主机会发送给源主机arp响应包含自己mac地址,因此源主机就可以向目的主机发送报文。

2017-06-18 12:43:59 329

原创 守护进程

1.进程组每个进程除了有⼀一个进程ID之外,还属于⼀一个进程组。进程组是⼀一个或多个进程的集合。每个进程组都可以有⼀一个组长进程。组长进程的标识是,其进程组ID等于 其进程ID。2.作业Shell分前后台来控制的不是进程⽽而是作业(Job)或者进程组(Process Group)。⼀一个前台作业可以由多个进程组成,⼀一个后台也可以由多个进程组成,Shell可以运⾏行⼀一个前台 作业和任意多个后台

2017-06-14 16:01:47 279

转载 线程安全

一,什么是线程安全? 1,线程安全就是说多线程访问同一代码,不会产生不确定的结果。换句话说,线程安全就是多线程访问时,采用加锁机制,当一个线程访问该类的某个数据时,用锁对数据进行保护,其他线程不能访问该数据直到该线程读取完,其他线程才可使用,线程安全不会出现数据不一致或者数据污染。反之,线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据。 2,举个例子:

2017-06-14 00:32:37 211

原创 异步等待

进程异步等待,不需要父进程阻塞等待,当子进程退出时会给父进程发送信号,父进程捕捉到信号,然后去执行信号处理函数,信号处理函数中调用waitpid等待子进程,完成回收,否则子进程会变成僵尸进程。#include <stdio.h>#include <stdlib.h>#include <signal.h>void handler(int sig){ waitpid(-1,NULL,1)

2017-06-14 00:31:35 386

原创 信号(signal)

信号(signal)**信号是什么?信号非常常见,上课铃声,红绿灯,鸣笛等都是信号。操作系统中也有信号,为什么操作系统要设置信号,这是为了保护操作系统,防止用户进行操作时,采取了某些办法,导致系统软硬件出现异常。**那么信号如何产生键盘。在linux操作系统下,通过ctrl+c,ctrl+z等组合键可以产生信号。通过输入kill命令。linux下,通过命令行输入kill -sig pid可以向

2017-04-19 14:21:22 397

原创 c++智能指针

c++智能指针** 智能指针是什么?智能指针运用了一种思想->RAII(资源分配即初始化) 资源分配及初始化:定义一个类来封装资源的分配和释放,在构造函数初始化对象,析构函数释放对象,可以正确的初始化和释放。为什么出现智能指针,智能指针能够有效地解决异常安全问题,或者资源未被释放,而导致内存泄漏。例如:中断语句导致代码跳出,导致内存未被释放。常见的智能指针有哪些?Auto_ptr,Scoped_

2017-04-17 14:46:00 283

原创 C语言交换两个数的值

#include int main(){  int a = 10;  int b = 20;  printf("a=%d b=%d\n",a,b);  a=a^b;  b=a^b;  a=a^b;  printf("a=%d b=%d\n",a,b);  return 0;}

2016-10-30 13:56:08 764

原创 C语言求10个数中的最大数

#include int main(){int max;int a[10]={1,20,3,4,5,6,7,8,9,10};max=a[0];for(int i=1;i {   if(a[i]>max){max=a[i];   } }printf("max = %d\n",max);  return 0;}

2016-10-30 13:55:10 3035

原创 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 589

原创 C语言冒泡排序

#include int main(){int arr[]={10,20,15};int x=sizeof(arr)/sizeof(arr[0]);int m=x;for(int i=0;i{m--;for(int j=0;j{ if(arr[j]{ int temp=0; temp=arr[j]; arr[j]=arr[j+1]; 

2016-10-30 13:51:18 239

原创 C语言求一元二次函数的解

#include #include int main(){float a=0;float b=3;    float c=2;float x1,x2;float m=b*b-4*a*c;if(a==0){x1=-(c/b);   printf("该函数不是一元二次函数\n");printf("x = %lf\n",x1);}else{

2016-10-30 13:49:41 9540

原创 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。

#include int main(){int a[32]={};int i=0;    int num=200;int count=0;while(num){a[i++]=num%2;num=num/2;      //获取2进制数count=i+1;      //获取2进制个数}for(;count{ a[count]=0;}

2016-10-30 13:48:15 403

原创 c语言求最大公约数

#include int main(){  int a=9;  int b=27;  int temp;  if(a  {    for(int i=a;i>=2;i--)    {      if(a%i==0 && b%i==0) {   temp=i;   printf("最大公约数: %d\n",temp);break; } 

2016-10-30 13:47:35 582

原创 将数组A中的内容和数组B中的内容进行交换。(数组一样大)

#include int main(){int i=0;int x1[]={1,2,3,4,5};int x2[]={6,7,8,9,10};printf("第一个数组(交换前):\n");    for(i=0;i{printf("%5d ",x1[i]);}printf("\n第二个数组(交换前):\n");for(i=0;i{print

2016-10-30 13:42:46 511

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除