5. 应用层

在 TCP/IP 模型中,网络通信被划分为不同的层,我们将从最顶层的应用层开始。这是你交互最直接的一层,因为它负责为网页浏览器和电子邮件客户端等用户应用程序提供网络服务。

应用层的作用

应用层充当设备上软件与网络本身之间的接口。当你发送电子邮件、浏览网站或传输文件时,是应用层启动了该过程。它的主要工作是准备用户数据,并将接收到的数据以用户友好的格式呈现出来。

什么是应用层协议

为了管理通信,应用层使用特定的协议。那么,什么是应用层协议呢?它是一套定义应用程序如何在网络上交换数据的规则。不同的任务使用不同的协议。例如,网页浏览使用 HTTP 或 HTTPS,文件传输可能使用 FTP,而发送电子邮件通常使用 SMTP(简单邮件传输协议)。每种协议都确保发送方和接收方都能理解消息的格式和含义。

应用层协议示例

让我们以电子邮件为例,看看应用层协议的示例是如何运作的。想象你正在给朋友发送一封电子邮件。

  1. 你在电子邮件客户端中撰写邮件。
  2. 当你点击“发送”时,电子邮件客户端(应用程序)将数据交给应用层。
  3. 应用层使用 SMTP 协议来正确格式化电子邮件。

数据封装和应用层头部

在数据发送到下一层(传输层)之前,必须对其进行准备。这个过程称为封装。应用层在原始数据上添加一个应用层头部。该头部包含接收应用程序理解数据所需的特定于协议的信息。

头部与数据的组合成为下一层的数据载荷。当数据在网络堆栈中向下移动时,每一层都会添加自己的头部。虽然我们通常使用“数据包”(packet)这个通用术语来描述在网络上传输的数据,但不同层对数据单元有特定的名称。在传输层,它是一个“段”(segment),在链路层,它是一个“帧”(frame)。

在我们的电子邮件示例中,经过 SMTP 格式化的数据通过一个特定的端口(SMTP 使用 25 端口)传递给传输层,在那里它将进一步封装,以进行网络传输。

登录以保存您的学习进度

登录

练习

实践出真知!这是一个强化你对网络层和端口理解的实践实验:

  1. 使用 netstat 在 Linux 中分析网络端口和会话 - 在此实验中,你将学习如何使用 netstat 命令来分析网络活动,探索网络端口、套接字和活动连接等基本概念。这将让你对服务如何在网络上通信有实际的了解,这与我们讨论的传输层概念直接相关。

此实验将帮助你在真实的 Linux 环境中应用网络通信和端口使用的概念,增强你理解应用程序如何与网络堆栈交互的信心。

测验

What layer is used to present the packet data in a user-friendly format? (Please answer in English and pay attention to capitalization.)