1.应用层概述

应用层是计算机网络体系结构的最上层,直接为网络应用程序提供服务,无需关心网络底层的传输、路由等细节。

  • 核心功能:为应用程序提供网络通信接口,定义应用进程间通信的协议规范(如报文格式、交互流程)。
  • 设计原则:基于传输层提供的服务(TCP 的可靠字节流 / UDP 的无连接数据报)构建,屏蔽底层网络的差异。
  • 典型应用协议:DNS、DHCP、FTP、HTTP、SMTP/POP3 等,对应不同的网络应用场景。

2.客户以服务器方式和对等方式

这是应用层程序的两种核心工作模式,决定了应用进程间的交互关系。

特性 客户 - 服务器方式(C/S) 对等方式(P2P)
核心架构 服务器长期运行、固定 IP,被动等待客户请求;客户主动发起请求 无固定服务器,各主机地位平等,既是客户也是服务器
资源分配 服务器集中管理资源(如文件、数据库) 资源分散在各对等节点,按需共享
性能特点 服务器易成为瓶颈,需部署集群、负载均衡 节点越多,总处理能力越强,扩展性好
典型应用 网页浏览(HTTP)、文件下载(FTP)、邮件服务 点对点文件共享(如 BT 下载)、即时通讯

3.动态主机配置协议DHCP

通过DHCP服务器为指定网段主机分配IP地址。

DHCP 是基于 UDP 的应用层协议,用于自动为局域网内主机分配 IP 地址及相关网络参数(子网掩码、网关、DNS 服务器地址),避免手动配置的繁琐和错误。

  • 核心功能:自动分配 IP 地址(支持临时分配的动态分配和长期占用的静态分配)、子网掩码、默认网关、DNS 服务器地址。
  • 工作流程(四步握手):
    1. DHCP 发现:新主机广播 DHCPDISCOVER 报文,寻找局域网内的 DHCP 服务器。
    2. DHCP 提供:DHCP 服务器收到报文后,广播 DHCPOFFER 报文,提供可用的 IP 地址。
    3. DHCP 请求:主机选择一个 IP 地址,广播 DHCPREQUEST 报文确认请求。
    4. DHCP 确认:服务器广播 DHCPACK 报文,正式分配 IP 地址及参数。
  • 特点:即插即用,IP 地址可复用,提高地址利用率。

4. 域名系统(DNS)

4.1 核心定义与设计初衷

DNS(Domain Name System)是分布式的域名与 IP 地址映射的解析系统,本质是应用层协议,同时也是一个分布式数据库系统。计算机网络中设备通过IP 地址唯一标识并通信,但 IP 地址(如 IPv4 的192.168.1.1、IPv6 的2001:0db8:85a3:0000:0000:8a2e:0370:7334)是一串无意义的数字,人类难以记忆和识别。DNS 的核心作用:将人类易记的域名(如www.baidu.com)转换为机器可识别的 IP 地址(域名解析),同时也支持反向解析(IP 地址转域名),解决 “IP 地址难记、域名无法直接通信” 的矛盾。

4.2 核心功能

  1. 正向域名解析(主流):域名 → IP 地址;
  2. 反向域名解析:IP 地址 → 域名(用于服务器验证、邮件反垃圾等场景);
  3. 提供域名的别名解析(如将mail.qq.com解析为腾讯邮箱的真实 IP);
  4. 分布式存储解析信息,保证系统的高可用、高容错、可扩展

4.3 域名的层次结构

DNS 采用树状的层次域名结构,避免域名重复,同时适配分布式解析,从根到叶依次为:

  1. 根域:最高层级,用.表示,由根域名服务器管理(全球共 13 组根服务器);
  2. 顶级域(TLD):根域的下一级,分为通用顶级域(如.com 商业、.org 组织、.edu 教育、.gov 政府)和国家 / 地区顶级域(如.cn 中国、.us 美国、.jp 日本);
  3. 二级域:由企业 / 机构向域名注册商申请,如baidu.comqq.com(.cn 下的二级域如www.sina.com.cn);
  4. 三级域(子域):二级域的下级,由企业自行划分,如map.baidu.commail.qq.com
  5. 主机名:最底层,标识网络中的具体主机,如 www、ftp、mail。

