Nox学习(3)——构建一个自己的Nox-1

      安装Nox之后,可以通过安装Open-vSwitch连接Nox来进一步了解Nox的运行机制。

      通过安装一个带图形界面的Nox destiny分支,再让简单组网的Open-vSwitch(s)连接到Nox,再通过Nox的topology应用直观地了解到Nox功能的一角。这一过程很有助于对Openflow有个初步的了解。关于如何完成这一过程,网上有相关的博客文章,可以搜索参考。

      简单来说,Openflow只是SDN的一个具体实施方案,它将传统网络设备的控制平面迁移到了主机,完成网络设备的集中管控。从技术实现上来讲,带来的最直接的益处是:

      1、网络的可控性更高;

      2、网络设备的开发周期、开发难度降低;

      3、有利于拓展新的网络方面的研究;

      这三方面都直接受益于集中管控,毕竟对于完成同样一件功能,分布式计算的复杂度与集中式计算的复杂度是有较大差异的,众多传统的复杂的网络协议以及算法在纯Openflow的环境下可以不再需要了(被一些更简单的所取代)。另外,Openflow还以一种统一的、简洁的设计来定义网络核心,颇有些类似操作系统领域的微内核的风范。总的来说,SDN的设想是好的,Openflow的设计还是不错的,但是任何一项技术是不可能独立存在的,定会受到当前商业利益以及相关产业的技术条件等的外部约束,况且也不是说就没有内在的阻力。至于SDN以及Openflow的未来只好拭目以待。

      下面开始转入正题(只是对本文标题而言),实际上Nox只是一个Openflow协议的Server端,同http服务器没有什么本质的差别,再加上一些进行网络控制的应用组成。后续会持续演练一下Nox的实现,这个演练可以进一步了解Openflow在做什么,顺便也可以熟悉熟悉服务器端的程序的编写。

      这次先开个头,来个欢迎界面吧 ,算是来个开工仪式。

#include <cstdio>
#include <cstring>

static const char *_get_program_name(const char *exec_name)
{
    const char *program_name;
    
    if (const char *slash = strrchr(exec_name, '/'))
    {
        program_name = slash + 1;
    }

    return program_name;
}

static void _show_welcome(char *arg0)
{
    printf("################### Welcome to use %s! ###################\n", 
           _get_program_name(arg0));
}

int main(int argc, char *argv[])
{
    _show_welcome(argv[0]);
    return 0;
}

 

      书写一个简单的makefile文件,如下:

all : main

main : main.cc
	g++ -g -rdynamic main.cc -o My_Nox
      
clean:
	rm -f My_Nox

 

      编译执行可以看到如下结果:

root@ubuntu:/home/y09002/My-Nox# make all
g++ -g -rdynamic main.cc -o My_Nox
root@ubuntu:/home/y09002/My-Nox# ./My_Nox 
################### Welcome to use My_Nox! ###################


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值