计算机网络 —— 网络层 (路由协议)

news2024/12/24 9:01:18

计算机网络 —— 网络层 (路由协议)

  • 什么是路由协议
  • 内部网关协议
    • RIP
      • 关键特性
    • OSPF
      • 主要特点
  • 外部网关协议
    • BGP
      • 关键特性

我们今天来看路由协议:

什么是路由协议

路由协议是网络设备(主要是路由器)用来决定数据包在网络中传输路径的规则集。它们通过共享路由信息来构建并维护路由表,确保数据能够从源设备有效地传输到目标设备。路由协议按照不同标准可以分为以下几类:

  1. 按工作原理分类
  • 距离矢量路由协议(Distance Vector Routing Protocols):如RIP(Routing Information Protocol)和IGRP(Interior Gateway Routing Protocol),这类协议基于跳数(hop count)作为度量标准来选择路径,并且定期向邻居广播整个路由表。它们简单但容易产生路由环路和慢收敛的问题。
  • 链路状态路由协议(Link State Routing Protocols):如OSPF(Open Shortest Path First)和IS-IS(Intermediate System to Intermediate System),这些协议通过泛洪网络拓扑信息来构建一个完整的网络图,每个路由器基于这个图计算最佳路径。它们提供了更快的收敛速度和避免路由环路的能力。
  1. 按用途分类
  • 内部网关协议(IGPs,Interior Gateway Protocols):在单个自治系统(AS)内部使用的路由协议,如RIP、OSPF和IS-IS。
  • 外部网关协议(EGPs,External Gateway Protocols):用于不同自治系统之间的路由传递,最著名的是BGP(Border Gateway Protocol)。
  1. 按路由表的更新方式分类
  • 静态路由:由网络管理员手动配置,不会随网络变化自动更新。
  • 动态路由:路由信息会根据网络的变化自动更新,包括上述的距离矢量和链路状态协议。
  1. 按支持的协议类型分类
  • 单播路由协议:处理单个发送者到单个接收者的通信。
  • 多播路由协议:设计用于支持一对多的通信,如PIM(Protocol Independent Multicast)。
  • 组播路由协议:实质上与多播路由协议相同,术语上有时互换使用,关注于高效地向多个目的地发送数据。

在这里插入图片描述在这里插入图片描述

路由协议的选择取决于网络的规模、复杂性、性能要求以及管理的便捷性。动态路由协议特别适用于大型网络,因为它能自动适应网络拓扑变化,减少管理负担,而静态路由则更适合小型网络或者对安全性、简单性有特殊需求的场景。

我们这里以内部和外部进行区分:

在这里插入图片描述

内部网关协议

内部网关协议(IGP,Interior Gateway Protocol)是在一个自治系统(Autonomous System, AS)内部运行的路由协议,负责在AS内部的路由器之间传播路由信息,以确定数据包在该自治系统内部的最佳传输路径。IGP的主要目标是高效、准确地更新路由表,确保数据能够在复杂的网络环境中快速、可靠地传输。几种常见的IGP包括:

  1. RIP(Routing Information Protocol):一种较为古老的IGP,基于距离矢量算法。RIP使用跳数(hop count)作为度量标准来确定到达目的地的最佳路径,最大跳数限制通常是15跳,超过这个值即认为网络不可达。RIP有版本1和版本2,后者支持VLSM(Variable Length Subnet Mask)和认证功能。
  1. OSPF(Open Shortest Path First):基于链路状态的IGP,能够提供更为快速的收敛速度和避免路由环路的能力。OSPF路由器收集整个网络的链路状态信息,并使用Dijkstra最短路径优先算法计算出到达每个网络的最短路径树。OSPF支持复杂的网络划分,包括区域划分(Area)来优化路由更新和减少带宽消耗。
  1. IS-IS(Intermediate System to Intermediate System):最初设计用于ISO的CLNP(ConnectionLess Network Protocol),后来扩展支持IPv4和IPv6。IS-IS也是链路状态协议,其工作原理与OSPF类似,但在某些方面更为简洁高效,特别是在大规模网络中。IS-IS支持分层的网络设计,通过Level-1(区域内)和Level-2(区域间)路由器来分割路由计算的复杂度。
  1. EIGRP(Enhanced Interior Gateway Routing Protocol):Cisco开发的高级距离矢量协议,结合了距离矢量和链路状态特性,支持快速收敛、负载均衡、VLSM和毒性逆转等功能。EIGRP使用度量值(Metric)来评估路径,该度量值综合考虑了带宽、延迟、可靠性、负载和最大传输单元(MTU)等因素。