完整域名示例www.map.baidu.com,从叶到根依次为:主机名 www → 子域 map → 二级域 baidu → 顶级域 com → 根域.。

4.4 DNS 的分布式服务器体系

DNS 的核心特点是分布式,解析任务由不同层级的域名服务器协同完成,避免单服务器瓶颈,主要分为 4 类:

  1. 根域名服务器:全球 13 组,负责解析顶级域,返回对应顶级域服务器的 IP;
  2. 顶级域名服务器:负责解析对应顶级域下的二级域,返回二级域服务器的 IP;
  3. 权威域名服务器:由企业 / 机构部署,存储自身域名的完整解析信息(如百度的权威服务器存储所有baidu.com子域的 IP),是解析的最终来源
  4. 本地域名服务器(递归域名服务器):用户主机首次访问的 DNS 服务器(由运营商 / 学校 / 公司提供,如 114.114.114.114、8.8.8.8),负责递归查询(替用户向各级服务器查询),并缓存解析结果。

4.5 DNS 解析流程(以访问www.baidu.com为例)

DNS 解析采用递归查询 + 迭代查询结合的方式,用户主机与本地 DNS 服务器之间为递归查询本地 DNS 服务器与各级公共 DNS 服务器之间为迭代查询,流程如下:

  1. 用户主机向本地 DNS 服务器发送解析请求:查询www.baidu.com的 IP;
  2. 本地 DNS 服务器检查自身缓存,若有结果直接返回给用户,无则向根域名服务器发送请求;
  3. 根域名服务器无具体解析结果,返回 **.com 顶级域服务器 ** 的 IP 给本地 DNS;
  4. 本地 DNS 向 **.com 顶级域服务器发送请求,顶级域服务器返回baidu.com二级域权威服务器 ** 的 IP;
  5. 本地 DNS 向baidu.com权威服务器发送请求,权威服务器返回www.baidu.com的真实 IP
  6. 本地 DNS 将 IP 返回给用户主机,同时缓存该解析结果(设置过期时间),供后续同网段用户查询使用;
  7. 用户主机获取 IP 后,直接与该 IP 对应的服务器建立 TCP 连接,访问目标资源。

4.6 关键技术与补充

  1. 缓存机制:各级 DNS 服务器均会缓存解析结果,减少查询次数,提升解析速度,缓存结果有TTL(生存时间),过期后会重新查询;
  2. DNS 报文:基于UDP 协议传输(端口 53),因解析请求数据量小,UDP 更高效;若报文过大,会切换为 TCP(端口 53);
  3. 本地 hosts 文件:用户主机的 hosts 文件可手动配置 “域名 - IP” 映射,优先级高于 DNS 服务器解析(常用于开发测试、屏蔽广告域名)。

5. 文件传输协议(FTP)

5.1 核心定义与设计初衷

FTP(File Transfer Protocol)是应用层面向连接的可靠文件传输协议,基于 TCP 协议实现,核心作用是在不同主机之间(通常是客户端与服务器)实现文件的上传(Upload)和下载(Download),支持跨操作系统、跨网络的文件传输(如从 Windows 客户端向 Linux 服务器传输文件)。

5.2 核心特点

  1. 基于 TCP 的可靠传输:FTP 使用 TCP 建立连接,保证文件传输过程中无丢包、无乱序,适合传输大文件、重要文件;
  2. 采用双连接机制:FTP 通信过程中会建立控制连接数据连接,二者相互独立,各司其职;
  3. 支持用户认证:默认需要输入服务器的用户名和密码,也支持匿名 FTP(用户名通常为 anonymous,密码为任意邮箱);
  4. 支持多种文件操作:除上传 / 下载,还支持创建目录、删除文件、重命名、查看文件列表等。

5.3 FTP 的双连接机制(核心)

FTP 的双连接是其最关键的特性,两个连接均基于 TCP,端口固定:

