DJ4-4 网际协议:因特网中的转发和编址

news2024/12/25 9:20:32

目录

一、因特网中的网络层协议

二、IP 数据报格式(IPv4)

三、IP数据报分片和重组

1. 分片的概述

2. 分片的例子

四、IP 地址

1. IP 地址概述

2. IPv4 编址

3. IP 地址结构

4. 传统的 IP 地址分类

5. ABC 类地址

6. 特殊 IP 地址段

7. 特殊 IP 地址

8. 互联网中的 IP 地址

五、子网

1. 子网的划分

2. 子网的特点

3. 子网掩码

4. 子网的划分方法

5. 使用子网掩码的分组转发


一、因特网中的网络层协议

 

二、IP 数据报格式(IPv4)

 

三、IP数据报分片和重组

1. 分片的概述

MTU 最大传输单元

MTU:是指数据链路帧的数据区的最大字节数。

每个数据链路都有自己的 MTU,链路类型不同,MTU 的值也不同。

由于有 MTU 这一限制,因此在因特网中,一个大的分组可能在路由器中被分割为几个分片,在最终的目的主机中将这些分片重新组装成一个大的分组。

  • 在路由器中被分割为几个分片
  • 在目的主机中将这些分片重组

为了进一步识别出这些分组,需要对分片进行标识。

2. 分片的例子

“ IP 分片分的是数据 ”

否则,没有首部的分片不知道发往何处。

example:

  • 4000 byte datagram
  • MTU = 1500 bytes

假设没有选项,那么 IP 首部长度为 20 。

  • 分组的数据大小为:4000-20=3980
  • 分片的数据大小为:≤1500-20=1480

分片的 16 位标识符要与原分组的一致,从而 ID 均为 x 。

flagflag 用于标识是否为最后一个分片,若是则为 0,否则为 1 。

注:fragflag 字段包含 3 位二进制 Bit0、Bit1、Bit2,fragflag 指示的是 Bit2 的设置。

  • Bit0:reserved, must be zero
  • Bit1:0 = May Fragment, 1 = Don't Fragment.
  • Bit2:0 = Last Fragment, 1 = More Fragments.

Bit1 用于指示能否进行分片,若某路由器接收到一个需要分片但又不被允许分片的分组,则选择丢弃该分组,并告诉发送方分组过大。

Q:如何区分是分片还是分组?

A:若 flagflag=1 且 offset=0,则是分组;否则是分片。

offset 是以 8 字节为单位来计算的,除最后一个分片之外,前面的分片的数据大小必须是 8 字节的整数倍(否则后一个分片的偏移量算出来是小数)

example:

  • 4000 byte datagram
  • MTU = 1000 bytes

数据大小:

  • 分组:4000-20=3980
  • MTU:≤1000-20=980

980/8=122.5,因此最多装入 122*8=976 的数据。

四、IP 地址

1. IP 地址概述

IP 地址:分配给主机或路由器 接口 的标识符。

接口:主机或路由器与物理链路之间的边界。

  • 路由器有多个接口
  • 主机可以有多个接口
  • 每个接口至少有一个 IP 地址

IP 地址有两种:IPV4 和 IPV6

  • IPV4:32 个二进制位长(4字节)常用点分十进制表示
  • IPV6:128 个二进制位长(16字节)常用冒号分隔表示

2. IPv4 编址

32 比特的二进制表示和点分十进制表示法

将 4 个字节中的每一个字节分别用十进制数来表示,4 个十进制数之间用 “.” 分隔。

根据不同的取值范围,早期将 IP 地址分为五类。

IP 地址中前 5 位用于标识 IP 地址的类别,

  • A 类地址的第一位为 “0”
  • B 类地址的前两位为 “10”
  • C 类地址的前三位为 “110”
  • D 类地址的前四位为 “1110”
  • E 类地址的前五位为 “11110”

其中,A 类、B 类与 C 类地址为基本的 IP 地址。 

 

3. IP 地址结构

 

