3.21上午

静态路由协议

路由器提供了 异构网互联的机制,实现将一个网络的数据包发送到另一个网络,路由就是指导IP数据包发送的路径信息。路由协议是在路由指导IP数据包发送过程中事先约定好的规定和标准。
 
中文名
路由协议
外文名
Routing protocol
作    用
提供了异构网互联的机制
原    理
路由器之间共享路由信息
分    类
静态路由和动态路由

原理

路由协议通过在 路由器之间共享路由信息来支持 可路由协议。路由信息在相邻 路由器之间传递,确保所有路由器知道到其它路由器的路径。总之,路由协议创建了 路由表,描述了 网络拓扑结构;路由协议与 路由器 协同工作,执行 路由选择和数据包转发功能。

作用

路由协议主要运行于 路由器上,路由协议是用来确定到达路径的,它包括 RIPIGRPCisco私有协议), EIGRP(Cisco私有协议), OSPFIS-ISBGP。起到一个 地图导航,负责找路的作用。它工作在 网络层
路由选择协议主要是运行在 路由器上的协议,主要用来进行路径选择。
路由协议作为 TCP/IP协议族中重要成员之一,其选路过程实现的好坏会影响整个Internet网络的效率。按应用范围的不同,路由协议可分为两类:在一个AS(Autonomous System, 自治系统,指一个 互连网络,就是把整个Internet划分为许多较小的网络单位,这些小的网络有权自主地决定在本系统中应采用何种路由协议)内的路由协议称为 内部网关协议(interior gateway protocol),AS之间的路由协议称为 外部网关协议(exterior gateway protocol)。这里网关是 路由器的旧称。正在使用的 内部网关路由协议有以下几种:RIP-1,RIP-2,IGRP,EIGRP,IS-IS和OSPF。其中前3种路由协议采用的是 距离向量算法,IS-IS和OSPF采用的是链路状态算法,EIGRP是结合了链路状态和 距离矢量路由选择协议的Cisco私有路由协议。对于小型网络,采用基于 距离向量算法的路由协议易于配置和管理,且应用较为广泛,但在面对大型网络时,不但其固有的环路问题变得更难解决,所占用的 带宽也迅速增长,以至于网络无法承受。因此对于大型网络,采用链路状态算法的IS-IS和OSPF较为有效,并且得到了广泛的应用。IS-IS与OSPF在质量和性能上的差别并不大,但OSPF更适用于IP,较IS-IS更具有活力。IETF始终在致力于OSPF的改进工作,其修改节奏要比IS-IS快得多。这使得OSPF正在成为应用广泛的一种路由协议。不论是传统的 路由器设计,还是即将成为标准的 MPLS(多协议标记交换),均将OSPF视为必不可少的路由协议。
外部网关协议最初采用的是EGP。EGP是为一个简单的树形 拓扑结构设计的,随着越来越多的用户和网络加入Internet,给EGP带来了很多的局限性。为了摆脱EGP的局限性,IETF 边界网关协议工作组制定了标准的边界网关协议--BGP。

常用分析

简介

路由分为 静态路由动态路由,其相应的 路由表称为 静态路由表动态路由表静态路由表由网络 管理员在系统安装时根据网络的配置情况预先设定,网络结构 发生变化后由网络管理员手工修改路由表。 动态路由随网络运行情况的变化而变化, 路由器根据路由协议提供的功能自动计算数据传输的最佳路径,由此得到 动态路由表
根据 路由算法动态路由协议可分为 距离向量路由协议(Distance Vector Routing Protocol)和 链路状态路由协议(Link State Routing Protocol)。 距离向量路由协议基于 Bellman-Ford算法,主要有RIP、IGRP(IGRP为 Cisco公司的私有协议); 链路状态路由协议基于图论中非常著名的 Dijkstra算法,即最短优先 路径(Shortest Path First, SPF)算法,如OSPF。在 距离向量路由协议中, 路由器将部分或全部的 路由表传递给与其相邻的 路由器;而在 链路状态路由协议中,路由器将链路状态信息传 递给在同一区域内的所有路由器。 根据路由器在 自治系统(AS)中的位置,可将路由协议分为 内部网关协议 (Interior Gateway Protocol,IGP)和 外部网关协议(External Gateway Protocol,EGP,也叫域 间路由协议)。域间路由协议有两种: 外部网关协议(EGP)和 边界网关协议(BGP)。EGP是为一个简单的树型 拓扑结构而设计的,在处理选路循环和设置 选路策略时,具有明显的缺点,已被BGP代替。
EIGRP是Cisco公司的私有协议,是一种混合协议,它既有 距离向量路由协议的特点,同时又继承了 链路状态路由协议的优点。各种路由协议各有特点,适合不同类型的网络。下面分别加以阐述。

