思维导图:
4.5 互联网的路由选择协议
本节的核心内容是讨论如何确定路由表中的路由,具体通过何种路由选择协议实现。
---
4.5.1 有关路由选择协议的几个基本概念
- 理想的路由算法:
路由选择协议的关键是路由算法。一个理想的路由算法应具备以下特点:
1. 正确性和完整性: 根据路由表导向的路由,分组能够最终到达目的地。
2. 计算简单: 路由选择计算不应产生太多额外开销。
3. 自适应性: 能够适应通信量和网络拓扑的变化。这也称为“稳健性”或“鲁棒性”。
4. **稳定性**: 在稳定的网络环境中,算法应收敛到一个可接受的解。
5. **公平性**: 对所有用户平等,不偏向某些用户。
6. **最佳性**: 能够找出最优路由,确保最小的平均时延和最大的网络吞吐量。
**注**: “最佳”是相对于特定要求的合理选择。
- **实际的路由选择算法:**
应尽量接近理想算法,但在不同应用条件下,上述六个方面可以有不同的侧重点。
- **路由选择的复杂性:**
由于路由选择涉及所有网络节点,并且环境经常变化,因此路由选择是个复杂的问题。尤其是当网络发生拥塞时,需要有能缓解这种拥塞的策略。
- **路由选择策略的分类:**
1. **静态路由选择(非自适应路由选择)**: 简单、开销小,但不能及时适应网络状态的变化。适用于小网络。
2. **动态路由选择(自适应路由选择)**: 能够适应网络状态的变化,但实现复杂、开销大。适用于大型复杂网络。
---
2.分层次的路由选择协议
---
**互联网的路由选择特点**:
- 主要采用动态、分布式路由选择协议。
**为什么采用分层次的路由选择协议**:
1. **规模原因**:
- 互联网规模巨大。如果每个路由器都知道整个互联网的路由,则处理和更新信息将十分耗时。
- 交换路由信息所需带宽会饱和通信链路。
2. **隐私原因**:
- 许多单位不希望外界知道其网络布局和使用的路由选择协议。
**自治系统 (AS)**:
- 互联网可以被划分为多个较小的自治系统(AS)。
- AS是由一组路由器组成的,这些路由器在技术管理下使用相同的路由选择协议。
- 在互联网中,大的ISP可以被视为一个AS。
**两大类路由选择协议**:
1. **内部网关协议 (IGP)**:
- 在一个AS内部使用的路由选择协议。
- 与在互联网中的其他AS选用的路由选择协议无关。
- 常见IGP: RIP和OSPF。
2. **外部网关协议 (EGP)**:
- 当数据从一个AS传递到另一个AS时使用。
- 常见的EGP: BGP-4。
**其他点**:
- **术语混淆**: 初始时“路由器”被称为“网关”,但后来的RFC文档改用了“路由器”这一名词。
- **关于EGP**: 原始的EGP协议是RFC 827,但由于其不足,后来被BGP (边界网关协议)替代。因此,当提到EGP时,应当区分是指原始的EGP协议还是指EGP这一类别。
---
笔记:路由选择方法与内部网关协议
---
**1. 路由选择方法**:
- 使用分层次的路由选择,互联网的路由选择协议被划分为两大类:
- **内部网关协议 (IGP)**:
- 具体的协议有: RIP, OSPF等。
- **外部网关协议 (EGP)**:
- 主要使用的是BGP。
- 对于大的自治系统:
- 可进行再次划分,如建设速率高的主干网与速率低的区域网。
- 区域网通过路由器连接到主干网。
- 若区域内找不到目的站,通过主干网或外部路由器找到另一自治系统。
2. 内部网关协议RIP:
- **工作原理**:
- RIP (Routing Information Protocol) 是IGP中最先广泛使用的协议。
- 是一种基于距离向量的分布式路由选择协议。
- 最大优点: 简单。
- **距离定义**:
- 每个路由器维护到其他目的网络的距离记录,形成“距离向量”。
- 距离定义:
- 直接连接的网络: 距离为1。
- 非直接连接的网络: 距离为经过的路由器数加1。
- “加1”是因为到达目的网络后进行直接交付,而直接连接的网络的距离已定义为1。
总结:
---
笔记:RIP协议与距离向量算法
---
1. 距离向量定义:
- 离都是1 (直接连接), 如到网3是2, 到网4是3。
- RIP协议的“距离”称为“跳数” (hop count)。
- 路由选择基于跳数:少的跳数即为“距离短”。
- 最大距离:15,距离16即为不可达,限制RIP适用性。
**2. RIP协议特点**:
- 比较路由基于路由器数目,而非速率。
- 选择最短路由,忽略其他可能更高速的路由。
**3. 分布式路由选择协议**:
- RIP和OSPF都是分布式路由选择协议。
- 路由器需不断与其他路由器交换信息。
- **和哪些路由器交换信息**? 只与相邻的路由器。
- **交换什么信息**? 整个路由表——所有网络的最短距离及下一跳路由器。
- **在什么时候交换信息**? 固定时间间隔,如每30秒,并在网络拓扑变化时更新。
4. RIP工作方式:
- 路由器开始时路由表为空。
- 初始步骤:定义与直接相连网络的距离为1。
- 只与有限的相邻路由器交换信息。
- 经过多次更新后,所有路由器最终知晓所有网络的最短距离及下一跳路由器。
5. 路由表:
- 主要信息: 每个网络的最短距离和下一跳地址。
- 更新原则: 找到每个目标网络的最短距离。
- 更新使用的算法称为距离向量算法,即RIP协议所使用。
练习:
---
2.距离向量算法笔记
**定义:**
- 距离向量算法基于Bellman-Ford算法或Ford-Fulkerson算法。
- 该算法的核心理念是:假设X是结点A到B的最短路径上的一个结点,那么从A到X和从X到B的路径也是各自的最短路径。
**工作流程:**
1. 当接收到来自地址为X的相邻路由器的RIP报文时:
- 所有“下一跳”字段的地址都被修改为X。
- 所有的“距离”字段值都增加1。
> **解释1**: 通过这种方式,我们可以更容易地更新当前的路由表。例如,如果从地址为X的路由器接收到一个项目“Net2,3,Y”,这表示“通过路由器Y到网络Net2的距离是3”。那么,当前路由器就会推断“通过X到网络Net2的距离是4”。这是为了下一步与原路由表中的项目进行比较。
2. 对修改后的RIP报文中的每个项目:
- 如果原路由表中没有目的网络N,则添加该项目。
> **解释2**: 这表示是新的目的网络,应该添加到路由表中。
- 如果下一跳是X,则用收到的项目替换原表中的项目。
> **解释3**: 使用最新信息来更新路由表。
- 否则,如果收到的距离d小于路由表中的距离,则进行更新。
> **解释4**: 如果新的路由距离更短,那么路由表应当更新。
- 如果距离增加或保持不变,则不进行更新。
> **解释5**: 如果新的路由距离更长或相同,那么不更新路由表。
3. 如果3分钟没有收到相邻路由器的路由更新,则认为该路由器不可达,并将距离设置为16。
4. 返回。
**例子**:
- 根据上述规则,当路由器R₆从路由器R₄接收路由更新时,它首先会对收到的距离进行+1操作,并更新下一跳为R₄。
- 然后,它会将更新后的信息与其当前的路由表进行比较,并据此进行相应的更新。
**结论**:
- RIP协议允许路由器在自治系统内与其邻近路由器定期交换路由信息,从而持续更新它们的路由表。这确保了从每个路由器到每个目的网络的路由都是最短的。
- 虽然所有路由器都有全局路由信息,但由于每个路由器的位置不同,因此它们的路由表是不同的。
3. RIP协议的报文格式
- RIP的较新版本为1998年11月公布的RIP2,已成为互联网标准。
- 新版本协议主要改进:
1. 支持变长子网掩码
2. 支持CIDR
3. 提供简单的鉴别过程
4. 支持多播
- 报文格式特点:
1. RIP2报文由首部和路由部分组成。
2. 使用UDP进行传送,端口520。
3. 首部4字节,含命令字段,指明报文的意义(如1表示请求路由信息,2表示响应或路由更新)。
4. “必为0”字段是为了4字节的对齐。
5. 路由部分:若干个路由信息,每个路由信息20字节。
- 地址族标识符(地址类别)标志使用的地址协议,如IP地址为2。
- 路由标记填入自治系统号ASN。
- 提供网络地址、子网掩码、下一跳路由器地址及网络距离。
- RIP报文最多包含25个路由,最大长度504字节。
- RIP2的鉴别功能:
- 若使用,第一个路由信息位置用于鉴别。
- 地址族标识符置为OxFFFF,路由标记为鉴别类型,16字节为鉴别数据。
- 之后写入路由信息,最多24个路由信息。
注:自治系统号ASN原规定为16位号码,现扩展至32位。
--- 图4-32 RIP2的报文格式描述略 ---
4.5.3 RIP协议的特点与问题
1. 问题描述:
- 当网络出现故障,RIP要经过较长时间才能将此信息传送到所有的路由器。
2. **例子说明**:
- 路由器R₁到网1的链路出现故障,即使R₁更新其到网1的距离为不可达(16),可能要等待30秒后才能传送此更新信息给R₂。期间,R₂可能已向R₁发送其认为的路由表,误导R₁认为网1仍然可达。
3. 坏消息传播得慢:
- 如上例,R₁和R₂在多次的更新中互相误导,使得错误信息在两者之间不断扩散,直到R₁和R₂都认为网1是不可达。
- 坏消息(如网络故障)传播得慢,可能需要数分钟。
- 但好消息(如更短的路由)传播得快。
4. 措施加速坏消息传播:
- 让路由器记录接收某路由信息的接口,并阻止此路由信息通过此接口反方向传送。
5. **RIP的优缺点**:
- **优点**:
1. 实现简单
2. 开销小
- **缺点**:
1. 限制了网络规模,最大距离为15(16表示不可达)。
2. 路由器之间交换的信息是完整路由表,网络规模增大时,开销也增加。
3. 坏消息传播得慢,更新过程收敛时间长。
6. **结论**:
- 对于大规模网络,推荐使用OSPF协议。
- 小规模网络中,RIP协议仍然占主导。
练习:
总结:
4.5.3 内部网关协议OSPF
1. OSPF协议的基本特点
- 名称与起源:
- 名称:开放最短路径优先 (Open Shortest Path First, OSPF)
- 目的:克服RIP的缺点而在1989年开发。
- 特点:开放性,不受某厂商控制,并且公开发表。
- 基于:Dijkstra的最短路径算法 (SPF)。
- 互联网标准:OSPF2 ([RFC2328])。
- 路由选择:
- OSPF名称虽为"最短路径优先",但实际上大部分路由选择协议都旨在寻找最短路径,例如RIP。
- 核心特性:
- 使用的是分布式的链路状态协议,而非RIP的距离向量协议。
-OSPF基本工作原理:
OSPF协议的主要工作原理:
-
链路状态广播(LSA):OSPF协议通过链路状态广播来交换路由信息。每个OSPF路由器会发现它的邻居,并在其所在网络上了解链路状态,然后将这些信息封装在LSA中。
-
构建链路状态数据库(LSDB):每个OSPF路由器将接收到的LSA信息用于构建一个本地的链路状态数据库。这个数据库是OSPF网络的一个完整拓扑图,展示了所有路由器及其相互连接的方式。
-
运行最短路径优先(SPF)算法:利用链路状态数据库,每个路由器会使用Dijkstra算法来计算到达网络中每个目的地的最短路径。这个计算结果会被用于构建路由表。
-
维护邻居和拓扑变化:OSPF路由器会定期发送Hello包来维持与邻居路由器的连接,并监听网络中的拓扑变化。如果检测到链路状态的变化,它会更新其LSDB,并重新运行SPF算法来调整其路由表。
-
区域和层次结构:OSPF允许将大型网络划分为多个较小的区域(Areas),以减少路由信息的广播范围。每个区域都会独立运行OSPF,减少了整个网络的路由计算负担。在不同区域之间,需要有所谓的Area Border Routers (ABR)来连接和传递路由信息。
-
类型和成本:OSPF为不同类型的链路分配了成本(Cost)值,成本通常基于链路的带宽。路由器在计算最短路径时会考虑这些成本。
-
路由协议的认证和安全性:OSPF支持对路由信息的认证,确保路由信息的完整性和来源的验证。
OSPF协议的这些特性使其适合于大型和复杂的网络环境,提供了快速和准确的路由选择功能。
- 与RIP的三大区别:
1. OSPF向整个自治系统内所有路由器发送信息,使用的是洪泛法 (flooding)。
2. 发送的信息为链路状态,即路由器与哪些路由器相邻以及该链路的“度量”。
3. 只在链路状态变化时发送信息,而RIP则定期交换路由信息,无论网络状态如何。
总的来说:OSPF(开放最短路径优先)协议是一种在计算机网络中广泛使用的内部网关协议(IGP),主要用于IP网络。它是一个链路状态协议,与距离向量路由协议如RIP相比,它可以提供更有效、更快速的路由选择。
- 链路状态数据库:
- 由于路由器间频繁交换链路状态信息,最终每个路由器都能构建一个链路状态数据库,该数据库反映了整个网络的拓扑。
- 数据库在全网范围内是一致的。
- 每个路由器可以利用该数据库构建自己的路由表。
- **更新速度与优点**:
- OSPF能迅速更新其链路状态数据库,从而让路由器快速更新其路由表,这是其重要优点之一。
- **区域的划分**:
- 为了适应大型网络,OSPF将一个自治系统进一步划分为区域。
- 每个区域都有一个32位的区域标识符。
- 一个区域内的路由器数量最好不超过200个。
OSPF 区域划分及其特点
**图 4-34 OSPF 区域概述**
1. **OSPF 区域**:
- 划分为两种:主干区域(backbone area)和常规区域。
- 主干区域ID:0.0.0.0
- 边界路由器:区域边界路由器 (area border router, ABR) 如 R₃, R₄, R₇。
- 主干路由器:如 R3, R4, Rs, R6, R₇。
- 自治系统边界路由器:如 R6。
2. **优点**:
- 限制洪泛交换至各自区域,减少网络通信量。
- 路由器仅知道所在区域的拓扑,简化信息。
- 适用于大型自治系统。
3. **通信方式**:
- 直接使用IP数据报 (协议字段值为89),不使用UDP。
- OSPF数据报短,减少通信量。
- 避免数据报分片传输的问题。
**图 4-35 OSPF 分组首部**
1. 固定长度:24字节。
2. 字段:版本、类型、分组长度、路由器标识符、区域标识符、检验和、鉴别类型、鉴别。
**OSPF 其他特点**:
1. **路径代价**:
- 允许不同代价设置,1至65535。
- 灵活性优于RIP。
2. **负载平衡**:
- 多路径间通信量分配。
- RIP仅提供单条路径。
3. **鉴别功能**:
- OSPF 分组具备,确保信赖路由器间信息交换。
4. **编址支持**:
- 可变长度子网、CIDR编址。
5. **链路状态序号**:
- 32位序号标识,新的状态有更大的序号。
- 序号增长速率限制为每5秒1次。
---
OSPF的五种分组类型笔记
1. **问候(Hello)分组**
- **目的**:发现和维持邻站的可达性。
- **特点**:
- 每隔10秒,相邻路由器交换一次问候分组。
- 确保邻站可达性。可达性是基本要求,因为只有当邻站可达时,它的链路状态信息才会存入链路状态数据库。
- 若40秒内没有收到某邻站的问候分组,那么该站被视为不可达,需修改链路状态数据库并重新计算路由表。
2. **数据库描述(Database Description)分组**
- **目的**:提供链路状态数据库的摘要信息给邻站。
- 通过此分组,路由器知道哪些路由器的链路状态信息已在数据库中,并与相邻路由器进行对比。
3. **链路状态请求(Link State Request)分组**
- **目的**:向邻站请求某些缺失的链路状态项目的详细信息。
- 当两路由器的链路状态数据库不同步时使用。
4. **链路状态更新(Link State Update)分组**
- **目的**:使用洪泛法更新整个网络的链路状态。
- 是OSPF协议中最复杂的部分。
- 通过洪泛法将其链路状态告知邻站。
- 当路由器的链路状态变化时,该路由器会用此分组和洪泛法更新整个网络。
5. **链路状态确认(Link State Acknowledgment)分组**
- **目的**:确认接收到链路状态更新分组。
- 在使用可靠的洪泛法发送更新分组时,收到更新分组的路由器会发送确认。这确保了链路状态更新的可靠性。
**总结**:
- 问候分组主要用于确保邻站的可达性。
- 数据库描述分组与链路状态请求分组主要用于同步不同路由器间的链路状态数据库。
- 链路状态更新与链路状态确认分组确保链路状态的可靠性和更新。
- OSPF使用的是可靠的洪泛法来进行链路状态的更新。
**OSPF链路状态数据库的维护与优势**
**数据库刷新**:为了确保链路状态数据库与整个网络状态保持一致,OSPF规定在固定的时间间隔内,例如每30分钟,要刷新一次数据库中的链路状态。这确保了信息的及时更新和网络状态的实时反映。
**路由器的链路状态**:一个路由器的链路状态只关注与其相邻路由器的连通状态,而与整个互联网的总体规模没有直接关系。这使得OSPF在大型网络中表现出色,因为它不需要考虑整个网络的复杂性。
**OSPF与RIP的对比**:当互联网规模很大时,由于OSPF只关注相邻路由器状态而不是整个网络,它相较于距离向量协议RIP具有显著优势。不同于RIP中“坏消息传播得慢”的问题,OSPF能够在小于100ms的时间内响应网络变化,从而迅速地适应和更新路由信息。
**在多点接入的局域网中的优化**:若有N个路由器连接在同一个以太网上,理论上每个路由器需要向其他(N-1)个路由器发送链路状态信息,这导致在该以太网上共有N(N-1)个链路状态需要传送。为了减少这种广播的信息量,OSPF引入了指定路由器(designated router)的概念。这个指定的路由器负责代表该局域网内所有的路由器,向连接到该网络的所有路由器发送状态信息,从而大大减少了广播的数据量和提高了网络效率。
**结论**:OSPF通过其独特的设计和策略,确保了在大规模网络环境下的高效和稳定的性能。
4.5.4 外部网关协议BGP笔记
1. **背景**:
- BGP (边界网关协议) 于1989年公布,现在主要使用的版本为BGP-4。尽管有更新,但BGP-4仍然是草案标准[RFC4271]。
2. **为什么需要BGP**:
- 在不同的自治系统(AS)之间,不能使用仅在AS内部有效的路由协议,如RIP或OSPF。
3. **BGP与内部网关协议的区别**:
- 内部网关协议关注的是如何在AS内有效地传送数据,而不涉及外部策略。
- BGP的使用场景与内部协议不同,主要因为两个原因:
a. **互联网规模**:由于互联网规模庞大,AS间的路由选择复杂。互联网主干网络上的路由器必须能为每个有效IP地址找到匹配的目的网络。例如,现在主干网上的路由表项目数已超5万个网络前缀。使用链路状态协议意味着每个路由器需要维持大型数据库,使用Diikstra算法计算最短路径所需时间过长。
b. **策略因素**:AS间的路由选择涉及多种策略,例如网络性能、成本、安全性、政治和经济考量等。因此,找出的路由可能不是最佳,而是更合适的。
4. **BGP的基本工作原理**:
- BGP寻求找到一条能够到达目的网络且相对好的路由,而不是最佳路由。
- BGP采用路径向量(path vector)路由选择协议,与距离向量协议和链路状态协议都有很大区别。
- 每个AS的管理员选择至少一个路由器作为该AS的“BGP发言人”。通常,BGP发言人是BGP边界路由器,但也可以不是。
- BGP发言人通过TCP连接(端口号为179)与其他AS的BGP发言人交换路由信息,建立BGP会话,交换如新路由或撤销的路由等信息。使用TCP提供可靠的服务并简化了路由选择协议。
- 两个使用TCP交换路由信息的BGP发言人被视为彼此的邻站或对等站。
5. BGP发言人与自治系统的关系:
- 示意图展示了三个自治系统中的5个BGP发言人。每个BGP发言人不仅要运行BGP协议,还要运行该AS使用的内部网关协议,如OSPF或RIP。
总结:BGP是为了在不同的自治系统之间进行路由选择而设计的协议,它考虑了互联网的规模和多种策略因素,与内部路由协议有显著的不同。
BGP-4(Border Gateway Protocol version 4)是当前互联网上最常用的外部网关协议(EGP)。它主要用于在不同自治系统(AS)之间传播网络路由信息。BGP-4 定义了四种类型的报文,它们分别是:
-
开放报文(Open Message):
- 用于在两个BGP邻居之间建立连接。
- 包含了协议版本号、自治系统号、BGP路由器的ID、保持时间等参数。
- 这些参数用于协商会话参数,并验证对等体的合法性。
-
更新报文(Update Message):
- 用于传播路由信息,也用于撤销先前传播的路由。
- 包含了网络层可达信息(NLRI),用于描述要添加到BGP路由表中的新路由。
- 还包含了撤销信息,用于删除不再有效的路由。
- 这些报文还携带路径属性,用于描述路由的各种特征,如AS-PATH、NEXT-HOP等。
-
通知报文(Notification Message):
- 在发生错误时发送,用于关闭BGP会话。
- 包括错误代码和错误子代码,提供关于发生何种错误的信息。
- 发送通知报文后,BGP连接将被立即关闭。
-
保持活动报文(Keepalive Message):
- 用于维持已经建立的BGP连接。
- 定期发送,以确保两个BGP邻居之间的连接是活动的。
- 如果在配置的保持时间内没有收到任何BGP报文(包括保持活动报文),那么BGP会话将被认为已经断开。
这些报文共同协作,使得BGP-4能够有效地在互联网的不同自治系统之间交换路由信息,确保网络的稳定性和可达性。
例题:
总结:
笔记:
**BGP发言人与自治系统的关系**
1. BGP文档中引入了名词“BGP speaker”,译为“BGP发言人”。此名词指的是可以代表一个自治系统AS与其他AS交换路由信息的路由器。
2. 虽然BGP协议理论上允许任何计算机作为BGP发言人,大部分AS都是在路由器上运行BGP协议。
3. 注意:“发言人”在此上下文中指的是路由器,不是实际的人。
**BGP协议基础**
1. BGP交换的信息是关于如何通过一系列的AS到达某个网络(用网络前缀表示)。
2. BGP发言人交换信息后,会根据策略从收到的路由信息中选出最佳路由。
**BGP路径向量交换示例**
1. 图4-40描述了一个BGP发言人如何交换路径向量的例子。
2. 主干网的BGP发言人可以收到并转发到达特定网络的路径信息。
**BGP协议特点**
1. BGP交换路由信息的结点数量与AS个数相当,这要小于这些AS中的网络数量。
2. 路由选择在AS间不会过于复杂,因为每个AS中的BGP发言人数量较少。
**BGP支持与路由表**
1. BGP支持无分类域间路由选择CIDR。
2. BGP路由表包括目的网络前缀、下一跳路由器及要经过的AS序列。
3. 使用路径向量信息可以避免回环路由。如果BGP发言人在路径中看到自己的AS,不会选择那条路径。
**BGP初次运行和更新**
1. 当BGP首次运行时,它的邻站交换整个BGP路由表。
2. 之后,仅当发生变化时更新变化的部分,有助于节省带宽和减少路由器开销。
**BGP-4报文**
1. RFC4271中规定了BGP-4的四种报文:
- OPEN:初始化与另一BGP发言人的通信。
- UPDATE:通告路由信息,撤销多条路由。
- KEEPALIVE:周期性地确认邻站连通性。
- NOTIFICATION:发送检测到的错误。
**BGP发言人的邻站关系与报文交换**
1. **邻站关系建立**:
- 若两个邻站属于不同AS, 需商谈过程。
- 商谈开始时,发送OPEN报文。
- 如接受邻站关系,则响应KEEPALIVE报文。
- 一旦建立,需周期性交换KEEPALIVE报文(每隔30秒)。
2. **BGP报文种类**:
- **OPEN报文**: 建立BGP发言人之间的通信。
- **UPDATE报文**: 核心内容,撤销或增加路由。
- **KEEPALIVE报文**: 保持邻站关系, 仅有19字节的通用首部。
- **NOTIFICATION报文**: 发送差错信息。
3. **BGP报文格式** (图4-41):
- 通用首部:标记、长度、类型。
- OPEN包含6个字段。
- UPDATE包含5个字段。
- KEEPALIVE仅有通用首部。
- NOTIFICATION包含3个字段。
4. **路由器结构** (4.5.5 路由器的构成):
- 任务:转发分组。
- 工作流程:从输入端口接收 -> 根据目的地转发 -> 下一跳路由器 -> 直至分组到达终点。
- 主要组成:输入/输出端口, 路由选择处理机, 路由表, 转发表, 交换结构等。
- 结构示意图参考图4-42。
这是对您提供的文本内容的简化和概括。您可以根据自己的需要进一步精炼或扩展。
笔记内容:
**路由器结构分析**
1. **路由器结构**
- **路由选择部分 (控制部分)**
- 核心: 路由选择处理机
- 功能: 根据路由选择协议创建路由表,定期与邻近路由器交换信息以更新路由表。
- 关于路由选择协议的构建和更新已在4.5.2至4.5.4节讨论。
- **分组转发部分**
- 组成:
- 交换结构
- 输入端口
- 输出端口 (硬件接口)
2. **交换结构 (Switching Fabric)**
- 作用: 根据转发表处理分组,从输入端口到适当的输出端口转发分组。
- 特点: 是内部的网络,完全包含在路由器中,称为"路由器内部的网络"。
3. **转发 vs. 路由选择**
- **转发**: 仅涉及单个路由器,根据转发表将IP数据报从适当的端口转发。
- **路由选择**: 涉及多个路由器,多个路由器合作确定网络拓扑变化,动态改变选择的路由并创建路由表。
4. **转发表和路由表**
- 转发表: 从路由表得到,包含完整的转发功能所需信息。
- 路由表: 通常由软件实现,转发表可用特殊硬件实现。
5. **端口层次处理**
- 物理层: 接收比特。
- 数据链路层: 根据链路层协议接收传送的帧,去除帧头和帧尾后送到网络层处理模块。
- 网络层: 根据目的地址查找转发表,并经交换结构到达适当的输出端口。
6. **输入端口的查找和转发功能**
- 复制的转发表通常放在每个输入端口中。
- 路由选择处理机负责更新各转发表的副本,称为“影子副本”。
7. **转发速率**
- 路由器应能以高速转发分组。
- 理想情况: 输入端口处理速率与线路传送分组到路由器的速率相匹配。
- OC-48链路: 若分组长度为256字节,线速应能处理每秒100万以上的分组。
- 速率单位: Mpps (百万分组每秒)。
8. **设计挑战**
- 提高查找转发表的速率是关键研究课题。
**笔记**:
---
**路由器处理分组**
1. **输入端口处理**
- 当一个分组正在查找转发表时,如果另一个分组从同一输入端口收到,该分组必须在队列中等待,导致时延。
- 图4-43展示了在输入端口队列中的分组。
- 过程:物理层处理 → 数据链路层 → 网络层处理 → 查表和转发。
2. **输出端口处理**
- 输出端口从交换结构接收分组,随后发送至路由器外部的线路。
- 当分组的传入速度超过输出链路的发送速度,分组会被临时存放在网络层的队列中。
- 数据链路层处理模块会添加链路层的首部和尾部,并通过物理层发送至外部线路。
- 图4-44展示了输出端口的处理流程。
- 过程:物理层处理 → 数据链路层 → 网络层处理及缓存管理。
3. **分组排队与丢失**
- 在路由器的输入和输出端口,分组可能会在队列中等待处理。
- 如果处理速率跟不上分组进入队列的速率,存储空间可能会减少到零,导致新的分组被丢弃。
- 分组丢失原因:路由器中的队列溢出或设备/线路故障。
4. **交换结构**
- 是路由器的核心部分,负责将分组从一个输入端口转移到合适的输出端口。
- 存在多种实现交换的方法。
- 图4-45展示了三种常用交换方法,其中每种方法都是将输入端口I₁的分组转发到输出端口O₂。
---
互联网的路由选择协议总结:
---
**重点:
1. **路由选择协议的定义**:这些协议的主要目的是动态地确定数据从源到目标的最佳路径。
2. **静态 vs 动态路由**:
- **静态路由**:手工配置的路由条目,固定不变。
- **动态路由**:使用路由选择协议自动学习和设置路由。
3. **距离矢量 (Distance Vector) 协议**:例如 RIP (Routing Information Protocol)。
- 路由器周期性地交换路由信息。
- 依赖于 "距离"(如跳数)来确定最佳路径。
4. **链路状态 (Link-State) 协议**:例如 OSPF (Open Shortest Path First)。
- 路由器交换与邻居关于整个网络的知识。
- 使用 Dijkstra 算法确定最佳路径。
5. **路径矢量 (Path Vector) 协议**:例如 BGP (Border Gateway Protocol)。
- 主要用于不同的自治系统间。
- 传播路径信息,防止循环。
---
**难点:**
1. **收敛时间**:在网络变动后,协议需要一定的时间来“稳定”并确定新的最佳路径。快速收敛是大多数协议的目标。
2. **路由环路问题**:特别是在距离矢量协议中,环路可能导致无效路由。
3. **规模和复杂性**:在大型网络中,维护和理解路由状态和选择的复杂性增加。
4. **路由器资源**:计算最佳路径和维护路由信息可能会消耗大量的 CPU 和内存资源。
---
**易错点:**
1. **计数到无穷问题**:在距离矢量协议中,路由器可能会因为环路而持续增加距离计数。解决方法是使用诸如“水平分割”的技术。
2. **不恰当的配置**:手工配置的路由或策略可能导致不可预见的网络行为。
3. **不稳定的网络**:频繁的网络变化可能导致路由协议难以稳定。
4. **安全性问题**:如果不加保护,路由选择协议可能容易受到欺骗和攻击。
---