包括两部分:

  1. 网络号:指明主机所在网络的编号。
  2. 主机号:主机在网络中的编号。

4. 传统的 IP 地址分类

网络号和主机号均不能全为 0 或 1 。

 

 

5. ABC 类地址

A 类地址

利用 IP 地址的第一个字节作为网络地址,最高位为 0,其余的三个字节作为主机地址。

  • 地址范围为 1. 0. 0. 1-127. 255. 255. 254

注:全 0 表示本地地址,全 1 表示在本地网络中向所有主机广播。

0. 0. 0. 0 只能作源地址,不能作目的地址。此外,凡是 127 开头的都表示 localhost 。

一个网络:是指具有相同网络号的所有 IP 地址的集合。

路由器连接不同的网络:

  • 具有相同网络号的 IP 之间通讯一定不通过 Router
  • 具有不同网络号的 IP 之间通讯一定要通过 Router

B 类地址

利用 IP 地址的前两个字节作为网络地址,最高位为 10,其余的两个字节作为主机地址。

  • 地址范围为 128. 0. 0. 1-191. 255. 255. 254

C 类地址

利用 IP 地址的前三个字节作为网络地址,最高位为 110,最后一个字节作为主机地址。

  • 地址范围为 192. 0. 0. 1-223. 255. 255. 254

6. 特殊 IP 地址段

本地回环地址:127. 0. 0. 1 - 127. 255. 255. 254

这是预留的一组 IP 地址,主要是用来识别主机本身的地址。也叫做 “localhost”,一般用来测试。

私有地址:10. x. x. x,172. 16. x. x - 172. 31. x. x,192. 168. x. x 

这三个地址段被称为私有 IP 地址段,也就是局域网所使用的地址段,在公网上不能被路由。

私有地址在全球不唯一,公有地址在全球唯一。

7. 特殊 IP 地址

0. 0. 0. 0

这个地址严格上来说都不是真正意义上的 IP 地址。主要是用来标识不清楚的网络和主机的。系统遇到无法识别的网络或主机的时候会统一的归纳到这个地址。

255. 255. 255. 255

这个地址是受限的广播地址。主要指一个网段内的所有主机。

233. 255. 255. 255 向 233 网段广播

8. 互联网中的 IP 地址

  • 同一局域网上的主机或路由器的 IP 地址中的网络号必须相同
  • 交换机互连的网络仍然是一个局域网,只能有一个网络号。
  • 路由器总是具有两个或两个以上 IP 地址。
  • 当两个路由器直接相连时,在连线两端的接口处,可以指明 IP 地址也可以不指明 IP 地址。

路由器之间的网段需要与其它局域网区分开来,因此需要设置不同的网络号。对于上述 C 类地址(一共可以表示 254 个主机名),路由器之间只会占用两个。又因为路由器之间的网段使用的是公用地址,全球其它网段不能复用,从而导致极大的浪费。因此,当两个路由器直接相连时,在连线两端的接口处,可以指明 IP 地址也可以不指明 IP 地址。

五、子网

1. 子网的划分

IP 地址:

  1. 网络号(高位 bits)
  2. 主机号(低位 bits)

网络号相同的 IP 地址属于同一个网络,而网络还可以划分为若干子网(subnet)。

划分子网的方法是借用主机号高位部分的若干比特作为子网号,剩下的主机位作为主机号。

update:具有相同的网络号和子网号的所有 IP 地址的集合组成一个网络。

2. 子网的特点

什么是一个子网?从IP地址的观点来看:

  • 设备接口的 IP 地址具有相同的网络部分
  • 没有路由器的介入,物理上能够相互到达

3. 子网掩码

子网号字段长度是可变的,因此,为了确定子网地址,IP 协议提供了子网掩码的概念。子网掩码用来确定网络地址(包括网络号和子网号)和主机地址的长度。子网掩码长为 32 位比特,其中的 1 对应于 IP 地址中的网络号和子网号,而子网掩码中的 0 对应于主机号。

  • 直接将子网掩码与 IP 地址相与,得到主机号
  • 将子网掩码变反再与 IP 地址相与,得到网络地址

