【网络】- TCP/IP四层(五层)协议 - 网际层(网络层) - 路由控制

news2025/1/10 17:04:59

目录

  • 一、概述
  • 二、路由表(Routing table)
  • 三、最长匹配、默认路由、特定主机路由
  • 四 、IP数据报路由过程
  • 五、路由聚合


在这里插入图片描述

一、概述

网际协议 IP 大致分为三大作用模块, ①IP寻址、 ②路由(最终节点为止的转发) 、③IP分包与组包。前面两篇文章讨论了IP地址的相关知识,本文继续讨论网际协议的第二个模块——路由,了解IP数据报是怎样从一个网络到另一个网络的。

在进行下面的阅读之前,先了解一个讨论路由时常用到的词语——“跳”,它是指网络中的一个区间。一跳的范围是指利用数据链路层以下分层的功能传输数据帧的一个区间,也就是主机 不经其他路由器 而能直接到达的相邻主机之间的一个区间。

在这里插入图片描述

二、路由表(Routing table)

路由表(Routing table)是路由器用来存储路由信息的数据结构,它包含了目的网络地址、下一跳路由器地址、距离、标志、参考计数、使用情况、接口等信息,其中最重要的是【目的网络地址下一跳路由器地址】。 实现IP通信的主机和路由器都必须持有一张这样的表。

🌰举例子
下图有4个网络,3个路由器,每个路由器都有两个IP地址:
路由器R1的两个IP地址位:10.0.0.420.0.0.7,分别连接网络1、网络2;
路由器R2的两个IP地址位:20.0.0.930.0.0.2,分别连接网络2、网络3;
路由器R3的两个IP地址位:30.0.0.940.0.0.2,分别连接网络3、网络4;
以路由器R2的路由表为例,由于R2同时连接在网络2和网络3上,如果目的网络是网络2或网络3,都可以通过接口0或接口1直接交付(需要利用ARP协议才能找到这些主机的地址);如果目的地址在网络1,则需要发往下一跳路由器R1,其IP地址为20.0.0.7;如果目的地址在网络4,则需要发往下一跳路由器R3,其IP地址为30.0.0.1
在这里插入图片描述

在这里插入图片描述

三、最长匹配、默认路由、特定主机路由

最长匹配

需要注意的是,一般使用IP地址的 网络地址(网络前缀) 部分来进行路由控制,而不是直接将源IP地址 和 目的IP地址记录在路由表中,这样可以节省大量存储空间。但也会导致查找路由表时可能得到多个匹配结果。那么该选择哪一条路由呢?
答案是,应该从匹配结果中选择相同位数最多的。
例如172.20.100.52的网络地址与172.20/16和172.20.100/24两项都匹配。 此时, 应该选择匹配度最长的
172.20.100/24。

默认路由

默认路由是指当路由表中没有与目标 IP 地址匹配的路由条目时,路由器会将数据包转发到默认路由所指定的下一跳地址。默认路由通常被称为缺省路由或零点路由。默认路由一般标记为0.0.0.0/0default

🌰举例子
如图,连接到网络N1的主机只需要三个路由条目,
第一个条目,目的网络是本网络N1,只要直接交付即可;
第二个条目,目的网络是网络N2,对应下一跳路由器R2;
第三个条目,默认路由,只要目的网络不是 N1 或 N2,就一律选择默认路由,把数据报间接交付路由器R1转发;
在这里插入图片描述

特定主机路由

特定主机路由是指在路由表中,为某个特定的主机地址(通常是指某个具体的 IP 地址)设置的路由条目。特定主机路由通常用于实现对某个特定主机的访问控制或优化路由转发的目的。

特定主机路由的配置方式与其他路由条目类似,需要指定目标地址、子网掩码、下一跳地址等参数。不同之处在于,特定主机路由的子网掩码通常是 255.255.255.255,表示只匹配该特定主机地址,而不匹配其他主机地址。

例如,假设一个企业内部的网络需要访问某个外部服务器的特定服务,但是该服务器的 IP 地址可能会变化,那么可以配置一个特定主机路由,将该服务的访问流量转发到一个固定的下一跳地址,从而实现对该服务的优化路由转发。

另外,特定主机路由也可以用于实现对某个特定主机的访问控制,例如限制某个主机的访问权限或者将某个主机的流量转发到一个特定的防火墙进行安全检查等。

