聊聊地址

最近在重读TCP/IP协议。记得大学时候这门课是挂了科的,而且补考又挂,结果是不得不在下学年重修一次这门课。单单从当时的考试来看,主要原因是两次考试都有一道40分的设计子网划分案例的大题答不上,结果当然是铁定挂了。不过,也从此让我心里对TCP/IP这玩意儿有了心理阴影,觉得这是个很难的学问,因此自从毕业以后就再也没怎么碰过它了。

当然,生活往往是你想逃避什么的时候,它总会时不时的出现在你面前,挥之不去。由于工作需要,最近不得不把这看着犯怵的东西又翻出来看一遍。这也才有了今天这篇学习感悟。

起因:为什么TCP/IP协议中同时设计了MAC地址和IP地址?

对于计算机行业从业人员的我来说,MAC地址和IP地址是再熟悉不过的了。但是,这个问题又恰恰在看TCP/IP时候突然冒出来,却又回答不上。是啊,粗略的看,MAC地址和IP地址二者有其一不就可以完成定位一个计算机设备位置的目的了吗?那干嘛还要同时设计两个地址出来呢?

找答案当然是上网搜索一下了。下面就是在知乎上大家对这个问题的回答:
https://www.zhihu.com/question/21546408 【有了 IP 地址,为什么还要用 MAC 地址?】
从网友的回答来看,真的是可以想到很多这样设计的理由和好处。

不过让我感受最深的还是下面这个解释:

作者:八里土人
链接:https://www.zhihu.com/question/21546408/answer/85252619
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
问题的核心在于网络上的分层概念。IP地址是不区分传播介质的,他的作用是在internet网中能够投递到边界。在网络边界的局域网,有可能使用不同的层二网络,以太、wifi、ppp、3g、wimax等等。在这个局域网中,才出现了与介质相关的终端标识。mac地址用于以太网,imsi用于3g网,线路号用于拨号上网。internet边界路由器可以在这个特定的介质网中找到特定终端。如果没有IP地址,那么3g网络用户无法和以太网用户通信,因为没办法去做这么复杂的协议让几十种协议两两对通。即使做了,发起方也需要方法去知道对端用的是什么层二网。因此,所有网络协议都用IP,只在两头网关上做转换,就是一种设计很先进的奇妙方法。反过来,为什么全球只要mac地址不能用于全球通信?问题在于mac地址和IP地址的汇聚性。mac地址是出厂就决定的,不是上网的时候决定的。也就是说intel设备或使用intel芯片的mac地址前面多少位是相同的,然后intel在给芯片分地址的时候保证所有的芯片没有重号的,这样才能保证随便哪个终端接入到同一个局域网中没有重复的。这样问题就来了:网络上希望路由器的转发规则尽量简单,所以一般要用ip地址前多少位而不是整个IP地址去做转发。mac地址显然没法汇聚,前面已经讲过,工厂决定的。给每个用户分配一个只由路由器网关决定的地址,每个网关上附着一个段,例如100.200.x.x,也就是所有以100.200开头的ip都送到这个网关上来,就可以保证internet转发规则的简单化。而且,一个用户从一个局域网离开,换到另一个局域网中,mac地址不需要变,只需要换个ip地址就行。

上面的回答我从中看到了两个设计思想:
一是通过分层的设计来解决不同方面的问题,例如上面回答中的利用网络模型的二层来适配各种网络介质类型(以太、wifi、3g、wimax),利用三层来对网络寻址、处理路由。这种分层解决的方法,广泛的存在于计算机行业和我们生活的世界中。比如,软件架构中的数据访问层可以适配不同的数据库(mysq、oracle)并对上层提供统一不变的接口,有点类似前面的二层网络的作用。另外,神经网络中的每一层也用于识别不同的模式,然后一层一层往上最终识别出图像中的物体。

而另一个就是对地址这玩意儿又有了一次深刻的感受。

关于地址

从上面的知乎回答中,可以看到网络中数据包的投递策略是这样一个过程:先找到目标机器的大位置,也就是在哪个网络中,然后再到这个网络中具体的找这一台机器。

很明显,这中寻址方式采用了一种按范围逐步缩小定位的模式。从整个目标对象空间中,先确定一个较大的局部范围,然后逐层缩小,最终精确定位到一个具体的目标。而在计算机行业中,有很多地方都采用了这种模式,例如二分查找法。其他的还可以举出下面的例子。

数据库索引

数据库中的索引技术也用到了这样一种按层次逐级定位记录的方式。例如下面的B-树


20161201164718353.jpg

这里可以看到树有三层。最上面的根节点相当于划分了5个范围,即指向第二层三个节点的P1、P2、P3指针,以及17、35这两个具体的值。如果我们查找的是29这个目标树,那么根节点指示我们29的处在范围为17-35之间的一个段内,要通过P2的指针到下一层去找,也就是第二层的中间那个块。类似的,到了第二层后,范围又缩小到了26 - 30这个区间,又进一步到第三层区找,最终可以找到29的位置。

硬盘上的数据定位
2286984185775413352.jpg

有一种磁盘数据定位的方式采用了柱面cylinder + 磁头head + 扇区sector 三维定位的方式。如图可以看到有三个磁盘面,一个磁盘面有上下两个磁头,总共6个磁头。每个圆盘面上的一个圆圈叫磁道,三个圆盘的相同半径的三个圆圈构成了柱面。而每个圆圈又分成了多个扇区。因此通过柱面、磁头、扇区三个维度就可以唯一找到一个数据块在磁盘的物理位置。虽然这个例子中,没有一个具体的树状层次,更像一个立体三维的坐标系。不过它仍然符合逐步按范围缩小的模式。例如,在寻址的时候,先确定是6个磁头中的哪一个。再在这个磁头所处的盘面上,确定是哪一个磁道(也就是柱面)。最后在磁道上找到具体的扇区。

推而广之

不仅计算机世界采用了这种地址设计和寻找方式,现实生活中各行各业也有很多这种层次化、范围式的地址设计。比如我们真实世界的地址系统就是按国家、省份、市县、区、街道这样一层一层设计的。当快递公司要送一个包裹时,先根据包裹上的省份地址知道要往哪个大方向发货,然后当包裹到了这个省之后,再按市、区、街道一层一层的分发下去。又比如电话号码,也是有国家号(中国的+86)、市号(北京的010)一级一级的构成。其他还有档案馆中文档位置的编号系统等等,数不胜数。

表象不一样,甚至具体的细节也千差万别,但是它们的本质却都是一样的,并且原理是简单的。掌握了这种基本原理,我们可以将它应用到各种不同的行业和场景,也算是做到所谓的举一反三了吧。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容

  • 这里的文章读起来都觉得很温和,很安静,喜欢这样的感觉,现实生活里我是一个很闹腾的人,内心其实很向往这些,第一次来到...
    快到爸爸怀里阅读 177评论 0 0
  • 没有谁能真正用文字治愈好那些丢失的曾经,尽管我愿意去尝试。 —题记 ...
    堇瑟之年阅读 364评论 0 1
  • 墨落宣纸书四季 黑白两色写人生 一笔饱蘸 一笔淡轻 楷行隶草存迥型 一撇述功过 一捺藏杂陈 起笔落笔源于心 挥墨字...
    山上人家123阅读 111评论 11 22