IPv4 寻址方式简介
IPv4 支持三种不同类型的寻址模式。单播寻址方式、广播寻址方式和组播寻址方式。本章节我们来介绍这些寻址方式。
单播寻址方式
在这种模式下,数据只发送到一个目标主机。Destination Address 字段包含目标主机的 32 位 IP 地址。在这里,客户端将数据发送到目标服务器

广播寻址方式
在这种模式下,数据包被寻址到一个网段内的所有主机。Destination Address 字段包含一个特殊的广播地址,即255.255.255.255。当主机在网络上看到这个数据包时,它必然会对其进行处理。在这里,客户端发送一个数据包,所有服务器都接受它

组播寻址方式
这种模式是前两种模式的混合,即发送的数据包既不是去往单个主机,也不是去往网段上的所有主机。在这个数据包中,目标地址包含一个以 224.xxx 开头的特殊地址,可以被多个主机接收。

在这里,服务器发送由多个服务器接收的数据包。每个网络都有一个为代表网络的网络号保留的 IP 地址和一个为广播地址保留的 IP 地址,它代表该网络中的所有主机。
分层寻址方案
IPv4 使用分层寻址方案。一个 32 位长的 IP 地址被分成两个或三个部分,如图所示

单个 IP 地址可以包含有关网络及其子网以及最终主机的信息。该方案使 IP 地址能够分层,其中网络可以有许多子网,而子网又可以有许多主机。
子网掩码
32 位 IP 地址包含有关主机及其网络的信息。对二者的区分是非常有必要的。为此,路由器使用子网掩码,它与 IP 地址中网络地址的长度是一样的,也是 32 位长。二进制的 IP 地址与其子网掩码进行 AND 运算,结果将产生网络地址。例如,假设 IP 地址为 192.168.1.152,子网掩码为 255.255.255.0,则运算过程如下图所示

这样子网掩码有助于从 IP 地址中提取网络 ID 和主机。现在可以确定 192.168.1.0 是网络编号,而 192.168.1.152 是该网络上的主机。
二进制表示
位置表示法是从十进制值转换二进制值的最简单形式。IP 地址是 32 位值,分为 4 个字节。一个字节组包含 8 位二进制位,每个位的值可以由位值“1”在八位组中的位置确定。

位置值由 2 的 (位置 - 1)次幂决定,即 1 在第 6 位的值是 2(6-1) 即 25 ,值为 32。八位字节是通过将位的位置值相加来确定的。11000000 的值是 128+64 = 192。
可以通过下表的一些例子加深一下理解
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | 值 |
|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 2 |
| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 3 |
| 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 4 |
| 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 5 |
| 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 6 |
| 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 7 |
| 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 8 |
| 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 9 |
| 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 10 |
| 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 16 |
| 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 32 |
| 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 64 |
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 128 |
| 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 168 |
| 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 192 |
| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 255 |
更多关于IPv4的内容可以参考 迹忆客 IPV4教程
扩展阅读
IPv4 寻址方式简介的更多相关文章
- IPv6 寻址方式简介
在计算机网络中,寻址模式是指在网络上托管地址的机制.IPv6 提供了多种类型的模式,可以通过这些模式对单个主机进行寻址.也可以同时对多个主机进行寻址或者寻址最近距离的主机. 单播寻址 在单播寻址方式 ...
- ipv4 ipv6简介
互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),缩写为IP地址(IP Address),在Internet上,一种给主机编址的方式.常见的IP地址,分为 ...
- ipv4与ipv6 Inet4Address类和Inet6Address类
在设置本地IP地址的时候,一些人会疑惑IPv4与IPv6的区别是什么?下面由学习啦小编为你分享ipv4与ipv6的区别的相关内容,希望对大家有所帮助. ipv4与ipv6的区别 在windows 7以 ...
- vmware centos 安装
一.分区 一块硬盘主分区+扩展分区最多只能有4个,其中扩展分区最多只能有1个.扩展分区不能写入数据,只能包含逻辑分区.这些都不是linux的限制,而是硬盘结构的限制. 分区号 第一种分区法: |--- ...
- C#实现局域网聊天 通讯 Socket TCP 多人
程序分别为服务端与客户端,服务端创建套接字使用多线程侦听多客户端请求 代码需要引用System.Net:和System.Net.Socket:这两个类 分享源码demo:https://pan.bai ...
- linux进阶之nmtui和nmcli配置网络
CentOS7配置网络推荐使用NetworkManager服务(不推荐network服务). 图形化方式:nmtui或Applications->System Tools->Setting ...
- 网络拓扑实例13:IPv4静态路由与NQA联动简介
组网图形 IPv4静态路由与NQA联动简介 网络质量分析NQA(Network Quality Analysis)是一种实时的网络性能探测和统计技术,可以对响应时间.网络抖动.丢包率等网络信息进行统计 ...
- 套接字编程简介: IPV4套接字地址结构/ 通用套接字地址结构/ IPV6套接字地址结构/新通用套接字地址结构
IPv4套接字地址结构通常也称为“网际套接字地址结构”,它以sockaddr_in命名,定义在<netinet/in.h>头文件中. struct in_addr { in_addr_t ...
- JavaScript简介及示例
JavaScript简介及使用 一.简介 JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛 ...
随机推荐
- centos7谷歌chrome内网部署演示
上传需要的包,注释网关创建内网环境 [root@localhost ~]# ls anaconda-ks.cfg chrome mcw4 mcw4.tar.gz mcwchromerpm.tar.gz ...
- DL4J实战之五:矩阵操作基本功
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- nmap常用命令汇总
nmap常用命令 选项 解释 使用举例 举例说明 Nmap主机发现 -sP Ping扫描 -P0 无Ping扫描 -PS TCP SYN Ping扫描 -PA TCP ACK ...
- Python小工具:据说这是搜索文件最快的工具!没有之一!一起感受下......
电脑自带的搜索文件功能相信大家都体验过,那是真的慢,等它找到文件,我都打完一把游戏了! 那必须不能忍,于是我自己做了一个文件搜索工具,犄角旮旯的文件都能一秒钟搜索出来的那种! 保证能把你们男(女)朋友 ...
- JSP(java server pages)安装开发和执行环境
JSP是一种动态网页技术标准. 它是在传统的网页HTML文件中插入Java程序段(Scriptlet)和JSP标记(tag)的.jsp文件: java程序段:操纵数据库,重新定向网页,发送email等 ...
- LeetCode:“剑指 Offer”
LeetCode:"剑指 Offer" 刷题小菜鸡,花了几天时间做了一遍 LeetCode 上给出的 "剑指 Offer" 在此做一下记录 LeetCode主页 ...
- .net,C#,Vb,F#,Asp,Asp.net区别以及作用和方向
.net是平台,其他都是运行在其.NET FrameWork环境下的 C#,Vb都是语言运行在.net 平台下 Asp,Asp.net 都是用来写Web网页的,但是Asp和Asp.net有区别 Asp ...
- 洛谷 P5664 [CSP-S2019] Emiya 家今天的饭
链接: P5664 题意: 给出一个 \(n*m\) 的矩阵 \(a\),选 \(k\) 个格子(\(1\leq k\leq n\)),每行最多选一个,每列最多选\(⌊\dfrac k2⌋\) 个,同 ...
- 神经网络 感知机 Perceptron python实现
import numpy as np import matplotlib.pyplot as plt import math def create_data(w1=3,w2=-7,b=4,seed=1 ...
- 暴力尝试安卓gesture.key
import hashlib import os import itertools f = open(r'D:\KEY\gesture.key','r') psd = f.readline() f.c ...