【计算机网络笔记二】网络层

news2024/11/23 4:20:04

IP 地址分类和子网掩码

IPv4 地址—简称 IP 地址,IP 地址由 32 位比特组成

在这里插入图片描述

IP地址现在由因特网名字和数字分配机构 ICANN(Internet Corporation for Assigned Names and Numbers)进行分配,IP地址的作用:用于网络寻址,也就是根据IP地址可以找到它所属的网络。

如何使用IP进行网络寻址?

IP地址的编址方法共经过了三个历史阶段:

  • 分类的IP 地址。这是最基本的编址方法,在 1981 年就通过了相应的标准协议

  • 子网的划分。这是对最基本的编址方法的改进,其标准 RFC 950 在 1985 年通过

  • 构成超网。这是比较新的无分类编址方法。1993 年提出后很快就得到推广应用

分类的 IP 地址

所谓“分类的IP地址”就是将 IP 地址划分为若干个固定类,每一类地址都由两个固定长度的字段组成。

在这里插入图片描述

  • 网络号(net-id):它标志主机所连接到的网络。一个网络号在整个因特网范围内必须是唯一的
  • 主机号(host-id):它标志该主机一个主机号在它前面的网络号所指明的网络范围内必须是唯一的

由此可见,一个 IP 地址在整个因特网范围内是唯一的。

那么 IP 地址分成了哪些固定类呢?

  • A类、B类、C类、D类、E类

在这里插入图片描述

为什么要进行分类呢?

  • 各种网络的差异很大,有的网络拥有很多主机,而有的网络上的主机则很少。把 IP 地址划分为A类B类C类是为了更好地满足不同用户的要求

A类、B类和C类分别可以支持多少个网络,每个网络又可以支持多少台主机呢?

A类地址

在这里插入图片描述

  • A类可以支持的网络数:2^(8-1) = 128

  • 每个A类网络可以支持的主机数量:2^24 = 16,777,216,即1600万个左右

但有些网络号是不能分配的,有些主机号也是不能分配的。

A类地址不可分配的网络号:

在这里插入图片描述

也就是说最小网络号 0最大网络号 127 是不可分配的,网络号可分配范围是 [1-126],因此实际可分配的网络数为:2^(8-1) - 2 = 126

A类地址不可分配的主机号:

在这里插入图片描述

也就是说 主机号全 0 的网络地址 和 主机号全 1 的广播地址是不可分配的,因此每个网络中实际可以分配的 IP 地址数量为:2^24 - 2 = 16777214

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

B类地址

在这里插入图片描述

C类地址

在这里插入图片描述

给出一个IP地址,如何判断它的类别和是否可以分配?

在这里插入图片描述

  • 首先,根据地址左起第一个十进制的值,可以判断出网络类型:
    在这里插入图片描述
  • 然后,根据网络类别,就可以得到地址中的网络号和主机号:
    ① A 类地址网络号为左起第一个字节(前8位,第1个十进制数字),后面三个字节是主机号
    ② B 类地址网络号为左起前两个字节(前16位,前2个十进制数字),后面两个字节是主机号
    ③ C 类地址网络号为左起前三个字节(前24位,前3个十进制数字),后面一个字节是主机号

另外,记住以下三种情况的地址不能分配:

  • ① A 类网络号 0 和 127
  • ② 主机号全 0,这是网络地址
  • ③ 主机号全 1,这是广播地址

在这里插入图片描述

IP地址分配实例

  • ① 找出下图中有哪几个网络?
    在这里插入图片描述

  • ② 根据各网络中主机和路由器接口总数量,来决定给各网络分配哪个类别的IP
    在这里插入图片描述

  • ③ 依据所确定的网络类别,为每个网络挑选一个网络号
    在这里插入图片描述
    在这里插入图片描述

路由器接口为什么需要 IP 地址?

在这里插入图片描述

  • 在不同的网络中,需要路由器转发
  • 在网络 N1 中,主机 A 将数据先转发给路由器接口 ①
  • 数据在一个网络中传输,需要 MAC 地址