静态路由

静态路由表在开始选择路由之前就被 网络管理员建立,并且只能由网络管理员更改,所以只适于 网络传输状态比较简单的环境。静态路由具有以下特点:
·  静态路由无需进行路由交换,因此节省网络的 带宽、CPU的利用率和 路由器的内存。
·  静态路由具有更高的安全性。在使用 静态路由的网络中,所有要连到网络上的 路由器都需在邻接路由器上设置其相应的路由。因此,在某种程度上提高了网络的安全性。
· 有的情况下必须使用 静态路由,如 DDR、使用 NAT技术的网络环境。
静态路由具有以下缺点:
· 管理者必须真正理解网络的拓扑并正确配置路由。
· 网络的扩展性能差。如果要在网络上增加一个网络,管理者必须在所有 路由器上加一条路由。
· 配置烦琐,特别是当需要跨越几台 路由器通信时,其路由配置更为复杂。

动态路由

动态路由协议 内部网关协议IGP和 外部网关协议EGP。而 内部网关协议IGP可以分为 距离矢量路由协议和 链路状态路由协议,两种协议各有特点,分述如下:
路由协议分类图 路由协议分类图
1.  距离矢量(DV)协议
距离向量指协议使用跳数或向量来确定从一个设备到另一个设备的距离。不考虑每跳链路的 速率
距离向量路由协议不使用正常的邻居关系,用两种方法获知拓扑的改变和路由的超时:
· 当 路由器不能直接从连接的路由器收到路由更新时;
· 当 路由器从邻居收到一个更新,通知它网络的 某个地方拓扑发生了变化。
在小型网络中(少于100个 路由器,或需要更少的路由更新和计算环境), 距离向量路由协议运行得相当好。当小型网络扩展到大型网络时,该算法计算新路 由的收敛速度极慢,而且在它计算的过程中,网络处于一种过渡状态,极可能发生循环并造成暂时的拥塞。再者,当网络底层链路技术多种多样, 带宽各不相同时,  距离向量算法对此视而不见。
距离向量路由协议的这种特性不仅造成了网络收敛的延时,而且消耗了 带宽。随着 路由表的增大,需要消耗更多的CPU资源,并消耗了内存。
2. 链路状态(LS)路由协议
链路状态路由协议没有跳数的限制,使用“图形理论”算法或 最短路径优先算法。
链路状态路由协议有更短的 收敛时间、支持 VLSM(可变长 子网掩码)和 CIDR
链路状态路由协议在直接相连的路由之间维护正常的邻居关系。这允许路由更快收敛。 链路状态路由协议在会话期间通过交换Hello包(也叫链路状态信息)创建对等关系,这种关系加速了路由的收敛。
不像 距离向量路由协议那样,更新时发送整个 路由表链路状态路由协议只广播更新的或改变的 网络拓扑,这使得更新信息更小,节省了 带宽和CPU利用率。另外,如果网络不发生变化,更新包只在特定的时间内发出(通常为30min到2h)。
4 常用动态路由协议的分析
4.1 RIP(国际公有,最古老的路由协议,不过有很多缺陷)
RIP( 路由信息协议)是 路由器生产商之间使用的第一个开放标准,是最广泛的路由协议,在所有IP路由平台上都可以得到。当使用RIP时,一台 Cisco 路由器可以与其他厂商的路由器连接。RIP有两个版本:RIPv1和RIPv2,它们均基于经典的 距离向量路由算法,最大跳数为15跳。
RIPv1是有类路由(Classful Routing)协议,因路由上不包括 掩码信息,所以网络上的所有设备必须使用相同的 子网掩码,不支持VLSM。RIPv2可发送 子网掩码信息,是无类路由(Classless Routing)协议,支持VLSM。
RIP使用UDP 数据包更新路由信息。 路由器每隔30s更新一次路由信息,如果在180s内没有收到相邻路由器的回应,则认为去往该路由器的路由不可用,该路由器不可到达。如果在240s后仍未收到该 路由器的应答,则把有关该路由器的路由信息从 路由表中删除。
RIP具有以下特点:
· 不同厂商的 路由器可以通过RIP互联;
· 配置简单; · 适用于小型网络(小于15跳);
· RIPv1不支持VLSM;
· 需消耗 广域网 带宽
· 需消耗CPU、内存资源。
RIP的算法简单,但在 路径较多时收敛速度慢,广播路由信息时占用的 带宽资源较多,它适用于 网络拓扑结构相对简单且 数据链路故障率极低的小型网络中,在大型网络中,一般不使用RIP。
4.2 IGRP(已经退出历史的舞台)
内部网关路由协议(Interior Gateway Routing Protocol,IGRP)是Cisco公司20世纪80年代开发的,是一 种 动态的、长跨度(最大可支持255跳)的路由协议,使用度量(向量)来确定到达一个网络的最佳路由,由延时、 带宽、可靠性和负载等来计算最优路由,它在 同个 自治系统内具有高跨度,适合复杂的网络。Cisco IOS允许 路由器 管理员对IGRP的 网络带宽、延时、可靠性和负载进行权重设置,以影响度量的计 算。
像RIP一样,IGRP使用UDP发送路由表项。每个 路由器每隔90s更新一次路由信息,如果270s内没有收到某路由器的回应,则认为该路由器不可到达;如果630s内仍未收到应答,则IGRP进程将从 路由表中删除该路由。
与RIP相比,IGRP的 收敛时间更长,但传输路由信息所需的 带宽减少,此外,IGRP的分组格式中无空白字节,从而提高了IGRP的 报文效率。但IGRP为Cisco公司专有,仅限于Cisco产品。
4.3 EIGRP(思科私有)
随着网络规模的扩大和用户需求的增长,原来的IGRP已显得力不从心,于是,Cisco公司又开发了增强的IGRP,即EIGRP。EIGRP使用与IGRP相同的 路由算法,但它集成了 链路状态路由协议距离向量路由协议的长处,同时加入散播更新算法(DUAL)。
EIGRP具有如下特点:
·  快速收敛快速收敛是因为使用了散播更新算法,通过在 路由表中备份路由而实现,也就是到达目的网络的最小开销和次最小开销(也叫适宜后继, feasible successor)路由都被保存在路由表中,当最小开销的路由不可用时,快速切换到次最小开销路由上,从而达到快速收敛的目的。
· 减少了 带宽的消耗。EIGRP不像RIP和IGRP那样,每隔一段时间就交换一次路由信息,它仅当某个目的网络的路由状态改变或路由的度量发生变 化时,才向邻接的EIGRP 路由器发送路由更新,因此,其更新路由所需的 带宽比RIP和EIGRP小得多——这种方式叫触发式(triggered)。
· 增大网络规模。对于RIP,其网络最大只能是15跳(hop),而EIGRP最大可支持255跳(hop)。
· 减少 路由器CPU的利用。路由更新仅被发送到需要知道状态改变的邻接 路由器,由于使用了 增量更新,EIGRP比IGRP使用更少的CPU。
· 支持 可变长子网掩码
· IGRP和EIGRP可自动移植。IGRP路由可自动重新分发到EIGRP中,EIGRP也可将路由自动重新分发到IGRP中。如果愿意,也可以关掉路由的重分发。
· EIGRP为模块化设计,支持三种可路由的协议(IP、IPX、AppleTalk),更新版本支持IPv6。
· 支持非等值路径的 负载均衡
· 因EIGIP是Cisco公司开发的专用协议,因此,当Cisco设备和其他厂商的设备互联时,不能使用EIGRP
4.4 OSPF(国际公有)
开放式最短路径优先(Open Shortest Path First,OSPF)协议是一种为 IP网络开发的内部 网关 路由选择协议,由IETF开 发并推荐使用。 OSPF协议由三个子协议组成:Hello协议、交换协议和扩散协议。其中Hello协议负责检查链路是否可用,并完成 指定路由器及备份指 定路由器;交换协议完成“主”、“从”路由器的指定并交换各自的路由数据库信息;扩散协议完成各路由器中路由数据库的同步维护。
OSPF协议具有以下优点:
· OSPF能够在自己的链路状态数据库内表示整个网络,这极大地减少了 收敛时间,并且支持大型 异构网络的互联,提供了一个异构网络间通过同一种协议交换网络信息的途径,并且不容易出现错误的路由信息。 · OSPF支持通往相同目的的多重路径。
· OSPF使用路由标签区分不同的外部路由。
· OSPF支持路由验证,只有互相通过路由验证的 路由器之间才能交换路由信息;并且可以对不同的区域定义不同的验证方式,从而提高了网络的安全性。
· OSPF支持费用相同的多条链路上的 负载均衡
· OSPF是一个无类路由协议,路由信息不受跳数的限制,减少了因分级路由带来的 子网分离问题。
· OSPF支持VLSM和无类路由查表,有利于 网络地址的有效管理。
· OSPF使用AREA对网络进行分层,减少了协议对CPU处理时间和内存的需求。
4.5 BGP
BGP用于连接Internet。BGPv4是一种外部的路由协议。可认为是一种高级的 距离向量路由协议
在BGP网络中,可以将一个网络分成多个 自治系统自治系统间使用eBGP广播路由,自治系统内使用iBGP在自己的网络内广播路由。
Internet由多个互相连接的商业网络组成。每个企业网络或ISP必须定义一个 自治系统号(ASN)。这些 自治系统号由IANA (Internet Assigned Numbers Authority)分配。共有65535个可用的 自治系统号,其中65512~65535为私 用保留。当共享路由信息时,这个号码也允许以层的方式进行维护。
BGP使用可靠的 会话管理,TCP中的179端口用于触发Update和Keepalive信息到它的邻居,以传播和更新BGP 路由表
在BGP网络中, 自治系统有: 1. Stub AS
只有一个入口和一个出口的网络。
2. 转接AS(Transit AS)
当数据从一个AS到另一个AS时,必须经过Transit AS。
如果企业网络有多个AS,则在企业网络中可设置Transit AS。
IGP和BGP最大的不同之处在于运行协议的设备之间通过的附加信息的总数不同。IGP使用的 路由更新包比BGP使用的路由更新包更小(因此BGP承载更多的路由属性)。BGP可在给定的路由上附上很多属性。
当运行BGP的两个 路由器开始通信以交换 动态路由信息时,使用TCP端口179,他们依赖于面向连接的通信(会话)。
BGP必须依靠面向连接的TCP会话以提供连接状态。因为BGP不能使用Keepalive信息(但在普通头上存放有Keepalive信息,以允许  路由器校验会话是否Active)。标准的Keepalive是在电路上从一个 路由器送往另一个路由器的信息,而不使用TCP会话。 路由器使用电路上的这 些信号来校验电路没有错误或没有发现电路。 某些情况下,需要使用BGP:
· 当你需要从一个AS发送 流量到另一个AS时;
· 当流出网络的数据流必须手工维护时;
· 当你连接两个或多个ISP、NAP( 网络访问点)和交换点时。
以下三种情况不能使用BGP:
· 如果你的 路由器不支持BGP所需的大型 路由表时;
· 当Internet只有一个连接时,使用 默认路由
· 当你的网络没有足够的 带宽来传送所需的数据时(包括BGP 路由表)。

