当前位置: 首页 > news >正文

网络层:控制平面

路由选择算法

路由选择算法就是为了在端到端的数据传输中,选择路径上路由器的最好的路径。通常,一条好的路径指具有最低开销的路径。最低开销路径是指源和目的地之间具有最低开销的一条路。

  • 根据集中式还是分散式来划分
    • 集中式路由选择算法:
      集中式算法拥有关于所有网络链路开销的完整信息。具有全局状态信息的算法常被称作链路状态算法,因为该算法必须知道网络中每条链路的开销。
    • 分散式路由选择算法:
      路由器以迭代,分布式方式计算出最低开销路径。没有节点拥有关于网络中所有节点的信息。
  • 根据动静态来划分
    • 静态路由选择算法:
      通常由人工进行调整。
    • 动态路由选择算法:
      随着网络流量负载或拓扑发生变化二改变路径。虽然动态路由选择算法能随时对网络变化做出响应,但是会带来路由循环,路由振荡等问题。
  • 根据负载敏感还是负载迟钝划分
    • 负载敏感算法:
      链路开销会动态地变化以反映出底层链路的当前拥塞水平。
      负载迟钝算法:
      不明确地反映当前拥塞水平。

链路状态路由选择算法

简单来说,在一台路由器上:首先在一张表中显示出所有与它直接相连地路由器,并且记录开销,然后依次计算与这些路由器相连的路由器,当算到最后的时候,每一台路由器知道它的前一个节点,这样就计算出了具有最低开销的链路。
但是我们要考虑一个情况,比如说,路由器A要向B发送数据,比如路由器A和B在钟表上12点和6点的位置,第一次,计算出最低开销链路是顺时针,第二次的时候,由于第一次发送的数据,链路状态路由选择算法计算出最低开销路径为逆时针,第三次有时顺时针,以此类推,这种情况我们称之为网络振荡。
一种解决方法就是确保并非所有的路由器同时运行LS(链路状态路由选择)算法。

距离向量路由选择算法

距离向量算法是一种迭代的,异步的和分布式的算法,而LS算法是一种使用全局信息的算法。

因特网中自治系统内部的路由选择:OSPF

  • 自治系统(AS):
    通常由一个ISP中的路由器以及互联他们的链路构成一个AS。
    一个大的AS下可以划分多个小的AS,每个AS由AS号来标识,AS号由ICANN区域注册机构所分配。
  • 开放路径最短优先(OSPF)
    OSPF是一种链路状态协议,使用OSPF时,路由器向自治系统内所有的其他路由广播路由选择信息,而不是单单地向其相邻的路由器广播。
  • OSPF的优点:
    1. 安全
    2. 多条相同开销的路径
    3. 对单播与多播的总和支持
    4. 支持在单个AS中的层次结构

ISP之间的路由选择协议(BGP)

在因特网中,所有的AS都运行相同的AS间路由选择协议,称为边界网关协议(BGP),正是这个协议将因特网中数以千计的ISP粘合起来。

  • BGP的作用:
    由自治系统外部发送到自治系统内部的报文,由AS内部路由选择协议所决定,那么在AS外部,也就是从一个AS内发送到另一个AS的报文如何转发?这就是BGP的职责所在,首先,一个AS要接收报文,那么其他AS就应该知道它的存在,在知道了它的存在之后,选择最低开销路径。

  • 通告BGP路由信息:
    网管路由器是指一台位于AS边缘的路由器。它直接连接到其他AS内部的一台或多台路由器。内部路由器仅连接在它自己AS中的主机和路由器。

SDN控制平面

SDN控制平面大致分为两部分:SDN控制器和SDN网络控制应用程序。
控制器的功能可大体组织为3个层次:

  • 通信层:SDN控制器和受控网络设备之间的通信
  • 网络范围状态管理层。
  • 对于网络控制应用程序层接口。

OpenFlow协议

OpenFlow协议运行在SDN控制器和SDN控制的交换机或其他实现OpenFlow API的设备之间,OpenFlow协议运行在TCP之上,使用默认6653端口号。

ICMP:因特网控制报文协议

SNMP报文类型

网络管理和SNMP

网络管理包括了硬件,软件和人类元素的设置,总和和协调,以监视,测试,轮询,配置,分析,评价和控制网络及网元资源,用合理的成本满足实时性,运营性能和服务质量的要求。
简单网络管理协议(SNMP)是一个应用层协议,用于在管理服务器和代表管理服务器执行的代理之间传递网络管理控制信息和报文。SNMP最常使用的是请求响应模式,陷阱报文,

相关文章:

网络层:控制平面

路由选择算法 路由选择算法就是为了在端到端的数据传输中,选择路径上路由器的最好的路径。通常,一条好的路径指具有最低开销的路径。最低开销路径是指源和目的地之间具有最低开销的一条路。 根据集中式还是分散式来划分 集中式路由选择算法&#xff1a…...

Ubuntu 系统内核 kernel panic

Ubuntu 系统内核 kernel panic 不能进入系统:报错end kernel panic -not syncing: attemped to kill init! exit code 0x00000100 系统启动的时候,按下‘e’键进入grub编辑界面,编辑grub菜单,选择“kernel /vmlinuz-XXXXro root…...

【flink】RowData copy/clone方式

说明:一般用户常用的是GenericRowData。flink内部则多使用BinaryRowData。 方法一、循环解决(不推荐): 代码较为复杂需要根据RowType获取到内部fields的logicalType,再使用RowData.createFieldGetter方法创建fieldGetters。 public static …...