主机 A 又是怎样知道路由器接口 ① 的 MAC 地址的?

  • 使用 ARP 协议根据 IP 地址拿到对应的 MAC 地址

ARP 协议只适用于一个网络ARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址(MAC 地址)的映射问题。上图中主机 A 就无法通过 ARP 请求,解析主机 BMAC 地址,路由器是隔离广播域的

主机 A 其实没必要知道主机 BMAC 地址,可以通过路由器分组转发实现:

在这里插入图片描述

子网掩码

  • 子网掩码使用连续的比特 1 来对应网络号子网号

  • 子网掩码使用连续的比特 0 来对应主机号
    在这里插入图片描述

默认的子网掩码

默认的子网掩码即未划分子网的情况下使用的子网掩码。

在这里插入图片描述

使用子网掩码对 IP 地址进行子网划分

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

使用子网掩码求 IP 所属的网络地址

在这里插入图片描述

这样,如果我们知道了两个网络中的两台主机的 IP 地址和其子网掩码就可以判断这两个主机是否在同一个网络中

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

无分类 IPv4 地址

它的正式名字是:无分类域间路由选择CIDR (Classless Inter-Domain Routing,CIDR的读音是“sider”)。

无分类 IP 地址 = 网络前缀+主机号

CIDR 的做法是在 IP 地址的后面加上斜线 “/”,然后写上网络前缀所占的位数,例如:

在这里插入图片描述

CIDR 地址块

CIDR 把网络前缀都相同的连续的 IP 地址组成一个“CIDR 地址块”

例如:

在这里插入图片描述

地址掩码 (address mask)

为了更方便地得到一个地址的网络前缀,CIDR 使用 32 位的地址掩码(address mask),地址掩码由一串 1一串 0 组成,而 1 的个数就是网络前缀的长度。

例如:

在这里插入图片描述

虽然 CIDR 不使用子网了,但由于目前仍有一些网络还使用子网划分和子网掩码,因此 CIDR 使用的地址掩码也可继续称为子网掩码。

“CIDR 不使用子网”的意义

CIDR 不使用子网”是指 CIDR 并没有在 32 位地址中指明若干位作为子网字段,但分配到一个 CIDR 地址块的单位,仍然可以在本单位内根据需要划分出一些子网。

例如,某单位分配到地址块 /20,就可以再继续划分为 8 个子网(即需要从主机号中借用 3 位来划分子网)
在这里插入图片描述

这些子网也都只有一个网络前缀一个主机号字段,但子网的网络前缀比整个单位的网络前缀要长些。

这时每一个子网的网络前缀就变成 23 位(即原来的 20 位加上从主机号借来的 3 位),比该单位的网络前缀多了 3 位。

在这里插入图片描述