转载于:https://www.cnblogs.com/bgd140206302/p/6593889.html

C:\Users\12524\.jdks\openjdk-24.0.1\bin\java.exe "-javaagent:C:\app\IDEA\IntelliJ IDEA 2025.1.3\lib\idea_rt.jar=52421" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath C:\Users\12524\IdeaProjects\HibernateDemo\target\classes;C:\Users\12524\.m2\repository\org\hibernate\hibernate-core\5.6.10.Final\hibernate-core-5.6.10.Final.jar;C:\Users\12524\.m2\repository\org\jboss\logging\jboss-logging\3.4.3.Final\jboss-logging-3.4.3.Final.jar;C:\Users\12524\.m2\repository\javax\persistence\javax.persistence-api\2.2\javax.persistence-api-2.2.jar;C:\Users\12524\.m2\repository\net\bytebuddy\byte-buddy\1.12.9\byte-buddy-1.12.9.jar;C:\Users\12524\.m2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar;C:\Users\12524\.m2\repository\org\jboss\spec\javax\transaction\jboss-transaction-api_1.2_spec\1.1.1.Final\jboss-transaction-api_1.2_spec-1.1.1.Final.jar;C:\Users\12524\.m2\repository\org\jboss\jandex\2.4.2.Final\jandex-2.4.2.Final.jar;C:\Users\12524\.m2\repository\com\fasterxml\classmate\1.5.1\classmate-1.5.1.jar;C:\Users\12524\.m2\repository\javax\activation\javax.activation-api\1.2.0\javax.activation-api-1.2.0.jar;C:\Users\12524\.m2\repository\org\hibernate\common\hibernate-commons-annotations\5.1.2.Final\hibernate-commons-annotations-5.1.2.Final.jar;C:\Users\12524\.m2\repository\javax\xml\bind\jaxb-api\2.3.1\jaxb-api-2.3.1.jar;C:\Users\12524\.m2\repository\org\glassfish\jaxb\jaxb-runtime\2.3.1\jaxb-runtime-2.3.1.jar;C:\Users\12524\.m2\repository\org\glassfish\jaxb\txw2\2.3.1\txw2-2.3.1.jar;C:\Users\12524\.m2\repository\com\sun\istack\istack-commons-runtime\3.0.7\istack-commons-runtime-3.0.7.jar;C:\Users\12524\.m2\repository\org\jvnet\staxex\stax-ex\1.8\stax-ex-1.8.jar;C:\Users\12524\.m2\repository\com\sun\xml\fastinfoset\FastInfoset\1.2.15\FastInfoset-1.2.15.jar;C:\Users\12524\.m2\repository\com\mysql\mysql-connector-j\8.0.32\mysql-connector-j-8.0.32.jar;C:\Users\12524\.m2\repository\com\google\protobuf\protobuf-java\3.21.9\protobuf-java-3.21.9.jar com.example.Main 7月 09, 2025 9:46:43 上午 org.hibernate.Version logVersion INFO: HHH000412: Hibernate ORM core version 5.6.10.Final 7月 09, 2025 9:46:43 上午 org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit> INFO: HCANN000001: Hibernate Commons Annotations {5.1.2.Final} 7月 09, 2025 9:46:43 上午 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!) 7月 09, 2025 9:46:43 上午 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001005: using driver [com.mysql.cj.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/test] 7月 09, 2025 9:46:43 上午 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001001: Connection properties: {user=root, password=****} 7月 09, 2025 9:46:43 上午 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001003: Autocommit mode: false 7月 09, 2025 9:46:43 上午 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections <init> INFO: HHH000115: Hibernate connection pool size: 20 (min=1) 7月 09, 2025 9:46:44 上午 org.hibernate.dialect.Dialect <init> INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect 7月 09, 2025 9:46:44 上午 org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@5f254608] for (non-JTA) DDL execution was not in auto-commit mode; the Connection &#39;local transaction&#39; will be committed and the Connection will be set into auto-commit mode. 7月 09, 2025 9:46:44 上午 org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator initiateService INFO: HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] Hibernate: insert into user (age, name) values (?, ?) User inserted successfully! 进程已结束,退出代码为 0
07-10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值