Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >pcep协议什么意思_什么是SDN「建议收藏」

pcep协议什么意思_什么是SDN「建议收藏」

作者头像
全栈程序员站长
发布于 2022-10-04 08:38:54
发布于 2022-10-04 08:38:54
6150
举报

大家好,又见面了,我是你们的朋友全栈君。

传统网络设备部署模式来说,基于整个网络状态的决策都要由每台网络设备独立承担,如果执行控制平面功能的模块的处理能力达到了设备极限,即便数据平面带宽仍有富余,也可能会出现瓶颈。

此外,如果控制平面决策进程涉及多个节点的信息,如RSVP(Resource Reservation Protocol,资源预留协议)应用场景,那么就需要在节点之间执行额外的通信操作以收集相关信息,进而给设备带来不必要的开销负担。

SDN定义了一种全新的控制平面集中化方法,将控制平面功能从网络设备转移到中心设备或集群中,使转发平面与控制平面相分离,将控制平面功能从网络设备中释放出去,允许设备执行纯粹的转发平面功能。随着控制平面与转发平面的分离,SDN还希望通过开放的得到行业接受的通信协议来代替这些平面之间的专有接口,因而SDN使得厂商中立的异构网络成为可能,控制平面可以与不同厂商提供的多个数据平面进行交互。

软件定义网络(Software-Defined Networking,SDN)是一种新型网络架构。它利用OpenFlow协议将路由器的控制平面(control plane)从数据平面(dataplane)中分离出来,通过软件方式实现。控制平面的核心是SDN控制器(controller),控制器负责链路发现和拓扑管理,主要是通过计算最短链路和下发流表来控制网络数据包的流向,控制器和交换机之间通过OpenFlow协议互通。数据转发平面负责数据包的转发。

虽然SDN的目标是实现控制平面与转发平面分离,但并不强制要求将集中化的控制平面限定在单个节点上。为了实现可扩展性和高可用性,允许将控制平面进行水平扩展以形成控制平面集群,包含该集群功能的模块可以通过BGP(BorderGateway Protocol,边界网关协议)或PCEP(Path Computational ElementCommunication Protocol,路径计算单元通信协议)等协议进行通信,实现单一的集中控制平面。图5-3给出了SDN的基本概念以及与传统网络架构的差异之处,需要注意的是,由于SDN的重点是控制平面和转发平面,因而图中并没有强调这些平面与硬件平面或操作平面以及管理平面之间的交互问题。

应用平面

在SDN实现中,可以通过应用程序来管理控制平面,应用程序可以与控制平面及管理平面进行交互,从管理平面提取设备信息及设备配置,从控制平面提取网络拓扑结构和流量路径信息,因而应用程序拥有完整统一的网络视图,并利用这些信息做出可传递给控制平面或管理平面的处理决策

这类应用的一个典型案例就是按需带宽,应用程序可以监控网络中的流量,并在一天中的某些时段或超过预定阈值时提供额外的流量路径,管理平面必须向应用程序提供有关网络接口的状态以及利用率等信息,控制平面则提供实时的转发拓扑,应用程序就通过这些信息来确定是否需要为特定流量提供额外的流量路径。可以使用用户自定义策略来预设应用程序的阈值,从而触发相应的操作,应用程序传达该操作的方式是指示管理平面提供新的流量路径并告知控制平面开始使用该流量路径。