总结

  • IP 地址由 32 位比特组成,用点分十进制表示法,IP 地址的作用:用于网络寻址

  • IP 地址表示可以分为两部分:网络号 + 主机号,网络号标识主机所在的网络,在整个因特网中唯一,主机号标识该主机,在当前网络号的网络范围中唯一

  • IP地址分类:A类、B类、C类、D类、E类,其中 D 类是多播地址,E 类保留尚未使用,也就是说目前实际使用的只有 A B C 三类

    A 类地址:8 位网络号 + 24 位主机号,网络号固定前面一位 0
    B 类地址:16 位网络号 + 16 位主机号,网络号固定前面两位 10
    C类地址:24 位网络号 + 8 位主机号,网络号固定前面三位 110

  • A 类地址不能分配的网络号:最小的网络号 0 保留和最大的网络号 127 用作本地环回测试

  • 每类地址中主机号全 0 和全 1 的不能分配,主机号全 0 的表示网络地址,主机号全 1 的地址是广播地址,路由器表中的网络地址就是主机号全 0 的地址

  • IP 地址中点分十进制表示法的第一个十进制可以判断网络类型:小于127的属于 A 类,128 ~ 191 的属于 B 类,192 ~ 223 的属于 C 类

  • ARP 协议的作用:根据 IP 地址拿到对应的 MAC 地址,ARP 协议只适用于一个局域网络内

  • IP 分组转发:间接交付,源主机没必要知道目标主机的 MAC 地址,由路由器的路由表不断的转发实现

  • 子网掩码:使用连续的比特 1(对应网络号和子网号) + 连续的比特 0(对应主机号)表示子网掩码,从每类地址中的主机号范围借用若干位最高位来表示子网号,剩余的表示主机号。 默认的子网掩码:A 类255.0.0.0 B 类255.255.0.0 C 类255.255.255.0

  • 使用子网掩码求 IP 所属网络地址:IP 地址和子网掩码进行&与运算的结果,即所属网络地址,可以用于判断两台主机是否在同一个网络中。

  • 无分类的 IPv4 地址:网络前缀 + 主机号,IP 地址后面加上斜杠再跟上网络前缀所占位数,如128.12.35.7/20表示用前20位表示网络号,剩余的用作主机号,它的地址掩码使用32位,由一串 1 和一串 0 组成,1 的个数就是网络前缀的长度。仍然可以通过借用主机号的高几位的办法划分子网,只不过子网的网络前缀更长了。

内网 IP和外网 IP - VPN 技术

什么是内网 IP

内网 IP 地址也叫做私有 IP 地址,或者专用 IP (private address),如果其他网络上主机不需要访问你们单位的某主机的话,那么你们单位的主机需要的 IP 就不需要有网络寻址的功能。

在这里插入图片描述

不同网络中,私有 IP 可以相同,这样就可以进一步节约宝贵的全球 IP 地址资源:

在这里插入图片描述

RFC 1918 指明了一些专用地址(private address),这些地址只能用于一个机构的内部通信,而不能用于和因特网上的主机通信

这些被指定为用于私有的 IP 地址有:

  • 10.0.0.0 ~ 10.255.255.255(或记为 10.0.0.0/8一整个连续的 A 类网络
  • 172.16.0.0 ~ 172.31.255.255(或记为 172.16.0.0/12) 16 个连续的 B 类网络
  • 192.168.0.0 ~ 192.168.255.255(或记为 192.168.0.0/16256 个连续的 C 类网络

采用这样的专用 IP 地址的互连网络称为专用互联网本地互联网,或更简单些,就叫做专用网。

显然,全世界可能有很多的专用互连网络具有相同的专用 IP 地址,专用 IP 地址也叫做可重用地址(reusable address)。

问题:两个本地互联网中使用专用 IP 地址的两台主机如何通信?

在这里插入图片描述

  • 第一种方法:租用电信公司的通信线路为本机构专用

    在这里插入图片描述

  • 第二种方法:因特网作为本机构各专用网之间的通信载体

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

远程接入 VPN(remote access VPN)


在这里插入图片描述

专用网主机如何上网?

在这里插入图片描述

  • 答案是:网络地址转换 NAT (Network Address Translation) 路由器
    在这里插入图片描述
    当 NAT 路由器具有 n 个全球IP地址时,专用网内最多可以同时有 n 个主机接入到因特网。这样就可以使专用网内较多数量的主机,轮流使用 NAT 路由器有限数量的全球 IP 地址。
    在这里插入图片描述
    为了更加有效地利用 NAT 路由器上的全球 IP 地址,现在常用的 NAT 转换表把传输层的端口号也利用上。这样,就可以使多个拥有本地地址的主机,共用一个 NAT 路由器上的全球 IP 地址,因而可以同时和因特网上的不同主机进行通信。

总结

  1. 私有(内网)IP 地址没有网络寻址的功能,不能访问因特网上的主机通信,只能用于一个机构内部通信

  2. 不同网络中,私有 IP 可以相同

  3. RFC 1918 指定了一些用于私有IP的地址:一整个连续的 A 类网络 10.0.0.0~10.255.255.255,16 个连续的 B 类网络 172.16.0.0~172.31.255.255,256 个连续的 C 类网络 192.168.0.0~192.168.255.255

  4. 不同内网的主机之间通信:
    1)租用电信公司的通信限流为本机构专用,费用高
    2)借用因特网作为本机构各专用网之间的通信载体,利用VPN软件建立VPN隧道(虚拟网络)

  5. 内网的主机访问因特网:通过安装了 NAT 软件的 NAT 路由器进行本地 IP 地址和公网的 IP 地址做转换映射