我们这里介绍RIP和OSPF

RIP

RIP(Routing Information Protocol,路由信息协议)是一种经典的内部网关协议(IGP),用于在小型到中型的同构网络中实现动态路由选择。以下是RIP协议的关键特征和工作原理:

关键特性

  1. 距离矢量协议:RIP基于距离矢量算法工作,使用跳数(hop count)作为路由度量。一个跳数代表数据必须通过的一个网络设备(通常是路由器),RIP认为最佳路径是跳数最少的路径。RIP最多支持15跳,超过这个限制的网络被视为不可达,这限制了RIP在较大网络中的应用。
  1. 周期性更新:RIP路由器周期性地(默认每30秒)广播或组播其完整的路由表给直连的邻居,即使路由信息未发生变化。这种方式有助于保持网络中所有路由器的路由信息同步,但同时也增加了网络的广播流量。
  1. 收敛慢与路由环路:由于其基于距离矢量的特性,RIP容易产生路由环路。为了解决这个问题,RIP采用了水平分割(Split Horizon)、毒性反转(Poison Reverse)、保持计时器(Hold-Down Timer)和触发更新(Triggered Update)等机制。
  1. 版本:RIP有两个主要版本,RIPv1和RIPv2。RIPv1是无类别路由选择协议,不支持VLSM和CIDR,且路由更新时不携带子网掩码信息。RIPv2是其增强版,支持VLSM、CIDR和认证,且路由更新通过组播地址发送而非广播,提高了效率。
  1. UDP传输:RIP使用用户数据报协议(UDP)作为传输层协议,端口号为520。RIP的消息封装在UDP数据包中,然后通过IP协议传输。

在这里插入图片描述
在这里插入图片描述

OSPF

开放最短路径优先(OSPF,Open Shortest Path First)是由互联网工程任务组(IETF)开发的一种基于链路状态的内部网关协议(IGP),主要用于在一个自治系统(AS)内部高效地分配路由信息。OSPF协议的设计初衷是为了替代早期的IGP,如RIP,以提供更强大的功能和更好的网络性能。以下是OSPF协议的一些核心特点和机制:

主要特点

  1. 链路状态路由协议:OSPF基于链路状态算法,每个路由器维护一个链路状态数据库(LSDB),包含整个网络的拓扑结构信息。通过这个数据库,每个路由器独立计算到达各个网络的最短路径树(SPT)。
  1. 快速收敛:OSPF使用Dijkstra算法计算最短路径,并通过多种机制(如SPF算法、部分路由计算、增量更新)来加速网络变更时的收敛速度,减少网络中断时间。
  1. 分层设计:OSPF支持区域(Area)的概念,允许将大型网络划分为多个区域来管理和优化路由传播。这样可以减少路由更新的流量,提升网络效率,并增强网络的可管理性。
  1. 支持VLSM和CIDR:OSPF能够处理变长子网掩码(VLSM)和无类别域间路由(CIDR),这对于高效利用IP地址空间和简化网络设计至关重要。
  1. 认证机制:提供认证功能,可以配置接口级别的认证来保护路由信息的交换,增加网络安全性。
  1. 多种类型的OSPF报文:包括Hello报文(用于发现和维护邻居关系)、数据库描述报文(DD)、链路状态请求报文(LSR)、链路状态更新报文(LSU)和链路状态确认报文(LSAck),这些报文共同协作以实现状态同步和更新。
  1. 版本兼容性:OSPF有两个主要版本,OSPFv2用于IPv4网络,定义在RFC 2328中;OSPFv3用于IPv6网络,定义在RFC 2740中,它们在基本机制上相似,但在地址处理和一些扩展特性上有所不同。

在这里插入图片描述在这里插入图片描述

外部网关协议

BGP

边界网关协议(BGP,Border Gateway Protocol)是一种外部网关协议(EGP),用于在不同的自治系统(AS)之间交换路由信息和实现互联网的互联互通。它是构成互联网架构的核心协议之一,负责在广泛的网络中传播可达性信息,确保数据包可以从一个AS传输到另一个AS,最终达到目的地。以下是BGP的一些关键特性和工作原理:

关键特性

  1. 自治系统间的路由:BGP的主要作用是在不同的AS之间传播路由信息。每个AS都被分配一个唯一的AS号,BGP路由器通过建立邻居关系交换路由信息,以确定如何将数据包从一个AS转发到另一个AS。
  1. 路径属性:BGP路由不仅包含目的网络前缀和下一跳信息,还携带一系列路径属性,这些属性影响路由的选择和传播。常见的属性包括Origin、AS_PATH、Next_Hop、MED(Multi-Exit Discriminator)、Local_Pref等,其中AS_PATH记录了一条路由经过的所有AS,对于防止路由环路和选择最佳路径至关重要。
  1. 路由选择算法:BGP路由器基于策略和路径属性选择最优路由。策略可以基于属性设定,如优选本地AS内路由、选择AS_PATH较短的路由等。BGP并不直接使用像OSPF那样的最短路径优先算法。
  1. 邻居关系和会话:BGP通过TCP(端口179)建立邻居关系,保证了数据传输的可靠性。邻居之间交换Update、Notification、Keepalive和Open等消息来维持连接和更新路由信息。
  1. 路由反射器和联盟:为了简化大规模网络中的BGP部署,引入了路由反射器(RR)和联盟(Confederation)机制。路由反射器允许非直连的BGP对等体之间传播路由,减少了全连接的需求;联盟则是将大的AS逻辑上划分为多个小AS,便于管理且不影响外部路由选择。
  1. 版本:目前广泛使用的是BGPv4,支持CIDR和路由聚合,是IPv4和IPv6互联网的骨干路由协议。早期的BGPv1、v2版本已不再使用。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们来看两道题:
在这里插入图片描述在这里插入图片描述
这里只是对协议进行了大致的梳理,并没有进行深度的阐释,这里建议大家配合视频进行食用。

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

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

相关文章

Channels无法使用ASGI问题

Django Channels是一个基于Django的扩展, 用于处理WebSockets, 长轮询和触发器事件等实时应用程序. 它允许Django处理异步请求, 并提供了与其他WebSockets库集成的功能.当我们在Django Channels中使用ASGI_APPLICATION设置时, 我们可以指定一个新的ASGI应用程序来处理ASGI请求.…

按键精灵安装有乱码并且不能启动的解决办法

在国外购了电脑,系统是英文版 Windows 11,按键精灵死活都装不上去,打开exe的安装文件后出现乱码,安装完了后还是乱码,并且启动不了,以下是解决办法: 进入控制面板,并且点 Region&am…

redis windos修复版本

遇到的问题: Django的channel插件连接安装在windows上的redis报错: unknown command BZPOPMIN, channels-redis版本和redis不兼容导致.解决方案: 更新Redis版本. 微软官方维护的 Redishttps://github.com/microsoftarchive/redis/releases 2016年后就不更新了, 版本停留在了3.x…

HikariCP连接池初识

HikariCP的简单介绍 hikari-光,hikariCP取义:像光一样轻和快的Connetion Pool。这个几乎只用java写的中间件连接池,极其轻量并注重性能,HikariCP目前已是SpringBoot默认的连接池,伴随着SpringBoot和微服务的普及&…

数据结构之线性表(1)

数据结构之线性表 1.线性表的定义 线性表是一种线性结构。在一个线性表中数据元素的类型是相同的,或者说线性表是由同一类型的数据元素构成的线性结构。 线性表是具有相同数据类型的n(n>0)个数据元素的有限序列。 n表示表长,…

java版多语言抢单系统 多语言海外AEON抢单可连单加额外单源码 抢单平台搭建开发 抢单开挂的软件

此套是全新开发的java版多语言抢单系统。 后端java,用的若依框架,这套代码前后端是编译后的,测试可以正常使用,语言繁体,英文,日语 源码大小:155M 源码下载:https://download.csd…

QT系列教程(10) QTextEdit学习

简介 QTextEdit是文本编辑器,支持富文本功能。接下来我们创建一个Qt Application 应用,然后在ui中添加一个QTextEdit插件。 运行程序后,可以在QTextEdit中输入任何文字也包括富文本。 文本块 我们在MainWindow的ui文件中添加了textedit插件…

iOS--block再学习

block再学习 什么是blockblock是带有自动变量的匿名函数block语法 block的实现block的实质截获自动变量__blcok说明符Block存储域__block变量存储域使用__block变量用结构体成员变量__forwarding的原因 截获对象 什么是block Block时c语言的扩充功能,它允许开发者定…

图像处理方向信息

