计算机系统013 - 网络互联

种种缘由,中间停更许久,想来既然文集号称要包括网络,那就趁近日偷得闲暇,慢慢补上。node

声明: 本系列文章中图片大部分并不是自绘,若有侵权,请联系删除。git

惯例回顾前文,从电学讲到硬件,从硬件讲到操做系统,至此脑中的计算机已可开机运行。所谓程序,不过是既定的指令排版,随外界触发而应答。也就是说必需要有I/O的参与,运行才有了意义。在计算机还未普及的时代,I/O的参与者并很少,网络也并未普及,人们只能使用软盘、硬碟以致后期的U盘经过手动拷贝、人工携带的方式进行资料的传播。及至网络(尤为是WIFI)的普及,Internet才真正突飞猛进地改变生活。服务器

那么先来解决一个问题,什么是Internet?网络

Internet

The Internet is the global system of interconnected computer networks that use the Internet protocol suite (TCP/IP) to link devices worldwide. A computer network, or data network, is a digital telecommunications network which allows nodes to share resources.负载均衡

从字面来看,意为经过协议互联的计算机网络。而计算机网络,就是经过数字通信实现结点资源共享的网络。简单地讲,计算机网络就是计算机之间经过某种连接进行信息传递,而所谓因特网(Internet),就是不少计算机网络之间为了进行信息传递,而按照必定协议相互连接造成的大网络。稍微整理一下,就能够看到这里面有几个要素:ide

  • 结点ui

    结点,也叫终端(End Systems)、主机(Hosts)等等,归根结底一句话,是一个可联网的设备。可联网必须有网卡,网卡有其出产前定下的MAC地址,这就是结点在网络中的惟一硬件标识。操作系统

  • 连接计算机网络

    连接能够是有形的硬件,好比网线,也能够是无形的能量,好比电波。条条大路通罗马,只要结点双方能够找到一条通路,便是互联。cdn

  • 协议

    全部的约束源于不一样,人与人之间须要共同语言(至少是共同语种)才能进行对话,结点之间也同样。为了顺畅而准确地交流,不一样结点间必须定义某种协议,各自严格遵照,才不会引起误解。一样的事情还发生在各种文件格式标准中,只有遵照约定俗成的文件格式进行读写,才能可靠还原出本来的内容。

进一步以前,先看一下一条信息在网络中传递的大体路径。

从图中能够看出,信息从结点A传递至结点B须要通过以下环节:

  • Switch 交换机

    Swtich也成为网桥(MAC bridge),意为将多个MAC地址集中互联,组成网络。其面向的是MAC地址一层,属于数据链路层(后续协议中会讲到)。

  • Router 路由器

    路由器用于在不一样网络之间进行分组交换,其面向的是IP地址一层,属于网络层。所以相对交换机而言,最大的不一样是各自面向的层级。

  • ISP 互联网供应商

    路由器链接数个由交换机组成的网络后,造成初级规模的互联网,多为区域性网络。为了能使不一样区域网络中的设备也能相互通讯,那么就须要架设更多硬件实现互联,而硬件也表明着成本,专业从事这项工做的部门或企业就成为了互联网运营商,国内如移动、联通、电信等都是互联网运营商。

    运营商运营的是硬件设备间数据通讯的能力,即数据流量、带宽等资源。出于成本及市场控制等因素的考虑,不一样运营商之间进行数据通讯,则每每须要消费者付出更大的代价。

    同时,有了通讯能力运营商的出现,使得信息贩卖更加便捷,所以也逐步出现了内容供应商,他们提供内容资源,经过通讯网络贩卖给有相应需求的用户。这类供应商典型的有爱奇艺、优酷等。

    CDN

    多提一句,中华地大,若是内容供应商只在某地提供服务器,则远离该服务器物理地址的用户须要经过更屡次路由器转发才能访问成功,会极大提升获取内容所需时长,下降体验,所以一般会采起CDN技术避免该类现象。所以CDN的本质是经过:

    • 单点服务器冗余实现负载均衡
    • 地理多点服务器内容冗余下降响应时长

网络延时

从上面结点A、B间通讯路径来看,单次通讯所需时长很大程度由以下因素决定(为便于描述,将下图中信息统称为分组Packet):

  • Porcessing

    分组处理视需求而定,如是否包含位校验等,一般高速路由器在该阶段所需时长在毫秒级甚至更少。

  • Queueing

    路由器内部会为每一个出口连接维护一个队列,处理后的分组将会根据其头部中的IP地址信息分往对应出口。此处所耗费时间视当前队列空闲状况而定,队列越满,耗费时间越长,队列越空,则耗费时间越短甚至为0。所以须要注意,这段延时是每一个分组各自不相关的,即存在各不相同的状况

  • Transmission

    路由器在发出一个分组以前,必须完整接收该分组,不然也不能完成前面的处理环节。不一样路由器处理的能力有快慢,单位一般为Mbps,也就是常说的百兆千兆路由。假设分组长度为L,而处理速率为R,那么传输延时就是 L/R

  • Propagation

    传输只是送出路由自己,路漫漫才刚开始。或是经过硬件光纤、或是经过无线电波,都必须将电信号一一传输到对端,路径越长、路径自己传输速率越低,相应延时就越大。但不论多远,距离/速度也终有到达之日,因此说最遥远的距离,是你就站在我面前,我却找不到路由器来连接你。

分组丢失

一人旅行从A到B,却在中途丢失,那一般有两个可能:

  • 他走了错误的路,穷其一辈子,像迷宫中的蚂蚁,不幸始终未找到正确的路径,抵达出口
  • 他压根不在路上,或是掉下了船,或是坠入的深渊,总而言之,已经完全消失

分组也同样,丢失有两种可能:

  • 被路由送入错误的队列,今后迷途,最终耗尽本身的Time To Live(TTL),毁灭
  • 在队列中被挤出,离开路径,英年早逝

因此说管理源于资源稀缺性,世界虽大,物种也很多,网络虽大,分组则更多。个体的消失其实司空见惯,若是某个个体真的重要,那请多耗费些资源,将其变成Very Important Person(VIP)。对应的,UDP服务于通常分组,TCP则静待贵宾。

小结

不忘初心,分组只是想从A到B,历经三大要素。按照前面管理,自此行文会花开三朵,各起一章。然而本人对硬件部分关注很少,幸亏常理来说,读者也不会过于深挖硬件,所以网络三要素中,只讲协议,至于前两点涉及部分,将只在相关协议层中穿插说明。

相关文章
相关标签/搜索