4. 子网的划分方法

例、现有一个 C 类网 202. 114. 1. 1-202. 114. 1. 254,

1)请写出怎样将这个 C 类网划分为 2 个、6 个、14 个子网;

注意:子网号也不能全为 1 或全为 0 。

假设 n 为子网号位数。由于子网号也不能全为 1 或全为 0,因此

2)假设这些 IP 用于某公司。现公司任一部门,最多有 30 台机器,问应该怎样划分子网?

假设 m 为主机号位数。由于主机号也不能全为 1 或全为 0,因此

5. 使用子网掩码的分组转发

不划分子网时,路由表只有两项:目的网络地址和下一跳地址,例如

目的网络地址下一跳地址
30.0.0.040.0.0.7
40.0.0.0直接交付
128.1.0.0直接交付
192.4.10.0128.1.0.9

直接交付对应的是间接交付。目的网络地址代表分片或分组最终想要到达的 IP 地址,下一跳地址代表当前路由器想要让该分片或分组去到目的地而需要转发给的相邻的路由器的接口的 IP 地址。

使用子网划分后,路由表中将包括三项:目的网络地址、子网掩码和下一跳地址,例如:

R1 的路由表
目的网络地址子网掩码下一跳地址
128.30.33.0255.255.255.128接口 0
128.30.33.128255.255.255.128接口 1
128.30.36.0255.255.255.0R2

接口是指本机的接口,R 是指要转发给的下一个路由器的接口。当一个分片或分组到达路由器时,按顺序和子网掩码相与,若结果与目的网络地址一致,则转发给对应的下一跳地址。

 

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

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

相关文章

Mysql 截取字符串并将文本转换为数值

