网络层 | 网际协议IP(1) – 作者:noobsec

01 简介

Internet Protocol,网际协议,是TCP/IP体系中网络层的主要协议。

网络层的任务是为互联网上的不同主机提供通信服务,主要完成两件事:对传输层的数据进行封装、将封装后的数据从源地址转发到目的地址。因此IP协议的主要任务也是寻址路由、封包解包。

在《网际协议IP》系列文章中,主要介绍IP地址的格式及分类、一些特殊的IP地址、划分子网、构成超网、数据报格式、路由、与网际协议IP相关的一些协议等方面的知识,旨在希望校友们能对网际协议IP有比较系统的了解。当然也不排除误写漏写的情况,如果有校友发现,请在公众号留言,我会及时修改。

下面开始《网际协议IP》系列第一部分的学习。

02 IP地址详解


Internet Protocol Address,互联网协议地址,又称IP地址,用于识别互联网中的设备。

互联网中的设备要想正常通信,就必须配置正确的IP地址。通俗点讲:要想上网,就必须有正确的IP地址

格式

目前互联网使用IP协议有两个版本:IPv4和IPv6。在这里只介绍IPv4地址,IPv6地址后面再介绍。

IPv4地址由32位二进制数组成,为了提高可读性,对人类更加友好,通常采用 “点分十进制法” 表示IP地址,具体的做法如图所示:

1-点分十进制.jpg

(1)每八位二进制数为一组,将32位的IP地址分为4组
(2)将每组二进制数转换为十进制数
(3)用“.”将四组十进制数隔开,转换成对人类友好的IP地址表现形式

分类

为便于寻址和层次化构造网络,IPv4地址被设计成由网络号+主机号组成。

网络号标明设备连接的网络,网络号在互联网中是唯一的。主机号标明设备本身,主机号在网络范围内是唯一的。因此,IP在整个互联网中是唯一的。

打个比方,寄快递。我在某云爸爸那里买个东西,寄到北京朝阳区xxxx。快递不会直接寄到具体地址这里,正常的流程应该是这样:快递公司一看地址是北京朝阳区,那它直接把快递寄到朝阳区;寄到朝阳区后,再由快递小哥寄到xxxx。这里北京朝阳区就是网络号,xxxx就是主机号,邮编就有这种作用。

早期的IPv4地址,前八位为网络号,后二十四位为主机号。随着互联网的发展,RFC 791对IPv4地址的定义做了修改,将IPv4地址分为了ABC三类单播地址。再后来,D类和E类也被定义。

2-分类网络.jpg

ABCDE类,根据IP地址网络号中的前几位来标识(被称为类别位),定义了网络的大小和类型。其中ABC三类为单播地址,是最常用的,D类为多播地址,E类保留为今后使用。

A类:前8位为网络号,后24位为主机号,类别位为0
B类:前16位为网络号,后16位为主机号,类别位为10
C类:前24位为网络号,后8位为主机号,类别位为110
D类:没有网络号,类别位为1110
E类:没有网络号,类别位为1111

我们可以通过类别位来判断IP地址属于哪一类,也可以通过查看IP地址处在哪个地址范围来判断。

A类:  0.0.0.0 ~ 127.255.255.255
B类:128.0.0.0 ~ 191.255.255.255
C类:192.0.0.0 ~ 223.255.255.255
D类:224.0.0.0 ~ 239.255.255.255
E类:240.0.0.0 ~ 255.255.255.255

比如192.168.0.1,在192.0.0.0~223.255.255.255这个区间,所以这是一个C类地址;另外将其转换成二进制后,为11000000 10101000 00000000 00000001,前三位为110,这也可以判断它是一个C类地址。

但是,并非所有的IP地址我们都能使用,因为有些地址有特殊的用途,我们一般不能使用。

特殊IP地址

这里我们只讨论ABC这三类单播地址。

RFC3330(如今已被RFC5735淘汰)中指明了哪些IP有特殊用途,哪些不能出现在公共互联网上,哪些不能被人们使用,这里我挑几个常见的给大家介绍一下。

