当前位置: 首页 > news >正文

计算机网络:网络层 —— IP数据报的发送和转发过程

文章目录

      • IP数据报的发送和转发过程
        • 主机发送IP数据报
        • 路由器转发IP数据报
        • 示例

IP数据报的发送和转发过程

IP 数据报的发送和转发过程包含以下两个过程:

  1. 主机发送IP数据报
  2. 路由器转发IP数据报

![[IP数据报的发送和转发.png]]

  • 直接交付:源主机与目的主机同一网络中
  • 间接交付:源主机与目的主机不在同一网络中,需要借助路由器转发数据报。

源主机通过比较与目的主机的网络前缀是否相同,可判断出目的主机是否与自己在同一个网络中

![[源主机与目的主机比较.png]]

主机发送IP数据报
  1. 确定目的网络

    • 主机(例如主机C)想要发送数据到另一个主机(例如主机F),首先会确定目的主机 F 的IP地址

    • 主机C 将自己的 IP 地址和子网掩码进行与运算,得到自己所在网络的网络地址

    • 接着,主机C 将目的 主机F 的 IP 地址与自己的子网掩码进行与运算,得到目的网络地址

    • 如果目的网络地址与主机C的网络地址相同,说明两者在同一网络中,可以直接通信;如果不同,则需要通过路由器进行转发

  2. 指定默认网关

    • 如果目的主机 F 与主机 C 不在同一网络中,主机 C 需要将 IP 数据报发送给路由器(默认网关,为同一网络中的各主机指定的一个路由器)进行转发。

    • 默认网关是用户或网络管理员配置的一个路由器接口,用于帮助主机 C 将 IP 数据报转发到其他网络。

路由器转发IP数据报
  1. 接收报文

    • 路由器首先接收从 主机C 发送过来的 IP 数据报。

    • 检查收到的 IP 数据报是否正确,生存时间是否结束,首部是否误码

    • 若不正确,则丢弃该 IP 数据报,并向发送该 IP 数据报的源主机发送 ICMP 差错报告

  2. 解析目标IP地址

    • 路由器检查 IP 数据报头部的目标 IP 地址,确定数据报应该被转发到哪个网络。

    • 若找到匹配的路由条目,则按该路由条目的指示进行转发,否则丢弃该 IP 数据报,并向发送该 IP 数据报的源主机发送 ICMP 差错报告

    • 路由器不转发广播IP数据报,即路由器隔离广播域。如果因特网中数量巨大的路由器收到广播 IP 数据报后都进行转发,则会造成巨大的广播风暴,严重浪费因特网资源。

![[解析目标IP地址.png]]

  1. 查找最佳匹配路径

    • 路由器在其路由表中查找与目标 IP 地址匹配的路由条目。

    • 路由表可能包含静态路由(由管理员手动配置)和动态路由(由路由器通过路由协议自动获取)。

  2. 确定下一跳路由器

    • 根据路由表的信息,路由器确定 IP 数据报应该被转发给哪个下一跳路由器。

    • 这个决定通常基于最佳匹配的原则,即选择能够最有效地将数据报送达目标网络的路由器

  3. 转发报文:一旦确定了下一跳路由器,路由器就将 IP 数据报发送到相应的接口,以便下一跳路由器可以继续处理这个数据报。

  4. 更新报文头部(可选):在转发报文之前,路由器可能会更新报文头部中的 TTL(生存时间)字段,并重新计算报文头部的校验和。

  5. 发送报文:最后,路由器将 IP 数据报发送给下一跳路由器,或者直接发送到目标网络中的主机。

示例

![[习题.png]]

根据题目要求,以下是详细解答:

(1) 设备1、设备2和设备3分别应选择什么类型网络设备?

  • 设备1:交换机(无VLAN功能)
  • 设备2:路由器
  • 设备3:交换机(无VLAN功能)

(2) 设备1、设备2 和 设备3 中,哪几个设备的接口需要配置 IP 地址?并为对应的接口配置正确的 IP 地址。

  • 设备1:不需要配置IP地址。
  • 设备2
    • IF1: 192.168.1.54/30
    • IF2: 192.168.1.65/26
  • 设备3:不需要配置IP地址。

(3) 若主机 H3 发送一个目的地址为 192.168.1.127 的 IP 数据报,网络中哪几个主机会收到该数据报?