有一个需求, 需要在 字符串 20230410 中获取 月份(04), 然后变为 (4), 解决: SELECT cast(left(SUBSTRING(20230410, 5),2) as SIGNED); 用到的函数有 left(str, length) substring(str, pos),即:substring(被截取字符串, 从第几位开始截…

Linux驱动之在Ubuntu下编译驱动模块——学习笔记(12)

为了方便驱动开发学习,了解一下在Ubuntu上进行驱动编译的流程。 一、下载对应的内核源码 首先要通过 uname -a查询一下自己的内核版本。 我这里下载的是 https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.4.tar.gz 二、编译内核 (1&a…

一起学 WebGL:复合矩阵

大家好,我是前端西瓜哥。之前讲了平移矩阵、旋转矩阵以及缩放矩阵,以及演示了在 WebGL 中的单独应用的效果。 这次我们看看同时进行多次矩阵变换的组合写法。 我们将会对一个三角形先平移,然后旋转。 矩阵乘法 简单过一下矩阵乘法的知识点…

Cassandra windos安装

首先从http://cassandra.apache.org/download/网站上找到cassandra,如下图所示: 2、点击3.11.3跳转到下载地址,如下图所示: …

DHCP服务器 DNS服务器 综合实验

配置DNS服务器 DNS服务器 主域服务器host1 192.168.80.101 从域服务器host2 192.168.80.102 DHCP服务器 host1 192.168.80.101 提供192.168.80.0/24网段 IP地址、默认网关、子网掩码、DNS服务器地址、DNS默认域名 客户端 Linux host3 19…

数据可视化神器!Matplotlib Python教程 | 从入门到精通绘制各种类型的图形和保存图形

大家好,我是爱吃熊掌的鱼,今天我要给大家带来一篇有趣开朗的Matplotlib Python教程。Matplotlib是Python中最流行的数据可视化库之一,它可以帮助我们将数据转化为易于理解的图表和图形。无论你是初学者还是专业人士,Matplotlib都是…

Eureka 注册中心——服务的注册与发现

文章目录 1.Eureka的结构和作用2.搭建eureka-server2.1.创建eureka-server服务2.2.引入eureka依赖2.3.编写启动类2.4.编写配置文件2.5.启动服务 3.服务注册3.1.引入依赖3.2 配置文件3.3启动多个user-service实例 4.服务发现4.1引入依赖4.2 配置文件4.3 服务拉取和负载均衡 最后…

flowable流程图绘制工具flowable-ui的安装和使用

一.简介 记录绘制flowable图的过程。 二.下载安装 1.下载 我这边是windows的,下载的版本是6.8.0,zip那个就可以,tar.gz是linux的 下载地址:https://github.com/flowable/flowable-engine/releases/tag/flowable-6.8.0 下载截…

PyCharm-2023安装教程

访问JetBrains的官方网站,下载PyCharm最新版本的安装程序。 双击下载的安装程序,在弹出的安装向导中点击“下一步”。 阅读许可协议,并同意协议条款。 选择安装路径。默认情况下,PyCharm会安装在C:\Program Files\JetBrain…

STL——Lambad表达式

📖作者介绍:22级树莓人(计算机专业),热爱编程<目前在c++阶段>——目标Windows,MySQL,Qt,数据结构与算法,Linux,多线程&…

【C语言】输入输出、字符串操作、内存操作、文件操作函数

三对基本输入输出函数 1.gets(),puts() gets()从标准输入中获取一个字符串,到str(自己创建的char型数组)中,读到换行或输入末尾结束获取r; 成功返回str,失败返回空。 char *gets(char *str)…

ARM汇编第一次上机(顺序、分支、单重循环)【嵌入式系统】

ARM汇编第一次上机(顺序、分支、单重循环)【嵌入式系统】 前言推荐说明ARM汇编第一次上机(顺序、分支、单重循环)内容1 sum1流程图代码编写结果分析 2 sum2流程图代码编写结果分析 3 numbers流程图代码编写结果分析 最后 前言 20…

Python统计学:配对样本t检验~均值差的检验

配对样本 t检验 用于两个不同条件下,对同一对象进行测量所得的两个样本均值的区别。 比如吃药前和吃药后体温是否有变化,大鱼钩和小鱼钩钓的鱼的体长是否有差异等。 配对样本是什么? 配对样本需要满足两个基本条件: 1. 样本间存…

Java版本工程管理系统软件源码 自主研发,工程行业适用

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下: 首页 工作台:待办工作、消息通知、预警信息,点击可进入相应的列表 项目进度图表:选择(总体或单个)项目显示…

【Java 数据结构】PriorityQueue(堆)的使用及源码分析

🎉🎉🎉点进来你就是我的人了 博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!人生格言:当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔🦾&am…

ES配置与使用

一、单机版安装 地址:www.elastic.co 下载tar格式,或者复制链接,wget url下载 启动: ./bin/elasticsearch 二、插件 解决页面问题,GitHub下载:elasticsearch-head 需要node环境。node -v检查node版本…

TryHackMe-Jack(boot2root)

Jack 破坏运行Wordpress的Web服务器,获得低特权用户,并使用Python模块将您的权限升级到root。 端口扫描 循例nmap web枚举 robots.txt wpscan枚举user wpscan直接爆 得到wendy的密码 直接登后台 根据题目提示,利用user role editor帮助我们…

使用chatgpt写一个划词翻译的浏览器插件

最近在网上流行的chatgpt,实在是太火了,好多人在使用,而且它的用处实在是太丰富了,能帮助我们解决很多问题,就比如说:编程,生成图片,翻译等。太丰富了。我看网上很多人都在说&#x…

江苏三年制专转本本法学类考纲配套课程及复习资料

法学类专业课内容比较多,需要背的也很多,今天我来给大家看一下我们应该如何学习法学类?01:考试科目考试科目:大学语文专业课基础理论考试课程A :法理学约 15%课程B:宪法学 约 15%课程C &#xf…

第九讲 常用数据结构之列表-2

列表的方法 列表类型的变量拥有很多方法可以帮助我们操作一个列表,假设我们有名为foos的列表,列表有名为bar的方法,那么使用列表方法的语法是:foos.bar(),这是一种通过对象引用调用对象方法的语法。后面我们讲面向对象…