计算机网络 - 网络层的控制平面

news2025/1/12 2:57:36

Introduction

控制平面设计很多路由的算法, 然后计算出路由表给数据平面转发跟路由的, 传统方式的控制平面是每一个路由器都有一个控制平面, SDN方式的话通常是集中的remote管理, 一个控制平面控制多个本地代理CA - (Control Agent)

路由选择算法

路由route的概念

按照某种指标(传输延迟, 经过的站点数目等)找到一天从源节点到目标节点的较好路径, 也就是计算网络如何走的问题

网络的图的抽象

路由器为node

链接的路由器为edge
在这里插入图片描述

路由算法分类

  • 全局 (所有的路由器拥有完整的拓扑) - link state
  • 分布式 (路由器只知道它有物理链接关系的邻居路由器) - distance vector

Link State 算法

  • 各点通过各种渠道获得整个网络拓扑, 网络中所有链路 代价等信息
  • 使用LS路由算法,通过Dijkstra算法计算本站点到其它站点的最优路径
  1. 发现相邻的节点, 告知对方网络地址
  2. 测量到相邻节点的代价
  3. 将分组通过扩散的方法发送到其他路由器
  4. 通过Dijkstra算法找出最短路径 (这里才是路由算法)

Distance Vector 算法

  • 各路由器维护一张路由表
  • 各路由器与相邻路由器交换路由表
  • 根据获得的路由信息, 跟新路由表

这里用到了Bellman-Ford方程(动态规划)

dx(y) = min{x(x, v) + dv(y)}

Internet自治系统内部的路由选择 - OSPF

OSPF (Open Shortest Path First)

  • 使用的是Dijkstra算法
  • 通过信息通过泛洪传遍整个内部系统

ISP之间的路由选择 - BGP

层次路由

将互联网分层一个个AS(路由器自治区域)
在这里插入图片描述

BGP会话

两个BGP路由器在一个半永久的TCP连接上发送BGP报文

比如AS3想AS2网关路由器2c通过路径 AS3, X

  • 3a参与AS内部路由运算, 知道本AS所有的子网x信息
  • AS3向AS2承诺, 他可以向子网x转发数据报
  • 3a是2c关于x的下一跳 (next hop)

当AS2接收到AS3的通过时候, 会使用输入策略选择接收或者过滤

路径选择

路由器可能获得一个网络前缀的多个路径,路由 器必须进行路径的选择,路由选择可以基于:

  1. 偏好属性 - 自己设置的
  2. 最短AS-PATH - Distance Vector
  3. 最近的路由 - 热土豆

对比内部routing以及外部routing

内部: 关注性能

外部: 策略可能比性能更重要, 所以在路径选择上先满足偏好属性

总结

内部routing使用OSPF, 外部routing使用BGP

SDN的Control Pane

SDN bottom up的layer

  1. a communication layer: SDN控制器和SDN交换机之间通信, 也叫南向接口
  2. a network-wide state-management layer: 是SDN控制平面控制的地方, 比如flow tables, load balancing
  3. The interface to the newwork-control application: 也叫北向接口, 给newtork application使用

communication layer

  • 数据平面交换机
  • 流表被控制器计算和安装
  • 基于南向API
  • 定义了控制器的协议 (e.g. OpenFlow)

SDN controler

  • 维护网络状态信息
  • 通过北向API和网络控制器应用交互
  • 通过南向API和网络交互及交互
  • 逻辑集中, 但是在实现上通常采用分布式的方法

SDN Application

  • 可以实现防火墙, 负载均衡
  • 可以是第三方的application

OpenFlow协议

在这里插入图片描述

  1. S1经历链路失败, 采用OpenFlow通告
  2. SDN控制器收到报文, 跟新链路状态信息
  3. Application中Dijkstra算法应用被调用
  4. Application中Dijkstra访问网络的states计算路最短路径
  5. Application与flow table manager交互, update流表
  6. 采用OpenFlow在交换机上安装流表

ICMP

ICMP是host跟router的Protocol

