惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Forbes - Security
Forbes - Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
L
LangChain Blog
量子位
GbyAI
GbyAI
B
Blog RSS Feed
月光博客
月光博客
人人都是产品经理
人人都是产品经理
腾讯CDC
Recent Announcements
Recent Announcements
Microsoft Azure Blog
Microsoft Azure Blog
I
InfoQ
The Cloudflare Blog
D
Docker
Cyberwarzone
Cyberwarzone
U
Unit 42
NISL@THU
NISL@THU
C
Check Point Blog
B
Blog
大猫的无限游戏
大猫的无限游戏
Cisco Talos Blog
Cisco Talos Blog
Recorded Future
Recorded Future
H
Hackread – Cybersecurity News, Data Breaches, AI and More
J
Java Code Geeks
G
GRAHAM CLULEY
Engineering at Meta
Engineering at Meta
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 叶小钗
P
Proofpoint News Feed
F
Fortinet All Blogs
V
V2EX
T
Threat Research - Cisco Blogs
T
Threatpost
S
SegmentFault 最新的问题
Know Your Adversary
Know Your Adversary
雷峰网
雷峰网
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园 - 司徒正美
P
Privacy & Cybersecurity Law Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
TaoSecurity Blog
TaoSecurity Blog
Latest news
Latest news
Apple Machine Learning Research
Apple Machine Learning Research
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Y
Y Combinator Blog
P
Privacy International News Feed
L
Lohrmann on Cybersecurity
AWS News Blog
AWS News Blog
G
Google Developers Blog
美团技术团队

博客园 - iCynosure

another PT opportunity!!!!!!!! 一个兼职机会,不过是Java阵营的,大家不要骂我 TechED的日程....好难选择阿,sigh 讨论一下,该如何才能不被google搜索到? Control the lamps in america! MSN Search: Google和Baidu外的一个新选择 - iCynosure 制作安装删除必备——公用dll一览 something new about google(3): google tools something new about google(2): google services something new about google(1): Froogle HTTP的穿梭 体会到了whidbey编写asp.net不需要IIS的好处了 TDD使用的疑问? VC6 SP6 released! 好东东!!!From "research.microsoft.com" 工程的常量定义应该放在哪里最合适? .NET vs J2EE CCTV is coming... 咋做到让大家点link再查看文章呢? MSDN....DotNet.vs.J2EE....Whidbey
理解子网掩码
iCynosure · 2004-04-08 · via 博客园 - iCynosure

看了Jon C.Snader先生的Effective TCP/IP Programming,觉得大有收获。我试着将其中的核心以及自己的理解解释给大家。我的水平比较低微,但这正好为初学网络的朋友提供一些切入点,因为理解我的文章大概不会有什么问题。好的,接着便来讲解正题。

学一个东西我们总要问为什么,子网掩码谁不知道,谁不会用,但是我们还是要问一句:Why We Use Subnet Mask。

还是稍微来回顾一下IP Address吧,我们知道IPv4总共有5类地址:class-A,class-B,class-C,multicast和reserved。他们的结构如下,具体的细节恕不赘述:

有127个A类地址,每个A类地址具有2^24台主机。
有16384个B类地址,每个65534台主机
他们对应了拥有大量主机数的巨型网络。等等,这和subnet mask有什么关系?

两个问题:
首先,把单一的这类地址分配给单一的用户会造成大量的浪费。
其次,路由表难以维护。因为没有办法用单一的hub连接所有的这些主机。
设想我所在的实验室有一个B类地址,而这些机器分布在两个物理子网上,如下图:
倘若H1要和H2通信,这个自然没有问题,只需要将H2的IP地址映射到其物理地址。那么H1要和H3说话呢?这就有麻烦了,因为处于不同的子网,H1并不知道H3在什么地方,这时需要通过R1中转。可是R1怎么知道必须向R2中转?如果说我们还有R3,R4...?

问题出现在所有的主机所在的网络ID都是一样的。不引入新概念的解决办法可以是让每一个R的路由表中都保留一份所有主机的条目,但这将成为网管们的噩梦。

解决办法2:给两个子网分配不同的地址,当他们所属的网络ID不同的时候,这些问题也就解决了。只是他并没有解决根本的问题。

最终,我们想到并不一定要在物理上真正赋予某一个子网以网络ID,可以通过逻辑子网的概念将他们划分在一起。这就是subnet mask概念的引入。通过mask,我们做到了在逻辑上延伸了Network ID,让他可以按照我们的需要来划分子网。在我们这个情景中的怎么使用subnet mask来解决具体问题我就不介绍了。

刚才我们使用mask实现了subnet,那么接着我们来进一步思考,如果中国电信有那么多的主机,但是却只能分到1个B类地址和若干个C类地址,怎么把多于254台主机在逻辑上划分到一个子网内?即实现一个supernet?

实现的机理是一样的,同样是通过mask来逻辑上更改Network ID,只是一般用的都是增长,这次是缩减。这个操作的专业名称叫做CIDR:classless interdomain routing,也称作“supernetting”。其过程请参考subnet mask的使用。那么如果对路由有概念的朋友一定会问,怎么防止网络ID解析的二义性?比如说,我的ip是200.10.5.33,路由器上有两个条目:200.10.4.0with255.255.252.0 和 200.10.0.0with255.255.0.0,结果两个都匹配,这是很容易出现的,因为我们缩短了网络ID,撞车的机会自然增加了。为了防止这种情况,最终使用的是匹配的最长的条目,比如上述的200.10.0.0with255.255.0.0的条目匹配的仅仅是16位,而200.10.4.0with255.255.252.0匹配的是22位,所以采用200.10.4.0。

要考虑更detail的内容,我建议你去看看RFC1518[Rekhter and Li 1993],因为我这里讲述的都是概念。