一、分层的原因
(1)清楚的结构模型允许我们对大型复杂系统定义其特定部分,探讨其各部分的关系。
(2)模块化使得系统的维护、升级简化,例如改变其某一层服务的具体实现对系统其余部分透明。
(3)分层式将人和机器联系起来的常见手段。
二、分层的弊端
各层可能重复较低层的功能。
三、ISO/OSI七层参考模型
如下图所示:
此模型将internet架构分为七层,是国际通用的标准。涵盖了internet各个方面,但在实际中使用的不太多。
四、TCP/IP参考模型
在实际使用中实际上使用的是此模型,去掉了会话层和表示层。
五、网际协议栈
若要将上面的软件架构功能实现,是需要靠软硬件来完成,在软硬件当中最重要的就是各种各样的协议。这些协议构成一个网际协议栈。每层都有不同的协议。常用的有如下几种:
(1)应用层:支持网络应用,报文传送。主要的协议有HTTP,FTP,SMTP等。
(2)传输层:主机进程间数据段传送。主要协议有TCP,UDP。
(3)网络层:主机间分组传送。主要协议是IP协议,路由协议。
(4)链路层:相邻节点之间的数据帧传送。常用的协议有PPP,Ethernet
(5)物理层:物理介质上的比特传送。
六、逻辑通信
互联网是一种分布式的通信方式,在各个节点的网络实体实现了各层的功能:主机实现5层功能,路由器和交换机实现二层或三层功能。
网络实体完成功能动作,对等实体交换消息。
实体:定义自身功能的硬/软件集合。
对等实体:两台计算机上同一层所属的程序、进程或实体称为该层的对等程序、对等进程或对等实体。例如我和别人使用微信聊条,我这边的微信与别人的微信就是对等实体。
逻辑通信对使用者而言不用关心这层的下一层是怎么通信的,而只需关心在同一层上的对等实体之间应该做什么事情。
七、物理通信
最终是依靠物理链路一个一个比特的传输和交互消息。
八、协议分层与数据
各层发方从上层到下层,收方从下层到上层传递数据。那这样的传递方式是怎么实现的呢?主要是通过添加协议头或控制头的方式来实现。如图所示:
发送方添加头部信息创建新的数据单元传递给下一层,接收方去掉头部将剩下的部分传递给上一层。
各层传送的数据包称为协议数据单元,简称PDU。在发送方发送数据的过程称为分装,接收方接收消息的过程称之为解封。