网络分层的深层含义:
1.网络为什么要分层?
因为复杂的程序都要分层。
计算机网络中,网络数据(网络包)就是一段 是有格式的Buffer,或者一块内存。
理解计算机网络中的概念,一个很好的角度是,想象网络包就是一段 Buffer,或者一块内存,是有格式的。
同时,当一个网络包程序可以同时工作在客户端计算机、服务器、交换机、路由器服务器上,且需要从不同的
接口获取网络数据包。因此对如此复杂的网络包程序必须分层才能利于处理。
2.接收数据包时,由于物理层不知道数据协议,因此将数据全部接收,然后由拆包程序对网络数据包对数据进行拆包
分层处理。
3.解包过程,查看MAC与本地计算机MAC是否一致,一致则获取数据去掉MAC头,传入IP层,在IP层,查看IP地址与本机
是否一致,一致则将IP层去掉,将传输层给TCP层,TCP层获取序列号、端口号等正确后,传输至HTTP层处理。
4.层与层之间的关系
在TCP 三次握手的时候,IP 层和 MAC 层在做什么呢?当TCP 发送每一个消息,都会带着 IP 层和 MAC 层了。
因为,TCP 每发送一个消息,IP 层和 MAC 层的所有机制都要运行一遍。而你只看到 TCP 三次握手了,其实,IP 层和
MAC 层为此也忙活好久了。也就是:只要是在网络上跑的包,都是完整的。可以有下层没上层,绝对不可能有上层没下层。
所以,对 TCP 协议来说,三次握手也好,重试也好,只要想发出去包,就要有 IP 层和 MAC 层,不然是发不出去的。
5.二层设备处理MAC包,三层设备除了处理MAC包,还可以将MAC头去掉后,可再次处理IP数据包。
重点:处理任何网络数据包,都需要由MAC头,之后IP头次之,之后是TCP头,最后是HTTP头,再最后就是传输的应用数据了。
原文:https://www.cnblogs.com/1-zhang/p/11524409.html