第二课:面向服务架构——传输语义的升级
正文:其实还是有一些区别的。对于网络来说最终肯定还是要找到门牌号的,因为门牌号是你的物理地址,就是你物理上位于哪里。但是我们的网络是分层的,从应用层到传输层一直到底下的物理层,它每一层有不同的语义,每一层有不同的业务逻辑。
就现在来说,传输层对应用层提供的语义,是应用层必须知道下面找到的那个东西的门牌号在哪儿,如果这个门牌号动了,现在传输层的语义认为连接那个东西已经不是原来的门牌号了,你必须重新发起所有的连接。就相当于虽然那个人还是他自己,但是对于我们现在的网络来说,如果他动了,他就不是他了。
但是以服务为中心的逻辑就是说,对于传输层对应用层的上层语义来说,应用层只认要的服务的名字,至于它在底下怎么走,把它交给网络,它们本身不知道这件事情,也不想知道。如果只要这个服务或者说你可以理解只要这个人还在,对于应用层和传输层的语义来说它就认为这个连接是稳定的,没有中断的,一切都照常。
底下可以比如说有千变万化各种灵活的路径,或者你移动之后,我重新路由,这些事情都可以把它放到网络里面来做,而网络来处理这个事情比在应用层、更高的层面处理这个事情效率要高的多。
所以说虽然最终还是要找到那个东西的门牌号,但是现在对于应用层来说,它已经不需要去找那个门牌号,找门牌号的这个事情交给网络,它就可以变得非常的简单,速度和效率都会变得更高,性能也会得到很大的提升。
导语:有人认为,应用层现在也不需要找IP地址做为门牌号,有域名做为中间层,结合DNS已经解决刚才说的那个问题了
DNS是不能完全解决这个问题的,DNS有两个维度的问题。首先即使使用DNS,但是其实没有改变传输层和应用层之间的以地址为身份标识的这样一个语义,这样就导致应用层必须来自己关心底层网络的变化。而恰恰是这种应用层必须来关心底层网络的变化,才导致你的连接会中断。
比如说我现在通过DNS查到一个百度的地址,我连到了它,那如果百度换了它的IP地址,我们先不考虑CDN的情况,那么上层应用什么时候去进行DNS的查询呢,一定发现我的连接已经断了时,我如果没断我不会发起DNS查询的。
另外一个维度就是说,即使我们让DNS去做这件事情,但是DNS其实是一个静态的系统,他不是为动态网络来提供的,不论可扩展性还是响应速度都不能应对实时的动态网络的要求,比如说DNS查询的速度要远远慢于底层网络自动重新路由的速度,以及DNS的更新速度是以分钟、小时、天来算的,不是说你一个节点从一个地方移到另外一个地方,全球的DNS就会更新了,不是这样的。
【版权归钛媒体所有,未经许可不得转载】
账号合并
经检测,你是“钛媒体”和“商业价值”的注册用户。现在,我们对两个产品因进行整合,需要您选择一个账号用来登录。无论您选择哪个账号,两个账号的原有信息都会合并在一起。对于给您造成的不便,我们深感歉意。
Oh! no
您是否确认要删除该条评论吗?