Fork me on GitHub

常说的“四层”和“七层”到底是什么?“五层”“六层”哪去了?

这节内容的探讨来自对四层负载均衡、八层负载均衡、二层路由、三层转发等等概念的启发。

一、TCP/IP网络分层模型,总结如下:

TCP/IP分层结构是从下往上以此数层次,下一层是上一层的基础。 

二、OSI网络分层模型(开放式系统互连参考模型)如下:

 

 二者相比来说有什么异同呢?

1. OSI网络分层模型物理层在TCP/IP中没有对应

2.  OSI网络分层模型会话层、表示层、应用层对应TCP/IP中应用层

OSI网络分层模型是对当时比较混乱的分层模型做的一个统一,但是当时就已经存在比较王者的TCP/IP分层模型了,所以OSI出现的时候都只是说是参考模型,在社会上地位并没有很高,但是 不可言喻,OSI模型相对于TCP/IP来说它具备了比较完备的分层,从第一层物理层来看OSI考虑到了最底层的包装,电缆光纤等,这是TCP/IP没有考虑到的,同时,在TCP/IP中没有明确的层次序号,而在OSI网络分层系统中就有明确的序号Line1、Line2等等。用通俗的话来说,OSI网络分层系统是理想,TCP/IP是现实,理想与现实总是有差距的。

到这里,我们就能正式认识一下四层负载均衡和七层负载均衡了。

1. 四层负载均衡:指工作在传输层上,基于TCP/IP协议的特性,例如IP地址、端口号等实现对后端服务器的均衡。

2. 七层负载均衡:指工作在应用层上,看到的是HTTP协议,解析 HTTP 报文里的 URI、主机名、资源类型等数据,再用适当的策略转发给后端服务器。 

三、TCP/IP栈的工作方式

我们找一个生活中寄快递的例子来对应TCP/IP栈工作模式。

背景是:我要把手里的小熊通过快递的形式送到小明手中。

首先我先对手里的小熊用一个塑料口袋初步包装一下,然后将初步包装的小熊交给快递员,快递员再次进行封包并贴上标签,接着放到自己的小车车里面带走到快递站,将贴好标签的小熊放到运输快递的卡车里运输。这一过程中小熊就相当于HTTP协议要传输的内容,塑料口袋初步包装对应要传输的数据在TCP/IP栈中应用层中加上HTTP附加字段,然后快递员再次进行包装对应传输层上数据再次加上TCP头,然后快递员的小车车和大卡车相当于数据再次加上IP头和MAC头。

紧接着快递送到了目的地,然后由对方的快递员进行传递到小明手中,这个过程就对快递进行层层拆包。快递到了目的地,快递员将快递从卡车上拿下来,这里就对应数据去掉了MAC头,接着放到自己的小车车里头,这时又去掉IP头,最后达到了小明的家门口,又小明签收后去掉标签,然后小明将快递拆开,并将塑料包装袋拆开,最后拿到小熊,这时就是数据拆去TCP头和HTTP头的过程。

HTTP 协议的传输过程就是这样通过协议栈逐层向下,每一层都添加本层的专有数据,层层打包,然后通过下层发送出去。接收数据是则是相反的操作,从下往上穿过协议栈,逐层拆包,每层去掉本层的专有头,上层就会拿到自己的数据。
有一个辨别四层和七层比较好的(但不是绝对的)小窍门,“两个凡是”:凡是由操作系统负责处理的就是四层或四层以下,否则,凡是需要由应用程序(也就是你自己写代码)负责
处理的就是七层。 
 
四、课后作业
1. 你能用自己的话解释一下“二层转发”“三层路由”吗?
答:
(1)二层转发:设备工作在链路层,帧经过交换机设备的时候,检查帧的头部信息,拿到目标的MAC地址,进行本地转发和广播。
(2)三层路由:设别工作在IP层,报文经过有路由功能的设备时,设备分析报文中的头部信息,拿到ip地址,根据网段范围,进行本地转发或选择下一个网关
2. 你认为上一讲中的 DNS 协议位于哪一层呢?
答:DNS是域名解析系统,将域名解析为IP地址的过程,是网络请求的第一步,所以工作在应用层。
3. 你认为 CDN 工作在那一层呢?
答:CDN是内容分发网络,是通过缓存服务器部分数据实现提高客户端访问资源效率的缓存设置,要看到内容就必须在应用层。 
至此,结束。
posted @ 2021-02-22 10:27  叶语婷  阅读(1088)  评论(0编辑  收藏  举报