(1)控制连接
  • 建立时机:客户端发起 FTP 连接时,首先建立控制连接,且整个会话过程中始终保持
  • 端口:服务器端固定为21 号端口,客户端随机使用一个高端口(>1024);
  • 作用:传输控制指令响应信息,如客户端的登录账号 / 密码、上传 / 下载命令、查看列表命令,以及服务器的成功 / 失败响应(如 200 表示成功,530 表示登录失败);
  • 数据量:传输的数据量极小,仅为指令和状态码。
(2)数据连接
  • 建立时机:客户端发送数据传输相关命令(如下载、上传、查看列表)时,临时建立,数据传输完成后立即断开
  • 端口:服务器端默认20 号端口(主动模式),被动模式下服务器随机分配高端口;
  • 作用:传输实际的文件数据文件列表数据(如 ls/dir 命令的返回结果);
  • 数据量:传输的数据量较大,为文件本身或列表信息。

5.4 FTP 的两种工作模式

根据数据连接的发起方不同,FTP 分为主动模式(PORT)被动模式(PASV),被动模式是目前主流(解决客户端防火墙拦截问题)。

(1)主动模式(传统模式)
  1. 客户端向服务器 21 号端口发起控制连接,完成登录认证;
  2. 客户端向服务器发送PORT 指令,告知自身的高端口(如 1025),表示准备接收数据连接;
  3. 服务器从 20 号端口向客户端的 1025 端口发起数据连接
  4. 建立数据连接后,传输文件 / 列表数据,传输完成后数据连接断开,控制连接保持;
  5. 会话结束时,客户端发送退出指令,控制连接断开。

问题:客户端若开启防火墙,会拒绝服务器主动发起的连接,导致数据连接建立失败。

(2)被动模式(主流模式)
  1. 客户端向服务器 21 号端口发起控制连接,完成登录认证;
  2. 客户端向服务器发送PASV 指令,请求服务器进入被动模式;
  3. 服务器开启一个随机高端口(如 2000),并向客户端返回该端口号;
  4. 客户端主动向服务器的 2000 端口发起数据连接
  5. 数据传输完成后,数据连接断开,控制连接保持。

优势:数据连接由客户端主动发起,不会被防火墙拦截,适配目前绝大多数网络环境。

5.5 FTP 的工作流程(以被动模式下载文件为例)

  1. 客户端启动 FTP 客户端,向 FTP 服务器的21 号端口发起 TCP 连接,建立控制连接
  2. 客户端通过控制连接发送用户名和密码,服务器验证通过后返回成功响应(230);
  3. 客户端通过控制连接发送PASV 指令,服务器开启随机高端口,返回端口号给客户端;
  4. 客户端向服务器的该高端口发起 TCP 连接,建立数据连接
  5. 客户端通过控制连接发送RETR(下载)指令,指定要下载的文件名;
  6. 服务器通过数据连接将文件数据发送给客户端;
  7. 文件下载完成后,数据连接立即断开,控制连接仍保持;
  8. 客户端发送QUIT 指令,服务器返回退出响应,控制连接断开,FTP 会话结束。

5.6 相关协议补充

  1. TFTP(简单文件传输协议):基于 UDP 的轻量级文件传输协议,无认证、无双连接,端口 69,适合小型嵌入式设备、局域网内的简单文件传输,传输可靠性由 UDP 上层保证;
  2. SFTP(安全文件传输协议):基于 SSH 协议的安全 FTP,对传输的数据进行加密,避免明文传输账号 / 密码和文件数据,解决 FTP 的安全漏洞。

6. 电子邮件服务

6.1 核心定义与系统组成

电子邮件(E-mail)是计算机网络中最经典的应用之一,核心作用是实现跨网络的异步文本 / 附件传输,相比传统邮件,具有快速、低成本、多格式的特点。电子邮件服务并非单一协议,而是由客户端、服务器多个协议协同构成的分布式系统,核心组成包括:

  1. 用户代理(UA):电子邮件客户端,如 Outlook、Foxmail、网页版邮箱(webmail),是用户直接操作的界面,负责撰写、编辑、发送、接收、阅读邮件;
  2. 邮件服务器:核心组件,分为发送邮件服务器(SMTP 服务器)接收邮件服务器(POP3/IMAP 服务器),负责邮件的存储、转发、接收,24 小时在线运行;
  3. 邮件协议:SMTP、POP3、IMAP,分别负责邮件的发送、接收,是客户端与服务器之间的通信规则。

