应用程序的爆发式增长主要归功于通过网络处理数据时分层方法的使用。 具体而言,保持应用层功能与传输数据功能的分离,允许应用层协议的更改和新应用程序的开发,而开发人员无需担心通过网络获取数据的机制。 这是其他层的功能,因此是其他开发人员的职责。

如图所示,当应用程序将请求发送到服务器应用程序时,消息由应用层建立,但之后向下传输通过客户端的所有不同层的功能以便传输。 当它沿协议栈移动时,每个较低层都会用一个包含该层通信协议的报头封装数据。 在发送主机和接收主机上实现的这些协议通过网络交互,为应用程序提供端到端传送。

HTTP 等通信协议支持向终端设备发送 Web 网页。 既然我们已经了解了所有不同层及其功能,那么就可以通过从 Web 服务器发送的客户端网页请求来观察这些各自独立的功能是如何协同工作的。

使用 TCP/IP 模型,一个完整的通信过程包括六个步骤:

创建数据

第一步是在初始的源终端设备的应用层创建数据。 在本例中,在建立 Web 客户端请求(称为 HTTP GET)之后,将会对该数据进行编码、压缩和加密(如有必要)。 在 TCP/IP 模型中,这是应用层协议的工作 – 但在 OSI 模型中它包括应用层、表示层和会话层所描述的功能。 应用层将该数据作为数据流发送到传输层。

分段和初始封装

下一步是在数据沿协议栈向下传输时对数据进行分段和封装。 在传输层,HTTP GET 消息将分解成更小、更易于管理的片段,并且消息的每个部分都会添加一个传输层报头。 在传输层报头中有如何重建消息的指示符。 还包含一个标识符,端口号 80。 这用于告知目的服务器该消息会通往其 Web 服务器应用程序。 还添加了一个随机生成的源端口以确保客户端可以跟踪返回通信并将它向上转发到正确的客户端应用程序。