分组网间探测:PING

ICMP 的一个重要应用就是分组网间探测 PING(Packet InterNet Groper), 用来测试两个主机(或者路由器)之间的连通性。

PING 是应用层直接使用网络层 ICMP 的一个例子,它没有经过传输层的 TCP 或 UDP。

在这里插入图片描述

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

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

相关文章

基于Java的酒店管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

【pytest】 参数化@pytest.mark.parametrize

1.创建 test_parametrize.py 通过 pytest.mark.parametrize 方法设置参数 import pytestimport math#pytest参数化 pytest.mark.parametrize("base,exponent,expected", # 参数变量名称# 每个元组都是一条测试用例测试数据[(2,2,4),(3,3,9),(1,9,1),(0,9,0)],i…

为什么网络安全缺口很大,而招聘却很少?学网络安全真的没有前途吗?

2020年我国网络空间安全人才数量缺口超过了140万,就业人数却只有10多万,缺口高达了93%。这里就有人会问了: 1、网络安全行业为什么这么缺人? 2、明明人才那么稀缺,为什么招聘时招安全的人员却没有那么多呢&#xff1…

多线程进阶学习笔记

文章目录 多线程进阶学习前言1、线程的状态1.1 线程状态相关介绍1.2 状态切换演示示例一示例二示例三 2、线程池2.1 线程池的实现2.2 JDK中的线程池2.2.1 Executors2.2.2 ThreadPoolExecutor2.2.3 线程池的工作原理2.2.4 任务拒绝策略 3、volatile关键字3.1 可见性问题3.2 JMM3…

Learn Prompt-Prompt 高级技巧:HuggingGPT

HuggingGPT是一个 Agent 框架,利用 ChatGPT 作为任务规划器,根据每个模型的描述来选择 HuggingFace 平台上可用的模型,最后根据模型的执行结果生成总结性的响应。这个项目目前已在 Github 上开源,并且有一个非常酷的名字叫做 JARV…

【5G PHY】物理层逻辑和物理天线的映射

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

MQ - 01 消息队列发展史MQ通用架构

文章目录 导图PreMQ 发展史消息队列的发展脉络MQ选型考虑因素消息 和 流消息队列的架构和功能什么情况下会使用消息队列?架构和功能的基本概念架构层面的基本概念功能层面的基本概念4款主流消息队列的区别和建议对比图导图 Pre MQ - 闲聊MQ一二事儿

字符串的大小(补充)

字符串大小 strlen对char b[ ] { ‘a’,‘b’,‘c’};不知道 ’\0‘在哪里&#xff0c;读取的是一个字符串 #include <iostream> using namespace std; int main() {char a[] { "abcde" };char b[] { a,b,c};cout << sizeof(a)/sizeof(a[0]) <&l…

Python函数绘图与高等代数互融实例(一):正弦函数与余弦函数