6.2 电子邮件的地址格式

电子邮件地址采用统一的格式,全球唯一,格式为:用户名@邮件服务器域名

  • 示例:zhangsan@163.comlisi@qq.com
  • 说明:用户名由用户自行注册,邮件服务器域名为邮箱服务商的服务器域名,@表示 “在... 上”。

6.3 三大核心协议(SMTP/POP3/IMAP)

所有邮件协议均基于TCP 协议,保证邮件传输的可靠性,端口号固定,各司其职。

(1)SMTP 协议
  • 全称:简单邮件传输协议(Simple Mail Transfer Protocol);
  • 核心作用:实现邮件的发送,包括 “用户代理向发送邮件服务器发送邮件” 和 “发送邮件服务器向接收邮件服务器转发邮件”;
  • 端口:默认25 号端口(普通 SMTP),465 号端口(SSL 加密的 SMTP,即 SMTPS,目前主流);
  • 工作特点:采用推模式,由发送方主动将邮件推送给接收方,支持邮件转发、多收件人。
(2)POP3 协议
  • 全称:邮局协议版本 3(Post Office Protocol Version 3);
  • 核心作用:实现邮件的接收,用户代理通过 POP3 从接收邮件服务器的本地邮箱中下载邮件到本地;
  • 端口:默认110 号端口(普通 POP3),995 号端口(SSL 加密的 POP3S,主流);
  • 工作特点:采用拉模式,由用户主动从服务器拉取邮件;默认下载后将服务器上的邮件删除(可在客户端设置保留服务器副本),适合单设备使用邮箱的场景。
(3)IMAP 协议
  • 全称:互联网邮件访问协议(Internet Message Access Protocol),主流版本为 IMAP4;
  • 核心作用:实现邮件的远程访问与接收,用户代理通过 IMAP 对服务器上的邮件进行操作(查看、下载、删除、创建文件夹),本地仅保存临时缓存;
  • 端口:默认143 号端口(普通 IMAP4),993 号端口(SSL 加密的 IMAPS,主流);
  • 工作特点:服务器端保存邮件的完整副本,支持多设备同步操作(如手机和电脑同时操作一个邮箱,操作结果实时同步),是目前主流的邮件接收协议(如 QQ 邮箱、网易邮箱默认推荐 IMAP)。

6.4 电子邮件的完整工作流程(以 zhangsan@163.com 向 lisi@qq.com 发送邮件为例)

  1. 撰写邮件:张三在 163 邮箱的用户代理(网页版 / 客户端)中撰写邮件,填写收件人 lisi@qq.com、主题、内容,添加附件,点击 “发送”;
  2. 客户端向发送服务器发邮件:张三的用户代理通过SMTPS(465 端口)将邮件发送到163 的 SMTP 服务器(发送邮件服务器),控制连接保持,邮件数据传输完成后断开;
  3. 发送服务器解析收件人域名:163 的 SMTP 服务器接收到邮件后,解析收件人域名qq.com,通过 DNS 查询QQ 邮箱的 SMTP 服务器 IP
  4. 服务器之间转发邮件:163 的 SMTP 服务器通过SMTPS(465 端口)将邮件转发到QQ 的 SMTP 服务器,QQ 的 SMTP 服务器验证收件人 lisi@qq.com 是否存在,存在则将邮件投递到李四的 QQ 邮箱本地服务器存储(接收邮件服务器);
  5. 接收邮件:李四打开 QQ 邮箱的用户代理(手机 / 电脑),通过IMAPS(993 端口)/POP3S(995 端口)从 QQ 的接收邮件服务器中拉取 / 访问邮件,完成邮件接收;
  6. 阅读 / 操作邮件:李四在用户代理中阅读邮件,若使用 IMAP,对邮件的删除 / 移动操作会实时同步到 QQ 的接收邮件服务器。