前言 Exif 规范 定义了方向标签,用于指示相机相对于所捕获场景的方向。相机可以使用该标签通过方向传感器自动指示方向,也可以让用户通过菜单开关手动指示方向,而无需实际转换图像数据本身。 在图像处理过程中,若是原图文件包含…

中间件学习-RocketMQ-从零到一学习-2RocketMQ 的工作原理

中间件学习-RocketMQ-从零到一学习-2RocketMQ 的工作原理 RocketMQ 工作原理 1. 启动 NameServer 启动 NameServer。NameServer 启动后监听端口,等待 Broker、Producer、Consumer 连接,相当于一个路由控制中心。 2. 启动 Broker 启动 Broker。与所有…

ansible.cfg forks参数

在Ansible的配置文件ansible.cfg中,forks参数是一个非常关键的设置,它控制了Ansible执行任务时的并发连接数,直接影响到Ansible执行 playbook 或 ad-hoc 命令时的速度和效率。 意义与作用 并发控制:当你使用Ansible来管理多台主…

VRRP基础配置(华为)

#交换设备 VRRP基础配置 VRRP (Virtual Router Redundancy Protocol) 全称是虚拟路由规元余协议,它是一种容错协议。该协议通过把几台路由设备联合组成一台虚拟的路由设备,该虚拟路由器在本地局域网拥有唯一的一个虚拟 ID 和虚拟 IP 地址。实际上&…

计算机毕业设计python+spark知识图谱音乐推荐系统 音乐数据分析可视化大屏 音乐爬虫 LSTM情感分析 大数据毕设 深度学习 机器学习

流程: 1.Python采集网易云音乐歌手、歌词、音乐、评论等约10-20万海量数据,存入mysql数据库; 2.使用pandasnumpy/MapReduce对mysql中四类数据进行数据清洗,写入.csv文件并上传至hdfs(含评论NLP文本分类/lsm情感分析); 3.使用hive建…

LVGL移植和图片显示

最近闲来无事,偶尔刷到了移植LVGL的教程,今天肝完了机械原理又移植完LVGL库,真是收获满满的一天,先接一杯水去。 回来了,发个朋友圈高级一下,好困。 lvgl v8.3移植及组件使用_lvgl界面编辑器-CSDN博客htt…

nlp学习笔记

目录 很多入门例子 bert chinese 很多入门例子 https://github.com/lansinuote/Huggingface_Toturials bert chinese import torch import torch.nn as nn from transformers import AutoTokenizer, AutoModel, BertModel, TFBertModel, BertTokenizer# youpath = D:/bert-…

任务调度选择之PowerJob 和 Snail Job

背景 最近在选择一款任务调度产品,找了几款产品进行调研,我对产品的要求是可以进行可视化、有角色权限、任务编排、支持http、接入成本低等,发现有有两款挺符合的PowerJob和Snail Job。 同类产品对比 Elastic-Jobxxl-jobPowerJobSnail Job…

c#自定义ORM框架-实体类扩展属性

步骤一、建立扩展属性类 实体类扩展属性要继承Attribute基类完成 步骤二、创建实体类并引用扩展实体类属性 Attributes属性定义&#xff0c;主要标明表名和主键名字 /// <summary> /// 表名 /// </summary> [AttributeUsage(AttributeTargets.Class)] [System.S…

C语言之存储类、作用域、生命周期、链接属性

一 &#xff1a;概念解析 1&#xff1a; 存储类 &#xff08;1&#xff09;存储类就是存储类型&#xff0c;就是描述C语言变量存储在什么地方 &#xff08;2&#xff09;内存有多种管理方法&#xff1a;栈、堆数据段、bss段、.text段......一个变量的存储类属性就是描述…

Objective-C之通过协议提供匿名对象

概述 通过协议提供匿名对象的设计模式&#xff0c;遵循了面向对象设计的多项重要原则&#xff1a; 接口隔离原则&#xff1a;通过定义细粒度的协议来避免实现庞大的接口。依赖倒置原则&#xff1a;高层模块依赖于抽象协议&#xff0c;而不是具体实现。里氏替换原则&#xff1…

计算机毕业设计 | SpringBoot+vue的教务管理系统

1&#xff0c;绪论 1.1 项目背景 在这个资讯高度发展的时代&#xff0c;资讯管理变革已经是一个更为宽泛、更为全面的潮流。为了保证中国的可持续发展&#xff0c;随着信息化技术的不断进步&#xff0c;教务管理体系也在不断完善。与此同时&#xff0c;伴随着信息化的飞速发展…