首页 > 其他分享 >《计算机网络微课堂》4-4 IP数据报的发送和转发过程

《计算机网络微课堂》4-4 IP数据报的发送和转发过程

时间:2024-05-28 09:14:15浏览次数:22  
标签:IP 转发 计算机网络 地址 主机 数据 路由器

本节课我们介绍 IP 数据报的发送和转发过程。

IP 数据报的发送和转发过程包含以下两部分,一部分是主机发送 IP 数据报,另一部分是路由器转发 IP 数据报。

需要说明的是为了将重点放在 TCP 协议站的网际层,发送和转发 IP 数据报的过程上,在本节课的举例中,我们将忽略使用 ARP 协议来获取目的主机或路由器接口的 MAC 地址的过程,以及以太网交换机自学习和转发帧的过程。下面我们就来举例说明,IP 数据报的发送和转发过程。

在下图所示的小型互联网中,路由器的接口 0 直连了 1 个交换式以太网,接口 1 也直连了一个交换式以太网,我们给该网络分配了这样的网络地址和子网掩码,给网络中的各主机和路由器的接口,配置了相应的 IP 地址和子网掩码。如图所示,
我们给另一个网络分配了这样的网络地址和子网掩码,给网络中的各主机和路由器的接口,配置了相应的 IP 地址和子网掩码,如图所示:

我们知道从一个网络中的主机之间可以直接通信,这属于直接交付。不同网络中的主机之间的通信,需要通过路由器来中转,这属于间接交付。

那么源主机如何判断出目的主机是否与自己在同一个网络中?我们来举例说明,假设主机 C 要给主机 F 发送 IP 数据报,主机 C 将自己的 IP 地址和子网掩码相与,就可以得到主机 C 所在网络的网络地址。

既然主机 C 要给主机 F 发送 IP 数据报,主机 C 肯定知道主机 F 的 IP 地址,否则就没法发送了。主机 C 将主机 F 的 IP 地址与自己的子网掩码相遇,就可得到目的网络地址,

该地址与主机 C 的网络地址不相等,因此主机 C 就知道了主机 F 与自己不在同一个网络,他们之间的通信属于间接交付,主机 C 需要将 IP 数据报传输给路由器,由路由器将 IP 数据报转发给主机 F。

那么主机 C 又是如何知道应该把 IP 数据报交给哪个路由器进行转发,实际上用户为了让本网络中的主机能和其他网络中的主机进行通信,就要必须给其指定本网络中的一个路由器,由该路由器帮忙进行转发,所指定的路由器也被称为默认网关。

对于本例我们可以将路由器接口 0 的 IP 地址指定给该接口所直连网络中的各个主机作为默认网关。

同理可将路由器接口 1 的 IP 地址指定给该接口所直连网络中的各个主机作为默认网关,这样当本网络中的主机要和其他网络中的主机进行通信时,会将 IP 数据报传输给默认网关,由默认网关帮主机将 IP 数据报转发出去。

假设本例中的主机 A 要给主机 D 发送 IP 数据报,这属于间接交付,主机 A 会将该 IP 数据报传输给自己的默认网关,也就是图中所示的路由器。那么当路由器收到 IP 数据报后,又是如何转发的呢?路由器首先会检查 IP 数据报的首部是否出错,若出错则丢弃该 IP 数据报,并通告源主机,若没有出错则进行转发。

路由器根据 IP 数据报首部中的目的地址,在自己的路由表中查找匹配的路由条目,若找到匹配的路由条目,则转发给路由条目中指示的下一跳,若找不到则丢弃该 IP 数据报,并通告源主机。

为了简单起见,我们假设本地中的 IP 数据报首部没有出现差错,路由器取出 IP 数据报首部各地址字段的值,源地址字段的值为主机 A 的 IP 地址,目的地址字段的值为主机 D 的 IP 地址,接下来路由器就要对该 IP 数据报进行查表转发了,这是路由器的路由表。

