概念解释:切片:虚拟网络的一个实例

一. 网络虚拟化(虚拟网络)

人类社会的发展在很大方面得益于自然界,飞机受益于鸟,雷达受益于蝙蝠等等,所以专门有个学科为仿生学就是研究和模仿生物的特殊本质,利用生物的结构和功能原理来研制机械或各种新技术的科学技术。而人类社会已经发展了这么多年,沉淀了很多可以和自然界相媲美的创造和思想,计算机就是其中之一。所以,总结人类历史上成功的思想,伟大的创新,举一反三,也是科技进步的重要力量,这篇文章所提到的SDN和网络虚拟化等这些思想在计算机技术中早有应用。

与其说SDN是一种新的技术,不如称他为一种思想。首先对比下面两幅图片,左图为现在的计算机系统构架,右图的(b)图为SDN的系统构架,稍作对比可以发现两者有很大的相似性,也有些不同,比如网络是分布式系统,但是核心思想还是相同的,所以,计算机系统的优点,比如硬件管理简单,应用开发方便等等都可以在SDN中发现,这篇文章侧重于虚拟网络

计算机虚拟化的成功归结于底层硬件的抽象。更详细点说,计算机虚拟层通过硬件抽象允许资源被操作系统切片和共享,所以在用户看来,这些硬件都是归操作系统私有,一个定义好的硬件抽象会促进他的上层和下层快速的发展和革新,在更上层,操作系统百花齐放,常用的如UNIX,MacOD,Linux以及Windows,在这些操作系统上面可以跑各种各样的应用;在更下层,可以按需采购不同的硬件,如Intel,AMD,PPC,ARM等等,只要他可以映射到硬件抽象层,因此不同的硬件可以拥有不同的指令集,他们只需要注重性能优化等等,虚拟层的上下层会将这种灵活性进一步扩散,不同的人群可以DIY自己舒适的工作,学习,生活方式。

网络虚拟化一直是网络研究者追求的一个目标,有了它,多个拥有不同寻址和转发机制的逻辑独立的网络可以共享底层的物理设施(交换机,路由器,无线集线器等等),现在网络虚拟化的实现方式主要有两种:利用软件的灵活性和复制硬件组件。更通俗的来说,我觉得网络虚拟化至少有如下两个让程序员非常向往的好处:解放劳动力同时可以更好更充分的利用物理资源。

二. 现在和虚拟网络相关的技术

如今部署在网络中的相关策略并不是为了虚拟化而设计的,他们和计算机硬件抽象层也没有什么共同之处,虽然存在这一些技术可以划分特定的硬件资源(MPLS可以虚拟化转发表)和网络层(WDM划分物理层,VLANs划分链路层),但是没有一种技术可以网络虚拟化为一个整体,虚拟网络之间互相独立。可以预见性的说,在现在的网络里面实现虚拟化是不大可能的,因为商用交换机的设计都保留在设备厂商手里,他们只公布了一定的接口给网管去改变配置参数,我们能做的只是敲一些命令行。所以FlowVisor是基于OpenFlow交换机的。

三. 网络虚拟化所关注的主要资源

  1. 带宽:划分链路带宽给每个网络切片
  2. 拓扑:每个网络切片应该拥有自己的网络拓扑
  3. 流量:流量和虚拟网络关联
  4. 计算资源:划分交换机和路由的计算资源
  5. 转发表:网络设备支持一定数量的转发表

四. FlowVisor

FLowVisor为一个网络抽象层,包含了一种新的交换机层网络虚拟化技术,同一个硬件转发平面可以被多个逻辑网络共享。类似于计算机的虚拟层,FLowVisor位于底层硬件和上层软件之间,他的结构如下图所示。操作系统利用指令集控制底层硬件,FLowVisor利用的是前文提到的OpenFlow协议,有如下如特性:

  • FLowVisor定义切片为由OpenFlow交换机组成的拓扑上的一组流
  • FLowVisor位于每个OpenFlow控制器和OpenFlow交换机之间,确保每个控制器只能看到和控制他应该管理的OpenFlow交换机
  • FLowVisor通过给组成切片的流一个最小的数据速率来划分带宽
  • FLowVisor通过追踪流表项属于哪个控制器来划分交换机的流表

本文围绕着计算机系统的虚拟层和网络虚拟层的比较,做了大量的铺垫,引出了位于OpenFlow控制器和OpenFlow交换机之间的虚拟层FLowVisor,接下来的文章会详细介绍FLowVisor的技术。