Traceroute and ICMP

  • host给目标host发送一系列的UDP, 然后端口号不可达
    • 第一个: TTL=1
    • 第二个: TTL=2, ect
  • 当nth数据达到nth路由器
    • 路由器抛弃数据报
    • 然后发送ICMP(type11, code 0)
    • 报文包括了路由器的名字和IP地址
  • 当ICMP报文到达, host可以测算RTT
  • 停止的判据
    • UDP段最终达到目标主机
    • 返回IMCP(type3, code3)

网络管理

Protocol包括了SNMP, NETCONF/YANG

协议报文

GetRequest: 给我数据

InformRequest: 给你MIB(Management Information Base)值

SetRequest: set MIB

Response: 对请求的响应

Trap: 代理-实体: 异常事件的报告

总结

这章讲了控制平面, 设计到了路由选择算法, 还有路由的层次(AS), 讲了SDN的架构以及怎么做控制, 包括OpenFlow协议, 讲了ICMP协议, 还有网络管理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/578145.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python词性分析:一步步了解自然语言处理技术

Python词性分析:一步步了解自然语言处理技术 Python是一种高级编程语言,拥有广泛的应用领域。自然语言处理技术是其中一个重要的领域,它包含了词性分析、命名实体识别、句法分析等多项任务。词性分析是自然语言处理中的基本任务之一&#xf…

chatgpt赋能python:Python请求头——让你的网络请求更有效率

Python请求头——让你的网络请求更有效率 网络请求是现代应用程序的核心。但是,如果你不了解Python请求头的概念和用途,那么你可能会面临一些棘手的问题。在本文中,我们将深入探讨Python请求头,了解其作用、语法和最佳实践。 什…

计算机毕业论文选题推荐|软件工程|系列十一

文章目录 导文题目导文 计算机毕业论文选题推荐|软件工程 (***语言)==使用其他任何编程语言 例如:基于(***语言)门窗账务管理系统的设计与实现 得到:基于JAVA门窗账务管理系统的设计与实现 基于vue门窗账务管理系统的设计与实现 等等 题目 基于(***语言)系统的校园社交…

如何在华为OD机试中获得满分?Java实现【字符串重新排序】一文详解!

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Java华为OD机试真题(2022&2023) 文章目录 1、题目描述2、输入描述3、输出描述…