6.5 邮件的安全与补充

  1. 加密传输:目前主流邮箱均采用 SSL/TLS 加密协议(SMTPS、POP3S、IMAPS),避免邮件账号、密码和内容被明文窃取;
  2. 反垃圾邮件:通过发件人 IP 黑名单、邮件内容关键词过滤、反向 DNS 解析、SPF/DKIM/DMARC 协议验证,拦截垃圾邮件和钓鱼邮件;
  3. 邮件附件:支持多种格式文件传输,服务商通常对附件大小做限制(如普通邮箱单附件最大 2G),超大附件通常采用 “云存储链接” 的方式分享。

7. 万维网(WWW)

7.1 核心定义与设计初衷

WWW(World Wide Web,简称 Web),中文译万维网,是一个基于超文本的分布式信息系统,并非互联网本身,而是互联网上最核心的应用(人们日常说的 “上网”,本质是访问万维网)。设计初衷:打破不同计算机系统之间的信息隔离,通过超文本链接将全球各地的服务器上的信息相互关联,实现跨平台的信息共享与访问

7.2 核心组成要素

万维网由资源、统一资源定位符、超文本传输协议、超文本标记语言、浏览器五大核心要素构成,缺一不可。

  1. Web 资源:万维网中可访问的所有内容,如网页、图片、视频、音频、文档等,分为静态资源(如 HTML、CSS、图片,内容固定,保存在服务器上)和动态资源(如 PHP、JSP 页面,内容根据用户请求动态生成,如电商商品页面、个人中心);
  2. URL:统一资源定位符,唯一标识 Web 资源的位置;
  3. HTTP/HTTPS:超文本传输协议,实现客户端与 Web 服务器之间的资源传输;
  4. HTML:超文本标记语言,用于编写 Web 页面,实现超文本链接;
  5. Web 浏览器:用户代理,如 Chrome、Edge、Firefox,负责解析 URL、发起请求、接收并渲染 Web 资源。

7.3 统一资源定位符(URL)

URL(Uniform Resource Locator)是万维网中资源的唯一地址,浏览器通过 URL 确定资源的位置、访问协议、资源名称,格式为统一的语法结构,示例:https://www.baidu.com:443/s?wd=计算机网络

标准 URL 格式

协议://主机名(域名/IP):端口号/路径?查询参数#锚点各部分说明:

  • 协议:访问资源的协议,如 http、https、ftp,必选;
  • 主机名:存放资源的 Web 服务器域名或 IP,必选;
  • 端口号:协议对应的服务器端口,可选,默认使用协议的默认端口(http 默认 80,https 默认 443);
  • 路径:资源在服务器上的存储路径,如/news/2025/01.html
  • 查询参数:向服务器传递的请求参数,以?开头,多个参数用&分隔,如wd=计算机网络&ie=utf-8
  • 锚点:页面内的定位标记,以#开头,用于跳转到页面的指定位置(如#top跳转到页面顶部),锚点不会发送到服务器,仅由浏览器本地解析。

7.4 超文本标记语言(HTML)

HTML(HyperText Markup Language)是用于创建 Web 页面的标准标记语言,核心特点是超文本标记化

  1. 超文本:不仅包含文本,还可通过 ** 超链接(Hyperlink)** 关联其他 Web 资源(如网页、图片、视频),实现资源之间的跳转,这是万维网的核心特性;
  2. 标记化:通过<html><body><a><img>标签描述页面的结构和内容,浏览器通过解析标签渲染页面,而非执行代码(区别于编程语言);
  3. 扩展:HTML 常与CSS(层叠样式表)JavaScript配合使用,CSS 负责页面的样式美化,JavaScript 负责页面的动态交互(如点击按钮、表单验证),三者合称 “Web 前端三剑客”。

7.5 超文本传输协议(HTTP/HTTPS)

HTTP(HyperText Transfer Protocol)是万维网的核心应用层协议,基于 TCP 实现,负责浏览器(客户端)与 Web 服务器之间的超文本资源传输,HTTPS 是 HTTP 的加密版本,目前主流。

