计算机网络中的一种设计框架。在根据这一原则设计的网络中,保证某些特定于应用程序的特性,例如可靠性和安全性,需要它们驻留在网络的通信端节点中。为建立网络而存在的中间节点,例如网关和路由器,可以实现这些以提高效率,但不能保证端到端的正确性。它最初的表述将状态维护和整体智能置于边缘,并假设连接边缘的互联网不保留状态,专注于速度和简单性。现实世界对防火墙、网络地址转换器、Web内容缓存等的需求迫使这一原则发生了变化。
鲁棒性原则指出:“一般来说,实现必须在发送行为上保持保守,在接收行为上自由化。也就是说,它必须小心发送格式良好的数据报,但必须接受它可以解释的任何数据报(例如,不反对含义仍然清晰的技术错误)。”“原则的第二部分几乎同样重要:其他主机上的软件可能包含缺陷,使得利用合法但晦涩的协议功能是不明智的。”
封装用于提供协议和服务的抽象。封装通常与将协议套件划分为通用功能层相一致。通常,应用程序(模型的最高级别)使用一组协议将其数据向下发送。数据在每个级别进一步封装。
早期的架构文档RFC强调架构原则而不是分层。RFC,标题为HostRequirements,在段落中提到了层,但该文档提到了许多其他架构原则并且不强调分层。它松散地定义了一个四层模型,层具有名称,而不是数字,如下所示:
1、应用层是应用程序或进程创建用户数据并将此数据传递给另一台或同一主机上的其他应用程序的范围。应用程序利用底层较低层提供的服务,特别是为其他进程提供可靠或不可靠管道的传输层。通信伙伴的特点是应用架构,例如客户端-服务器模型和对等网络。这是所有应用程序协议(例如SMTP、FTP、SSH、HTTP)运行的层。进程通过本质上代表服务的端口来寻址。
2、传输层在本地网络或由路由器分隔的远程网络上执行主机到主机的通信。它为应用程序的通信需求提供了一个渠道。UDP是基本的传输层协议,提供不可靠的无连接数据报服务。传输控制协议提供数据流控制、连接建立和可靠传输。
3、互联网层跨网络边界交换数据报。它提供了一个统一的网络接口,隐藏了底层网络连接的实际拓扑(布局)。因此,它也是建立互联互通的层。事实上,它定义并建立了互联网。这一层定义了用于TCP/IP协议套件的寻址和路由结构。此范围内的主要协议是定义IP地址的Internet协议。它在路由中的功能是将数据报传输到下一个主机,充当IP路由器,该主机具有与更接近最终数据目的地的网络的连接性。
4、链路层定义了本地网络链路范围内的网络方法,主机在该链路上进行通信而无需干预路由器。该层包括用于描述本地网络拓扑的协议和影响Internet层数据报到下一个邻居主机的传输所需的接口。