如何在华为OD机试中获得满分?Java实现【静态代码扫描服务】一文详解!

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Java华为OD机试真题(2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述…

【iOS】—— Tagged Pointer对象

文章目录 关于Tagged PointerNSTaggedPointer示例TaggedPointer 结构Tagged Pointer特点注意事项isa指针64位下的isa指针优化 本来打算细看一下weak的底层原理,看到了出现了很多次Tagged Pointer对象,就先来学一下Tagged Pointer,在之前刚学习…

chatgpt赋能python:Python隐藏CMD窗口

Python隐藏CMD窗口 Python是一种高级编程语言,已被广泛用于各种领域,从Web开发到数据科学。Python的一个非常有用的特性是它可以通过CMD窗口运行脚本,但在某些情况下,隐藏CMD窗口可能是必要的。 为什么要隐藏CMD窗口&#xff1f…

如何在华为OD机试中获得满分?Java实现【微服务的集成测试】一文详解!

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Java华为OD机试真题(2022&2023) 文章目录 1、题目描述2、输入描述3、输出描述…

一图看懂 pycodestyle 模块:一个检查Python代码是否符合PEP8风格约定的工具,资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创,转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂 pycodestyle 模块:一个检查Python代码是否符合PEP8风格约定的工具,资料整理笔记(大全) 🧊摘要🧊模块…

chatgpt赋能python:Python中数字转换的完整指南

Python中数字转换的完整指南 转换数字是Python编程过程中经常需要的操作之一。Python提供了许多内置函数和库,可以方便地将数字转换为各种格式和数据类型。在本文中,我们将介绍Python中数字转换的完整指南,包括各种转换方法和最佳实践。 内…

chatgpt赋能Python-python_读取bin

介绍 Python 作为一种高级编程语言,已经被广泛地应用在各种领域,包括科学计算、人工智能、Web 开发等等。在这些领域中,二进制文件的处理是不可避免的。Python 也提供了一些库和工具,让我们可以方便地读取和处理二进制文件。本文…

ChatGPT与讯飞星火实测对比

文章目录 一、推理测试测试提示词1:假设树上有10只鸟,开枪打死1只,那么树上还有几只鸟?- 测试提示词2:一艘船10天可以渡过太平洋,请计算10艘船多少天可以渡过太平洋。测试提示词3:我爸妈结婚的时候为什么不…

vue-i18n安装配置使用示例,并介绍在模版文本、组件方法、js,f方法里的使用

vue-i18n是一个项目的国际化组件&#xff0c;可以切换多个语言版本,很多vue项目都是用这个插件来处理语言切换的。 基本操作 1&#xff0c;安装引用&#xff1a; $ npm install vue-i18n<script src"https://unpkg.com/vue/dist/vue.js"></script> &…

Radxa ROCK 5A 开箱 vs 树莓派

Rock5 Model A 是一款高性能的单板计算机&#xff0c;它采用了 RK3588S (8nm LP 制程&#xff09;处理器&#xff0c;具有 4 个高达 2.4GHz 的 ARM Cortex-A76 CPU 核心、4 个高达 1.8GHz 的 Cortex-A55 内核和 Mali-G610 MP4 GPU。更重要的是&#xff0c;它还有一个高达 6TOPS…

chatgpt赋能python:Python词频分析:为什么Python是数据科学家和工程师的首选?

Python 词频分析&#xff1a;为什么 Python 是数据科学家和工程师的首选&#xff1f; Python 是一种通用、开放源代码、高级编程语言&#xff0c;近年来一直是数据科学和工程领域中最受欢迎的编程语言之一。Python 强大的数据处理能力迅速成为行业的首选&#xff0c;但是仅靠这…

linux中和,|和||及分号(;)的用法

在linux中&#xff0c;我们经常会用到&和&&&#xff0c;|和||及分号(;)&#xff0c;但是好多人对其会混淆&#xff0c;不明白其中的意思&#xff0c;今天为大家讲解一下&和&&&#xff0c;|和||及分号(;)各自的说明和用法。 1.& & 表示程序…

Linux-0.11 boot目录head.s详解

Linux-0.11 boot目录head.s详解 模块简介 在head.s中&#xff0c;操作系统主要做了如下几件事&#xff1a; 重新设置中断描述符和全局描述符检查A20地址线是否开启检查数学协处理器初始化页表并开启分页跳转到main函数执行 过程详解 重新设置IDT和GDT 在setup.s中我们已经…

chatgpt赋能python:Python逆序排列:从入门到精通

Python 逆序排列&#xff1a;从入门到精通 Python 语言因其简单易学、性能高效、多平台支持等优点而备受青睐。而在 Python 中进行逆序排列操作是我们经常需要用到的一个功能&#xff0c;本篇文章将详细介绍 Python 中的逆序排列操作。 什么是逆序排列&#xff1f; 逆序排列…

chatgpt赋能python:Python行转列:如何高效地处理大数据集

Python行转列&#xff1a;如何高效地处理大数据集 Python是一种广泛使用的编程语言&#xff0c;最初用于Web开发&#xff0c;如今已成为专业开发、科学计算和数据分析等领域的一种首选语言。Python非常方便&#xff0c;尤其是在处理大数据集时。本文将介绍如何使用Python将行数…

Protobuf协议初级详解(python使用)从安装到序列化-反序列化

教程 一、前言二、效果三、教程1&#xff09;安装2&#xff09;使用1.创建.proto文件2.proto语法3.protoc.exe文件编译.proto语法文件4.序列化5.反序列化 四、借鉴 一、前言 Protobuf是一种轻便高效的结构化数据存储格式&#xff0c;可以用于结构化数据序列化&#xff0c;很适合…