二 网络也有层,上下须分明

话接上回,我们经历了一次完整的购物之旅,中间经历了多个层次,这些层次的奥妙在哪里?且听我娓娓道来。
首先我们要明白网络分层的意义在哪?
因为互联网发展的今天,已经非常之庞大了,所以就会越来越复杂,而处理复杂的问题的最好办法就是分而治之。
好,下面我们化身为一个网络软件,而且是可移植的,可以跑在不同样的操作系统平台上,而且我们多个接口,网络数据从我们的一个接口进来,经过我们的处理之后,从另外一个接口出去。
来吧,让我们进行一次精彩的旅程吧!
当网络数据从我们接口经过的时候,由于我们启用了混杂模式,一个不落,通通进入我们的接口。
我们启用数据链路层的功能,进行解封装二层的头,看 MAC 地址是是自己的,就会启用网络层功能,进行解封装三层的头。
看 IP 地址是自己的,就会启用传输层功能,使用 TCP 协议来处理正常的数据包,根据四层头的端口号,找到对应的应用。
就比如电脑里面的浏览器或者是手机上的APP,这个时候我们的工作就暂时告一段落了,因为交给了浏览器或者 APP 处理。
浏览器解析着 HTML,页面渲染出来,和用户进行交互,用户在浏览器的动作会生成 HTTP 请求,形成了源端口号,目标端口号自然是知名端口 80。
这个时候,和刚刚的过程刚好相反,我们先启用传输层功能,封装 TCP 头部。
然后启用网络层功能,封装 IP 头部,里面含有源 IP 地址和目标 IP 地址。
再次启用数据链路层功能,封装 MAC 头部,里面含有源 MAC 地址和目标 MAC 地址。
最后就是从我们的另一个接口发出去了。
我们要明白一个道理,如同大楼一般,必须要有地基才能稳固,所以上层在工作的时候,下层也在配合。但是没有下层的话,上层如同无根之木无源之水,自然也存在不了。我们要知道的是网络的各个层次都没有闲着,都坚守各自的岗位,充分发挥自己应有的能力。

猜你喜欢

转载自blog.51cto.com/sanyuanyanjin/2499516