网络基础-IP地址(IPv4)

2024-05-03 21:44
文章标签 基础 ip 地址 网络 ipv4

本文主要是介绍网络基础-IP地址(IPv4),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

IP地址是指互联网协议地址(Internet Protocol Address),它是分配给网络设备的数字标识符,用于在网络中定位和识别设备。IP地址使得数据包能够在网络中正确地发送和路由到目标设备。

IP地址分为IPv4地址和IPv6地址两类,本篇文章主要对IPv4进行介绍

IPv4地址的表示方法

IPv4(Internet Protocol version 4)由32位二进制数字组成,通常以”点分十进制“(dotted-decimal)表示,这32位二进制数字被分为四个8位(一个字节)的组,每个组用十进制数表示,其十进制的范围为0.0.0.0~255.255.255.255。

IPv4地址组成
一个IPv4地址由网络标识和主机标识组成。

网络标识:是IPv4地址中用于表示特定网络的部分。在IPv4地址中,网络标识指示了网络的身份,并决定了哪个网络中的设备被分配了该IP地址。网络标识的长度取决于IP地址的分类子网掩码

主机标识(Host ID)是指在IPv4地址中用于标识特定主机(或设备)的部分。在IPv4地址中,主机标识确定了特定网络中的哪台设备被分配了该IP地址。主机标识的长度取决于IP地址的分类子网掩码

IPv4地址的分类

分类方法①:

IPv4地址根据其最高位的几位数字被分为以下五个主要类别:A类、B类、C类、D类和E类。

A类地址:
A类地址的范围是1.0.0.0到127.255.255.255。
在A类地址中,第一个字节的最高位固定为0(二进制形式)。

A类地址包含有特殊的地址范围,它们被保留用于特定目的而不被用于普通的网络分配。这些特殊地址是:

0.0.0.0:被用作默认路由(Default Route)地址,通常表示未知或未指定的目的地;可以标识任意地址。
127.0.0.0 ~ 127.255.255.255:这个范围被保留用于回环测试(Loopback Testing)。其中的127.0.0.1是最常见的回环地址(localhost),用于将数据发送回发送者,通常用于测试网络接口或本地主机上的服务。、
B类地址:
B类地址的范围是128.0.0.0到191.255.255.255
B类地址中,第一个字节的最高位固定为10(二进制形式)

B类地址中的特殊地址:

本地链路地址,地址范围169.254.0.0~160.254.255.255
当主机自动获取地址失败后,可 使用该网段中的某个地址进行临时通信。
C类地址
C类地址的范围是192.0.0.0到223.255.255.255
在C类地址中,第一个字节的最高位固定为110
D类地址
D地址用于多播/组播(Multicast)通信,该类地址范围是224.0.0.0到239.255.255.255
D类地址不具备网络标识或主机标识,而是用于多播组的标识
E类地址
E类地址保留用于实验和未分配的目的,该类地址的范围是240.0.0.0到255.255.255.255
E类地址不具备网络标识或主机标识

第二种分类方法②:

IPv4地址可以分为公有地址和私有地址两种类型,它们用于不同的网络环境和目的。

公有地址(Public Address)
公有地址是指由互联网注册机构(如IANA、RIPE等)分配给组织或个人使用的IP地址。这些地址可以在因特网上直接访问和路由,用于公共网络通信,通常用于托管公共服务、网站、服务器等。
私有地址(Private Address)
私有地址是保留用于内部网络或局域网的IP地址,不会被路由到因特网上;这些地址通常用于组织内部网络、家庭网络或私人网络中的设备;私有地址范围是在IPv4地址空间中专门保留的,以便在私有网络中使用而不与公共网络冲突。

IPv4私有地址的范围包括:

  • A类中的私有地址范围:10.0.0.0 到 10.255.255.255(CIDR表示法为10.0.0.0/8)

  • B类中的私有地址范围:172.16.0.0 到 172.31.255.255(CIDR表示法为172.16.0.0/12)

  • C类中的私有地址范围:192.168.0.0 到 192.168.255.255(CIDR表示法为192.168.0.0/16)

第三种分类:

根据IPv4地址的特定属性,主要是根据地址中的主机标识部分的值来进行分类;可以分为网络地址、广播地址、可用地址。

