首页 > 其他分享 >3.6 IP 数据报的发送与转发

3.6 IP 数据报的发送与转发

时间:2024-12-14 19:27:08浏览次数:10  
标签:IP 转发 3.6 地址 主机 数据 路由器

欢迎大家订阅【计算机网络】学习专栏,开启你的计算机网络学习之旅!

文章目录


前言

在计算机网络中,数据传输的核心工作之一是通过 IP 协议将数据从源主机传递到目的主机。这一过程涉及到多个网络层的工作,特别是 IP 数据报的发送与转发。本章将详细介绍 IP 数据报的发送过程、判断目的主机是否在同一网络、以及数据报在路由器中的转发过程。


1 主机发送 IP 数据报

①应用层请求数据传输

数据传输的起点是应用层的请求。例如,一个 Web 浏览器想要通过 HTTP 协议请求一个网页数据,它会通过套接字接口调用传输层协议(如 TCP 或 UDP)进行数据传输。

②传输层封装数据

传输层协议(如 TCP 或 UDP)会接收到来自应用层的数据,封装成一个段(segment)。这个段会被加上必要的传输控制信息,如源端口、目标端口、序列号等。

③网络层(IP 层)封装数据

在网络层(即 IP 层),传输层的数据被封装成 IP 数据报。IP 数据报包含了以下信息:

  • 源 IP 地址:发送方的 IP 地址。
  • 目的 IP 地址:接收方的 IP 地址。
  • 协议类型:指示数据报上层使用的协议(如 TCP 或 UDP)。
  • 生存时间 (TTL):表示数据报能在网络中存活的最大跳数,防止数据包在网络中无休止地循环。
  • 头部校验和:用于检查数据报头部是否发生损坏。

数据报在 IP 层封装完毕后,会交给链路层进一步处理。


2 直接交付与间接交付

主机要决定是否可以直接将数据报发送给目的主机,还是通过默认网关(通常是路由器)进行间接交付。

在这里插入图片描述

  • 直接交付:如果目的主机在同一网络内,主机可以直接通过链路层(如以太网)发送数据帧到目的主机,数据包在到达目的主机时由目的主机的网络接口进行处理。

  • 间接交付(通过路由器转发):如果目的主机不在同一网络,数据报需要通过默认网关(路由器)进行转发。此时,主机将数据报发送给默认网关,路由器根据目标 IP 地址继续转发数据报。

在这里插入图片描述
判断是否在同一网络的过程如下:

  1. 获取目标 IP 地址和子网掩码
    主机通过自己的 IP 地址和子网掩码来判断目的主机是否在同一网络中。子网掩码定义了 IP 地址中的网络部分和主机部分。

  2. 计算网络地址
    使用目标 IP 地址和本地子网掩码进行位与(AND)操作,计算出目标地址所在的网络地址。

  3. 比较网络地址
    如果目标 IP 地址所在的网络地址与本地主机计算出来的网络地址相同,说明目的主机与本地主机在同一个网络内,数据报可以直接发送给目标主机。否则,数据报需要经过路由器转发。

    公式:

    本地网络地址 = 本地 IP 地址 & 子网掩码
    目标网络地址 = 目标 IP 地址 & 子网掩码
    如果本地网络地址 == 目标网络地址,则目的主机与本地主机在同一网络;反之,不在同一网络。
    

在这里插入图片描述


3 路由器转发 IP 数据报

当数据报到达路由器时,路由器的工作是根据目标 IP 地址在其路由表中查找最合适的路由,然后将数据报转发到下一个跳。路由器的转发过程如下:

①接收数据报
路由器从链路层接收到数据帧后,会从中提取出 IP 数据报。此时,路由器会检查数据报的首部信息,以便进行后续处理。

②校验数据报头部
路由器会检查数据报头部的校验和(Checksum)。如果校验和不正确,表示数据报在传输过程中可能发生了损坏。此时,路由器会丢弃数据报,并通过 ICMP 协议向源主机发送 “目的不可达” 或 “数据报损坏” 的错误报告。

③查找路由表
如果数据报头部没有错误,路由器会查找其路由表,以确定如何将数据报转发到下一个路由器或目的主机。路由表中包含了不同目标 IP 地址的路由信息,每一条路由条目包括:

  • 目标网络地址
  • 子网掩码
  • 下一跳地址(即下一跳路由器的 IP 地址)

路由器会根据数据报的目标 IP 地址在路由表中进行匹配。

④路由匹配与转发

  • 匹配成功:如果路由表中找到了与目标 IP 地址匹配的条目,路由器将数据报转发给路由表中指定的下一跳路由器或者直接连接的网络。
  • 匹配失败:如果路由表中没有找到匹配条目,说明该目标 IP 地址无法到达,路由器会丢弃数据报,并向源主机发送 ICMP “目标不可达”消息。

