【TCP/IP】IP地址分类和特殊IP地址

【TCP/IP】IP地址分类和特殊IP地址IP地址是因特网技术中的一个非常重要的概念,IP地址在IP层实现了底层网络地址的统一,使因特网的网络层地址具有全局唯一性和一致性。IP地址含有位置信息,反映了主机的网络连接,使因特网进行寻址和路由选择的依据。 IP地址概述地址是标识对象所处位置的标识符。传输中的信息带有源地址和目的地址,分别标识通信的源结点和目的结点,即信源和信宿。目的地址是传输设备为信息进行寻址的依据。不同的物理…

大家好,又见面了,我是你们的朋友全栈君。

IP地址是因特网技术中的一个非常重要的概念,IP地址在IP层实现了底层网络地址的统一,使因特网的网络层地址具有全局唯一性和一致性。IP地址含有位置信息,反映了主机的网络连接,使因特网进行寻址和路由选择的依据。

 

IP地址概述

地址是标识对象所处位置的标识符。传输中的信息带有源地址和目的地址,分别标识通信的源结点和目的结点,即信源和信宿。目的地址是传输设备为信息进行寻址的依据。

不同的物理网络技术(底层网络技术)通常具有不同的编址方式,这种差异主要表现:不同的地址结构、不同的地址长度

在一个物理网络中,每个结点都至少有一个机器可识别的地址,该地址叫作物理地址。物理地址又称为硬件地址、MAC地址或第二层地址。物理地址有两个特点:不一致性、不唯一性。

  • 不一致性是指不同的物理网络技术采用不同的编址方式;
  • 不惟一性是指不同的物理网络中的结点的物理地址可能重复。

为了保证寻址的正确性,必须确保一个网络中结点地址的惟一性。另外,不同物理网络在地址编址方式上的不统一会给寻址带来极大的不便。在进行网络互联时首先要解决的问题是物理网络地址的统一问题。

因特网是在网络级进行互联的,因此,因特网在网络层(IP层)完成地址的统一工作,将不同物理网络的地址统一到具有全球惟一性的IP地址上,IP层所用到的地址叫作因特网地址,又叫IP地址。

【TCP/IP】IP地址分类和特殊IP地址

因特网采用一种全局通用的地址格式,为全网的每一个网络和每一台主机都分配一个IP地址,以此屏蔽物理网络地址的差异。

因特网沿用了ARPANET的思想,仍然采用层次型地址。因特网由网络联结而成,网络由主机联结而成。这种地址体现了网络的层次结构,便于进行寻址。IP地址由网络号和主机号构成。表示为:

IP-address ::= {<Network-number>, <Host-number>}

网络号(Network-number) 主机号(Host-number)

其中:网络号的长度决定了整个因特网中能容纳多少网络,主机号的长度决定每个网络能容纳多少台主机。

因特网的IP协议提供了一种全因特网通用的地址格式(保证一致性),并在统一管理下进行IP地址的分配(保证惟一性),确保一个地址对应一台因特网主机(或路由器)。 由于IP地址标识了一个主机的位置(所属的网络),当将一台主机从一个网络移到另一个网络时必须改变这台主机的IP地址。(一般来说)

IPv4规定,因特网地址长度为32比特(IPv6规定地址长度为128比特)。IPv4的地址空间为2^32,即4 294 967 296个IP地址。IP地址一般用点分十进制数表示,例如202.119.84.120。这四个用点分隔的段分别对应四个字节。IP地址也可以用二进制(11001010 01110111 01010100 01111000)或十六进制表示(0XCA775478)。IP地址的二进制表示在讨论地址类别和掩码时经常会用到,而十六进制表示在IPv4中很少使用。

 

分类IP地址

传统的因特网采用分类地址。IP定义了五类IP地址:A类、B类、C类、D类和E类。如下图所示:

【TCP/IP】IP地址分类和特殊IP地址

各类网络所占地址空间的比例如下图所示:

【TCP/IP】IP地址分类和特殊IP地址

A、B和C是三个基本的类,分别代表不同规模的网络:

  • A类地址:1个字节的网络号,3个字节的主机号,用于少量的大型网络;
  • B类地址:2个字节的网络号,2个字节的主机号,用于中等规模的网络;
  • C类地址:3个字节的网络号,1个字节的主机号,用于小规模的网络。

A类地址

第一个字节的最高位固定为0,另外7比特可变的网络号可以标识128个网络(0~127),0一般不用,127用作环回地址。所以共有126个可用的A类网络。A类地址的24比特主机号可以标识1677216台主机(2^24 =1677216)。另外,主机号为全0时用于表示网络地址,主机号为全1时用于表示广播地址。这两个主机号不能用来标识主机。所以,每个A类网络最多可以容纳1 677 214台主机。A类地址的第一个字节的取值范围为0~127。