在这里插入图片描述

四 、IP数据报路由过程

IP数据报路由过程是指当一个IP数据报从源主机发送到目标主机时,经过的路由选择过程。路由选择过程通常包括以下步骤:

检查目标IP地址是否在本地子网中。如果是,则将数据包直接发送到目标主机。

如果目标IP地址不在本地子网中,则检查本地路由表中是否有与目标IP地址匹配的路由。如果有,则将数据包发送到匹配的下一跳路由器。

如果本地路由表中没有与目标IP地址匹配的路由,则将数据包发送到默认网关。

在下一跳路由器上重复上述步骤,直到数据包到达目标主机。

在路由选择过程中,可以使用静态路由或动态路由来实现路由表的更新。静态路由需要手动配置路由表,而动态路由可以自动学习网络拓扑信息并更新路由表。

在这里插入图片描述

五、路由聚合

路由聚合是一种路由技术,它通过将多个子网的路由信息合并成一个更具体的路由信息,从而减少路由表的大小和网络中路由器之间的路由信息交换量。路由聚合可以使用CIDR(无类域间路由)技术来实现。

在路由聚合中,将多个具有相同前缀的子网路由信息合并成一个更具体的路由信息。例如,假设有三个子网,分别是192.168.1.0/24、192.168.2.0/24和192.168.3.0/24,它们的路由信息可以被合并成一个更具体的路由信息192.168.0.0/16,这样就可以减少路由表的大小。

路由聚合可以减少路由表的大小,降低路由器之间的路由信息交换量,并提高路由器的性能。但是,它也可能会导致路由器之间的路由信息不够精细,可能会出现路由环路等问题,因此需要谨慎使用。


参考资料:
《计算机网络》第7版 谢希仁 编著
《图解TCP/IP》第5版
在这里插入图片描述
如果文章有帮助的话,点赞👍、收藏⭐,支持一波,谢谢 😁😁😁

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

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

相关文章

dpdk ip分片报文重组处理

dpdk ip报文重组及分片API及处理逻辑介绍 DPDK的分片和重组实现零拷贝,详细介绍可以参阅DPDK分片与重组用户手则 相关数据结构 /** Fragmented packet to reassemble.* First two entries in the frags[] array are for the last and first fragments.*/ struct …

【测试平台开发】

【测试平台开发】 一、 后端开发 1、常见的技术架构与组件 语言: 项目注重高并发:选用go 注重区块链:选用go、rust(主打高性能) 大型浏览网站(如电商):Java 技术架构与组件: 前端技术架构&a…

多元回归预测 | Matlab白鲸算法(BWO)优化BP神经网络回归预测,BWO-BP回归预测,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab白鲸算法(BWO)优化BP神经网络回归预测,BWO-BP回归预测,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源码 %--------------…

供收藏:国内各种免费可用ChatGPT实测(兼验伪) 版本不断更新补充 更新日期:2023/05/28

文章目录 供收藏:国内各种免费可用ChatGPT实测(兼验伪) 版本不断更新补充 更新日期:2023/05/28国内大厂的人工智能语言模型国内可访问的ChatGPT资源(创业公司)ZelinAI(国内可直接访问的ChatGPT)注册邀请码网…

2023全国大学生信息安全竞赛(ciscn)初赛题解

战队信息 安全知识 甚至不用看视频,百度就有答案。除了那个最新的美国时政,其它的ChatGPT就能回答。 Misc 签到卡 关注公众号,根据提示,直接print(open(‘/flag’).read()): 国粹 脑洞题,给的题目原图…

【LeetCode热题100】打卡第6天:正则表达式匹配

文章目录 正则表达式匹配⛅前言🔒题目🔑题解 正则表达式匹配 ⛅前言 大家好,我是知识汲取者,欢迎来到我的LeetCode热题100刷题专栏! 精选 100 道力扣(LeetCode)上最热门的题目,适合…

从原理总结chatGPT的Prompt的方法

一 什么是chatGPT chatGPT全称是Generative Pre-trained Transformer,它是一种专注于对话生成的语言模型,可以根据用户的文本输入,做出相应的智能回答。chatGPT是由OpenAI于2018年研发的语言模型,其中OpenAI是于2015年由特斯拉的…

