计算机网络(4.8)网络层- IP层转发分组的流程

2023-11-15

假设:有四个A类网络通过三个路由器连接在一起。 每一个网络上都可能有成千上万个主机。

可以想像,若按目的主机号来制作路由表,每一 路由表就有4万个项目,即4万行(每一行对应于 一台主机),则所得出的路由表就会过于庞大。

但若按主机所在的网络地址来制作路由表,那么每一个路由器中的路由表就只包含4个项目(每一行对应于一个网络),这样就可使路由表大大简化。

在路由表中,对每一条路由,最主要的是 (目的网络地址,下一跳地址)。

查找路由表:根据目的网络地址就能确定下一跳路由器,这样做的结果是: IP数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。只有到达最后一个路由器时,才试图向目的主机进行直接交付。

特定主机路由:虽然互联网所有的分组转发都是基于目的主机所在的网络,但在大多数情况下都允许有这样的特例, 即为特定的目的主机指明一个路由。

采用特定主机路由可使网络管理人员能更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由。

默认路由(default route):路由器还可采用默认路由以减少路由表所占用的空间和搜索路由表所用的时间。这种转发方式在一个网络只有很少的对外连接时是很有用的。

默认路由在主机发送IP数据报时往往更能显示出它的好处。 如果一个主机连接在一个小网络上,而这个网络只用一个路由器和互联网连接,那么在这种情况下使用默认路由是非常合适的。

       

IP数据报的首部中没有地方可以用来指明“下一跳 路由器的IP地址”。

当路由器收到待转发的数据报,不是将下一跳路由器的IP地址填入IP数据报,而是送交下层的网络接口软件。

网络接口软件使用ARP协议负责将下一跳路由器的IP地址转换成硬件地址,并将此硬件地址放在链路层的MAC帧的首部,然后根据这个硬件地址找到下一跳路由器。