B类地址

第一个字节的最高2比特固定为10,另外14比特可变的网络号可以标识214=16384个网络。16比特主机号可以标识65 536台主机,(216=65536)。由于主机号不能为全0和全1,所以,每个B类网络最多可以容纳65534台主机。B类地址的第一个字节的取值范围为128~191。

C类地址

第一个字节的最高3比特固定为110,另外21比特可变的网络号可以标识221=2097152个网络。8比特主机号可以标识256台主机(28=256),由于主机号不能为全0和全1。所以,每个C类网络最多可以容纳254台主机。C类地址的第一个字节的取值范围为192~223。

D类地址

D类地址用于组播(multicasting),因此,D类地址又称为组播地址。D类地址的范围为224.0.0.0~239.255.255.255,每个地址对应一个组,发往某一组播地址的数据将被该组中的所有成员接收。D类地址不能分配给主机。D类地址的第一个字节的取值范围为224~239。

有些D类地址已经分配用于特殊用途:

224.0.0.0 是保留地址、224.0.0.1 是指本子网中的所有系统、224.0.0.2 是指本子网中的所有路由器、224.0.0.9 是指运行RIPv2路由协议的路由器、224.0.0.11是指移动IP中的移动代理。

另外,还有一些D类地址留给了网络会议:

224.0.1.11 用于IETF-1-AUDIO、224.0.1.12 用于IETF-1-VIDEO

E类地址

E类地址为保留地址,可以用于实验目的。E类地址的范围:240.0.0.0 ~ 255.255.255.254,E类地址的第一个字节的取值范围为240~255。 

在分类地址网络中每个网络占用一个地址块。各类网络地址块的示例如下表所示:

各类网络地址块的示例
类别 起始地址 结束地址 网络地址 主机地址范围 广播地址
A类 86.0.0.0 86.255.255.255 86.0.0.0 86.0.01-86.255.255.254 86.255.255.255
B类 188.6.0.0 188.6.255.255 188.6.0.0 188.6.0.1-188.6.255.254 188.6.255.255
C类 206.8.2.0 206.8.2.255 206.8.2.0 206.8.2.1-206.8.2.254 206.8.2.255

每个网络都要占用两个IP地址,一个用于标识网络,一个用于网络广播。每个网络使用该网络地址块的起始地址作为网络地址,该地址仅作为网络的标识,主要用在网络路由中。网络地址块的结束地址被用作该网络的广播地址。

在因特网的地址中包含了网络信息。当一个路由器或网关连到多个网络上时,每个网络都会给路由器或网关分配一个IP地址,设备有多少个网络连接,就有多少个IP地址。而且这些IP地址分别属于不同的网络。一台主机也可以连接多个网络,这种主机叫作多宿主主机(Multi-homed Host)。多宿主主机拥有多个IP地址,每个地址对应于一个物理连接。下图是一个多宿主主机的例子:

【TCP/IP】IP地址分类和特殊IP地址

因特网地址的本质是标识主机的网络连接。

因特网地址是由中央管理机构进行分配的。一个组织加入因特网时,从因特网的网络信息中心InterNIC获得网络前缀,然后负责组织内部的地址分配。这样,既解决了全局唯一性问题,又分散了管理负担。

 

特殊IP地址

在IP地址中有一些并不是来标注主机的,这些地址具有特殊的意义。这些地址包括网络地址、直接广播地址、受限广播地址、本网络地址、环回地址等。

网络地址

因特网上的每个网络都有一个IP地址,其主机号部分为“0”。

网络地址的一般表达式为:

{<Network-number>,<Host-number>}={<Network-number>,0}

该地址用于标识网络,不能分配给主机,因此不能作为数据的源地址和目的地址。

  • A类网络的网络地址为:Network-number.0.0.0。例如,120.0.0.0;
  • B类网络的网络地址为:Network-number.0.0。例如,139.22.0.0;
  • C类网络的网络地址为:Network-number.0。例如,203.120.16.0。

直接广播地址

直接广播(Direct Broadcast Address):向某个网络上所有的主机发送报文。TCP/IP规定,主机号各位全部为“1”的IP地址用于广播,叫作广播地址。路由器在目标网络处将IP直接广播地址映射为物理网络的广播地址,以太网的广播地址为6个字节的全“1”二进制位,即:ff:ff:ff:ff:ff:ff 。

直接广播地址的一般表达式为:

{<Network-number>,<Host-number>}={<Network-number>, -1}

这里的“-1”表示全“1”。 

直接广播地址只能作为目的地址。

  • A类网络的直接广播地址为:Network-number.255.255.255。例如,120.255.255.255;
  • B类网络的直接广播地址为:Network-number.255.255。例如,139.22.255.255;
  • C类网络的直接广播地址为:Network-number.255。例如,203.120.16.255。

