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教程

扩展阅读

IPV6教程

最新文章

  1. applicationContext配置文件中的属性说明
  2. 三级联动(在YII框架中)
  3. Codeforces Beta Round #51 A. Flea travel 水题
  4. Android学习笔记之百度地图
  5. cron表达式详解(Spring定时任务配置时间间隔)
  6. Android从相册读取图片
  7. iOS6和iOS7适应代码(6) —— NSLocalizedString
  8. C#中MessageBox.Show()方法详解
  9. Readiness 探测 - 每天5分钟玩转 Docker 容器技术(144)
  10. 《C#并发编程经典实例》学习笔记—2.4 等待一组任务完成
  11. 【Appium】Appium工作原理(2)
  12. [图形]图形API的两种模式
  13. Python yaml处理
  14. AFNetWorking上传JSON串
  15. 2018/04/01 每日一个Linux命令 之 sleep
  16. MyEclipse2014破解方法
  17. Daily Scrum (2015/11/8)
  18. I.MX6 Manufacturing Tool V2 (MFGTool2) Emmc mksdcard-android.sh hacking
  19. daterangepicker的个性化使用技巧
  20. 如何利用webmin在Linux主机中添加网站

热门文章

  1. 洛谷4606 SDOI2018战略游戏(圆方树+虚树)
  2. 如何在另一台设备上搭建python接口自动化项目所需要的第三方库
  3. 【数据结构】<栈的应用>回文判断
  4. SharkCTF2021 easy_phpserialize题记
  5. python打印爱心
  6. BUAA 2020 软件工程 个人博客作业
  7. 网络摄像机中的IR-CUT详解
  8. Exynos4412 中断处理流程详解
  9. Luogu P2982 [USACO10FEB]慢下来 Slowing down | dfs序、线段树
  10. hdu 1158 Employment Planning(DP)