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

news2024/11/15 10:58:51

计算机网络——网络层(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为边数。
最短路径小结

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

小结

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

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

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

相关文章

【计网·湖科大·思科】实验五 IPV4地址-分类地址和构建超网

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要&…

ZYNQ:CAN外设应用存在的问题

流程 为了用ZYNQ实现CAN总线功能,分为多个阶段: 1学习小梅哥视频,了解zynq简单工作搭建的流程,比如点亮LED。 GPIO 功能 按照小梅哥的视频搭建ZYNQ-PS应用系统时,vitis没有出现ps7_gpio_0这个硬件。这导致vitis软件…

深入了解DRAM和SDRAM:内存带宽的计算与封装形式的奥秘

SSD SDRAM DDR SDRAM简介 动态随机存取存储器DRAM(Dynamic Random Access Memory,DRAM)是一种半导体存储器。 其主要的作用原理是利用电荷内存储电荷的数量来代表一个二进制比特(bit)是1还是0。 由于在现实中品体管…

联想懂的通信×实在智能:共同探索智连融合AI创新发展路径

近日,联想集团副总裁/联想懂的通信CEO王帅、CFO周利军、COO&CPO邢海洋、CGO赵晨、CTO边毅等领导一行莅临杭州实在智能科技有限公司开展研讨座谈。 实在智能创始人&CEO孙林君、联合创始人&COO高扬、联合创始人&CMO张俊九、销售VP&运营商事业线负…

响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 例5-4 Document

代码 <!doctype html> <html> <head> <meta charset"utf-8"> <title>Document</title> </head><body> <canvas id"cavsElem" width"400" height"600">您的浏览器不支持Canvas…

备战蓝桥杯---二分(基础)

何为二分&#xff1f;形象的说&#xff0c;就是单调函数求零点。 我们先对二分查找简单的分析一下&#xff08;主要是模板及易错点&#xff09; 1.找>x的第一个位置&#xff1a; 2.找<x的第一个位置&#xff1a; …

广联达-EmailAccountOrgUserService-sql注入漏洞复现

产品简介 广联达OA是一款为企业提供综合办公解决方案的软件。它集成了多种功能&#xff0c;包括文档管理、流程审批、任务分配等&#xff0c;旨在提高企业内部的工作效率和协作能力。同时&#xff0c;广联达OA还注重安全性&#xff0c;通过多种措施保护企业数据和信息的安全。…

Markdown(2篇文章学会Markdown

目录 1.文章链接&#xff1a;2.markdown可以用来解决什么问题&#xff1a;小结&#xff1a; 1.文章链接&#xff1a; Markdown&#xff08;2篇文章学会Markdown第一篇 Markdown&#xff08;2篇文章学会Markdown第二篇 2.markdown可以用来解决什么问题&#xff1a; 格式化文…

C++ 类与对象(上)

目录 本节目标 1.面向过程和面向对象初步认识 2.类的引入 3.类的定义 4.类的访问限定符及封装 4.1 访问限定符 4.2 封装 5. 类的作用域 6. 类的实例化 7.类对象模型 7.1 如何计算类对象的大小 7.2 类对象的存储方式猜测 7.3 结构体内存对齐规则 8.this指针 8.1 thi…

开源之力与GPT的碰撞:探索未来技术的无限可能

摘要&#xff1a; 在本文中&#xff0c;我们将探讨开源软件与GPT&#xff08;大型预训练语言模型&#xff09;的完美结合如何推动技术的飞速发展。我们将简要介绍开源文化的价值观及其对技术创新的影响&#xff0c;分析GPT系列模型在开源社区中的发展与应用&#xff0c;并通过代…

Springboot响应数据详解

功能接口 Controller下每一个暴露在外的方法都是一个功能接口 功能接口的请求路径是RequestMapping定义的路径&#xff0c;浏览器需要请求该功能则需要发出该路径下的请求。 RestController RestControllerControllerResponseBody(响应数据的注解) ResponseBody 类型&#…

使用KMP迁移Android app到IOS平台

使用KMP迁移Android app到IOS平台 如果你有一款Android app&#xff0c;你想将其迁移到IOS平台&#xff0c;但是你不熟悉Swift语言&#xff0c;那么你该如何做呢&#xff1f;辛亏JetBrains 推出 Kotlin Multiplatform 和 Compose Multiplatform &#xff0c;突然间&#xff0c…

FastBee2.0开源版正式启动

一、项目介绍 物美智能(wumei-smart)更名为蜂信物联(FastBee)。 FastBee开源物联网平台&#xff0c;简单易用&#xff0c;更适合中小企业和个人学习使用。适用于智能家居、智慧办公、智慧社区、农业监测、水利监测、工业控制等。 系统后端采用Spring boot&#xff1b;前端采用…

【java】9:多重循环控制(难重点)

介绍&#xff1a; 1)将一个循环放在另一个循环体内&#xff0c;就形成了嵌套循环。其中&#xff0c;for ,while ,do... while均可以作为外层循环和内层循环。 【建议一般使用两层&#xff0c;最多不要超过3层&#xff0c;否则&#xff0c;代码的可读性很差】 2&#xff09;实…

C语言KR圣经笔记 5.12 复杂声明

5.12 复杂声明 C 语言有时会因为声明的语法而受到谴责&#xff0c;特别是涉及函数指针的声明语法。语法试图使声明和使用一致&#xff1b;在简单的情况下它的效果不错&#xff0c;但在更复杂的情况下会让人困惑&#xff0c;因为声明不能从左往右读&#xff0c;而且括号被过度使…

C/C++编码问题研究

文章目录 一、Unicode字符集与U8/U16/U32编码二、编码1. 占字节数2. ASCII、GB2312、GBK、GB18030 以及 UTF8 的关系3. BOM4. UTF-8的存储实现 三、编译器字符集设置1. GCC语法Example 2. MSVC语法Example 三、wchar_t五、编码转换函数六、代码 & 实践1. UTF8与UTF16、UTF3…

深度学习使用python建立最简单的神经元neuron

目录 介绍 数据&#xff1a; 建模&#xff1a; 模型&#xff1a; 介绍 在深度学习中&#xff0c;神经元通常指的是人工神经元&#xff08;或感知器&#xff09;&#xff0c;它是深度神经网络中的基本单元。深度学习的神经元模拟了生物神经元的工作原理&#xff0c;但在…

单链表实现通讯录(增删查改)

前言 之前写了很多次通讯录&#xff0c;一次比一次复杂&#xff0c;从静态到动态&#xff0c;再到文件操作&#xff0c;再到顺序表&#xff0c;今天要好好复习一下单链表&#xff0c;于是乎干脆用单链表再写一遍。 首先我们之前已经用单链表写过他的增删查改了&#xff0c;于…

IS-IS:04 DIS

IS-IS 协议只支持两种网络类型&#xff0c;即广播网络和点到点网络。与 OSPF 协议相同&#xff0c; IS-IS 协议在广播网络中会将网络视为一个伪节点 &#xff08; Pesudonde&#xff0c;简称 PSN&#xff09;&#xff0c;并选举出一台DIS &#xff08;Designated IS&#xff09…

【学习】傅里叶变换分析与理解

傅里叶级数的本质是将一个周期的信号分解成无限多分开的&#xff08;离散的&#xff09;正弦波&#xff0c;但是宇宙似乎并不是周期的。 理解频域、空域&#xff08;时域&#xff09; 时域&#xff08;空域&#xff09;是从时间方向看过去的得到的图像&#xff0c;而频域是从频…