TheUnknownBlog

Back to Channel

#network

小时候不懂的Classful Addressing终于得到了解答……

小时候无论是在准备 NOIP 初赛还是在学校上信息课的时候他们总会提到 IP 地址的 Classful Addressing(也即,按 A类、B类、C类地址划分)。所谓 “A 类地址给很大的网络组织用,IPv4 的第一位范围是 0-127”, “B 类地址给中等规模的组织用,IPv4 的第一位范围是 128-191”,之类的内容。你们有没有想过我们为什么要这样划分?另一个很 valid 的问题是,这样如此 coarse-grained 的划分真的有意义吗?

首先我们来计算一下我们一共能容纳多少个组织(hypothetically)。看第二张图(credit:UC Berkeley CS168),简单计算一下不难得到总的组织数量为 2 million + 16,000 + 128。看起来还挺多的。但是,稍微深究一下,我们能发现这个划分其实非常不合理。

我们再看第二张图,假设一个组织需要 2000 个 IP 地址,那么按照 Classful Addressing 的划分,它只能选择 B 类地址(因为 A 类地址太大了,C 类地址太小了)。但是 B 类地址的大小是 65536 个地址,这就造成了大量的 IP 地址浪费。事实上,在 1994 年的时候我们就 running out of class B addresses 了。所以说这种划分早就被 deprecated 了。

然而很可悲的是我们的教科书(图片1,人教版高中信息技术)以及我小时候参加的 NOIP 考试的参考书依然在教这种过时的划分方式。人教版的书还算好,后面还提了一嘴子网掩码(当然也根本没有细讲 CIDR)。但是 NOIP 的参考书就完全没有提及 CIDR。所以我一直到高中的时候看到 /24 这种表示法才知道原来 IP 地址的划分可以这么灵活。

Book
Why Classful
Comment seems to stuck. Try to refresh?✨

Share this post

𝕏 Share