【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)


相关推荐

  • networkmanager配置文件_conf文件可以删除吗

    networkmanager配置文件_conf文件可以删除吗NameNetworkManager.conf-NetworkManagerconfigurationfileSynopsis/etc/NetworkManager/NetworkManager.confor/NetworkManager/NetworkManager.confwheredependsonyourdistributionorbuild.

  • wireshark抓包分析TCP和UDP_ipv4数据包分析

    wireshark抓包分析TCP和UDP_ipv4数据包分析在命令行输入ifconfig,查看本机网络接口。$ifconfigenp4s0:flags=4099<UP,BROADCAST,MULTICAST>mtu1500etherc8:5b:76:f6:44:d2txqueuelen1000(Ethernet)RXpackets0bytes0(0.0B)…

    2022年10月29日
  • c++ stl源码剖析_stl源码 qt源码

    c++ stl源码剖析_stl源码 qt源码C++stl库手写前言序列式关联式容器适配器ListVector函数dequestringstackqueuebitset关联式容器setmultisetmultiset算法库仿函数前言stl版本abcd,四个版本,接口肯定是一样的代码复用性强,效率高,通用性高,vectordeque他有六个组件,空间配置器,容器,迭代器,算法,仿函数,容器适配器容器和算法中间,靠迭代器连接算法为了通用性,有辅助的东西,让算法通用,也就是使用仿函数仿函数就是一个对象容器通过适配器,可以相

    2022年10月15日
  • 计算机软件师社会需求,java软件工程师的社会环境如何?「建议收藏」

    计算机软件师社会需求,java软件工程师的社会环境如何?「建议收藏」计算机专业成功的改变了很多人的命运,很多人选择计算机培训后拥有了很体面的工作,拥有了很高的工资待遇,整个人的生活水平方面了质的改变。所以越来越多的人希望可以学习计算机,而在专业选择的过程中,JAVA专业吸引到很多求学者的关注。在对JAVA这个专业了解的过程中,JAVA软件工程师的社会环境成为了很多求学者希望了解的内容,这样才能够对这个专业具有更加全面的了解。社会的地位引起关注从JAVA专业成功就业…

  • kubernetes简介

    kubernetes简介Kubernetes简介初识KubernetesKubernetes(K8s)是一个用于自动化部署、扩展和管理容器化应用程序的开源系统2014年6月7日Google推出了Borg的开源版本2

  • javac 与 java的区别[通俗易懂]

    javac 与 java的区别[通俗易懂]java编译器名称是javac,是将源文件编译为字节码文件的程序,而java是java解释器的名称,也就是解释和执行字节码文件的程序。注意:::java源文件必须是具有  .java 扩展名java字节码文件必须具有  .class 扩展名 javac可以将java源文件编译为class字节码文件如javacHelloWorld.java运行javac命令后,如果成功编译没有错误的话…

发表回复

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

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