计算机网络——网络层(2)

计算机网络——网络层(2)

  • 小程一言
    • 专栏链接: [link](http://t.csdnimg.cn/ZUTXU)
  • 网络层——控制平面
    • 概述
      • 路由选择
      • 转发表
      • 路由协议
      • 路由信息的交换
      • 小结
    • 路由选择算法
      • 常见的路由选择算法
        • 距离矢量路由算法
          • 工作原理
          • 优缺点分析
        • 链路状态路由算法
          • 基本工作原理
          • 优缺点分析
        • 链路状态路由算法
          • 工作原理
          • 优缺点分析
        • 最短路径算法
          • Dijkstra算法
          • Bellman-Ford算法
          • 最短路径小结
      • 小结

小程一言

我的计算机网络专栏,是自己在计算机网络学习过程中的学习笔记与心得,在参考相关教材,网络搜素的前提下,结合自己过去一段时间笔记整理,而推出的该专栏,整体架构是根据计算机网络自顶向下方法而整理的,包括各大高校教学都是以此顺序进行的。
面向群体:在学计网的在校大学生,工作后想要提升的各位伙伴,

专栏链接: link

网络层——控制平面

在这里插入图片描述

概述

网络层的控制平面是指网络层中负责控制和管理网络路由的部分。它主要包括路由选择、转发表的更新、路由协议的运行和路由信息的交换等功能。

路由选择

负责根据网络中的拓扑结构和链路状态信息,选择最佳的路由路径来传输数据包。路由选择算法可以根据不同的需求和条件来进行优化,如最短路径、最小成本、最大带宽等。

转发表

网络设备中用于存储路由信息的数据结构,它会根据控制平面的指示不断更新,以确保数据包能够被正确地转发到目的地。

路由协议

网络层中常用的路由协议有RIP、OSPF、BGP等,它们负责在网络中传播路由信息,协调网络设备之间的路由选择和转发行为。

路由信息的交换

在复杂的网络环境中,不同的网络设备之间需要交换路由信息,以便彼此了解整个网络的拓扑结构和路由信息。这些路由信息的交换是由控制平面来管理和协调的。

小结

网络层的控制平面是网络中非常重要的一部分,它负责管理和控制整个网络的路由行为,确保数据包能够快速、可靠地传输到目的地。

路由选择算法

在计算机网络中,路由选择算法是指网络设备在收到数据包后,根据网络拓扑和链路状态信息选择最佳的路由路径进行数据包的转发。

常见的路由选择算法

在这里插入图片描述

距离矢量路由算法

距离矢量路由算法(Distance Vector Routing Algorithm)是一种分布式路由选择算法,用于在计算机网络中确定数据包的最佳路径。该算法基于每个节点维护一个距离向量表,其中包含到达其他节点的距离和下一跳信息。节点之间通过交换距离向量表来更新彼此的路由信息。

工作原理
  • 初始状态:每个节点维护一个距离向量表,表中包含到达其他节点的距离和下一跳信息。初始时,节点只知道直接相邻节点的距离,而对于其他节点的距离则被设置为无穷大。
  • 信息交换:节点周期性地将自己的距离向量表发送给相邻节点,并接收相邻节点发送的距离向量表。
  • 更新距离向量表:当节点接收到相邻节点的距离向量表时,它会更新自己的距离向量表,并将更新后的表发送给其他相邻节点。更新的规则通常包括距离的累积和路径的选择。
  • 路由选择:节点根据距离向量表中的信息选择到达目的节点的最佳路径。
  • 距离向量表的更新:当网络拓扑发生变化时,节点的距禇向量表会相应地更新,以反映新的最佳路径。
优缺点分析
  • 优点:简单易实现,适用于小型网络。
  • 缺点: 慢收敛、计数到无穷问题和易受路由环路的影响。

在这里插入图片描述

链路状态路由算法

链路状态路由算法(Link State Routing Algorithm)是一种常用的路由选择算法,用于在计算机网络中确定数据包的最佳路径。与距离矢量路由算法不同,链路状态路由算法是基于网络中每个节点收集的全局拓扑信息来计算最佳路径。

基本工作原理
  • 拓扑信息收集:每个节点定期广播自己的链路状态信息(包括与相邻节点的连接状态、成本等),并接收其他节点发送的链路状态信息。

  • 构建网络拓扑图:每个节点根据收集到的链路状态信息构建网络的全局拓扑图,即描述整个网络结构的图,其中节点表示网络中的路由器,边表示节点之间的链路。

  • 最短路径计算:使用最短路径算法(如Dijkstra算法)基于全局拓扑图计算出到达其他节点的最短路径,并更新节点的路由表。

  • 路由选择:根据更新后的路由表,节点可以选择到达目的节点的最佳路径。

优缺点分析
  • 优点:收敛速度快、能够避免计数到无穷问题、对网络拓扑变化的适应性强等。
  • 缺点:需要大量的带宽来传输链路状态信息、对网络中的大规模拓扑信息处理较为复杂等。

在这里插入图片描述

链路状态路由算法

路状态路由算法(Link State Routing Algorithm)是一种基于全局网络拓扑信息的路由选择算法。它的主要思想是每个路由器都维护一个关于整个网络拓扑的全局视图,然后利用这个全局视图来计算出最佳路径。

工作原理
  • 链路状态信息收集:每个路由器节点定期向其相邻的节点发送链路状态数据包,这些数据包包含了与相邻节点连接的链路状态信息,如带宽、延迟、可靠性等。同时,节点也会接收其他节点发送的链路状态信息。

  • 构建网络拓扑图:每个节点根据收集到的链路状态信息构建网络的全局拓扑图,这个图描述了整个网络的结构,其中节点表示路由器,边表示节点之间的链路状态信息。

  • 最短路径计算:基于全局拓扑图,每个节点使用最短路径算法(通常是Dijkstra算法)来计算到达其他节点的最短路径,并更新节点的路由表。

  • 路由选择:根据更新后的路由表,节点可以选择到达目的节点的最佳路径,从而进行数据包的转发。

  • 拓扑变化处理:当网络拓扑发生变化时,例如链路状态发生改变或有新的节点加入网络,每个节点都会重新计算最短路径,并更新自己的路由表。

优缺点分析
  • 优点:收敛速度快、能够避免计数到无穷问题、对网络拓扑变化的适应性强等。
  • 缺点:例如需要大量的带宽来传输链路状态信息、对网络中的大规模拓扑信息处理较为复杂等。
最短路径算法

在路由选择算法中,最短路径算法用于寻找网络中节点之间的最短路径。最常见的最短路径算法包括Dijkstra算法和Bellman-Ford算法。

在这里插入图片描述

Dijkstra算法
  • Dijkstra算法用于计算从单个源节点到图中所有其他节点的最短路径。
  • 算法使用了一种贪婪的策略,从源节点开始,逐步扩展到其他节点,直到找到到达所有节点的最短路径。
  • Dijkstra算法维护一个距离数组dist[],记录从源节点到各个节点的当前最短距离。同时维护一个集合S,表示已经找到最短路径的节点。
  • 在每一步中,选择距离集合S最近的节点,并更新与该节点相邻的节点的距离值,直到所有节点都加入集合S。
  • Dijkstra算法的时间复杂度为O(V^2)或O(ElogV),其中V为节点数,E为边数。
Bellman-Ford算法
  • Bellman-Ford算法用于计算从单个源节点到图中所有其他节点的最短路径,与Dijkstra算法不同的是,它可以处理存在负权边的图。
  • 算法通过不断的松弛操作,更新节点之间的最短路径估计值,直到所有节点的最短路径被找到。
  • Bellman-Ford算法的时间复杂度为O(VE),其中V为节点数,E为边数。
最短路径小结

这些最短路径算法在路由选择中扮演着重要的角色,路由器可以利用这些算法计算出到达目的节点的最佳路径,以便进行数据包的转发。最短路径算法的选择取决于网络的特性,例如是否存在负权边等。
在这里插入图片描述

小结

路由选择算法的选择取决于网络的规模、复杂度、性能需求和安全性要求。不同的算法有不同的优缺点,例如距离矢量算法简单易实现但收敛速度慢,链路状态算法收敛速度快但占用资源多等。在实际应用中,需要根据具体的网络环境和需求来选择合适的路由选择算法。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

D35XB100-ASEMI整流桥D35XB100参数、封装、规格

编辑:ll D35XB100-ASEMI整流桥D35XB100参数、封装、规格 型号:D35XB100 品牌:ASEMI 正向电流(Id):35A 反向耐压(VRRM):1000V 正向浪涌电流:550A 正向…

JavaScript定义变量及赋值

定义变量及赋值 ☞ 定义变量,未赋值var 变量名; 默认值是undefined ☞ 定义变量,且赋值var 变量名 数据;☞ 总结:1. 一个变量一次只能保存一个值;2. 以最后一次赋值为准3. JS变量区分大小写变量命名规范 ☞ 规则 必须遵守的,不遵守的话 JS引擎 发…

PC电脑端的小程序顶部自定义标题失效的原因

windows客户端不被支持:navigationStyle:custom!! navigationStylestringdefault导航栏样式,仅支持以下值: default 默认样式 custom 自定义导航栏,只保留右上角胶囊按钮。iOS/Android 微信客户端 7.0.0,Windows 微信客户端不支…

一文读懂Python中的映射

python中的反射功能是由以下四个内置函数提供:hasattr、getattr、setattr、delattr,改四个函数分别用于对对象内部执行:检查是否含有某成员、获取成员、设置成员、删除成员。 获取成员: getattr class Foo:def __init__(self, name, age):se…

c语言实战之贪吃蛇

文章目录 前言效果展示游戏用到的图片游戏思路一览游戏前准备一、贪吃蛇、食物、障碍物节点坐标的结构体二、枚举游戏状态、和贪吃蛇的方向三、维护运行的结构体 游戏开始前的初始化一、学习图形库相关知识二、设置背景三、欢迎界面四、初始化贪吃蛇五、生成障碍物六、生成食物…

【Uni-App】Vue3如何使用pinia状态管理库与持久化

安装插件 pinia-plugin-unistorage 引入 // main.js import { createSSRApp } from "vue"; import * as Pinia from "pinia"; import { createUnistorage } from "pinia-plugin-unistorage";export function createApp() {const app create…

Backtrader 文档学习-Order StopTrail(Limit)

Backtrader 文档学习-Order StopTrail(Limit) 1.概述 版本1.9.36.116之后支持[StopTrail, StopTrailLimit and OCO]的订单类型,并支持broker的实时交互 。 StopTrail订单,它是一种追踪止损订单。当市场价格朝定义的交易方向移动时,StopTrai…

国考省考行测:分析推理,形式逻辑,所有有的分析

国考省考行测: 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能,附带行测和申论,而常规国考省考最重要的还是申论和行测,所以大家认真准备吧,我讲一起屡屡申论和行测的重要知识点 遇到寒冬&am…

【LeetCode】98. 验证二叉搜索树(中等)——代码随想录算法训练营Day20

题目链接:98. 验证二叉搜索树 题目描述 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树…

什么是正向代理?为什么要使用它?

在计算机网络中,代理服务器(Proxy Server)是一种充当客户端和目标服务器之间的中间人的计算机或应用程序。代理服务器可以用于多种目的,其中之一就是正向代理。 正向代理的定义 正向代理是一种代理服务器配置方式,它…

多场景建模:快手参数及Embedding个性化网络PEPNet

Parameter and Embedding Personalized Network (PEPNet) 背景 多场景:双列Tab(Double-Columned Discovery Tab)、精选Tab(the Featured-Video Tab)、沉浸单列Tab(the Single-Columned Slide Tab&#xf…

spring-bus消息总线的使用

文章目录 依赖bus应用接口用到的封装参数类 接收的应用监听器定义的事件类 使用bus定义bus远程调用A应用数据更新后通过bus数据同步给B应用 依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bus-amqp…

使用CUDA过程中出现异常

使用&#xff1a;yolo detect train dataSKU-110K.yaml modelyolov8n.pt epochs100 imgsz640 device0,1 出现错误 UserWarning: CUDA initialization: CUDA unknown error - this may be due to an incorrectly set up e nvironment, e.g. changing env variable CUDA_VISIB…

ATM和AMS启动流程

AMS 即 ActivityManagerService&#xff0c;负责 Activy、Service、Broadcast、ContentProvider 四大组件的生命周期管理。本文主要介绍 AMS 的启动流程和初始化过程。AMS 在初始化的过程中&#xff0c;也伴随着了ATMS&#xff08;ActivityTaskManagerService&#xff09;的初始…

QT使用QFileSystemModel实现的文件资源管理器(开源)

文章目录 效果图现实的功能总体框架功能介绍视图双击进入处理复制与剪切粘贴重命名&#xff0c;新建显示文件详细信息文件路径导航栏 总结 效果图 现实的功能 支持文件/文件夹复制&#xff0c;粘贴&#xff0c;剪切&#xff0c;删除&#xff0c;重命名的基本操作支持打开图片&…

一键部署私有化的思维导图SimpleMindMap

简介 SimpleMindMap 是一个可私有部署的web思维导图工具。它提供了丰富的功能和特性&#xff0c;包含插件化架构、多种结构类型&#xff08;逻辑结构图、思维导图、组织结构图等&#xff09;、节点内容支持文本、图片、图标、超链接等&#xff0c;支持拖拽、导入导出功能、快捷…

windows消息循环之手撸一个Win32窗口程序

Windows消息循环&#xff08;Windows Message Loop&#xff09; 在Windows操作系统中&#xff0c;一个程序通过不断地接收和处理消息来保持活动状态的一种机制。在Windows编程中&#xff0c;消息循环是处理用户输入、操作系统事件和其他消息的关键部分。 在Windows应用程序中…

join | join_any | join_none之间的区别

文章目录 前言一、join/join_any/join_none之间的区别总结 前言 本文主要记录一下&#xff0c;与fork想匹配的三个选项&#xff0c;join/join_any/join_none之间的区别。 一、join/join_any/join_none之间的区别 join&#xff0c;等到所有的子进程全部结束&#xff0c;才能继…

软件测试|Python自动化测试实现的思路

Python自动化测试常用于Web应用、移动应用、桌面应用等的测试 Python自动化实现思路通常分为以下几步&#xff1a; 1. 确定自动化测试的范围和目标&#xff1a; 首先需要明确需要进行自动化测试的范围和目标&#xff0c;包括测试场景、测试用例、测试数据等。 2. 选择自动化…

【代码随想录-链表】移除链表元素

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…