网页图标工具

工具地址...

掌动智能:功能测试及拨测主要功能

在企业中对于功能测试及拨测而言,用户只需提供应用包和产品文档,由资深测试专家设计并执行测试,覆盖核心场景,包含特定业务流程以及行业通用特殊场景,支持需求定制。 执行过程严格监控,依据应用功能和业务需…...

第11章 Java集合(二)

目录 内容说明 章节内容 一、Set接口 二、HashSet集合 三、LinkedHashSet集合 四、TreeSet集合...

Transformer和ELMo模型、word2vec、独热编码(one-hot编码)之间的关系

下面简要概述了Transformer和ELMo模型、word2vec、独热编码(one-hot编码)之间的关系: 独热编码(One-hot Encoding)是一种最基本的词表示方法,将词表示为高维稀疏向量。它与ELMo、word2vec和Transformer的关…...

您与1秒钟测量两千个尺寸之间仅差一台智能测径仪!

随着产线的发展,自动化程度越来越高,生产速度越来越快,人们对产品的品质要求越来越高,对检测也提出了更高的要求。传统的检测与测量手段已经很难满足测量效率要求,业内迫切需要一种新型高效率的测量设备。 产线多种多样…...

k8s之service五种负载均衡byte的区别

1,什么是Service? 1.1 Service的概念​ 在k8s中,service 是一个固定接入层,客户端可以通过访问 service 的 ip 和端口访问到 service 关联的后端pod,这个 service 工作依赖于在 kubernetes 集群之上部署的一个附件&a…...

Unity项目转微信小游戏保姆教程,繁杂问题解决,及微信小游戏平台简单性能测试

前言 借着某人需求,做了一波简单的技术调研:将Unity项目转换为微信小游戏。 本文主要内容:Unity转换小游戏的步骤,遇到问题的解决方法,以及简单的性能测试对比 微信小游戏的限制 微信小游戏对程序包体大小有严格限制…...

json字符串转为开闭区间

1.需求背景 1.1 前端页面展示 1.2 前后端约定交互json 按照页面每一行的从左到右 * 示例 [{"leftSymbol":">","leftNum":100,"relation":"无","rightSymbol":null,"rightNum":0}, {"left…...

STM32 IIC 实验

1. 可以选择I2C1,也可以选择I2C2,或者同时选择,同时运行 配置时钟信号 为节约空间,选择这两个,然后选择GENERATE CODE 二、HAL_I2C_Mem_Write I2C_HandleTypeDef *hi2c:I2C设备句柄 uint16_t DevAddress&am…...

第六章 包图组织模型|系统建模语言SysML实用指南学习

仅供个人学习记录 概述 包是容器的一个例子。包中的模型元素称为可封装元素,这些元素可以是包、用例和活动。由于包本身也是可封装元素,因此可以支持包层级。 每个有名称的模型元素也必须是命名空间的一份子,命名空间使得每个元素均能够通过…...

使用 Rust 进行程序

首先,我们需要安装必要的库。在终端中运行以下命令来安装 scraper 和 reqwest 库: rust cargo install scraper reqwest 然后,我们可以开始编写程序。以下是一个基本的爬虫程序,用于爬取 上的图片: rust use reqwe…...

第10章 增长和扩展你的 Micro SaaS 应用程序

接下来,我们进入真正增长 Micro SaaS 应用用户群和订阅收入的激动人心的话题。 即使在增长阶段,你也不能忽视客户满意度,确保你与时俱进,在路线图上添加你承诺的功能,然后通过 SaaS 营销吸引更多用户。 也就是说,让我们来看看增长您的 Micro SaaS 应用程序的关键战略要…...

第八章《搞懂算法:逻辑回归是怎么回事》笔记

8.1 如何理解逻辑回归 逻辑回归根据给定的自变量数据集来估计事件的发生概率,由于结果是一个概率,因此因变量的范围在 0 和 1 之间。 逻辑回归的与线性回归一样,也是以线性函数为基础的;而与线性回归不同的是,逻辑回…...

【WinForm详细教程八】WinForm中的TreeView控件

文章目录 TreeView 基本的知识属性方法事件 TreeView 案例演示案例一:案例二: TreeView 控件 用于展示分层数据,它以树形结构展示信息,每个节点可以有一个或多个子节点。TreeView 控件允许用户以可展开和可折叠的形式查看复杂的层…...

〔003〕虚幻 UE5 基础教程和蓝图入门

✨ 目录 🎈 新建项目🎈 快捷操作🎈 镜头移动速度🎈 新建蓝图关卡🎈 打印字符串🎈 蓝图的快捷键🎈 场景中放置物体🎈 通过蓝图改变物体位置🎈 展现物体运动轨迹&#x1f3…...

如何像优秀测试人员那样思考?

优秀测试和普通测试之间的差别在于测试人员如何思考:测试人员的测试设计选择,解释所观察到的能力,以及非常令人信服地分析描述这些现象的能力。 然而,在实际工作中,我们更多的看到了测试人员在电脑前点点点&#xff0…...

NOIP2023模拟13联测34 A. origenNOIP2023模拟13联测34 A. origen

NOIP2023模拟13联测34 A. origen 文章目录 NOIP2023模拟13联测34 A. origen题目大意思路code 题目大意 给定 n n n 个整数 a 1 , a 2 , a 3 ⋯ a n a_1,a_2,a_3\cdots a_n a1​,a2​,a3​⋯an​ ,求 ∑ i 1 n ∑ j i n ( ⊕ k i j a k ) 2 m o d 998244353 \…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...