第六章 网络互连与互联网(七):网关协议

2024-08-23 14:20

本文主要是介绍第六章 网络互连与互联网(七):网关协议,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

七、网关协议

Intenet 中的路由器叫 IP网关。网关执行复杂的路由算法,需要大量且及时的路由信息。网关协议就是用于网关之间交换路由信息的协议。

1. 自治系统

(1)自治系统是由同构型的网关连接的因特网,这样的系统往往是由一个网络管理中心控制的。

(2)自治系统内部的网关之间执行内部网关协议 (IGP ),互相交换路由信息。

​(3)一般来说,IGP是自治系统内部专用的,为特定的应用服务,在自治系统之外是无效的。

(4)在不同自治系统之间用外部网关协议(EGP),交换路由信息。

(5)​EGP 比 IGP 传送的信息要少一些,因为 EGP 只涉及自治系统之间的路由信息,而与系统内部路由无关。换而言之,EGP 以自治系统为节点,通告各个网关可到达哪些系统。

(6)内部网关协议和外部网关协议如下图所示:

在这里插入图片描述

2.外部网关协议

(1)早期有一个外部网关协议叫EGP,最新的外部网关协议叫作 BGP。

(2)BGP 4 已经广泛地应用于不同ISP的网络之间,成为事实上的Internet 外部路由协议标准。

(3)BGP 4 是一种动态路由发现协议,支持无类别域问路由 CIDR。

(4)BGP 的主要功能是控制路由策略,例如是否愿意转发过路的分组等。BGP的 4 种报文如下表所示,这些报文通过TCP(179端口)连接传送。

报 文 类 型 功 能 描 述
打开(Open) 建立邻居关系
更新(Update) 发送新的路由信息
保持活动状态(Keepalive) 对 Open 的应答/周期性地确认邻居关系
通告(Notification) 报告检测到的错误

(5)在 BGP 中用上述 4 种报文可实现以3个功能过程:

  • 建立邻居关系
  • 邻居可到达性。
  • 网络可到达性。

3.内部网关协议

(1)网关协议也叫作路由协议,是路由器之间实现路由信息共享的一种机制,它允许路由器之间通过交换路由信息维护各自的路由表。IP协议是根据路由表进行分组转发的协议,按照业内的说法,应该叫作被路由的协议

(2)常用内部路由协议包括路由信息协议(RIP)、开放最短路径优先协议(OSPF)、中间系统到中间系统的协议(IS-IS)、内部网关路由协议(IGRP)和增强的IGRP协议(EIGRP)等,最后两种是思科公司的专利协议。

路由信息协议

①RIP 作为内部网关协议运行在基于 TCP/IP 的网络中。RIP 适用于小型网络,因为它允许的跳步数不超过 15 步。

②RIP 分为两个版本:RIPv1、RIPv2。

③路由收敛和水平分割

  • 距离矢量法要求相邻的路由器之间周期性地交换路由表,并通过逐步交换把路由信息扩散到网络中所有的路由器。这种逐步交换过程如果不加以限制,将会形成路由环路,使得各个路由器无法就网络的可到达性取得一致。
  • 解决路由环路问题可以采用水平分割法。这种方法规定,路由器必须有选择地将路由表中的信息发送给邻居,而不是发送整个路由表。

④RIP 报文格式

RIPv2 报文封装在 UDP 数据报中发送,占用端口号 520,报文格式如下图所示。

在这里插入图片描述
报文包含 4 个字节的报头,然后是若干个路由记录。RIP 报文最多可携带 25 个路由记录,每个路由记录20个字节,其中各个字段的解释如下。

  • 命令:用于区分请求和响应报文 。
  • 版本:可以是 RIP 第一版或第二版,两种版本报文格式相同。
  • 地址族标识符:对于 IP 协议,该字段为 2 。
  • 路由标记:用于区别内部或外部路由,用16位的 AS 编号来区分从其他自治系统学习到的路由。
  • 网络地址:表示目标 IP 地址。
  • 子网掩码:对于 RIPv2,该字段是对应网络地址的子网掩码;对于RIPv1,该字段是0,因为 RIPv1 默认使用 A、B、C 类地址掩码。
  • 下一跳路由器地址:表示下一跳的地址。
  • 距离:表示到达目标的跳步数。
OSPF 协议

OSPF 是一种链路状态协议,用于在自治内部的路由器之间交换路由信息。OSPF 具有支持大型网络、占用网络资源少、路由收敛快等优点,在目前的网络配置中占有很重要的地位。

距离矢量协议发布自己的路由表,交换的路由信息量很大。链路状态协议与之不同,它是从各个路由器收集链路状态信息,构造网络拓扑结构图,使用 Dijkstra 的最短通路优先算决(SPF)计算到达各个目标的最佳路由。