⑤更新 TTL(生存时间)
路由器会将数据报中的 TTL 值减 1。TTL 值用于避免数据包在网络中永久循环,如果 TTL 值减为 0,路由器会丢弃数据报,并向源主机发送 ICMP “超时”消息。

⑥转发数据报
在经过 TTL 更新后,路由器将数据报封装进新的数据链路层帧,并通过网络接口将数据帧发送到下一跳设备。如果目标是本地网络,路由器会直接交给目的主机进行处理。

在这里插入图片描述
在这里插入图片描述

4 习题分析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

标签:IP,转发,3.6,地址,主机,数据,路由器
From: https://blog.csdn.net/2302_80253507/article/details/144427826

相关文章

  • Transformers-pipline
    HFTransformersPipelinesPipelines接口方式任务名称参数名称参数描述sentiment-analysismodel指定使用的模型名称或路径。tokenizer指定使用的分词器名称或路径。framework选择使用的深度学习框架,"pt"表示PyTorch,"tf"表示TensorFlow。device设......
  • NOIP2024 及后续一段时间的总结及未来计划
    NOIP冲刺阶段停课阶段我觉得没什么好写的了,大家基本上状况都差不多。中间的几场模拟赛成绩飘飘浮浮的,但是题也都认真补了,也没有什么好说的。主要还是写一下考场上犯的一些错。做第一题的时候比较正常,花了大概90min做出来了,做得有点慢。原因是最开始想到做法后,没有去推细节......
  • 在Eclipse中添加Servlet-api.jar的方法
    在Eclipse中添加Servlet-api.jar的方法方法一:点击窗口->首选项->Java->构建路径->类路径变量->新建;将你的tomcat目录下的common/lib/servlet.jar加进来。如果你建立了一个tomcatproject它会自动加进来的,如果没有的话你也可以通过手动来加入,选中你刚才建的项目右击->属性->java......
  • 【鸿蒙开发】关于性能优化的小tips
    系列文章目录【鸿蒙开发】鸿蒙开发基础干货篇–1【鸿蒙开发】基础干货篇–2小白入门手册(内含DevEco安装教程和汉化插件安装)【鸿蒙开发】基础干货篇–3小白入门手册(内含模拟器保姆级安装使用教程)【鸿蒙开发】基础干货篇–4小白入门手册(内含Stage模型工程目录结构和U......
  • NOIP2024
    T1显然,若\(t[l,r]\)均为\(\texttt1\),会让\(s[l,r]\)可以任意重排。从左到右按位匹配,考虑让一位匹配的代价,可能会让其后面缺少一个数进行匹配,也就是后面的答案最多减少\(1\)。而匹配一位已经有了\(1\)的贡献,故贪心匹配一定不劣。预处理后暴力匹配即可,附上赛时代码。#in......
  • Unity类银河战士恶魔城学习总结(P176 Slime self-Multiply史莱姆分裂)
    【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili教程源地址:https://www.udemy.com/course/2d-rpg-alexdev/本章节实现了史莱姆的分裂Enemy_Slime.cs1.概览与目标脚本核心目标:实现一个史莱姆敌人的行为,包括状态管理、被击晕、死亡后的分裂行为。关键特性:......
  • Linux修改IP、主机名、DNS
    在Linux系统中,更改IP地址、主机名和DNS设置通常涉及到几个关键的配置文件和命令。具体步骤会根据你的Linux发行版有所不同,但这里我将以常见的CentOS/RHEL系统为例,说明这些操作的一般流程。1.更改IP地址检查当前的网络接口:ipaddrshow找到你要修改的网络接口配置文件。在......
  • RIP(路由信息协议)和实验配置
     动态协议路由分类RIP概述•RIP(RoutingInformationProtocols,路由信息协议),是应用较早、使用较普遍的内部网关协议(InteriorGatewayProtocol,简称IGP),•适用于小型同类网络,是典型的距离矢量协议。•RIP是基于UDP,端口520的应用层协议。•优先级:10......
  • 电脑如何改自己的ip地址?这些方法轻松掌握
    在数字化时代,IP地址作为设备在网络中的唯一标识,扮演着至关重要的角色。无论是出于隐私保护、访问特定资源,还是解决网络冲突,有时我们都需要更改电脑的IP地址。然而,对于许多用户来说,如何安全、有效地更改IP地址仍是一个谜。本文将为您详细解读电脑更改IP地址的方法,让您轻松掌握这......
  • 变换ip是什么意思?如何变ip地址
    在网络的世界里,IP地址扮演着至关重要的角色,它如同设备的“网络身份证”,确保信息的准确传输。然而,在某些情况下,我们可能需要变换这个“身份证”,也就是更换IP地址。那么,变换IP到底是什么意思?如何改变IP地址呢?接下来,我们将深入探讨这两个问题。【一】变换IP是什么意思变换IP,即......