网络地址
网络地址是IPv4地址中的第一个地址,用于表示整个网络的范围。在网络地址中,主机标识部分全部为0。这使得网络地址可以用来标识一个网络的起始位置。

例如:192.168.10.0/24

广播地址
广播地址用于向一个网络中的所有设备发送数据包。在IPv4中,广播地址的主机标识部分全部为1,使得该地址可以将数据包发送到网络中的所有设备。

例如:192.168.10.255/24

广播地址分类:

①有限广播地址/本地广播地址,地址范围255.255.255.255
可作为目的地址,发往当前广播域内的所有主机(受限于网关)。
​
②定向广播地址,地址范围X.255.255.255、X.X.255.255、X.X.X.255
发往目标广播域的所有主机。

可用地址
可用地址是指在一个网络中可以分配给主机使用的IP地址范围。在一个子网中,可用地址是网络地址和广播地址之间的所有地址。这些地址用于分配给具体的主机使用,用于网络通信和数据传输。

例如:192.168.10.1/24

网络掩码

网络掩码(Subnet Mask)是一个32位的二进制数字,用于将一个IPv4地址划分为网络标识部分和主机标识部分。网络掩码与IPv4地址一起使用,以确定一个IP地址属于哪个网络,以及其网络和主机部分的长度。网络掩码中的连续的1位表示网络标识,连续的0位表示主机标识。网络掩码中的1位和0位的数量及其位置确定了网络的范围和主机的数量。

A类地址默认网络掩码:255.0.0.0 (CIDR表示法为 /8),表示网络部分有8位,主机部分有24位,即一个子网中有2^24-2个可用主机地址。
​
B类地址默认网络掩码:255.255.0.0 (CIDR表示法为 /16),表示网络部分有16位,主机部分有16位,即一个子网中有2^16-2个可用主机地址。
​
C类地址默认网络掩码:255.255.255.0 (CIDR表示法为 /24),表示网络部分有24位,主机部分有8位,即一个子网中有2^8-2个可用主机地址。

IP地址计算

网络地址(网络号)计算
  1. 首先,确定给定IP地址的IPv4地址和网络掩码。例如,IP地址为192.168.1.10,网络掩码为255.255.255.0。

  2. 将IP地址和网络掩码分别转换为二进制形式。

  3. 将网络掩码应用于IP地址,将其与IP地址按位相与(AND操作)。这会产生网络地址。

  4. 计算广播地址的方法取决于网络地址的类型(A类、B类或C类)。对于大多数情况,广播地址可以通过将网络地址的主机标识部分全部设置为1来获得。

  5. 将计算出的网络地址和广播地址从二进制转换为十进制,以获得最终的网络地址和广播地址。

下面是一个示例:

IP地址:192.168.1.10
网络掩码:255.255.255.0
​
将IP地址和网络掩码转换为二进制:
IP地址:11000000.10101000.00000001.00001010
网络掩码:11111111.11111111.11111111.00000000
​
网络地址 = IP地址 AND 网络掩码 = 11000000.10101000.00000001.00000000 = 192.168.1.0
广播地址 = 网络地址 + 主机位取反 = 192.168.1.0 + 00000000.00000000.00000000.11111111 = 192.168.1.255

这篇关于网络基础-IP地址(IPv4)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地

mysql的基础语句和外键查询及其语句详解(推荐)

《mysql的基础语句和外键查询及其语句详解(推荐)》:本文主要介绍mysql的基础语句和外键查询及其语句详解(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录一、mysql 基础语句1. 数据库操作 创建数据库2. 表操作 创建表3. CRUD 操作二、外键

Python基础语法中defaultdict的使用小结

《Python基础语法中defaultdict的使用小结》Python的defaultdict是collections模块中提供的一种特殊的字典类型,它与普通的字典(dict)有着相似的功能,本文主要... 目录示例1示例2python的defaultdict是collections模块中提供的一种特殊的字

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

C#基础之委托详解(Delegate)

《C#基础之委托详解(Delegate)》:本文主要介绍C#基础之委托(Delegate),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 委托定义2. 委托实例化3. 多播委托(Multicast Delegates)4. 委托的用途事件处理回调函数LINQ