第六章:应用层
DNS(Domain Name System)是分布式的域名与 IP 地址映射的解析系统,本质是应用层协议,同时也是一个分布式数据库系统。计算机网络中设备通过IP 地址唯一标识并通信,但 IP 地址(如 IPv4 的、IPv6 的)是一串无意义的数字,人类难以记忆和识别。将人类易记的域名(如)转换为机器可识别的 IP 地址(域名解析),同时也支持反向解析(IP 地址转域名),解决 “IP 地址难记
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 服务器地址。
- 工作流程(四步握手):
- DHCP 发现:新主机广播
DHCPDISCOVER报文,寻找局域网内的 DHCP 服务器。 - DHCP 提供:DHCP 服务器收到报文后,广播
DHCPOFFER报文,提供可用的 IP 地址。 - DHCP 请求:主机选择一个 IP 地址,广播
DHCPREQUEST报文确认请求。 - DHCP 确认:服务器广播
DHCPACK报文,正式分配 IP 地址及参数。
- DHCP 发现:新主机广播
- 特点:即插即用,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 核心功能
- 正向域名解析(主流):域名 → IP 地址;
- 反向域名解析:IP 地址 → 域名(用于服务器验证、邮件反垃圾等场景);
- 提供域名的别名解析(如将mail.qq.com解析为腾讯邮箱的真实 IP);
- 分布式存储解析信息,保证系统的高可用、高容错、可扩展。
4.3 域名的层次结构
DNS 采用树状的层次域名结构,避免域名重复,同时适配分布式解析,从根到叶依次为:
- 根域:最高层级,用
.表示,由根域名服务器管理(全球共 13 组根服务器); - 顶级域(TLD):根域的下一级,分为通用顶级域(如.com 商业、.org 组织、.edu 教育、.gov 政府)和国家 / 地区顶级域(如.cn 中国、.us 美国、.jp 日本);
- 二级域:由企业 / 机构向域名注册商申请,如baidu.com、qq.com(.cn 下的二级域如www.sina.com.cn);
- 三级域(子域):二级域的下级,由企业自行划分,如map.baidu.com、mail.qq.com;
- 主机名:最底层,标识网络中的具体主机,如 www、ftp、mail。
完整域名示例:www.map.baidu.com,从叶到根依次为:主机名 www → 子域 map → 二级域 baidu → 顶级域 com → 根域.。
4.4 DNS 的分布式服务器体系
DNS 的核心特点是分布式,解析任务由不同层级的域名服务器协同完成,避免单服务器瓶颈,主要分为 4 类:
- 根域名服务器:全球 13 组,负责解析顶级域,返回对应顶级域服务器的 IP;
- 顶级域名服务器:负责解析对应顶级域下的二级域,返回二级域服务器的 IP;
- 权威域名服务器:由企业 / 机构部署,存储自身域名的完整解析信息(如百度的权威服务器存储所有baidu.com子域的 IP),是解析的最终来源;
- 本地域名服务器(递归域名服务器):用户主机首次访问的 DNS 服务器(由运营商 / 学校 / 公司提供,如 114.114.114.114、8.8.8.8),负责递归查询(替用户向各级服务器查询),并缓存解析结果。
4.5 DNS 解析流程(以访问www.baidu.com为例)
DNS 解析采用递归查询 + 迭代查询结合的方式,用户主机与本地 DNS 服务器之间为递归查询,本地 DNS 服务器与各级公共 DNS 服务器之间为迭代查询,流程如下:
- 用户主机向本地 DNS 服务器发送解析请求:查询www.baidu.com的 IP;
- 本地 DNS 服务器检查自身缓存,若有结果直接返回给用户,无则向根域名服务器发送请求;
- 根域名服务器无具体解析结果,返回 **.com 顶级域服务器 ** 的 IP 给本地 DNS;
- 本地 DNS 向 **.com 顶级域服务器发送请求,顶级域服务器返回baidu.com二级域权威服务器 ** 的 IP;
- 本地 DNS 向baidu.com权威服务器发送请求,权威服务器返回www.baidu.com的真实 IP;
- 本地 DNS 将 IP 返回给用户主机,同时缓存该解析结果(设置过期时间),供后续同网段用户查询使用;
- 用户主机获取 IP 后,直接与该 IP 对应的服务器建立 TCP 连接,访问目标资源。
4.6 关键技术与补充
- 缓存机制:各级 DNS 服务器均会缓存解析结果,减少查询次数,提升解析速度,缓存结果有TTL(生存时间),过期后会重新查询;
- DNS 报文:基于UDP 协议传输(端口 53),因解析请求数据量小,UDP 更高效;若报文过大,会切换为 TCP(端口 53);
- 本地 hosts 文件:用户主机的 hosts 文件可手动配置 “域名 - IP” 映射,优先级高于 DNS 服务器解析(常用于开发测试、屏蔽广告域名)。
5. 文件传输协议(FTP)
5.1 核心定义与设计初衷
FTP(File Transfer Protocol)是应用层面向连接的可靠文件传输协议,基于 TCP 协议实现,核心作用是在不同主机之间(通常是客户端与服务器)实现文件的上传(Upload)和下载(Download),支持跨操作系统、跨网络的文件传输(如从 Windows 客户端向 Linux 服务器传输文件)。
5.2 核心特点
- 基于 TCP 的可靠传输:FTP 使用 TCP 建立连接,保证文件传输过程中无丢包、无乱序,适合传输大文件、重要文件;
- 采用双连接机制:FTP 通信过程中会建立控制连接和数据连接,二者相互独立,各司其职;
- 支持用户认证:默认需要输入服务器的用户名和密码,也支持匿名 FTP(用户名通常为 anonymous,密码为任意邮箱);
- 支持多种文件操作:除上传 / 下载,还支持创建目录、删除文件、重命名、查看文件列表等。
5.3 FTP 的双连接机制(核心)
FTP 的双连接是其最关键的特性,两个连接均基于 TCP,端口固定:
(1)控制连接
- 建立时机:客户端发起 FTP 连接时,首先建立控制连接,且整个会话过程中始终保持;
- 端口:服务器端固定为21 号端口,客户端随机使用一个高端口(>1024);
- 作用:传输控制指令和响应信息,如客户端的登录账号 / 密码、上传 / 下载命令、查看列表命令,以及服务器的成功 / 失败响应(如 200 表示成功,530 表示登录失败);
- 数据量:传输的数据量极小,仅为指令和状态码。
(2)数据连接
- 建立时机:客户端发送数据传输相关命令(如下载、上传、查看列表)时,临时建立,数据传输完成后立即断开;
- 端口:服务器端默认20 号端口(主动模式),被动模式下服务器随机分配高端口;
- 作用:传输实际的文件数据和文件列表数据(如 ls/dir 命令的返回结果);
- 数据量:传输的数据量较大,为文件本身或列表信息。
5.4 FTP 的两种工作模式
根据数据连接的发起方不同,FTP 分为主动模式(PORT)和被动模式(PASV),被动模式是目前主流(解决客户端防火墙拦截问题)。
(1)主动模式(传统模式)
- 客户端向服务器 21 号端口发起控制连接,完成登录认证;
- 客户端向服务器发送PORT 指令,告知自身的高端口(如 1025),表示准备接收数据连接;
- 服务器从 20 号端口向客户端的 1025 端口发起数据连接;
- 建立数据连接后,传输文件 / 列表数据,传输完成后数据连接断开,控制连接保持;
- 会话结束时,客户端发送退出指令,控制连接断开。
问题:客户端若开启防火墙,会拒绝服务器主动发起的连接,导致数据连接建立失败。
(2)被动模式(主流模式)
- 客户端向服务器 21 号端口发起控制连接,完成登录认证;
- 客户端向服务器发送PASV 指令,请求服务器进入被动模式;
- 服务器开启一个随机高端口(如 2000),并向客户端返回该端口号;
- 客户端主动向服务器的 2000 端口发起数据连接;
- 数据传输完成后,数据连接断开,控制连接保持。
优势:数据连接由客户端主动发起,不会被防火墙拦截,适配目前绝大多数网络环境。
5.5 FTP 的工作流程(以被动模式下载文件为例)
- 客户端启动 FTP 客户端,向 FTP 服务器的21 号端口发起 TCP 连接,建立控制连接;
- 客户端通过控制连接发送用户名和密码,服务器验证通过后返回成功响应(230);
- 客户端通过控制连接发送PASV 指令,服务器开启随机高端口,返回端口号给客户端;
- 客户端向服务器的该高端口发起 TCP 连接,建立数据连接;
- 客户端通过控制连接发送RETR(下载)指令,指定要下载的文件名;
- 服务器通过数据连接将文件数据发送给客户端;
- 文件下载完成后,数据连接立即断开,控制连接仍保持;
- 客户端发送QUIT 指令,服务器返回退出响应,控制连接断开,FTP 会话结束。
5.6 相关协议补充
- TFTP(简单文件传输协议):基于 UDP 的轻量级文件传输协议,无认证、无双连接,端口 69,适合小型嵌入式设备、局域网内的简单文件传输,传输可靠性由 UDP 上层保证;
- SFTP(安全文件传输协议):基于 SSH 协议的安全 FTP,对传输的数据进行加密,避免明文传输账号 / 密码和文件数据,解决 FTP 的安全漏洞。
6. 电子邮件服务
6.1 核心定义与系统组成
电子邮件(E-mail)是计算机网络中最经典的应用之一,核心作用是实现跨网络的异步文本 / 附件传输,相比传统邮件,具有快速、低成本、多格式的特点。电子邮件服务并非单一协议,而是由客户端、服务器和多个协议协同构成的分布式系统,核心组成包括:
- 用户代理(UA):电子邮件客户端,如 Outlook、Foxmail、网页版邮箱(webmail),是用户直接操作的界面,负责撰写、编辑、发送、接收、阅读邮件;
- 邮件服务器:核心组件,分为发送邮件服务器(SMTP 服务器)和接收邮件服务器(POP3/IMAP 服务器),负责邮件的存储、转发、接收,24 小时在线运行;
- 邮件协议:SMTP、POP3、IMAP,分别负责邮件的发送、接收,是客户端与服务器之间的通信规则。
6.2 电子邮件的地址格式
电子邮件地址采用统一的格式,全球唯一,格式为:用户名@邮件服务器域名
- 示例:
zhangsan@163.com、lisi@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 发送邮件为例)
- 撰写邮件:张三在 163 邮箱的用户代理(网页版 / 客户端)中撰写邮件,填写收件人 lisi@qq.com、主题、内容,添加附件,点击 “发送”;
- 客户端向发送服务器发邮件:张三的用户代理通过SMTPS(465 端口)将邮件发送到163 的 SMTP 服务器(发送邮件服务器),控制连接保持,邮件数据传输完成后断开;
- 发送服务器解析收件人域名:163 的 SMTP 服务器接收到邮件后,解析收件人域名
qq.com,通过 DNS 查询QQ 邮箱的 SMTP 服务器 IP; - 服务器之间转发邮件:163 的 SMTP 服务器通过SMTPS(465 端口)将邮件转发到QQ 的 SMTP 服务器,QQ 的 SMTP 服务器验证收件人 lisi@qq.com 是否存在,存在则将邮件投递到李四的 QQ 邮箱本地服务器存储(接收邮件服务器);
- 接收邮件:李四打开 QQ 邮箱的用户代理(手机 / 电脑),通过IMAPS(993 端口)/POP3S(995 端口)从 QQ 的接收邮件服务器中拉取 / 访问邮件,完成邮件接收;
- 阅读 / 操作邮件:李四在用户代理中阅读邮件,若使用 IMAP,对邮件的删除 / 移动操作会实时同步到 QQ 的接收邮件服务器。
6.5 邮件的安全与补充
- 加密传输:目前主流邮箱均采用 SSL/TLS 加密协议(SMTPS、POP3S、IMAPS),避免邮件账号、密码和内容被明文窃取;
- 反垃圾邮件:通过发件人 IP 黑名单、邮件内容关键词过滤、反向 DNS 解析、SPF/DKIM/DMARC 协议验证,拦截垃圾邮件和钓鱼邮件;
- 邮件附件:支持多种格式文件传输,服务商通常对附件大小做限制(如普通邮箱单附件最大 2G),超大附件通常采用 “云存储链接” 的方式分享。
7. 万维网(WWW)
7.1 核心定义与设计初衷
WWW(World Wide Web,简称 Web),中文译万维网,是一个基于超文本的分布式信息系统,并非互联网本身,而是互联网上最核心的应用(人们日常说的 “上网”,本质是访问万维网)。设计初衷:打破不同计算机系统之间的信息隔离,通过超文本链接将全球各地的服务器上的信息相互关联,实现跨平台的信息共享与访问。
7.2 核心组成要素
万维网由资源、统一资源定位符、超文本传输协议、超文本标记语言、浏览器五大核心要素构成,缺一不可。
- Web 资源:万维网中可访问的所有内容,如网页、图片、视频、音频、文档等,分为静态资源(如 HTML、CSS、图片,内容固定,保存在服务器上)和动态资源(如 PHP、JSP 页面,内容根据用户请求动态生成,如电商商品页面、个人中心);
- URL:统一资源定位符,唯一标识 Web 资源的位置;
- HTTP/HTTPS:超文本传输协议,实现客户端与 Web 服务器之间的资源传输;
- HTML:超文本标记语言,用于编写 Web 页面,实现超文本链接;
- 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 页面的标准标记语言,核心特点是超文本和标记化。
- 超文本:不仅包含文本,还可通过 ** 超链接(Hyperlink)** 关联其他 Web 资源(如网页、图片、视频),实现资源之间的跳转,这是万维网的核心特性;
- 标记化:通过
<html>、<body>、<a>、<img>等标签描述页面的结构和内容,浏览器通过解析标签渲染页面,而非执行代码(区别于编程语言); - 扩展:HTML 常与CSS(层叠样式表)、JavaScript配合使用,CSS 负责页面的样式美化,JavaScript 负责页面的动态交互(如点击按钮、表单验证),三者合称 “Web 前端三剑客”。
7.5 超文本传输协议(HTTP/HTTPS)
HTTP(HyperText Transfer Protocol)是万维网的核心应用层协议,基于 TCP 实现,负责浏览器(客户端)与 Web 服务器之间的超文本资源传输,HTTPS 是 HTTP 的加密版本,目前主流。
(1)HTTP 的核心特点
- 基于 TCP 的可靠连接:浏览器发起 HTTP 请求前,先与服务器建立 TCP 连接(三次握手),传输完成后断开连接;
- 无状态协议:服务器不保存客户端的任何状态信息(如用户的登录状态、访问记录),每次请求都是独立的,优点是服务器开销小,缺点是无法实现连续的交互(通过 Cookie/Session 解决);
- 请求 - 响应模式:由客户端主动发起HTTP 请求,服务器接收后处理并返回HTTP 响应,无服务器主动向客户端推送数据(HTTP/2.0 支持服务器推送);
- 灵活的内容类型:通过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 的安全漏洞(明文传输,易被窃听、篡改、伪造):
- 通过SSL/TLS 协议对客户端与服务器之间的所有数据进行加密传输(对称加密 + 非对称加密结合);
- 通过数字证书验证服务器的真实身份,避免钓鱼网站;
- 保证数据的完整性,防止数据在传输过程中被篡改。目前所有主流网站(如百度、淘宝、微信)均已采用 HTTPS,浏览器会对 HTTPS 网站显示 “锁形” 图标。
7.6 万维网的完整工作流程(以浏览器访问https://www.baidu.com为例)
- 解析 URL:浏览器解析 URL,提取出协议(HTTPS)、主机名(www.baidu.com)、端口(443,默认);
- 域名解析:浏览器向本地 DNS 服务器发起请求,解析www.baidu.com的真实 IP 地址(DNS 解析流程见 4.5);
- 建立 TCP 连接:浏览器与百度 Web 服务器的 443 端口进行TCP 三次握手,建立可靠的 TCP 连接;
- 建立 SSL/TLS 连接:基于已建立的 TCP 连接,浏览器与服务器进行SSL/TLS 握手(验证服务器证书、协商加密算法、生成会话密钥),建立加密的 HTTPS 连接;
- 发送 HTTP 请求:浏览器通过 HTTPS 连接向服务器发送HTTP 请求报文,请求根页面(/),包含请求方法(GET)、请求头(如 User-Agent、Cookie)等信息;
- 服务器处理请求:百度 Web 服务器接收请求,处理后生成HTTP 响应报文,将根页面的 HTML 代码、图片链接等资源通过 HTTPS 连接返回给浏览器;
- 浏览器渲染页面:浏览器接收响应数据,解析 HTML 标签,依次请求页面中的静态资源(图片、CSS、JavaScript),并将所有资源整合渲染成最终的网页,显示给用户;
- 断开连接:资源传输完成后,浏览器与服务器进行TCP 四次挥手,断开连接(HTTP/1.1 支持长连接,可保持连接供后续请求使用)。
7.7 Web 服务器与动态网页补充
- Web 服务器:存放 Web 资源并处理 HTTP 请求的服务器软件 / 硬件,主流的 Web 服务器软件有Nginx、Apache、IIS,可部署在 Linux/Windows 服务器上;
- 静态网页:由 HTML/CSS 编写,内容固定,保存在服务器上,服务器接收请求后直接返回,无需处理,访问速度快;
- 动态网页:由 PHP、Python(Django/Flask)、Java(SSM/SpringBoot)等后端语言编写,内容根据用户请求动态生成(如根据用户账号显示个人中心、根据搜索关键词返回结果),需要Web 服务器 + 应用服务器 + 数据库协同工作;
- Cookie 与 Session:解决 HTTP 无状态的问题,Cookie 保存在客户端,Session 保存在服务器,二者配合实现用户状态保持(如登录状态、购物车信息)。
更多推荐

所有评论(0)