首先,我们需要确定 192.168.1.127 是否在同一个子网内。主机 H3 的子网掩码是 /26,即前 26 位是网络部分,后 6 位是主机部分。

  • 主机 H3 的 IP 地址:192.168.1.66/26
  • 目标地址:192.168.1.127

计算目标地址的网络部分:

192.168.1.127
& 255.255.255.192
-----------------
192.168.1.120

因此,目标地址 192.168.1.127 不在同一子网内(192.168.1.64/26)。

所以,只有主机 H3 会收到该数据报,其他主机不会收到。

相关文章:

计算机网络:网络层 —— IP数据报的发送和转发过程

文章目录 IP数据报的发送和转发过程主机发送IP数据报路由器转发IP数据报示例 IP数据报的发送和转发过程 IP 数据报的发送和转发过程包含以下两个过程: 主机发送IP数据报路由器转发IP数据报 直接交付:源主机与目的主机在同一网络中间接交付:…...

【算力基础】GPU算力计算和其他相关基础(TFLOPS/TOPS/FP32/INT8...)

文章目录 :one: 算力的常见指标:two: 算力计算:three: 常用链接 🚀 本文主要是聚焦于深度学习领域的 GPU的算力估计,其他类型的硬件设备如CPU可以类比参考。 1️⃣ 算力的常见指标 算力衡量主要与运算速度和精度这两个指标有关。 🌔速度指…...

UI自动化测试(app端)4.0

✨博客主页: https://blog.csdn.net/m0_63815035?typeblog 💗《博客内容》:.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 📢博客专栏: https://blog.csdn.net/m0_63815035/cat…...

C#与C++交互开发系列(十):数组传递的几种形式

前言 在C#和C的交互开发中,数组传递是一个非常常见且实用的场景。数组可以作为方法的参数,也可以作为响应结果返回。在本篇博客中,我们将探讨几种常见的数组传递方式,展示如何在C#与C之间进行有效的数据交换。我们将主要介绍以下…...

【C++复习】第一弹-基础性语法

前言 学习了C语法这么久了,我其实觉得,我们学习一门语言应该更加注重使用性,对于语法的细节可以通过具体的项目去重新造轮子的时候再去抠细节,也就是说你得学会先走,在去想我们如何走的,身体的哪些肌肉在发…...

软考高级备考记录

一 报考条件和报名流程 报考条件 该考试具有水平考试性质,报考任何级别不需要学历、资历条件,只要达到相应的专业技术水平就可以报考相应的级别 报名流程 软考报名官网:中国计算机技术职业资格网 官网上有 报名时间,考试…...

图为大模型一体机新探索,赋能智能家居行业

在21世纪的今天,科技的飞速进步正以前所未有的速度重塑着我们的生活方式。从智能手机到物联网,从大数据到人工智能,每一项技术创新都在为人类带来前所未有的便利与效率。其中,图为AI大模型一体机作为人工智能领域的最新成果&#…...

精氨酸/赖氨酸多肽(芋螺肽)

产品简介: 芋螺肽,源自瑞士尖端科技,是一种模拟芋螺毒素的生物活性肽。它以其独特的分子结构和高选择性作用于电压门控钠离子通道(特别是Nav1.4),为您提供安全、自然且不僵硬的回春效果。芋螺肽&#xff0…...

C++音视频04:音视频编码、生成图片

视频编码 #include <libavutil/log.h> #include <libavutil/opt.h> #include <libavcodec/avcodec.h>static int encode(AVCodecContext *ctx, AVFrame *frame, AVPacket *pkt, FILE *out) {int ret -1;ret avcodec_send_frame(ctx, frame);if (ret < …...

ImageSharp报错

错误信息 System.MissingMethodException: Method not found: System.Span1<SixLabors.ImageSharp.PixelFormats.Rgba32> SixLabors.ImageSharp.Memory.Buffer2D1.GetRowSpan(Int32).需要升级项目 原来仅升级了SixLabors.ImageSharp没有升级drawing&#xff0c;都升级到…...

Android中常用adb命令

目录 1.adb连接安卓模拟器 2.adb列出所有已经连接的设备 3.adb显示设备的日志信息 4.adb 电脑文件推送到安卓模拟器中 5.adb 手机传送文件到电脑 6.adb获取安卓应用的包名和Activity名 附录 1--命令 1&#xff09;adb devices 2&#xff09;adb install 路径> 3&#xff09;…...

