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教程
扩展阅读
最新文章
- applicationContext配置文件中的属性说明
- 三级联动(在YII框架中)
- Codeforces Beta Round #51 A. Flea travel 水题
- Android学习笔记之百度地图
- cron表达式详解(Spring定时任务配置时间间隔)
- Android从相册读取图片
- iOS6和iOS7适应代码(6) —— NSLocalizedString
- C#中MessageBox.Show()方法详解
- Readiness 探测 - 每天5分钟玩转 Docker 容器技术(144)
- 《C#并发编程经典实例》学习笔记—2.4 等待一组任务完成
- 【Appium】Appium工作原理(2)
- [图形]图形API的两种模式
- Python yaml处理
- AFNetWorking上传JSON串
- 2018/04/01 每日一个Linux命令 之 sleep
- MyEclipse2014破解方法
- Daily Scrum (2015/11/8)
- I.MX6 Manufacturing Tool V2 (MFGTool2) Emmc mksdcard-android.sh hacking
- daterangepicker的个性化使用技巧
- 如何利用webmin在Linux主机中添加网站
热门文章
- 洛谷4606 SDOI2018战略游戏(圆方树+虚树)
- 如何在另一台设备上搭建python接口自动化项目所需要的第三方库
- 【数据结构】<;栈的应用>;回文判断
- SharkCTF2021 easy_phpserialize题记
- python打印爱心
- BUAA 2020 软件工程 个人博客作业
- 网络摄像机中的IR-CUT详解
- Exynos4412 中断处理流程详解
- Luogu P2982 [USACO10FEB]慢下来 Slowing down | dfs序、线段树
- hdu 1158 Employment Planning(DP)