当我们给路由器的接口配置 IP 地址和子网掩码时,路由器就知道了自己的该接口与哪个网络是直连的。例如在本例中接口 0 所直连的网络是 192.168.0.0,相应的地址源码为 255.255.255.128,不需要下一跳路由器,因为接口 0 与该网络是直连的,接口 1 所直连的网络是 192.168.0.128,相应的地址源码为 255.255.255.128,不需要下一跳路由器,因为接口 1 与该网络是直连的,

需要说明的是路由表中可能还会有其他路由条目,这可以是用户或网络管理员手工配置的静态路由,也可以是路由器使用路由协议自动获取到的动态路由。我们将在后续课程中详细介绍这部分内容,本节课就不再赘述了。

接下来路由器根据 IP 数据报的目的地址,在自己的路由表中查找匹配的路由条目,逐条检查路由条目,将目的地址与路由条目中的地址掩码相与得到目的网络地址,该目的网络地址与路由条目中的目的网络地址不相同,则这条路有条目不匹配。

再检查下一条路由条目,将目的地址与下一条路由条目中的地址源码相遇,得到目的网络地址,该目的网络地址与路由条目中的目的网络地址相同,则这条路由条目就是匹配的路由条目,按照他的下一跳指示,也就是从接口 1 转发该 IP 数据报,这样主机 D 就可以收到路由器转发来的该 IP 数据报。

需要说明的是我们这里所介绍的路由器查表转发 IP 数据报的过程,只是为了让同学们理解其最基本的工作原理,在路由器的实际研发过程中,需要设计很好的数据结构,以便提高查找速度。

再来看这种情况,假设主机 A 给本网络上的各设备发送了一个广播 IP 数据报,在数据报首部中的目的地址字段,可以填写的目的地址为 192.168.0.127,这是本网络的广播地址,也可以填写 255.255.255.255,这是受限的广播地址。该网络中的各设备都会收到该广播 IP 数据报,但是路由器收到后并不会转发该数据报,也就是说路由器是隔离广播域的,这是很有必要的。

试想一下,如果因特网中数量巨大的路由器,收到广播 IP 数据报后都进行转发,则会造成巨大的广播风暴,严重浪费因特网资源。同理,主机 A 给另一个网络发送广播 IP 数据报,在数据报首部中的目的地址字段,填写的目的地址为 192.168.0.255,这是网络 192.168.0.128 的广播地址。主机 A 将该广播 IP 数据报传输给路由器,希望由路由器帮其转发,但路由器判断出这是广播 IP 数据报,不会转发。

接下来我们来做几个相关的练习题,这是计算机专业考研全国统考,计算机网络部分 2010 年的题 38,答案是选项 D。

中继器和集线器工作在物理层,既不隔离冲突域,也不隔离广播域。

网桥和交换机工作在数据链路层可以隔离冲突域,不能隔离广播域。

路由器工作在网络层即隔离冲突域,也隔离广播域。

因此本题的答案是选项 D。

再来看 2012 年的题 37,答案是选项 C。

IP 路由器工作在 TCPIP 体系结构的网际层,TCPIP 体系结构的网际层,并不负责可靠传输,也就是不能确保传输的 IP 分组不丢失。

IP 路由器对收到的 IP 分组头进行差错校验,当发现错误时会丢弃该 IP 分组,并向原主机发送 ICMP 差错报告报文。

综上所述,题目中的描述三是错误的,利用排除法可知选项 C 正确,题目中的其他描述项都是正确的。

再来看 2015 年的题 47 的第三问,我们将题目所给的主机一的配置信息标注在它的旁边,从子、网掩码和主机一的 IP 地址的 CIDR 表示方法都可以看出网络前缀为 24 个比特,而 3W 服务器的 IP 地址的网络前缀也是 24 个比特,并且与主机一的网络前缀相同,因此主机一可以访问 3W 服务器,因为从 IP 地址配置以及物理连接方面看,主机 1 和 WWW 服务器在统一网络中。

但是主机一不能访问 INTERNET,因为他的默认网关错误的配置成了 DHCP 服务器的 IP 地址。DHCP 服务器不具备路由器的功能,无法将 IP 分组转发到 INTERNET。如图所示主机 1 的默认网关,错误的指定为了 DHCP 服务器的 IP 地址,正确的配置应该指定为路由器该接口的 IP 地址。

