IP地址分类

IP地址的分类

分类的IP地址就是将IP地址划分为若干个固定类,每一类地址都由两个固定长度的字段组成。

第一个字段是网络号(net-id),它标志主机(或路由器)所连接到的网络。一个网络号在整个互联网范围内必须是唯一的。

第二个字段是主机号(host-id),它标志该主机(或路由器)。一台主机号在它前面的网络号所指明的网络范围内必须是唯一的。

因此一个IP地址在整个互联网范围内是唯一的。

这种两级的IP地址可以记为

​ IP地址∷={<网络号>,<主机号>}

下图给出了各种IP地址的网络号字段和主机号字段,这里A类、B类和C类地址都是单播地址(一对一通信),是最常用的。

img

  • A类、B类和C类地址的网络号字段(在图中这个字段是灰色的)分别为1个、2个和3个字节长,而在网络号字段的最前面有1~3位的类别位,其数值分别规定为0、10、110。
  • A类、B类和C类地址的主机号字段分别为3个、2个和1个字节长
  • D类地址(前4位是110)用于多播(一对多通信)
  • E类地址(前4位是111)保留为以后用

常用的三类IP地址

A类地址的网络号字段占1个字节,只有7位可供使用(该字段的第一位已固定为0),但可指派的网络号是126个(2^7-2)。减2的原因:网络号全0为保留地址,表示本网络。网络号为127(011111111)的地址保留用于环回测试本主机的进程间通信

A类地址的主机号占3个字节,因此每一个A类网络中的最大主机数是(2^24-2), 即16770214。减2的原因是:全0的主机号字段表示该IP地址是“本主机”所连接到的单个网络地址(例如,一主机的IP地址为5.6.7.8,则该主机所在的网络地址就是5.0.0.0),全1的主机号字段表示该网络上的所有主机

A类IP地址空间共有2^32 (即4294967296)个地址。整个A类地址空间有 2^31 个地址,占整个IP地址空间的50%

B类地址的网络号字段有2个字节,但前面两位(10)已经固定了,只剩下14位可以进行分配。因为网络号字段后面的14位无论怎样取值也不可能出现使整个2字节的网络号字段成为全0或全1,因此这里不存在网络总数减2的问题。但实际上B类网络地址1280.0.0是不指派的,而可以指派的B类最小网络地址是128.1.0.0。因此B类地址可指派的网络数为2^14-1,即16383。

B类地址的最大主机数是2^16,即65534。这里需要减2是因为要扣除全0和全1的主机号

B类地址空间共约有2^30个地址,占整个P地址空间的25%。

C类地址有3个字节的网络号字段,最前面的3位是(110),还有21位可以进行分配。C类网络地址192.0.0.0是不指派的,可以指派的C类最小网络地址是192.0.1.0,因此C类地址可指派的网络总数是2^21-1,即2097151。

每一个C类地址的最大主机数是2^8-2,即254,减2是因为要扣除全0和全1的主机号

C类地址空间共约有2^29个地址,占整个IP地址的12.5%。

image-20200712203835354

image-20200712203854575

IP地址与硬件地址

物理地址数据链路层物理层使用的地址,IP地址是网络层以上各层使用的地址,是一种逻辑地址(称IP地址为逻辑地址是因为IP地址是用软件实现的)

image-20200712204006161

IP地址仅在网络层及以上使用

物理地址只在数据链路层和物理层使用

网际层会对TCP/UDP数据报进行封装,并在IP数据报的首部添加目的IP地址和源IP地址,并交付给数据链路层

数据链路层将IP数据报封装为MAC帧,MAC帧的首部有目的硬件地址和源硬件地址,并在各个主机(路由)上进行传播

各个主机(路由)会对MAC帧进行解析,获取IP地址信息后选择对其进行接收,或者再次打包转发

image-20200712204333108

ARP地址解析

由于IP协议使用了ARP协议,因此通常就把ARP协议划归网络层。

ARP协议的用途是将网络层的IP地址解析为数据链路层的硬件地址

image-20200713091938512

每一台主机都设有一个ARP高速缓存(ARP cache),当主机A要向本局域网上的某台主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。如有,就在ARP高速缓存中查出其对应的硬件地址,再把这个硬件地址写入MAC帧,然后通过局域网把该MAC帧发往此硬件地址。也有可能查不到主机B的IP地址的项目。

在局域网中主机A对所有主机进行广播,收到广播的主机B会对主机A进行单播响应

​ 由于在未来一段时间内主机AB可能还会继续通信,因此主机A在发送其ARP请求分组时,就把自己的IP地址到硬件地址的映射写入ARP请求分组。当主机B收到A的ARP请求分组时,就把主机A的这一地址映射写入主机B自己的ARP高速缓存中。以后主机B向A发送数据报时就很方便了。

当发送主机和目的主机不在同一个局域网中时,即便知道目的主机的MAC地址,两者也不能直接通信,必须经过路由转发才可以。所以此时,发送主机通过ARP协议获得的将不是目的主机的真实MAC地址,而是一台可以通往局域网外的路由器的MAC地址。于是此后发送主机发往目的主机的所有帧,都将发往该路由器,通过它向外发送。这种情况称为委托ARP或ARP代理(ARP Proxy)

​ 同时ARP高速缓存内的映射信息是有生存时间的,到达一定时间后就会被清除,主要是因为硬件地址可能会发生改变(主机断电,主机坏了等)

使用ARP的四种情况

  1. 发送方是主机(如H1),要把IP数据报发送到同一个网络上的另一台主机(如H2)。这时H1发送ARP请求分组(在网1上广播),找到目的主机H2的硬件地址
  2. 发送方是主机(如H1),要把IP数据报发送到另一个网络上的一台主机(如H3或H4)。这时H1发送ARP请求分组(在网1上广播),找到网1上的一个路由器R1的硬件地址。剩下的工作由路由器R1来完成。R1要做的事情是下面的(3)或(4)。
  3. 发送方是路由器(如R1),要把IP数据报转发到与R1连接在同一个网络(网2)上的主机(如H3)。这时R1发送ARP请求分组(在网2上广播),找到目的主机H3的硬件地址。
  4. 发送方是路由器(如R1),要把IP数据报转发到网3上的一台主机(如H4)。H4与R1不是连接在同一个网络上。这时R1发送ARP请求分组(在网2上广播),找到连接在网2上的一个路由器R2的硬件地址。剩下的工作由这个路由器R2来完成。

image-20200817151108004

原文地址:https://www.cnblogs.com/code-duck/p/13831499.html