故事就从一个车轱辘说起吧。先来看一个车轱辘。 辐条从车轱辘边缘,一直汇聚到中心的轴,这个轴在英文里叫hub。 而我们今天要讲到的集线器,英文里也叫hub。 都叫hub,多少有点关系,看下这面这个图大概能明白,其实两者有点像。 hub的由来大概想表达的意思是,它是汇聚网线的中心,因此就叫集线器。 所以可以理解,大家常逛的Github,DockerHub,还有P**hub,都是为了表达它们是某类资源的中心了吧。 那么集线器是什么呢?那就要从电脑是怎么互联的这个话题说起。 小学的时候,有一种网吧,它其实是不能上外网的。也就是不能打开度娘,不能搜索资料。 不能上网的网吧还能叫网吧? 能。虽然不能上外网,但网吧老板可以把很多台机子连起来,实现网吧内互联,形成一个局域网(LocalAreaNetwork,简称LAN)。 网吧内互联之后,就可以放上各种游戏,比如CS,实现网吧内对线。 这种网吧有种好处,没有那么多键盘侠。 毕竟你不知道什么时候键着键着,对方就顺着网线找过来了。 对战直接从线上转移到线下了。 因此大家打游戏都很和谐,客气,场面十分感人就是了。 那么网吧内的电脑是怎么互联呢? 一根网线互联电脑从最简单的场景说起,假设网吧内只有两台电脑 两台电脑互联随便连根网线就能实现互联吗? 当然不是。 还记得网络分层吗? 网络分层数据如果要进行传输,会从A电脑经过这些网络分层把消息组装好,再到B电脑层层解包。 网线,只是代替了上面的灰色部分,实现物理层上互联。 如果想要两台电脑互联成功,还需要确保每一层所需要的步骤都要做到位,这样数据才能确保正确投送并返回。 我们自顶向下,从细节开始说一下实现互联需要做什么。 应用层该层的网络功能由应用本身保证。 假设两台电脑是打算用游戏进行联网,那么该应用层的功能由游戏程序保证。 传输层绝大部分游戏用的传输层协议都是TCP,我们可以看下TCP报头。 TCP报头这里面我们需要
|