计算机网络之IPv4深度解析

2024-08-20 18:12

本文主要是介绍计算机网络之IPv4深度解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一.IP地址

IP地址的组成方式:网络号 + 主机号

可以这样理解,根据网络号找路由器,根据主机号找连着路由器的主机

早期分类的IP地址

表示如下:

其中,有些特殊的IP地址:

主机号全为0,表示本网络本身,主机号全为1,表示本网络的广播地址

网络号和主机号全为0,代表自己的主机,全为1代表这个路由器的广播域进行广播

因此,我们发现,正常主机的主机号是不能全为0或者全为1的,因此,如果一个网络的主机号有N位,它最多有2^N-2个主机,同时,我们也知道,一个网络的主机号长度绝对不能为1

私有IP地址

可以理解为只能在同一个网络(连接同一个路由器)的情况下的交流

他们需要经过网络地址转换将专用网络转换为公共地址,节省了IP地址的消耗

NAT路由器通过NAT转换表更改IP地址和端口

划分子网

三级IP地址结构:网络号+子网号+主机号(请注意:划分子网的子网号实际是从主机号中划分的)

网络号相同,在同一个网络下,子网号相同,在同一个子网下

划分的子网可以大小相同,也可以不同

子网掩码:网络号和子网号全为1,主机号全为0

可与IP地址进行与运算得出对应的子网的网络地址,例如

208.115.21.15的子网掩码225.225.225.0,可以得出子网是208.115.21.0

CIDR表示IP地址:网络前缀+主机号        或 IP +子网掩码中1的长度(斜线表示法)

路由聚合:两个网络用16进制书写后进行与运算后用CIDR表示IP地址

二.协议

ARP(地址解析协议):进行IP地址到MAC地址的映射

局域网内传输数据报:1.ARP告诉缓存查看目的地址,有则硬件地址写入MAC帧       

 2.若无,封装并广播请求分组,接收方单播发送相应分组,写入ARP缓存,发送帧

DHCP(动态主机配置协议,应用层):允许计算机加入新网络和自动获取IP地址

1.客户广播“发现信息”,源地址0.0.0.0         目的地址255.255.255.255

2.服务器广播“DHCP提供信息”源地址服务器地址                 目的地址255.255.255.255

3.客户若接收地址,广播“DHCP请求消息”        源地址为0.0.0.0,目的地址为255.255.255.255

4.服务器“DHCP确认信息”分配IP地址        源地址DHCP服务器,目的地址255.255.255.255

ICMP(网际控制报文协议):差错报文,询问报文

三.IP地址习题

1.转发表

按照最长前缀匹配原则,首先是能匹配,然后看谁最长,R3的前22位是不匹配的,目的地址前22位132.19.111011,R3的前22位为132.19.111001不能是R3,答案为R2

2.划分子网

主机号剩余5位,但划分后最少剩余2位,因此子网位3位,8,当只有一个子网,不进行划分时,每个子网含IP地址最多,但要把主机号全0和全1去掉

3.两个地址

一台主机如果有两个IP地址,那么他们的网络一定不同,192属于C类网络,选C

4.多余地址

不重叠意味着IP地址一定不相同,不引入多余地址意味着两者含有所有地址,B,不重合,且聚合后为172.116.166.128/25

5.通信故障

通信故障意味着不在同一个子网中,网络号+子网号共27位,主机号共5位,A,C,D在同一个子网202.3.1.32/27中,B属于2022.3.1.64/27

6.广播地址

广播地址的主机号一定全为1,前18位为网络号+主机号,因此把原IP的后14位全部改为1即可

7.最小子网

最小子网的划分类似于A,B,C类的划分,0,10,110这样进行划分,故第五个子网的子网号为11110,占5位,7位的主机号,故答案为254

8.默认网关

默认网关的主机号全为0,子网掩码看网络号+子网号长度为27,全部置为1即可,选择D

9.源IP地址

经过R2后,改成全球IP地址,R1和R2在同一子网中,因此,R2的IP为195.123.0.33

这篇关于计算机网络之IPv4深度解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1090809

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

韦季李输入法_输入法和鼠标的深度融合

在数字化输入的新纪元,传统键盘输入方式正悄然进化。以往,面对实体键盘,我们常需目光游离于屏幕与键盘之间,以确认指尖下的精准位置。而屏幕键盘虽直观可见,却常因占据屏幕空间,迫使我们在操作与视野间做出妥协,频繁调整布局以兼顾输入与界面浏览。 幸而,韦季李输入法的横空出世,彻底颠覆了这一现状。它不仅对输入界面进行了革命性的重构,更巧妙地将鼠标这一传统外设融入其中,开创了一种前所未有的交互体验。 想象

OWASP十大安全漏洞解析

OWASP(开放式Web应用程序安全项目)发布的“十大安全漏洞”列表是Web应用程序安全领域的权威指南,它总结了Web应用程序中最常见、最危险的安全隐患。以下是对OWASP十大安全漏洞的详细解析: 1. 注入漏洞(Injection) 描述:攻击者通过在应用程序的输入数据中插入恶意代码,从而控制应用程序的行为。常见的注入类型包括SQL注入、OS命令注入、LDAP注入等。 影响:可能导致数据泄

从状态管理到性能优化:全面解析 Android Compose

文章目录 引言一、Android Compose基本概念1.1 什么是Android Compose?1.2 Compose的优势1.3 如何在项目中使用Compose 二、Compose中的状态管理2.1 状态管理的重要性2.2 Compose中的状态和数据流2.3 使用State和MutableState处理状态2.4 通过ViewModel进行状态管理 三、Compose中的列表和滚动

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

免费也能高质量!2024年免费录屏软件深度对比评测

我公司因为客户覆盖面广的原因经常会开远程会议,有时候说的内容比较广需要引用多份的数据,我记录起来有一定难度,所以一般都用录屏工具来记录会议内容。这次我们来一起探索有什么免费录屏工具可以提高我们的工作效率吧。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  录屏软件录屏功能就是本职,这款录屏工具在录屏模式上提供了多种选项,可以选择屏幕录制、窗口

多线程解析报表

假如有这样一个需求,当我们需要解析一个Excel里多个sheet的数据时,可以考虑使用多线程,每个线程解析一个sheet里的数据,等到所有的sheet都解析完之后,程序需要提示解析完成。 Way1 join import java.time.LocalTime;public class Main {public static void main(String[] args) thro