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

IPv4 寻址方式简介的更多相关文章

  1. IPv6 寻址方式简介

     在计算机网络中,寻址模式是指在网络上托管地址的机制.IPv6 提供了多种类型的模式,可以通过这些模式对单个主机进行寻址.也可以同时对多个主机进行寻址或者寻址最近距离的主机. 单播寻址 在单播寻址方式 ...

  2. ipv4 ipv6简介

    互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),缩写为IP地址(IP Address),在Internet上,一种给主机编址的方式.常见的IP地址,分为 ...

  3. ipv4与ipv6 Inet4Address类和Inet6Address类

    在设置本地IP地址的时候,一些人会疑惑IPv4与IPv6的区别是什么?下面由学习啦小编为你分享ipv4与ipv6的区别的相关内容,希望对大家有所帮助. ipv4与ipv6的区别 在windows 7以 ...

  4. vmware centos 安装

    一.分区 一块硬盘主分区+扩展分区最多只能有4个,其中扩展分区最多只能有1个.扩展分区不能写入数据,只能包含逻辑分区.这些都不是linux的限制,而是硬盘结构的限制. 分区号 第一种分区法: |--- ...

  5. C#实现局域网聊天 通讯 Socket TCP 多人

    程序分别为服务端与客户端,服务端创建套接字使用多线程侦听多客户端请求 代码需要引用System.Net:和System.Net.Socket:这两个类 分享源码demo:https://pan.bai ...

  6. linux进阶之nmtui和nmcli配置网络

    CentOS7配置网络推荐使用NetworkManager服务(不推荐network服务). 图形化方式:nmtui或Applications->System Tools->Setting ...

  7. 网络拓扑实例13:IPv4静态路由与NQA联动简介

    组网图形 IPv4静态路由与NQA联动简介 网络质量分析NQA(Network Quality Analysis)是一种实时的网络性能探测和统计技术,可以对响应时间.网络抖动.丢包率等网络信息进行统计 ...

  8. 套接字编程简介: IPV4套接字地址结构/ 通用套接字地址结构/ IPV6套接字地址结构/新通用套接字地址结构

    IPv4套接字地址结构通常也称为“网际套接字地址结构”,它以sockaddr_in命名,定义在<netinet/in.h>头文件中. struct in_addr { in_addr_t ...

  9. JavaScript简介及示例

    JavaScript简介及使用 一.简介 JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛 ...

随机推荐

  1. 洛谷2543AHOI2005]航线规划 (树剖+线段树+割边思路)

    这个题的思路还是比较巧妙的. 首先,我们发现操作只有删除和询问两种,而删除并不好维护连通性和割边之类的信息. 所以我们不妨像WC2006水管局长那样,将询问离线,然后把操作转化成加边和询问. 然后,我 ...

  2. 洛谷4630APIO2018铁人两项(圆方树+dp)

    QWQ神仙题啊(据说是今年第一次出现圆方树的地方) 首先根据题目,我们就是求对于每一个路径\((s,t)\)他的贡献就是两个点之间的点数,但是图上问题我并没有办法很好的解决... 这时候考虑圆方树,我 ...

  3. Netty 组件分析

    EventLoop 事件循环对象 EventLoop 本质是一个单线程执行器(同时维护了一个 Selector),里面有 run 方法处理 Channel 上源源不断的 io 事件. 它的继承关系比较 ...

  4. 函数返回值为 const 指针、const 引用

    函数返回值为 const 指针,可以使得外部在得到这个指针后,不能修改其指向的内容.返回值为 const 引用同理. class CString { private: char* str; publi ...

  5. 使用固件库点亮led灯

    1. 项目 使用STM32F103VE的固件库实现流水灯设计. 2. 代码 由于这是基于野火的视频进行学习的,项目代码在上节基础上进行编写的. 点亮绿灯: main.c #include " ...

  6. Java:并发笔记-03

    Java:并发笔记-03 说明:这是看了 bilibili 上 黑马程序员 的课程 java并发编程 后做的笔记 3. 共享模型之管程-2 本章内容-2 Monitor wait/notify 3.6 ...

  7. OO_JAVA_JML系列作业_单元总结

    OO_JAVA_JML系列作业_单元总结 (1)梳理JML语言的理论基础.应用工具链情况 简单梳理 以下三者是jml规格里的核心,对一个方法功能和属性的限制: requires子句:规定方法的前置条件 ...

  8. flutter页面间跳转和传参-Navigator的使用

    flutter页面间跳转和传参-Navigator的使用 概述 flutter中的默认导航分成两种,一种是命名的路由,一种是构建路由. 命名路由 这种路由需要一开始现在创建App的时候定义 new M ...

  9. Prometheus基于文件的服务发现

    Prometheus基于文件的服务发现 一.基于文件的服务发现 1.prometheus.yml 配置文件的写法 2.file_sd 目录下的文件 3.配置结果 二.注意事项 三.参考链接 一.基于文 ...

  10. QMake(Qt项目构建)

    qmake工具能够简化不同平台上的项目构建.可以自动产生Makefiles文件,仅仅需要少量的信息就可以生成Makefile文件.同时qmake也可以构建不是Qt的项目.qmake基于项目文件中的信息 ...