受限广播地址

直接广播要求发送方必须知道信宿网络的网络号。但有些主机在启动时,往往并不知道本网络的网络号,这时候如果想要向本网络广播,只能采用受限广播地址(Limited Broadcast Address)。

受限广播地址是在本网络内部进行广播的一种广播地址。TCP/IP规定,32比特全为“1”的IP地址用于本网络内的广播。

受限广播地址的一般表达式为:

{<Network-number>,<Host-umber>}={-1, -1}

其点分十进制表示为:255.255.255.255。

受限广播地址只能作为目的地址。

路由器隔离受限广播,不对受限广播分组进行转发。也就是说因特网不支持全网络范围的广播。

本网络地址

TCP/IP协议规定,网络号各位全部为“0”时表示的是本网络。本网络地址分为两种情况:本网络特定主机地址和本网络本主机地址。

本网络特定主机地址的一般表达式为:

{<Network-number>,<Host-number>}={0, <Host-number>}

本网络特定主机地址只能作为源地址。

本网络本主机地址的一般表达式为:

{<Network-number>,<Host-number>}={0, 0}

本网络本主机地址的点分十进制表示为:0.0.0.0。

本网络本主机地址只能作为源地址。

无盘工作站启动时没有IP地址,此时采用网络号和主机号都为“0”的本网络本主机地址作为源地址。 

环回地址

环回地址(Loopback Address)是用于网络软件测试以及本机进程之间通信的特殊地址。 

A类网络地址127.X.X.X被用作环回地址。

环回地址的一般表达式为:

{<Network-number>,<Host-number>}={127, <any>}

习惯上采用127.0.0.1作为环回地址,命名为localhost。

当使用环回地址作为目标地址发送数据时,数据将不会被发送到网络上,而是在数据离开网络层时将其回送给本机的有关进程。

环回接口对IP数据报的处理过程,如下图所示:

【TCP/IP】IP地址分类和特殊IP地址

在发送IP数据时,首先要判别该数据报的目的IP地址是否为环回地址,如果是环回地址,则直接将IP数据报放入IP输入队列实现环回。对于直接以本机地址作为目的地址的IP数据包也要会送给本机。对于广播或组播数据报,则在会送给本机的同时还要向网络发送。

【TCP/IP】IP地址分类和特殊IP地址

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/131609.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • python字符串比较大小[通俗易懂]

    python字符串比较大小[通俗易懂]理解原理和相关知识字符串按位比较,两个字符串第一位字符的ascii码谁大,字符串就大,不再比较后面的;第一个字符相同就比第二个字符串,以此类推,需要注意的是空格的ascii码是32,空(null)的ascii码是0https://zhidao.baidu.com/question/558202137825309252.htmlord函数接受一个字符print(max([‘1’,’…

  • mac docker安装部署_dcs教程视频教程

    mac docker安装部署_dcs教程视频教程最近电脑越来越卡了,为了减少系统开销,以及后期维护方便,所以考虑将本地安装一些服务迁移到docker中去管理,这一切的基础是要先有docker服务,所以本文就先记录怎样在mac上安装配置docker,

  • windows下mysql安装配置教程_mysql使用教程windows

    windows下mysql安装配置教程_mysql使用教程windows1,从官网下载安装包https://dev.mysql.com/downloads/mysql/选择直接下载就可以(建议使用google浏览器快一点)2,下载完之后放到磁盘里解压3,win+r打开cmd,进入到解压之后的bin目录下cdC:\mysql-8.0.27-winx64\bin如果cd进不去,就把文件夹放到C盘(我一开始放到E盘,然后一直进不去,C盘就可以了)4,初始化数据库,然后记录下方框里的内容,这是随机生成的密码(uq,hau…

  • 刷屏专用超长复制_跪求超超长刷屏字符剑。。

    该楼层疑似违规已被系统折叠隐藏此楼查看此楼….飘过…..飘过……飘过…….飘过……..飘过……..飘过……..飘过……..飘过…….飘过……飘过…..飘过….飘过…飘过..飘过.飘过.飘过.飘过..飘过…飘过….飘过…..飘过……飘过…….飘过……..飘过……..飘过….

  • 学习 SQL计算机语言(基础)

    学习 SQL计算机语言(基础)简介:SQL是用于访问和处理数据库的标准的计算机语言。结构化查询语言(StructuredQueryLanguage)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。什么是SQL:1)指结构化查询语言2)使我们有能力访问数据库3)是一种ANSI的标准计算机语言作用:1)面向数…

  • spring boot 系列之四:spring boot 整合JPA[通俗易懂]

    上一篇我们讲了springboot整合JdbcTemplate来进行数据的持久化,这篇我们来说下怎么通过springboot整合JPA来实现数据的持久化。一、代码实现二、知识点引申关于

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号