(1)HTTP 的核心特点
  1. 基于 TCP 的可靠连接:浏览器发起 HTTP 请求前,先与服务器建立 TCP 连接(三次握手),传输完成后断开连接;
  2. 无状态协议:服务器不保存客户端的任何状态信息(如用户的登录状态、访问记录),每次请求都是独立的,优点是服务器开销小,缺点是无法实现连续的交互(通过 Cookie/Session 解决);
  3. 请求 - 响应模式:由客户端主动发起HTTP 请求,服务器接收后处理并返回HTTP 响应,无服务器主动向客户端推送数据(HTTP/2.0 支持服务器推送);
  4. 灵活的内容类型:通过Content-Type字段标识传输的资源类型(如 text/html 表示 HTML 页面、image/jpeg 表示 JPG 图片、application/json 表示 JSON 数据),实现多格式资源传输。
(2)HTTP 的默认端口与版本
  • 端口:HTTP 默认80 号端口,HTTPS 默认443 号端口
  • 主流版本:HTTP/1.1(目前使用最广泛)、HTTP/2.0(性能优化,支持多路复用)、HTTP/3.0(基于 UDP 的 QUIC 协议,更低延迟)。
(3)HTTPS 的核心作用

HTTPS(HTTP Secure)是HTTP+SSL/TLS的加密传输协议,核心解决 HTTP 的安全漏洞(明文传输,易被窃听、篡改、伪造):

  1. 通过SSL/TLS 协议对客户端与服务器之间的所有数据进行加密传输(对称加密 + 非对称加密结合);
  2. 通过数字证书验证服务器的真实身份,避免钓鱼网站;
  3. 保证数据的完整性,防止数据在传输过程中被篡改。目前所有主流网站(如百度、淘宝、微信)均已采用 HTTPS,浏览器会对 HTTPS 网站显示 “锁形” 图标。

7.6 万维网的完整工作流程(以浏览器访问https://www.baidu.com为例)

  1. 解析 URL:浏览器解析 URL,提取出协议(HTTPS)、主机名(www.baidu.com)、端口(443,默认)
  2. 域名解析:浏览器向本地 DNS 服务器发起请求,解析www.baidu.com真实 IP 地址(DNS 解析流程见 4.5);
  3. 建立 TCP 连接:浏览器与百度 Web 服务器的 443 端口进行TCP 三次握手,建立可靠的 TCP 连接;
  4. 建立 SSL/TLS 连接:基于已建立的 TCP 连接,浏览器与服务器进行SSL/TLS 握手(验证服务器证书、协商加密算法、生成会话密钥),建立加密的 HTTPS 连接;
  5. 发送 HTTP 请求:浏览器通过 HTTPS 连接向服务器发送HTTP 请求报文,请求根页面(/),包含请求方法(GET)、请求头(如 User-Agent、Cookie)等信息;
  6. 服务器处理请求:百度 Web 服务器接收请求,处理后生成HTTP 响应报文,将根页面的 HTML 代码、图片链接等资源通过 HTTPS 连接返回给浏览器;
  7. 浏览器渲染页面:浏览器接收响应数据,解析 HTML 标签,依次请求页面中的静态资源(图片、CSS、JavaScript),并将所有资源整合渲染成最终的网页,显示给用户;
  8. 断开连接:资源传输完成后,浏览器与服务器进行TCP 四次挥手,断开连接(HTTP/1.1 支持长连接,可保持连接供后续请求使用)。

7.7 Web 服务器与动态网页补充

  1. Web 服务器:存放 Web 资源并处理 HTTP 请求的服务器软件 / 硬件,主流的 Web 服务器软件有Nginx、Apache、IIS,可部署在 Linux/Windows 服务器上;
  2. 静态网页:由 HTML/CSS 编写,内容固定,保存在服务器上,服务器接收请求后直接返回,无需处理,访问速度快;
  3. 动态网页:由 PHP、Python(Django/Flask)、Java(SSM/SpringBoot)等后端语言编写,内容根据用户请求动态生成(如根据用户账号显示个人中心、根据搜索关键词返回结果),需要Web 服务器 + 应用服务器 + 数据库协同工作;
  4. Cookie 与 Session:解决 HTTP 无状态的问题,Cookie 保存在客户端,Session 保存在服务器,二者配合实现用户状态保持(如登录状态、购物车信息)。
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