路由器分组转发算法

  • (1) 从数据报的首部提取目的主机的IP地址D,得出目的网络地 址为N。
  • (2) 若网络N与此路由器直接相连,则把数据报直接交付目的主机D;否则是间接交付,执行(3)。
  • (3) 若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行 (4)。
  • (4) 若路由表中有到达网络N的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行(5)。
  • (5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。
  • (6) 报告转发分组出错。

路由表没有给分组指明到某个网络的完整路径。

路由表指出,到某个网络应当先到某个路由器(即 下一跳路由器)。 在到达下一跳路由器后,再继续查找其路由表,知 道再下一步应当到哪一个路由器。这样一步一步地查找下去,直到最后到达目的网络。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算机网络(4.8)网络层- IP层转发分组的流程 的相关文章

  • 虚拟机连不上网解决办法,以及出现Ubuntu connect: Network is unreachable

    虚拟机连不上网解决办法 xff0c 以及出现Ubuntu connect Network is unreachable 问题来源具体过程 问题来源 出现了Ubuntu connect Network is unreachable这个问题 x
  • socket error总结

    Socket error 0 Directly send error Socket error 10004 Interrupted function call Socket error 10013 Permission denied Soc
  • could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the n

    如果你在创建自定义网络时 docker network create driver bridge my net出现下面的提示 Error response from daemon could not find an available no
  • Linux 虚拟化网络技术 — 虚拟网线(Veth-pair)

    虚拟网线 Veth pair Veth pair 不是一个设备 而是一对设备 作为虚拟网线用于连接两个虚拟网络设备 veth pair 是根据数据链路层的 MAC 地址对网络数据包进行转发的过程来实现的 本质是反转通讯数据的方向 需要发送的
  • 获取网卡名称存入数组 对网卡执行相关操作

    背景 由于服务器网卡获取ip异常 需要对做bond网卡进行相关网络操作 bond网卡操作 正常执行nmlic命令 环境问题对要执行的网卡本身只有四行命令 为了防止出现多业务网卡和vlan主网卡的情况 这里选择自动获取bond网卡执行相关操作
  • services端口列表(from Nmap)

    This list of services is from the Nmap security scanner http www insecure org nmap For a HUGE list of services including
  • 使用路由器DDNS功能+动态公网IP实现外网访问(花生壳)

    找电信开通了动态公网IP 理由是为了更流畅看家里的监控 动态公网IP一直变 所以就用DDNS tp link路由器中设置花生壳的DDNS 登录成功了 域名有一个是注册花生壳后送给你的一个免费壳域名 打开花生壳客户端 首先要删掉内网穿透的全部
  • 硬中断和软中断

    本文主要内容 硬中断 软中断的原理和实现 内核版本 2 6 37 Author zhangskd csdn blog 概述 从本质上来讲 中断是一种电信号 当设备有某种事件发生时 它就会产生中断 通过总线把电信号发送给中断控制器 如果中断的
  • 再谈select, iocp, epoll,kqueue及各种I/O复用机制

    上篇文章太过幼稚 一派胡言 希望没有误导大家 我也是菜鸟 学习本身就是一个不断追求真理的过程 希望能谅解 首先感谢kasicass GG指出错误 已经指导我很多次了 非常感谢 然后我又查阅了一些资料 再次整理 more seriously
  • DNS基本指南,域名解析,A记录,MX,CNAME,URL Redirect(301),URL frame,ns,TXT Record

    DNS 基本指南 DNS DNS 是 Domain Name System 域名系统 的缩写 此系统用于管理和识别域名 DNS 的最基本功能是为域的一个或多个 IP 地址提供名称 例如 可以将域名 wolf example com转换为 1
  • Network Error .Tap to load again.:-1202

    分析原因 1 可能是网络问题 确认网络是否正常 2 如果电脑上尝试没有问题 但是微信端有问题 可能是手机域名过期的问题 3 可能是域名证书未配置成功 导致微信认证被拦截了 配置即可
  • 0.0.0.0,localhost,127.0.0.0的区别

    一 0 0 0 0 不同场景不同意思 在服务器中 0 0 0 0表示本机上的任意ip地址 比如本机有内外网两个ip 那么当服务A开通0 0 0 0的访问后 通过两个ip都可以访问服务A 比如 3306端口监听在127 0 0 1 只有本机客
  • pf_ring 5.4.0源码分析

    pf ring 5 4 0源码分析 pf ring是一款开源的高性能抓包库 项目的网址是 http www ntop org products pf ring 同经典的libpcap比较 pf ring提高性能的关键在以下三点 1 pf r
  • 网络常见面试题

    1 OSI Open System Interconnect 开放系统互联 是一个七层的计算机网络模型 分别为 物理层 数据链路层 网络层 传输层 会话层 表示层和应用层 TCP IP Transmission Control Protoc
  • TCP协议如何保证可靠传输

    TCP的功能是交付数据 所以TCP的可靠就是保证每次数据按序 按时 不丢数据 顺利的交付给对端 可靠不等于安全 TCP尽最大可能的保证数据可靠性 但是没有任何措施保证数据的安全性 所谓安全就是你的数据不会被别人看到或者窃取到 TCP上的数据
  • 关于端口协议Up down的一点理解

    在处理网络障碍的时候 经常需要查看端口的状态 端口所配协议的状态 使用一些常用的工具里投入ping等命令进行测试 然后大家有没有发现 路由器或者三层交换机针对于广域网的端口的查看和以太网的端口查看包括ping等有很大区别 在此将自己的理解概
  • 网络h

    注 所有标题带h的博客不保证准确性和正确性 写这篇博客原因是因为网络知识学了又忘 忘又学 翻来覆去 所以做个笔记 正如上文注明 此篇博客所写内容不够准确和专业 甚至不正确 只是为了便于理解记忆 概念 以太网 ethernet 双绞线 同轴线
  • MySQL 字段约束 null, not null, default, auto_increment

    转载自 http www xiaoxiaozi com 2009 07 09 1111 没有规矩 不成方圆 任何事物都是如此 在 MySQL 中 每个字段定义都包含附加约束或者修饰符 这些可以用来增加对所输入数据的约束 今天我们就来看一下
  • SMB/CIFS--NetBOIS/Browser/NBNS 协议

    在NetBIOS出现之后 Microsoft就使用NetBIOS实现了 一个网络文件 打印服务系统 这个系统基于NetBIOS设定了一套文件共享协议 Microsoft称之为SMB Server Message Block 协议 这个协议被
  • 网络基础面试题(二)

    11 什么是网桥 防火墙的端口防护是指什么 网桥是一种网络设备 用于连接两个或多个局域网 LAN 并转发数据包 它能够根据MAC地址来识别和转发数据 提高网络的传输效率和安全性 防火墙的端口防护是指对防火墙上的各个端口进行保护和限制 只允许

随机推荐

  • 什么是Spring Cloud Config

    Spring Cloud Config 是一个解决分布式系统的配置管理方案 它包含 Client和 Server 两个部分 Server 提供配置文件的存储 以接口的形式将配置文件的内容提供出去 Client 通过接口获取数据 并依据此数据
  • 艺术+DeFi,看MEME如何玩转NFT

    内容概述 MEME代币已经成功登陆加密货币交易所Poloniex 就在成功上市之后 MEME代币价格一度飙升至1800美元高位 MEME协议允许人们赚取 菠萝积分 并将其兑换为NFT代币 9月22日 加密货币交易所Poloniex在其DeF
  • 机器学习阶段总结一

    最近一直在看机器学习相关内容 主要是看的斯坦福的Andrew Ng教授的公开课视频 可以点这里 看了前四讲 最大的感觉就是这简直就是概率论 线代 用到的数学知识着实不少 不过也挺有趣的 继续学下去 初步总结一下 主要是关于监督学习 回归分类
  • Redis学习:Redis的持久化

    Redis的持久化方式有两种 rdb和aof rdb理解为快照 save规则出发会的得到一个快照 aof是追加的形式 可以理解为binlog那种 RDB 在进行 RDB 的时候 redis 的主线程是不会做 io 操作的 主线程会 fork
  • 独门秘籍奉上!听说这是CCF遥感地块分割比赛冠军的“获胜法宝”!

    飞桨开发者说 黎昆昌 CCF BDCI遥感影像地块分割赛道冠军团队 CCF BDCI 2020 综合特等奖团队队长 中国科学院深圳先进技术研究院20级硕士 CCF大数据与计算智能大赛 CCF BCI 由中国计算机学会于2013年创办 作为全
  • Nginx配置不缓存html

    Nginx配置不缓存html 1 配置nginx不缓存html 1 1 修改配置文件 1 2 验证 2 Vue项目修改根目录index html 1 配置nginx不缓存html 1 1 修改配置文件 location expires 1h
  • 有特别有创意的网站设计案例

    有人说 UI 设计师集艺术性与科学性于一身 不仅需要对工具的使用熟练 更需要对美术艺术有一定的基础了解 如果想要成为优秀的 UI 设计师是一个需要磨砺的过程 需要不断的学习和积累 多看多练多感受 其中对于优质的设计案例的收集和练习是重要的
  • 清晰、幽默、轻松地深入理解YOLOv5网络结构和一些细节(查阅无数资料文献总结)

    最近的一篇关于YOLOv5检测小目标博客的点击量很高 没想到YOLOv5还是很有影响力的 既然这样 今天本人就本着幽默 清晰 轻松的风格带大家深入了解一下YOLOv5那倾倒众生的网络结构 和它较之其他算法的改进之处 还是一句话 希望我的不经
  • JavaScript的一种单元测试框架:mocha

    mocha 如果你听说过 测试驱动开发 TDD Test Driven Development 单元测试就不陌生 单元测试是用来对一个模块 一个函数或者一个类来进行正确性检验的测试工作 比如对函数abs 我们可以编写出以下几个测试用例 输入
  • pytorch 2.0.1 版本 [gpu] 安装

    安装Anaconda 1 下载官网 我们下载anaconda的目的主要是为了下一步的python环境管理 所以不考虑anaconda与已有的python的版本是否匹配的问题 下方点击之后会出现 可以根据自己的需要下载安装包 本文以Windo
  • QSerialPort串口数据传输上位机实时显示

    1 项目背景 通过串口实时传输下位机造的一帧图像数据 然后利用qt编写上位机 实现图像数据的实时显示 并保存任意帧数据 2 效果展示 3 下位机代码 include bsp clk h include bsp delay h include
  • 使用Python爬取多篇各类新闻文章

    一 简介 这篇文章主要是使用python中的requests和BeautifulSoup库来爬取上万篇的新闻文章 我这里以科技类新闻为例来爬取2000篇新闻文章http news chinairn com News moref9fff1 h
  • Redis学习

    Redis简介 REmote DIctionary Server Redis 是一个由 Salvatore Sanfilippo 写的 key value 存储系统 是跨平台的非关系型数据库 Redis 是一个开源的使用 ANSI C 语言
  • {%csrf_token%}的作用

  • 电脑右键打印不见了_win7右键没有打印选项怎么办

    2016 08 29 17 37 49 浏览量 10456 Windows10正式版系统下 如果用户同时选择多个文件 且文件数量多到某个值时 通常这个值是16 点击右键 会看到右键菜单里的 打开 打印 编辑 选项消失了 而如果同时选中的文件
  • rabbitmq中消息的存储

    1 大概原理 所有队列中的消息都以append的方式写到一个文件中 当这个文件的大小超过指定的限制大小后 关闭这个文件再创建一个新的文件供消息的写入 文件名 rdq 从0开始然后依次累加 当某个消息被删除时 并不立即从文件中删除相关信息 而
  • mysql删除数据对索引的影响_mysql中索引可以删除吗?

    mysql中索引可以删除 可以使用 DROP INDEX 语句来对索引进行删除 语法格式 DROP INDEX ON 不用的索引建议进行删除 因为它们会降低表的更新速度 影响数据库的性能 删除索引是指将表中已经存在的索引删除掉 不用的索引建
  • C++ 继承

    面向对象程序设计中最重要的一个概念是继承 继承允许我们依据另一个类来定义一个类 这使得创建和维护一个应用程序变得更容易 这样做 也达到了重用代码功能和提高执行效率的效果 当创建一个类时 您不需要重新编写新的数据成员和成员函数 只需指定新建的
  • 简单三步实现远程支持

    引言 服务是当今企业的核心竞争力 及时 精准地帮助客户解决问题 将有效提升企业的客户满意度 带来续费和增购 企业通过远程桌面解决技术支持难题 当客户或同事遇到故障时 工程师可为其提供支持 在客户监督下远程操作设备进行诊断和排障 相比上门服务
  • 计算机网络(4.8)网络层- IP层转发分组的流程

    假设 有四个A类网络通过三个路由器连接在一起 每一个网络上都可能有成千上万个主机 可以想像 若按目的主机号来制作路由表 每一 路由表就有4万个项目 即4万行 每一行对应于 一台主机 则所得出的路由表就会过于庞大 但若按主机所在的网络地址来制