网络世界的构建 一
设备互联
随着一台台的计算机出现,自然而然就出现了让计算机互联的要求,数据链路层解决的就是使得网络互连在一起的功能。(局部网络互连)
但是有个问题,网络设备多种多样,且实际物理环境想当复杂,导致了我们局部网络间互连的方式是多种多样的。
局域网互联
那么,跨越局部网络时,机器该如何互连呢?(一个数据包跨局域网传输呢)
IP协议的出现
我们或许可以这样:在每个局部网络中都以该局部网络的方式传输,所以我们只需要知道目标机器的地址就行。
这就有一个问题,一个机器如何知道在另一个网络机器中的地址呢?
可以通过不断问路的方式,每次经过一个路由器就问下一站怎么走。
问题就推到了路由器这儿了,路由器得知道周围网络设备的地址,且这地址需要是实时的(地址过期的话就会指错路)。
那么如何知道周围网络设备的地址呢?
首先可以确定的是,网络设备很多很多,每个设备地址都存的话路由器跟本承受不住,所以我们需要将一个局域网中的所有网络设备全部用一种方式表示。
然而,因为网络设备地址是没有什么规律的,所以怎么统一编址就成了一个问题。
IP地址应运而生,将设备号分为网络号和主机号,很好的解决了这个问题。
因此路由器中存储的key:value就是目标地址的网络号:目的线路。
网络传输的通用要求
IP层让局部网络互连成为了可能,这时我们已经可以自由的在网络玩耍了。不过啊,我们在网络玩耍时通常会有一些大家都要的需求,比如需要网络传输的可靠。所以TCP因此诞生了。
那么如何实现网络数据的可靠传输呢?
很简单,弄一个出错检验机制,出错了重传即可。为了可靠传输,导致网络中的数据包数量增加了很多,所以TCP得负责解决这个问题,拥塞控制机制也因此诞生了。
在其中,为了不断追求性能和网络资源的高效利用,TCP中又诞生了一些学问。
比如流量控制,数据报并行发送,各种重传手段等。总之啊,它目的就是满足网络上所有关于传输的通用需求。
Udp呢,则是在你没有各种需求或者有一些特殊的需求要自己定制的时候去使用。
各种玩法(传输人们感兴趣的数据)
TCP登场结束,下面就到人们发挥想象力的时候了
最开始火爆的协议是邮件协议,发现一个消息给对方,对方可以在任何时候查看。然而啊,人们还有很多需求。
最后,人们野心勃勃,想要一个专门传输人们感兴趣的数据的协议(文本,音频,图像等),这个协议的目的就是为了解决一切传输人们感兴趣数据的问题。
后来,为了交互的方便,弄出了一个能承载所有人们感兴趣数据的载体,也就是html,
由于HTTP协议是一个解决一切人们感兴趣数据问题的协议,所以它面对的问题很多
大数据如何传输,小数据如何传输,如何保证数据的安全性等等…保证数据安全性的需求发展出了HTTPS
后来随着某些厂商的做大,定制化服务兴起,HTTPDNS就是这样一个产物。
同时,为了服务更多的用户,一台机器不够多台来凑,因此,服务器由一台变成了多台,这就产生了分布式这一门技术。
近期,一些产商更是提供一些通用性的服务,因此崛起的有RPC服务,阿里云等等,世界就这么变得复杂起来