图还给出了北向和南向协议以及API的概念,这些术语的含义与使用它们的环境相关,图中给出的是SDN控制平面及管理平面应用场景,此时的南向协议指的是从控制平面或管理平面到底层平面的通信,管理平面和控制平面提供给上层平面(如应用层)的接口则称为北向API或北向协议。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/196368.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月7日 上,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python学习笔记_Day06
没有异常处理,程序遇到错误就崩溃终止执行了。异常处理需要发现问题,并给出解决问题的编码方案,使得程序 再遇到错误时,不会崩溃,仍然能够向下继续执行。
非著名运维
2022/06/22
3210
Python实现atm机的功能
主要还是参考网上内容,自己做了修改。虽然代码有小bug,但是不影响学习和测试。 功能: 1.额度:8000 2.可以提现,手续费5% 3.每月最后一天出账单,写入文件 4.记录每月日常消费流水 5.提供还款接口 1.atm的脚本 [root@python atm]# cat atm.py #!/usr/bin/env python # -*- coding: utf-8 -*- ''' Date:2017-03-23 Author:Bob ''' import os import time impor
py3study
2020/01/06
9400
Python实现atm机的功能
90-综合练习:备份程序
1、既要可以实现完全备份,又要实现增量备份 2、完全备份时,将目录打个tar包,计算每个文件的md5值 3、增量备份时,备份有变化的文件和新增加的文件,更新md5值
凯茜的老爸
2018/09/11
3300
【python实现学生选课系统】
在当今数字化时代,学生管理系统不仅是教育机构的需求,也是提高教学效率和学生体验的必备工具。Python,作为一种强大而灵活的编程语言,为开发学生选课系统提供了理想的平台。从简单的课程选择到高级的管理功能,Python的优雅性和直观性使其成为开发者们的首选。本文将引导您通过Python创建一个功能强大的学生选课系统,深入了解如何利用技术为教育领域注入新的活力。
老虎也淘气
2024/01/30
3380
Python学习笔记_Day07
函数 函数声明的顺序不重要,重要的是什么时候调用 函数的参数,只写成单一的名称,叫作位置参数;如果写成key=val形式,称作关键字参数 # 定义函数时,默认值参数必须在非默认值参数后面,否则将出现语法错误 >>> def func1(name='bob', age): ... pass ... File "<stdin>", line 1 SyntaxError: non-default argument follows default argument >>> def func1(name,
非著名运维
2022/06/22
7160
Python在生物信息学中的应用:序列化Python对象
我们需要将Python对象序列化为字节流,这样就可以将其保存到文件中、存储到数据库中或者通过网络连接进行传输。
简说基因
2024/02/21
2400
Python在生物信息学中的应用:序列化Python对象
python——pkl文件
pkl文件是python里面保存文件的一种格式,如果直接打开会显示一堆序列化的东西。 cPickle在python3中更名为pickle
全栈程序员站长
2022/10/05
1.1K0
Python程序设计之文件(上)
1.1 文本文件(文本文件存储常规字符串,有若干文本行组成,通常每行使用'\n'结尾。字符串指的是记事本或其他文本编辑器能够正常显示、编辑并且能够被人类直接阅读和理解的字符串)
用户6256742
2024/05/30
1090
Python在Finance上的应用6 :获取是S&P 500的成分股股票数据
在之前的Python教程中,我们介绍了如何获取感兴趣的公司名单(在我们的案例中是S&P 500指数),现在我们将收集所有这些公司的股票数据。
万能数据的小草
2020/02/10
2.1K0
如何保存机器学习模型
这篇文章主要介绍持久化存储机器学习模型的两种方式:pickle和joblib,以及如何DIY自己的模型存储模块。
MeteoAI
2019/08/21
2.7K0
如何保存机器学习模型
python元组,文件的操作
新手刚刚开始学习python,如有写错或者写的不好的地方,请大家多多指导! python元组相加 a = (1,2) b = (3,4) a + b 元组运用乘法 (1,2) * 4  #在这里边,元组不会被当成数字来计算,而是输出4次 给字母类型的元组拍 t = ('bb,','dd','aa','cc') tm = list(t) tm.sort()    #然后输出tm t = tuple(tm) 用for的方式运算 t = (1,2,3,4,5) l = [x + 20 for x in t] 替换元组 t = (1,[2,3],4) t[1][0] = 'spa'   #t元组中第二个数值之后紧挨着的数值 python文件操作 常见的文件运算 output = open(r'd:\a.py', 'w')   创建输出文件(w是指写入) input = open('date', 'r')        创建输入文件(r是指读写) input = open('date')             与上一行想同(r是默认值) input.read()                     把整个文件读取进单一字符串 input.read(N)                    读取之后的N个字节,到一个字符串 input.readline()                 逐行读取,第一次读取第一行,第二次读取下一行 alist = input.readlines()        读取整个文件到字符串列表 output.write(as)                 写入字节字符串到文件 output.writelines(alist)         把列表内所有字符串写入文件 output.close()                   手动关闭(当文件收集完成是会替你关闭文件) output.flush()                   把输出缓冲区刷到硬盘中,但不关闭文件 anyFile.seek(N)                  修改文件位置到偏移量N处以便进行下一个操作 for line in open('data'): use line  文件迭代器一行一行的读取 open('f.txt', encoding='latin-1')   python3.0unicode文本文件(str字符串) open('f.bin', 'rb')                 python3.0二进制byte文件(bytes字符串) 实例应用 myfile = open('myfile.txt', 'w')     #创建一个myfile.txt文件,并打开进行写入 myfile.write('hello,world\n')         myfile.write('good bye'\n)           #\n表示转行 myfile.close()               #关闭文件 然后打开本地目录,看看文件内容是否一样 读取文件 myfile = open('myfile.txt')     #打开文件,默认是只读 myfile.readline()              #读取第一行 myfile.readline()              #读取下一行 把整个文件读取进单一字符串 open('myfile.txt').read()   #把所以文件一次性读取完,\n之后的表示下一行 使用打印的方式来读取 print(open('myfile.txt').read())    #这样处理的结果比较清晰,隔行分开 用for的方式来逐行读取文件 for line in open('myfile.txt'):     print(line,end='') 以二进制的方法打开文件 data = open('myfile.txt', 'rb').read()  #这样的话效果不太明显,可以创建文本写入数字开看看 data[4:8] data[0] bin(data[0])    #二进制的方式显示一个文件 文件存储 x, y, z = 43, 44, 45 s = 'spam' d = {'a': 1,'b': 2} l = [1,2,3] f = open('data.txt', 'w') f.write(s + '\n')    #直接将s插入然后转行 f.write('%s,%s,%s\n' % (x,y,z)) f.write(str(l) + '$' str(d) + '\n')    #str输出l + str输出的d 然后读取看下结果 a = open('data.txt').read() print(a) 去掉多余的行 f = open('data
py3study
2020/01/06
1K0
将mnist数据集保存成numpy格式
代码地址:https://github.com/hsjeong5/MNIST-for-Numpy
marsggbo
2018/12/05
9800
Python+pickle读写二进制文件小案例
对于二进制文件,不能使用记事本或其他文本编辑软件进行正常读写,也无法通过Python的文件对象直接读取和理解二进制文件的内容。必须正确理解二进制文件结构和序列化规则,才能准确地理解二进制文件内容并且设计正确的反序列化规则。 所谓序列化,简单地说就是把内存中的数据在不丢失其类型信息的情况下转成对象的二进制形式的过程,对象序列化后的形式经过正确的反序列化过程应该能够准确无误地恢复为原来的对象。 Python中常用的序列化模块有struct、pickle、marshal和shelve,本文主要介绍pickle模块
Python小屋屋主
2018/04/16
1.9K0
Python实现简单登陆验证(文件操作)
       1.用户名的验证,首先对存储用户名和密码的信息读取,然后再把输入的用户名和从文件中读取的用户名进行比对,如果比对成功则进行下一步的密码验证,如果没有实现则提示重新输入密码,对密码的验证也有一个输入上限,当密码输入错误3次,程序退出。否则验证成功。