距离矢量协议是周期性地发布路由信息,面链路状态协议是在网络拓扑发生变化时才发布路由信息,而且 OSPF 采用 TCP 连接发送报文,每个报文都要求应答,因而通信更加可靠。

OSPF 协议引入了“分层路由”的概念。如果网络规模很大,则路由器要学习的路由信息很多,对网络资源的消耗很大,所以典型的链路状态协议都把网络划分成较小的区域,从而限制了路由信息传播的范围。每个区域就如同一个独立的网络,区域内的路由器只保存该区域的链路状态信息,使得路由器的链路状态数据库可以保持合理的大小,路由计算的时间和报文数量都不会太大。OSPF 主干网负责在各个区域之间传播路由信息。

①OSPF区域

每个 OSPF 区域被指定了一个 32 位的区域标识符,可以用点分十进制表示,OSPF 的区域分为以下 5 种,不同类型的区域对由自治系统外部传入的路由信息的处理方式不同。

  • 标准区域:标准区域可以接收任何链路更新信息和路由汇总信息。
  • 主干区域:主干区域是连接各个区域的传输网络,其他区域都通过主干区域交换路由信息。主干区域拥有标准区域的所有性质。
  • 存根区域:不接收本地自治系统以外的路由信息,对自治系统以外的目标采用默认路由 0.0.0.0。
  • 完全存根区域:不接收自治系统以外的路由信息,也不接收自治系统内其他区域的路由汇总信息,发送到本地区域外的报文使用默认路由0.0.0.0。完全存根区域是Cisco 定义的,是非标准的。
  • 不完全存根区域(NSAA):类似于存根区域,但是允许接收以类型7的链路状态公告发送的外部路由信息。

②OSPF网络类型

网络的物理连接和拓扑结构不同,交换路由信息的方式就不同。OSPF 将路由器连接的物理网络划分为 4 种类型。

  • 点对点网络:在这种网络中,两个路由器可以直接交换路由信息。
  • 广播多址网络:以太网或者其他具有共享介质的局域网都属于这种网络。在这种网络中,一条路由信息可以广播给所有的路由器。
  • 非广播多址网络(NBMA):例如 X.25 分组交换网就属于这种网络,在这种网络中可以通过组播方式发布路由信息。
  • 点到多点网络:可以把非广播网络当作多条点对点网络来使用,从而把一条路由信息发送到不同的目标。

如果两个路由器都通过各自的接口连接到一个共同的网络上,则它们是邻居关系。路由器通过 OSPF 的 Hello 协议来发现邻居。

③OSPF 路由器

在多区域网络中,OSPF路由器可以按不同的功能划分为以下4种。

  • 内部路由器:所有接口在同一区域内的路由器,只维护一个链路状态数据库
  • 主干路由器:具有连接主干区域接口的路由器。
  • 区域边界路由器ABR:连接多个区域的路由器,一般作为一个区域的出口。ABR 为每一个连接的区域建立一个链路状态数据库,负责将所连接区域的路由摘要信息发到主干区域,而主干区域上的 ABR 则负责将这些信息发送给各个区域。
  • 自治系统边界路由器(ASBR):至少拥有一个连接外部自治系统接口的路由器,负责将外部非 OSPF 网络的路由信息传入 OSPF 网络。

④链路状态公告

OSPF 路由器之间通过链路状态公告(LSA)交换网络拓扑信息。LSA 中包含连接的接口、链路的度量值等信息。LSA 有几种不同类型的报文,具体如下图:

类型名称发送者传播范围描述
1路由器 LSA任意 OSPF 路由器区域内路由器在区域内连接的链路状态
2网络 LSADR区域内指定路由器 DR 在区域内连接的各个路由器
3网络汇总 LSAABR主干区域ABR 连接的本地区域中的链路状态
4ASBR 汇总 LSAABR主干区域自治系统边界路由器 ASBR 的可到达性
5外部 LSAASBR除存根区之外的其他区自治系统之外的的路由信息
6组播 LSA用于建立组播分发树
7NSSA LSA连接到 NSSA 的 ASBR不完全存根区 Not-So-Stub-Area到达自治系统之外的目标的路由可以由 ABR 转换为类型 5 的LSA

⑤OSPF 报文

下表为 OSPF 的5种报文,这些报文通过 TCP 连接传送。OSPF 路由器启动后以固定的时间间隔泛洪传播 Hello 报文,采用目标地址 224.0.0.5 代表所有的 OSPF 路由器。在点对点网络上每 10 秒发送一次,在 NBMA 网络中每 30 秒发送一次。管理 Hello 报文交换的规则称为 Hello 协议。Hello 协议用于发现邻居,建立毗邻关系,还用于选出区域内的指定路由器 DR 和备份指定路由器 BDR。