将本节课的内容小结如下:

标签:IP,转发,计算机网络,地址,主机,数据,路由器
From: https://www.cnblogs.com/PeterJXL/p/18214949

相关文章

  • 《计算机网络微课堂》4-3 IPv4地址
    开始讲IP地址。‍4.3.1IPv4地址概述本节课我们介绍IPv4地址的基本概念:在TCPIP体系中,IP地址是一个最基本的概念,我们必须把它弄清楚IPv4地址就是给因特网上的一台主机或路由器的每一个接口,分配一个在全世界范围内是唯一的32比特的标识符IP地址,由因特网名字和数字......
  • 《计算机网络微课堂》第四章 网络层
    4-1网络层概述从本节课开始,我们进入第4章网络层的学习。本节课我们对网络层进行概述。网络层的主要任务是实现网络互连,进而实现数据包在各网络之间的传输,如图所示。这些异构型网络,如果只是需要各自内部通信,他们只要实现各自的物理层和数据链入层即可,但是如果需要将这些异构......
  • 《计算机网络微课堂》4-2 网络层提供的两种服务
    本节课我们介绍网络层提供的两种服务,一种是面向连接的虚电路服务,另一种是无连接的数据报服务。‍我们首先来看面向连接的蓄电路服务,如图所示,这是一个小型的互联网,这是主机中的五层原理体系结构。虚电路服务的核心思想是:可靠通信,应由网络自身来保证当两台计算机进行通信时,应......
  • 《计算机网络微课堂》4-8 网际控制报文协议ICMP
    本节课我们介绍网际控制报文协议ICMP(InternetControlMessageProtocol):‍为了更有效的转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP主机或路由器使用ICMP协议来发送差错报告报文和询问报文ICMP报文被封装在IP数据报中发送ICMP差错报告......
  • 《计算机网络微课堂》4-7 IPv4数据报的首部格式
    本节课我们介绍IPv4数据报的首部格式,为了简单起见,之后我们将IPv4数据报简称为IP数据报,而不指出、版本号。IP数据报的首部格式及其内容是实现IP协议主要功能的基础,因此我们有必要搞清楚这部分内容,如图所示:​​这是IP数据报的首部格式,它由20字节的固定部分和最大40......
  • 计算机网络中的三种通信方式
    计算机网络是现代信息技术的基石,它使得计算机之间可以进行数据传输和共享资源。在计算机网络中,通信方式是指数据在通信系统中的传输方式。根据数据传输的方向和模式,通信方式可以分为三种:单工、半双工和全双工。这三种通信方式各有特点,适用于不同的应用场景。本文将详细介绍这三......
  • 你不知道的JavaScript(上中下合集) (作者 [美] Kyle Simpson 译者 赵望野 梁杰 单业 姜
    书:pan.baidu.com/s/199LHxxIlMixw3gYSY8tyPw?pwd=ywxg提取码:ywxg作用域与闭包:详细解释了词法作用域、动态作用域以及闭包的概念,展示了它们如何影响变量和函数的可访问性。函数作用域与块作用域:区分了函数作用域和块作用域,并解释了let和const等关键字如何引入块级作用域。变量......
  • pipeline的执行顺序
    假设pipeline里面有这样的handler顺序OutBoundHandler1InBoundHandler1OutBoundHandler2InBoundHandler2*当在【InBoundHandler1】里面执行【ctx.write()】时*向上执行触发【OutBoundHandler1.write()】方法*由于【OutBoundHandler2】在【InBoundHandler1】的......
  • Linux Script 笔记
    LinuxScript笔记sed-i's/\r//'filename#将dos下的换行符替换成linux的换行符awk-F'|''{if(length($1)==7)printNR}'#打印第一列字符串长度为7的行号grep-c"print"-r.#显示匹配到的行数#逐行读入文件common中的行,并进行处理#!/bin/bashcat......
  • [NOIP2001 提高组] 一元三次方程求解
    题目描述形如: 这样的一个一元三次方程。给出该方程中各项的系数(......