Python函数绘图与高等代数互融实例(一):正弦函数与余弦函数 Python函数绘图与高等代数互融实例(二):闪点函数 Python函数绘图与高等代数互融实例(三):设置X|Y轴|网格线 Python函数绘图与高等代数互融实例(四):设置X|Y轴参考线|参考区域 Python函数绘图与高等代数互融实例(五…

运营商停止提供公网IP地址,如何远程访问网络服务?

前段时间&#xff0c;广州电信宣布自2023年10月1日起&#xff0c;将不再为新装宽带和双栈宽带的用户提供公网IPv4地址。其实&#xff0c;自去年开始&#xff0c;中国三大运营商的各地分公司都纷纷宣布停止提供公网IPv4地址&#xff0c;这一决策的理由也都是IPv4公网地址资源已经…

JavaScript混淆工具大比拼:JScrambler和JShaman哪个更胜一筹?

两款顶级JavaScript混淆工具测评&#xff1a;JScrambler和JShaman 出于JavaScript代码安全需求&#xff0c;JavaScript混淆已经被广泛使用。在这个领域中&#xff0c;有免费的小工具&#xff0c;也有专业、商业级的产品。 商业产品在功能强度、保护效果、稳定性等各方面都是全…

胶质层指数

声明 本文是学习GB-T 397-2022 商品煤质量 炼焦用煤. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件规定了炼焦用商品煤产品质量等级和技术要求、试验方法、检验规则、标识、运输及贮存。 本文件适用于生产、加工、储运、销售、使用…

qt状态机QtState

文章目录 前言例子一 :官方文档的例子1. 抓住重点:初步认识状态机完整代码 2. 抓住重点:状态机中的状态共享 (进一步完善)完整代码 3. 抓住重点:使用历史状态保存和恢复当前状态(进一步完善)完整代码 4. 抓住重点:使用并行状态来避免状态组合爆炸(进一步完善)完整代码&#xff…

【斗破年番】彩鳞遭捆绑,萧炎单手抱彩鳞,有谁注意到小医仙流泪

Hello,小伙伴们&#xff0c;我是小郑继续为大家深度解析斗破苍穹年番 斗破年番新一集已经更新&#xff0c;很显然这集仅仅只是过渡集。整体而言质量的确不太行&#xff0c;尤其是场景的刻画实在是太过粗糙。完全就是将“廉价”二字体现得淋漓尽致。不过随着剧情的跟进&#xff…

AI AIgents时代 - (三.) AutoGPT和AgentGPT

前两篇讲解了Agent的原理和组件&#xff0c;这节我将给大家介绍两个agent项目&#xff0c;给出它们的工作原理和区别&#xff0c;并教大家亲手尝试使用 Agents&#x1f389; &#x1f7e2; AutoGPT&#x1f916;️ 我们的老朋友&#xff0c;之前文章也专门写过。AutoGPT 是一…

一拖三快充线(USB-C转三充)的解决方案--LDR6020P

DR6020P 是带有 3 组 6 路 DRP USB-C 及 PD 通信协议处理模块和 USB2.0 Device 功能的 16 位 RISC MCU&#xff0c;内置 8K16 位 MTP 程序存储器&#xff08;可烧录 1000 次&#xff09;&#xff0c;512 字节的数据存储器&#xff08;SRAM&#xff09;。内置 LDO 5V 输出&#…

微服务学习(九):安装OpenOffice

微服务学习&#xff08;九&#xff09;&#xff1a;安装OpenOffice 一、下载OpenOffice 下载地址&#xff1a;OpenOffice 二、开始安装 上传资源到服务器 解压资源包 tar -zxvf Apache_OpenOffice_4.1.13_Linux_x86-64_install-rpm_zh-CN.tar.gz进入zh-CN/RPMS目录下安装…

【Linux】生产消费模型 + 线程池

文章目录 &#x1f4d6; 前言1. 生产消费模型2. 阻塞队列2.1 成员变量&#xff1a;2.2 入队(push)和出队(pop)&#xff1a;2.3 封装与测试运行&#xff1a;2.3 - 1 对代码进一步封装2.3 - 2 分配运算任务2.3 - 3 测试与运行 3. 循环阻塞队列3.1 POSIX信号量&#xff1a;3.1 - 1…

人工智能生成内容AIGC:AIGC for Various Data Modalities: A Survey

论文作者&#xff1a;Lin Geng Foo,Hossein Rahmani,Jun Liu 作者单位&#xff1a;Singapore University of Technology and Design (SUTD); Lancaster University 论文链接&#xff1a;http://arxiv.org/abs/2308.14177v1 内容简介&#xff1a; 人工智能生成内容&#xff…