类型报文类型功能描述
1Hello用于发现相邻的路由器
2数据库描述 DBD表示发送者的链路状态数据库内容
3链路状态请求 LSR向对方请求链路状态信息
4链路状态更新 LSU向邻居路由器发送链路状态通告
5链路状态应答 LSAck对链路状态更新报文的应答

OSPF 报文格式如下图所示,对报文头的各个字段解释如下。

在这里插入图片描述

  • 版本:OSPF 版本1已废弃,现在使用的是版本2。
  • 类型:如④当中表中所示。
  • 分组长度:整个 OSPF 报文的长度。
  • 路由器ID:利用路由器环路接口的 IP 地址作为路由器的标识,如果没有环路接口 IP 地址,则选择最大的接口 IP 地址作为路由器标识。
  • 区域ID:在多区域网络中,每一个区域指定一个区域 ID。
  • 认证类型:OSPF 支持不同的认证方法,对组播地址 224.0.0.5 发送的 Hello 分组要经过认证才能被接收。

⑥OSPF 的优缺点

  • 链路状态协议使用了分层的网络结构,减小了 LSA 的传播范围,同时也减小了网络拓扑变化时影响所有路由器的可能性。
  • 链路状态协议使用组播来共享路由信息,并且发布的是增量式的更新消息。
  • 链路状态协议支持无类别的路由和路由汇总功能,可以使用 VLSM 和CIDR技术。
  • 使用 SPF 算法不会在路由表中出现环路,而这是距离矢量路由协议难以处理的问题。

4.核心网关协议

主干网中的网关叫核心网关。核心网关之间交换路由信息时使用核心网关协议(GGP)。

GGP协议的报文格式与EGP类似。报文分为以下4类。

  • 路由更新报文:发送路由信息。
  • 应答报文:对路由更新报文的应答,分肯定、否定两种。
  • 测试报文:测试相邻网关是否存在。
  • 网络接口状态报文:测试本地网络连接的状态。

这篇关于第六章 网络互连与互联网(七):网关协议的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1099627

相关文章

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

Java如何接收并解析HL7协议数据

《Java如何接收并解析HL7协议数据》文章主要介绍了HL7协议及其在医疗行业中的应用,详细描述了如何配置环境、接收和解析数据,以及与前端进行交互的实现方法,文章还分享了使用7Edit工具进行调试的经... 目录一、前言二、正文1、环境配置2、数据接收:HL7Monitor3、数据解析:HL7Busines

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

poj 3181 网络流,建图。

题意: 农夫约翰为他的牛准备了F种食物和D种饮料。 每头牛都有各自喜欢的食物和饮料,而每种食物和饮料都只能分配给一头牛。 问最多能有多少头牛可以同时得到喜欢的食物和饮料。 解析: 由于要同时得到喜欢的食物和饮料,所以网络流建图的时候要把牛拆点了。 如下建图: s -> 食物 -> 牛1 -> 牛2 -> 饮料 -> t 所以分配一下点: s  =  0, 牛1= 1~

poj 3068 有流量限制的最小费用网络流

题意: m条有向边连接了n个仓库,每条边都有一定费用。 将两种危险品从0运到n-1,除了起点和终点外,危险品不能放在一起,也不能走相同的路径。 求最小的费用是多少。 解析: 抽象出一个源点s一个汇点t,源点与0相连,费用为0,容量为2。 汇点与n - 1相连,费用为0,容量为2。 每条边之间也相连,费用为每条边的费用,容量为1。 建图完毕之后,求一条流量为2的最小费用流就行了

poj 2112 网络流+二分

题意: k台挤奶机,c头牛,每台挤奶机可以挤m头牛。 现在给出每只牛到挤奶机的距离矩阵,求最小化牛的最大路程。 解析: 最大值最小化,最小值最大化,用二分来做。 先求出两点之间的最短距离。 然后二分匹配牛到挤奶机的最大路程,匹配中的判断是在这个最大路程下,是否牛的数量达到c只。 如何求牛的数量呢,用网络流来做。 从源点到牛引一条容量为1的边,然后挤奶机到汇点引一条容量为m的边

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。

配置InfiniBand (IB) 和 RDMA over Converged Ethernet (RoCE) 网络

配置InfiniBand (IB) 和 RDMA over Converged Ethernet (RoCE) 网络 服务器端配置 在服务器端,你需要确保安装了必要的驱动程序和软件包,并且正确配置了网络接口。 安装 OFED 首先,安装 Open Fabrics Enterprise Distribution (OFED),它包含了 InfiniBand 所需的驱动程序和库。 sudo