@IT·互联网JavaJava 程序员

网络的形成-从原始部落到现代化世界

2021-12-03  本文已影响0人  马小莫QAQ

网络是一个虚拟的东西,它很大意义上不是看的见摸得着的:

物理层

是网线,是光纤,是产生信号传输的介质,是物理介质。

链路层

在物理层中,我们知道

我们需要划分一些规范,让这个简单的网络能正常工作。

数据流和帧

首先是包的拆分,这可以让一个方向的流不会永远占据链路。

按照流发送

这里描述的过程是这样的:

链路帧发送

所以,链路层做了一些事情,如下图:

这样的话,链路层的帧解决了链路独占的问题。

以太网是使用的最广泛的一种链路层的协议。

链路层基本要素

这样,链路层基本要素如下图:

链路层还制定了mac地址的规范, 每一张都网卡有唯一的MAC地址标志

链路层的寻址工具-交换机

一般主机的网卡端口少,能直连的机器非常少,所以引入了交换机。

交换机本身没有MAC地址,存在的目的是帮助帧的转发。

如上图:

链路层的帧格式

链路层制定了mac地址的规范,可以看到帧格式如下:

链路层的网络世界构成部落

如下图交换机通过层级结构还能构成更大的网络:

A发包给C,如果当前连接的交互机没有记录这个mac地址,则会转发给其他所有的交互机,开销很大。

主机的mac地址相当于没有特殊标志的身份证,通过相连的交换机,再遍历整个网络去寻址

所以一个交换机相连的子网一般都不会包含太多的机器,就相当于一个一个的小部落

IP层

要通过链路层构成大的网络世界有些麻烦,所以网络协议的制定者又开始思考新的方案。

如果想要在很多很多的小部落里面进行通信,路由会变得非常困难,所以产生了IP层。

网络范围扩张

部落-村落

交换机组成的网络世界相当于一个一个的小部落,我们人类的发展不就是网络发展的最好的借鉴,如下图:

村落-更大区域

网络还在继续发展:

IP层次划分

现在网络已经足够大了,然而现实情况的网络比这个更密集更复杂。

住址和行政层级

世界也很大,我们要找到一个人的住址,可以用行政层次来表示:

从下到上依次是: 小组-村-乡-镇-县-区-市-省-国家-星球

IP地址

和现实世界不一样的,我们用IP地址来表示网络地址,IP有32位,表示全世界最多有4亿个独一无二的IP地址。

上面的行政地址一共划分了10个层次,IP地址虽然没有这么形象,但是也是天然自带层次的。

ipv4

如果按照8位一组来划分,则IP分成了4组,所以称为ipv4

上面的地址就是一个ipv4的地址, 01101111.01111101.11111011.11110100 也就是111.125.251.244

IP分配
私有的网络

只是现在全世界的电脑台数应该远远不止4亿,IP地址已经不够用了,再加上上面说到的那些划分导致的浪费,就更是IP告急了。 所以大部分时候,比如在我们国家,很多社区、公司和学校都会用到私有网络的方案。

如下面的图:

私有网络限制

case1

因为私有网络限制,里面的主机在上网的时候,往往需要对包多进行一层处理(和公网相比还多了一层转换),如下C1A打开了QQ聊天程序,和学校外面的家人聊天,

case2

有时候需要访问私有的地址,就像访问服务器一样。

比如P2P类型的应用,大家都是网络上的一个节点。

因为处于局域网的原因,所以我们需要用到一些网络反转技术

ipv6

因为IP告急的原因,后来又制定了ipv6的规范。

一共128bit,每16位划分,分成了8组。

但是现在还不是很普及。

路由

上面讲了IP层次的划分,我们可以形象的知道大概通过这样的方式去找到网络世界上的另外一个主机。

在具体实现上,实现了IP层协议的机器都维护了1张路由表,这个路由表表示了自己所能感知的网络世界

可以通过route命令查看主机或者路由器上面的路由表,

# route 
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         9.134.64.1      0.0.0.0         UG    0      0        0 eth1
9.0.0.0         9.134.64.1      255.0.0.0       UG    0      0        0 eth1
9.134.64.0      0.0.0.0         255.255.240.0   U     0      0        0 eth1
10.0.0.0        9.134.64.1      255.0.0.0       UG    0      0        0 eth1
100.64.0.0      9.134.64.1      255.192.0.0     UG    0      0        0 eth1
172.16.0.0      9.134.64.1      255.240.0.0     UG    0      0        0 eth1
192.168.0.0     9.134.64.1      255.255.0.0     UG    0      0        0 eth1
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 docker0

输出结果中各个字段的含义是:

总结

本文通过从下到上依次描述物理层、链路层和网络IP层,描述了世界上的计算机是怎样连接在一起的。

一步步,一层层,网络从原始的形态渐渐变成了现在这样的现代化的形态。

作者:小圆规
链接:https://juejin.cn/post/7037282120481374215
来源:稀土掘金

上一篇 下一篇

猜你喜欢

热点阅读