Postman新手教程

博主简介:想进大厂的打工人博主主页:xyk:所属专栏: JavaEE初阶 目录 文章目录 一、Postman背景介绍 二、Postman下载地址 三、Postman简单使用 一、Postman背景介绍 Postman是Chrome插件类产品中的代表产品之一,这款网页调试工具不仅可以调…

位图布隆过滤器

位图 概念:就是用每一位来存放某种状态,适用于海量数据,数据无重复的场景。通常是用来判断某个数据存不存在的。 比如,需要在40亿个整数中,查看某个数是否存在? 1G1024M*1024KB*1024B~10亿字节~80亿比特。…

k8s实战篇1-用minikube发布服务hello-minikube

1 安装minikube curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64 sudo install minikube-darwin-amd64 /usr/local/bin/minikube 2 Install kubectl binary with curl on macOS 1 Download the latest release: curl -LO "h…

Eclipse Ⅶ

哈喽各位,今天继续分享第七部分的内容,喜欢可以点赞和收藏,这是我的动力来源hahahhah! 今天谈谈Eclipse 生成 jar 包、Eclipse 关闭项目以及Eclipse 编译项目。 废话不多说,开始咯! Eclipse 生成 jar 包…

Linux常见指令-2

我们本期继续学习Linux基本指令,没有看过第一期的小伙伴建议先看第一期 (4条消息) Linux常见指令-1_KLZUQ的博客-CSDN博客 目录 15.时间相关指令 16.cal指令 17.find指令 18.grep指令 19.zip/unzip指令 20.tar指令 21.bc指令 22.uname –r指令 22.重要的几…

PMP考试总结-2023-05-27

目录 前言 为什么会参加PMP考试? 那么什么是PMP? Plan 目标: 方式方法: 达标标准: Do 执行内容: Check 执行效果 计划的复盘 一、考试前及当天的计划: 二、整个备考计划&#xff…

如何正确地使用ES6提高我们的代码质量

前言 相信每个前端工程师,或者了解前端的人都知道ES6。它是js的一次巨变,它为我们开发js前端项目的时候带来了许多更好的去书写代码的方式。但是很多时候我们可能都没有过度地去关注优化代码这一块内容,哪怕有也只是注意到了一些比较大众化&…

Linux进程概念引入

文章目录 冯诺依曼体系操作系统概念设计目的定位系统调用和库函数的概念 进程概念描述进程PCBtask_struct内容分类 组织进程查看进程通过系统调用获取进程标识符通过系统调用创建进程 冯诺依曼体系 目前我们的计算机基本都是遵守冯诺依曼体系的,在冯诺依曼体系中&am…

[Kubernetes] - RabbitMQ学习

1.消息队列 消息: 在应用间传送的数据队列,先进先出 1.2. 作用 好处:解耦, 容错,削峰坏处:降低系统可用性,系统复杂度提高,一致性问题; RabbitMQ组成部分&#xff1a…

云上高校导航 导入 与 配置教程

开通 云开发 功能(首月免费,次月19.9),激活 云数据库、云存储和云函数 功能。 将 项目 文件夹下 最新版本的 文件夹下的 Cloud-based_University_Navigation 整个文件夹 复制到项目路径下(比如 D:\WeChatProjects&…

Zabbix Server Api批量添加Zabbix Agent

脚本或使用自动化工具来批量添加Zabbix Agent,从而减少手动操作和提高效率 使用API添加主机可以减少人为错误的发生。通过自动化和脚本,可以确保正确的配置被应用到每个主机上,避免了手动操作可能导致的配置错误。 使用前提条件 1、zabbix…

C919用了哪些人工智能(AI)技术?

#国产大飞机C919商业首飞#近日,C919在国人的期盼下终于迎来了首次商飞,机票已公开售卖。众所周知,C919是一款全新的、先进的大飞机,那你知道它采用了哪些新的人工智能(AI)技术吗?下面让我来为大…

[golang 微服务] 2. RPC架构介绍以及通过RPC实现微服务

一.简介 在上一节简单了解了微服务定义和优缺点之后,在使用微服务框架之前,需要首先了解一下RPC架构,通过RPC可以更形象了解微服务的工作流程 RPC的概念 RPC(Remote Procedure Call Protocol),是 远程过程调用的缩写,通俗的说就是…