TCP/IP 协议族 - IPv4 地址笔记

Apr 16, 2016


分类编址

分类

共分为 5 类。

  • A类:0……
  • B类:10…..
  • C类:110….
  • D类:1110…
  • E类:1111…

网络标识和主机标识

对于 A、B、C 类来说,IP 地址可分为网络标识主机标识。 对于 A 类地址,第一个字节用于网络标识,后三个用于主机标识。以此类推。

地址类和地址块

A 类网络标识还剩 7 位,所以可以分给 $2^7$ 个组织,但是实际上还要少一点,因为有一些特殊的地址。 B、C 也一样,就不说了。 D类地址只有一个地址块,224.0.0.0,用来进行多播。 E 类也只有一个地址块,为将来保留。

两级编址

没什么好说的。

一个例子

网络地址

网络地址就是一个网络的标识。

网络掩码

把 IP 地址和掩码搞一下就能得到网络地址。

三级编制:子网划分

因为可能要对网络进行更细的划分,所以两级编址就不太方便了,这被称为子网划分

子网地址

当一个网络划分子网后,子网的首地址就是这个子网的标识。

构造超网

构成超网时,一个组织可以把若干个 C 类地址块合并称为一个更大的地址段。 因为是合并,所以超网掩码的 1 的位数比默认掩码要小。 缺点:合并成为超网的地址块数目必须是 2 的幂次,而且构造超网和子网划分会使路由选择变得更加复杂。

无分类编址

可变长度地址块

两级编址

在无分类编址中,地址分为前缀和后缀,前缀指明了网络,后缀指明了主机。

斜线记法

就是用一条斜杠表示前缀。

地址块的分配

  1. 申请的地址数必须是 2 的乘方。
  2. 地址块起始地址的选择必须能被地址块的地址数整除。

子网划分

一个例子

某组织被授权使用地址块 130.34.12.64/26.该组织需要4个子网络,且每个子网络拥有的主机数相同。

总共有 64 个地址,所以每个子网络分 16 个。 每个子网络的子网掩码是/28.

然后随便分分就行。

特殊地址

特殊地址快

全 0 地址

他被用于主机不知道自己的 IP 时,为了找出自己的地址,就向 DHCP 发送一个分组,并用全 0 地址作为源地址,受限广播地址作为目的地址。

全 1 地址:受限广播地址

地址块 255.255.255.255/32 被保留作为当前网络的受限广播地址。 如果主机想把报文发送给网络中的其他所有主机,就用这个地址作为目的地址,但是会被路由器挡住,限制作用域为本地网络。

环回地址

127.0.0.0/8 被用作环回地址,用来测试机器上的软件。在使用这个地址时,分组从来没有离开过本机。

专用地址

地址块
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
169.254.0.0/16

多播地址

224.0.0.0/4 作为多播地址。

每个地址块中的特殊地址

网络地址

一个地址块的首地址为网络地址。这个地址是网络本身,而不是网络中哪一台主机。

直接广播地址

一个地址块的末地址(后缀全部为1)可用作直接广播地址。 通常,路由器会用这个地址把一个分组发送给某个特定网络上的所有主机。

NAT

NAT(网络地址转换)。 如果一个网络分配到在因特网上的地址就 5 个,但是他内部有好几台电脑。 这时候可以通过 NAT 技术,要上网的电脑通过一个有 NAT 功能的路由器,自动帮忙转换了 IP 地址。 所有进入的分组也都要通过这个路由器,它将分组中的目的地址替换为相应的内部地址。

转换表

那么问题来了,NAT 路由器怎么知道每个分组的目的地址是什么?

使用一个 IP 地址

一张最简单的转换表只有两个列:

  • 专用地址
  • 外部地址

在路由器为外出分组转换源地址时,也注意到了该分组的目的地址。 当终点返回的响应到达时,路由器就利用返回分组对的源地址作为外部地址,在表中查到内部地址。 这种方法必须要由客户先发起请求。

使用 IP 地址池

地址池里有可用的 IP 地址,一对地址指明一个连接。 但是这样的话,同事访问相同主机的连接不能超过 4 条,一台主机不能同时访问两个外部服务器程序,因为转换表会把第一个地址抹去。 两台主机不能同时访问一个相同的外部服务器程序。

使用 IP 地址和端口地址

为了允许多对多的关系,我们在表中添加专用端口、外部端口、运输层协议。 这样就能清楚地转发了。