PostgreSQL的奥秘:全面解读JSONB——非结构化数据支持的深入探索

引言 PostgreSQL的JSONB数据类型非常灵活&#xff0c;提供了一套操作符来操作JSON数据。本指南将引导您创建一个包含JSONB数据的表&#xff0c;演示各种JSONB操作符&#xff0c;并讨论如何使用倒排索引和部分索引来优化性能。 理解PostgreSQL中的JSONB JSONB&#xff0c;即JS…...

tornado,flaskd这两个框架主要是干什么的

Tornado是一个Python的Web框架&#xff0c;主要用于构建高性能的异步Web应用程序。它基于非阻塞的网络I/O模型&#xff0c;可以处理大量并发连接&#xff0c;适用于需要处理实时性要求较高的应用场景&#xff0c;如实时聊天、实时数据推送等。 Flask是另一个Python的Web框架&a…...

Sigrity Power SI Noise coupling analysis模式如何进行压降仿真分析操作指导

Sigrity Power SI Noise coupling analysis模式如何进行压降仿真分析操作指导 Sigrity除了可以进行交流噪声分析,同样也可以进行压降仿真分析,以下图为例. 3D view...

国产游戏技术能否引领全球?

国产游戏技术能否引领全球&#xff1f; 引言 近年来&#xff0c;中国游戏产业如同春天的嫩芽&#xff0c;迅速成长为全球最大的市场之一。或许你会想&#xff0c;国内的游戏开发者到底在技术上取得了多大的成就&#xff1f;这些成就又能否推动中国游戏走向世界&#xff0c;甚…...

【前端】在 Next.js 开发服务器中应该如何配置 HTTPS?

在 Next.js 的开发环境中&#xff0c;默认情况下是使用 HTTP 协议的。但是&#xff0c;您可以通过一些配置来启用 HTTPS。这在开发阶段可能很有用&#xff0c;尤其是在需要测试涉及安全传输的应用场景时。 下面是如何在 Next.js 开发环境中配置 HTTPS 的步骤&#xff1a; 方法…...

基于深度学习算法的动物检测系统(含PyQt+代码+训练数据集)

基于深度学习算法的动物检测系统&#xff08;含PyQt代码训练数据集&#xff09; 前言一、数据集1.1 数据集介绍1.2 数据预处理 二、模型搭建三、训练与测试3.1 模型训练3.2 模型测试 四、PyQt界面实现五、讨论5.1 模型优缺点分析5.2 实验意义 参考资料 前言 本项目是基于Mobil…...

微信小程序美团点餐

引言&#xff1a;外卖已经成为了都市人的必备&#xff0c;在无数个来不及&#xff08;懒得&#xff09;做饭的时刻拯救孤单寂寞的胃。美团外卖无疑是外卖届的领头羊&#xff0c;它的很多功能与设计都值得我们学习。本文将从五个方面&#xff0c;对美团外卖展开产品分析&#xf…...

音频剪辑还花钱?2024年这4款免费工具让你告别烦恼

音乐迷们&#xff01;是不是还在为找个音频剪辑软件就得花钱这事儿头疼呢&#xff1f;别急&#xff0c;2024年有好几个既免费又特别给力的音频剪辑免费的小帮手来了&#xff0c;保证帮你省下这笔钱&#xff0c;还让你用得爽歪歪&#xff01;来来来&#xff0c;让我给你们介绍4个…...

【YOLO模型】(4)--YOLO V3超超超超详解!!!

文章目录 YOLO V3一、改进二、三种scale三、残差连接四、核心网络结构1. 结构2. 输出与先验框关系 五、softmax层替代 总结 YOLO V3 YOLO V3是由Joseph Redmon等人在2018年推出的一款目标检测算法。作为YOLO系列的第三代版本&#xff0c;它在实时性和准确性上取得了显著的提升…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

今日科技热点速览

&#x1f525; 今日科技热点速览 &#x1f3ae; 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售&#xff0c;主打更强图形性能与沉浸式体验&#xff0c;支持多模态交互&#xff0c;受到全球玩家热捧 。 &#x1f916; 人工智能持续突破 DeepSeek-R1&…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面&#xff0c;gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress&#xff0c;说明目标所使用的cms是wordpress&#xff0c;访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...