公有 IP 地址与私有 IP 地址
在 A、B、C 分类地址,实际上有分公有 IP 地址和私有 IP 地址。
平时我们办公室、家⾥、学校⽤的 IP 地址,⼀般都是私有 IP 地址。因为这些地址允许组织内部的 IT ⼈员⾃⼰管理、⾃⼰分配,⽽且可以重复。因此,你学校的某个私有 IP 地址和我学校的可以是⼀样的。
就像每个⼩区都有⾃⼰的楼编号和⻔牌号,你⼩区家可以叫 1 栋 101 号,我⼩区家也可以叫 1 栋 101,没有任何问题。但⼀旦出了⼩区,就需要带上中⼭路 666 号(公⽹ IP 地址),是国家统⼀分配的,不能两个⼩区都叫中⼭路 666。
所以,公有 IP 地址是有个组织统⼀分配的,假设你要开⼀个博客⽹站,那么你就需要去申请购买⼀个公有 IP,这样全世界的⼈才能访问。并且公有 IP 地址基本上要在整个互联⽹范围内保持唯⼀。
公有 IP 地址由谁管理呢?
私有 IP 地址通常是内部的 IT ⼈员管理,公有 IP 地址是由 ICANN 组织管理,中⽂叫「互联⽹名称与数字地址分配机构」。
IANA 是 ICANN 的其中⼀个机构,它负责分配互联⽹ IP 地址,是按州的⽅式层层分配。
其中,在中国是由 CNNIC 的机构进⾏管理,它是中国国内唯⼀指定的全局 IP 地址管理的组织。
IP 地址与路由控制
IP地址的⽹络地址这⼀部分是⽤于进⾏路由控制。
路由控制表中记录着⽹络地址与下⼀步应该发送⾄路由器的地址。在主机和路由器上都会有各⾃的路由器控制表。
在发送 IP 包时,⾸先要确定 IP 包⾸部中的⽬标地址,再从路由控制表中找到与该地址具有相同⽹络地址的记录,根据该记录将 IP 包转发给相应的下⼀个路由器。如果路由控制表中存在多条相同⽹络地址的记录,就选择相同位数最多的⽹络地址,也就是最⻓匹配。
下⾯以下图的⽹络链路作为例⼦说明:
- 主机 A 要发送⼀个 IP 包,其源地址是 10.1.1.30 和⽬标地址是 10.1.2.10 ,由于没有在主机 A 的路由表找到与⽬标地址 10.1.2.10 的⽹络地址,于是包被转发到默认路由(路由器 1 )
- 路由器 1 收到 IP 包后,也在路由器 1 的路由表匹配与⽬标地址相同的⽹络地址记录,发现匹配到了,于是就把 IP 数据包转发到了 10.1.0.2 这台路由器 2
- 路由器 2 收到后,同样对⽐⾃身的路由表,发现匹配到了,于是把 IP 包从路由器 2 的 10.1.2.1 这个接⼝出去,最终经过交换机把 IP 数据包转发到了⽬标主机
环回地址是不会流向⽹络
环回地址是在同⼀台计算机上的程序之间进⾏⽹络通信时所使⽤的⼀个默认地址。
计算机使⽤⼀个特殊的 IP 地址 127.0.0.1 作为环回地址。与该地址具有相同意义的是⼀个叫做 localhost 的主机名。使⽤这个 IP 或主机名时,数据包不会流向⽹络。
IP 分⽚与重组
每种数据链路的最⼤传输单元 MTU 都是不相同的,如 FDDI 数据链路 MTU 4352、以太⽹的 MTU 是 1500 字节等。
每种数据链路的 MTU 之所以不同,是因为每个不同类型的数据链路的使⽤⽬的不同。使⽤⽬的不同,可承载的MTU 也就不同。
其中,我们最常⻅数据链路是以太⽹,它的 MTU 是 1500 字节。
那么当 IP 数据包⼤⼩⼤于 MTU 时, IP 数据包就会被分⽚。
经过分⽚之后的 IP 数据报在被重组的时候,只能由⽬标主机进⾏,路由器是不会进⾏重组的。
假设发送⽅发送⼀个 4000 字节的⼤数据报,若要传输在以太⽹链路,则需要把数据报分⽚成 3 个⼩数据报进⾏传输,再交由接收⽅重组成⼤数据报。
在分⽚传输中,⼀旦某个分⽚丢失,则会造成整个 IP 数据报作废,所以 TCP 引⼊了 MSS 也就是在 TCP 层进⾏分⽚不由 IP 层分⽚,那么对于 UDP 我们尽量不要发送⼀个⼤于 MTU 的数据报⽂。
在分⽚传输中,⼀旦某个分⽚丢失,则会造成整个 IP 数据报作废,所以 TCP 引⼊了 MSS 也就是在 TCP 层进⾏分⽚不由 IP 层分⽚,那么对于 UDP 我们尽量不要发送⼀个⼤于 MTU 的数据报⽂。
学自小林coding,侵删