网络虚拟化之FlowVisor:网络虚拟层(上)的更多相关文章

  1. 网络虚拟化之FlowVisor:网络虚拟层(下)

    在前面两篇文章:网络虚拟化之FlowVisor:网络虚拟层(上)和网络虚拟化之FlowVisor:网络虚拟层(中)中分别介绍了FLowVisor的特性和实现,三连载的最后一篇介绍虚拟网络的隔离机制. ...

  2. 网络虚拟化之FlowVisor:网络虚拟层(中)

    上一篇博客网络虚拟化之FlowVisor:网络虚拟层(上)主要对比了计算机虚拟化和网络虚拟化,引出了FLowVisor网络虚拟层,介绍了其一些特性,这篇博文深入讲解FLowVisor的技术. 一. 概 ...

  3. 删除Windows中隐藏的物理网卡和网络虚拟化失败后的虚拟网卡

    Windows环境下,在更换硬件服务器主板和网卡等硬件.恢复操作系统或者网络虚拟化失败后,可能会出现网卡方面的问题.例如,设备管理器中多了不应该存在的网卡:因命名冲突无法重命名当前网络连接:IP地址冲 ...

  4. Windows Server 2016-Hyper-V网络虚拟化概述

    在 Windows Server 2016 和虚拟机管理器中,Microsoft 提供的端到端网络虚拟化解决方案. 有构成了 Microsoft 的网络虚拟化解决方案的五个主要组件: Windows ...

  5. 《重构网络:SDN架构与实现》Chapter7 SDN与网络虚拟化 随笔

    参考: <重构网络:SDN架构与实现>,作者:杨泽卫.李呈. Chapter7 SDN与网络虚拟化 结构 7.1 网络虚拟化 7.1.1 为什么需要网络虚拟化技术 7.1.2 网络虚拟化 ...

  6. 从SDN鼻祖Nicira到VMware NSX 网络虚拟化平台的简单探讨

    以前的大二层技术,一般是在物理网络底层使用IS-IS路由技术,再在此基础之上,实现数据中心网络的二层扩展,如公有的Trill.SPB技术和Cisco私有的OTV.Fabricpath技术:前沿一些的网 ...

  7. Hyper-V 网络虚拟化技术细节

    Hyper-V 网络虚拟化技术细节 适用对象:Windows Server 2012 R2 服务器虚拟化能让多个服务器实例在同一台物理主机上同步运行,但各个服务器实例都是相互独立的. 每台虚拟机的运作 ...

  8. 数据中心网络技术新贵:VXLAN与园区网络虚拟化

    摘要:为了应对传统数据中心网络对服务器虚拟化技术的限制,VXLAN技术应运而生. 1 概述 传统数据中心网络面临的问题 虚拟机规模受设备表项规格限制 在传统二层网络中,交换机通过查询MAC地址表来转发 ...

  9. 网络虚拟化之linux虚拟网络基础

    1 linux虚拟网络基础 1.1 Device 在linux里面devic(设备)与传统网络概念里的物理设备(如交换机.路由器)不同,Linux所说的设备,其背后指的是一个类似于数据结构.内核模块或 ...

随机推荐

  1. Docker、DAOCloud

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...

  2. 利用socket.io+nodejs打造简单聊天室

    代码地址如下:http://www.demodashi.com/demo/11579.html 界面展示: 首先展示demo的结果界面,只是简单消息的发送和接收,包括发送文字和发送图片. ws说明: ...

  3. nginx 配置一个文件下载服务

    cat openvpn.conf server { listen ; server_name localhost; location / { root /home/openvpn/client_fil ...

  4. java基础讲解14-----IO

    package com.io; import java.io.File;import java.io.IOException; public class IoClass {        /**   ...

  5. laravel 访问不存在的路由跳转问题!(异常处理)

    1.如果你只是想抛出404错误,debug开关可以满足你: 理论上你把 debug 关了,线上环境是会自动到 404 的. 是想要「跳转到 404 页」还是「显示 404 页」?如果是要跳转的话,请配 ...

  6. Openresty + nginx-upload-module支持文件上传

    0. 说明 这种方式其实复杂,麻烦!建议通过这个方式搭建Openresty文件上传和下载服务器:http://www.cnblogs.com/lujiango/p/9056680.html 1. 包下 ...

  7. 多线程-Fork/Join

    Fork/Join Java7提供了Fork/Join来支持将一个任务拆分成多个“小任务”并行计算,再把多个“小任务”的结果合并成总的计算结果. 类图 Java7提供了ForkJoinPool来支持将 ...

  8. 608. Two Sum - Input array is sorted【medium】

    Given an array of integers that is already sorted in ascending order, find two numbers such that the ...

  9. php socket 模型及效率问题

    // 创建套接字 socket_create(); // 绑定 socket_bind(); // 监听 socket_listen(); // 主体, 死循环 while(true){ // sel ...

  10. PyCharm Python迁移项目

    把整个项目文件迁移过去后,执行文件会报不能执行XX,系统找不到指定的文件. 此时把当前的这个文件名字改一下,再运行,修改提示的错误.等错误全部修改,可以正常运行后,再把文件名改回去