py3study
2020/01/19
1.5K0
Python实现简单登陆验证(文件操作)
python3--序列化模块,hashlib模块
__len__    len(obj)的结果依赖于obj.__len__()的结果,计算对象的长度
py3study
2018/08/02
9470
py3_cookbook_notes_01
最近在看Python Cookbook第三版,将看书过程中一些平时不太容易注意的知识点记录下来。 数据结构和算法 解压可迭代对象赋值给多个变量 record = ('Dave', 'dave@example.com', '773-555-1212', '847-555-1212') name, email, *phone_numbers = record 保留最后 N 个元素 from collections import deque def search(lines, pattern, histor
jeremyxu
2018/05/11
1.1K0
python基础—序列化操作
JSON是一种轻量级的数据交换格式,JSON相对于XML而言,更加简单,易读和编写,同时也易于机器解析和生成,除此,我们也可以自定义内部使用的数据交换格式。
dogfei
2020/07/31
5940
dump和load怎么用?
在写代码的时候,有的时候不知道什么时候用何种格式,字符串跟对象转换的时候,到底是用dump还是load.dumps或者loads, 每次都是蒙的,要么就去查,一点效率都没有。
赵云龙龙
2019/11/10
2.3K0
【Python】npy/pkl/csv读写效率测试
CPU: Intel® Core™ i7-10700F 磁盘: ST1000DM010-2EP102 系统:windows10
zstar
2023/03/24
1.2K0
基于深度学习和经典方法的文本分类
本文研究了一种使用CNN和LSTM进行文本分类的方法,通过实验和对比,发现CNN在新闻分类任务上表现较好,LSTM在短文本分类任务上表现较好。同时,本文还探讨了预训练词向量在文本分类中的作用,并提出了改进的预训练词向量方法。
段石石
2017/06/27
9.8K0
基于深度学习和经典方法的文本分类
相关推荐
Python学习笔记_Day06
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档