首先要说明一下三种情况,只要符合下列情况之一的IP地址,一般都不会使用。

网络号为全0:表示本网络
主机号为全0:表示本主机连接的网络地址
主机号为全1:表示这个网络中的所有主机

比如:

128.128.255.255:主机号为全1,表示网络128.128.0.0上的所有主机
128.128.0.0:主机号为全0,表示这是网络地址128.128.0.0
0.0.0.128:网络号为全0,表示本网络上主机号为128的主机

另外,再介绍两个特殊的IP段:127.0.0.0段和169.254.0.0段。

127.0.0.0网段大家应该不陌生,特别是做开发的。这个网段中的地址被称为本地环回地址,用于同一设备不同服务之间的通信,发送给这些IP地址的数据都会返回给本机,通常都是使用127.0.0.1这个IP地址。后来在RFC6761中,将域名localhost保留了下来,用于环回,这也是为什么在电脑上搭建服务器,访问localhost和访问127.0.0.1都是同一页面的原因。

169.254.0.0网段。不知道大家平时有没有注意,给自己电脑配置IP地址,有时会弹出地址冲突的提示,然后查看属性,发现IP地址变成了169.254.0.0网段中的某个IP地址。


3-网络连接属性.jpg

RFC3927中详细介绍了169.254.0.0网段,这个网段中的IP地址被称为本地链路地址。

要与其他设备通信,主机就必须配有IP地址,要么手动配置,要么自动获取,但是配置的IP地址并不总是有效的,这样就无法和其他设备通信。

而本地链路地址的存在就是为了解决这个问题,即使配置的IP地址不是有效的,但依然能分配一个本地链路地址给主机,让主机和其他设备通信。但是本地链路地址只能与同一物理链路中的设备通信,这也是其称为本地链路地址的原因。

最后要介绍一下0.0.0.0这个IP地址,网络号为0,主机号也为0,在服务器中,0.0.0.0可以表示“本地计算机上的所有IPv4地址”。如果主机有两个IP地址192.168.1.1和10.1.2.1,并且主机上运行的服务器配置为监听0.0.0.0,那么这两个IP地址都可以访问这台主机。

当然,还有其他的一些IP段不能使用,这里就不再赘述。特殊IP的知识大家心里有个印象就行,不需死记硬背。


4-可用地址范围.jpg

另外,为了缓解IPv4地址的耗尽,出现了各种技术:NAT、专用网络(私有地址)、DHCP、虚拟主机等,接下来我们就简单介绍一下专用网络,其他几种技术后续再讲

专用网络(私有地址)

RFC1918中指出,专用网络分为三个地址段,这些地址段在专用网络外不能路由,专用网络内的主机不能直接与公共网络通信换句话说就是这些地址只能用于内部网络。但可以通过网络地址转换(NAT),实现和互联网通信。

A类:10.0.0.0 ~ 10.255.255.255
B类:172.16.0.0 ~ 172.31.255.255
C类:192.168.0.0 ~ 192.168.255.255

举个最简单的例子,家里的wifi。现在家家户户基本都有wifi,手机、电脑、电视等都可以连接以获取互联网服务。这些设备想要上网,就必须配有正确的IP地址,分配工作是路由器来完成的,而路由器分配给这些设备的IP地址就是私有地址,通常都是192.168.x.x。

在划分专用网络之前,全球只能有一个192.168.0.1的地址。但划分专用网络之后,每个局域网都可以有一个192.168.0.1的地址,这就缓解了IPv4地址资源的耗尽。


03 总结


IPv4地址格式:32位二进制数,通常采用“点分十进制法”来表示IP地址IPv4地址组成:网络号+主机号

IPv4地址分类:ABCDE类,常用的是ABC三类单播地址,D类为多播地址,E类保留保留地址:有些IP地址被保留,用于特殊用途,其中包括专用网络

A类:10.0.0.0 ~ 10.255.255.255
B类:172.16.0.0 ~ 172.31.255.255
C类:192.168.0.0 ~ 192.168.255.255

来源:freebuf.com 2019-05-06 11:00:27 by: noobsec

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论