【复习408】计算机网络应用层协议详解
文章目录
- 应用层协议概述
- 应用层协议分类
- 应用层协议特点
- HTTP协议详解
- HTTP协议基础
- HTTP版本演进
- HTTP方法
- HTTP状态码
- HTTP/1.1与HTTP/1.0的关键改进
- HTTP安全扩展——HTTPS
- DNS协议详解
- DNS层次结构
- DNS查询类型
- DNS资源记录
- DNS查询过程
- DNS优化与安全
- 邮件传输协议
- SMTP、POP3、IMAP概述
- SMTP详解
- SMTP工作过程
- SMTP命令
- POP3详解
- POP3工作模式
- POP3命令
- IMAP详解
- IMAP特点
- IMAP优势
- 文件传输协议FTP
- FTP工作模式
- FTP命令
- 其他重要应用层协议
- Telnet
- SSH
- SNMP
- DHCP
- 应用层协议总结
应用层协议概述
应用层是OSI参考模型的最高层,直接为用户提供应用程序所需的数据传输服务。在TCP/IP模型中,应用层包含了OSI模型的应用层、表示层和会话层的功能。它负责提供网络服务,使应用程序能够访问网络,并确定进程间通信的性质与内容。
应用层协议分类
应用层协议主要分为两类:
-
面向事务的查询/响应协议:
- DNS(域名系统协议)
- DHCP(动态主机配置协议)
- WHOIS(查询数据库协议)
- NIS(网络信息协议)
-
面向会话的协议:
- HTTP(超文本传输协议)
- FTP(文件传输协议)
- Telnet(远程登录协议)
- SMTP(简单邮件传输协议)
- SNMP(简单网络管理协议)
应用层协议特点
- 客户端-服务器模型:大多数应用层协议基于此模型,包括HTTP、FTP、DNS等
- 查询-响应机制:客户端发送请求,服务器响应
- 自主性:协议之间相互独立,功能明确
- 依赖传输层:性能和可靠性取决于下层协议
HTTP协议详解
HTTP协议基础
HTTP(HyperText Transfer Protocol)是基于TCP的应用层协议,工作在TCP/IP协议栈的顶层,默认使用TCP 80端口。它是万维网上客户端与服务器之间请求和发送网页的协议。
HTTP版本演进
- HTTP/0.9(1991年):最早版本,只支持GET方法,无请求头和响应头
- HTTP/1.0(1996年):引入请求头和响应头,支持POST方法,但连接一次只能发送一个请求
- HTTP/1.1(1999年):引入持久连接,支持管道化,添加PUT、DELETE等方法
- HTTP/2(2015年):采用二进制帧格式,实现多路复用,减少网络延迟
- HTTP/3(2020年):基于QUIC协议,提供更高效的传输性能
HTTP方法
- GET:请求获取资源,参数在URL中
- POST:提交数据给服务器处理,数据在消息体中
- PUT:上传资源到指定资源
- DELETE:删除指定资源
- HEAD:获取响应头,无响应体
- OPTIONS:查询支持的通信选项
- CONNECT:建立隧道到服务器
- TRACE:回显服务器收到的请求
HTTP状态码
状态码是三位数字,分为五类:
-
1xx(信息性):请求已接收,继续处理
- 100 Continue:请求已接收,客户端应继续发送请求体
- 101 Switching Protocols:请求的协议转换已成功
-
2xx(成功):请求已成功接收、理解、接受
- 200 OK:请求成功
- 201 Created:资源已成功创建
- 204 No Content:请求成功,但无实体返回
-
3xx(重定向):完成此请求必须进一步操作
- 301 Moved Permanently:资源永久移动
- 302 Found:资源临时移动
- 304 Not Modified:资源未修改
-
4xx(客户端错误):请求包含错误语法或无法实现
- 400 Bad Request:请求语法错误
- 401 Unauthorized:未提供有效的认证信息
- 403 Forbidden:服务器理解请求但拒绝执行
- 404 Not Found:请求的资源不存在
-
5xx(服务器错误):服务器在处理请求时发生错误
- 500 Internal Server Error:服务器内部错误
- 503 Service Unavailable:服务器暂时不可用
HTTP/1.1与HTTP/1.0的关键改进
- 持久连接:默认连接保持打开状态,可复用连接发送多个请求
- 管道化:允许在上一个响应返回前发送多个请求
- 范围请求:支持请求资源的一部分
- 缓存控制:提供更完善的缓存机制
- 内容编码:支持压缩传输
- 虚拟主机:单台服务器可托管多个域名
HTTP安全扩展——HTTPS
HTTPS是在HTTP基础上添加安全层的协议,通过SSL/TLS提供加密传输。数据流为:浏览器→TCP/IP→SSL→HTTP→HTTPS→SSL→TCP/IP→网站。
DNS协议详解
DNS(Domain Name System,域名系统)是互联网的核心应用层协议,负责将便于记忆的域名(如www.google.com)转换为与之对应IP地址(如64.233.167.99)的系统。
DNS层次结构
DNS采用分层树形结构,包括:
- 根域名服务器:顶级服务器,存储顶级域名服务器信息
- 顶级域名服务器:存储特定顶级域名(.com、.cn等)的信息
- 权威域名服务器:存储特定域名的详细记录
- 递归解析器:发起域名解析请求的服务器
DNS查询类型
- 正向查询:通过域名查IP地址(A记录、AAAA记录)
- 反向查询:通过IP地址查域名(PTR记录)
- 条件查询:查询满足特定条件的记录
- 递归查询:DNS解析器向多个DNS服务器发送请求,直到获取结果
- 迭代查询:DNS服务器返回客户端下一个查询的地址
DNS资源记录
常见的DNS资源记录类型包括:
| 记录类型 | 功能 | 示例 |
|---|---|---|
| A | 将域名指向IPv4地址 | example.com IN A 192.168.1.1 |
| AAAA | 将域名指向IPv6地址 | example.com IN AAAA 2001:db8::1 |
| CNAME | 别名记录,将一个名称指向另一个名称 | www IN CNAME example.com. |
| MX | 指定邮件交换服务器 | example.com IN MX 10 mail.example.com. |
| NS | 指定区域的授权名称服务器 | example.com IN NS ns1.example.com. |
| PTR | 反向DNS记录,将IP地址映射到名称 | 1.1.168.192.in-addr.arpa. IN PTR example.com. |
| SOA | 区域开始记录,包含区域的权威信息 | example.com IN SOA ns1.example.com. admin.example.com. |
| TXT | 文本记录,可包含任意文本信息 | example.com IN TXT “v=spf1 include:_spf.google.com ~all” |
DNS查询过程
DNS查询采用客户端-服务器模式,通常使用UDP协议,端口号为53。查询过程包括:
- 本地解析器检查缓存
- 查询根域名服务器
- 根服务器将请求转发到顶级域名服务器
- 顶级域名服务器将请求转发到权威域名服务器
- 权威服务器返回结果给递归解析器
- 结果经过各级服务器返回给客户端并缓存
DNS优化与安全
- DNS缓存:临时存储解析结果以提高后续访问速度
- TTL(Time to Live):控制资源记录在缓存中的保留时间
- DNSSEC:为DNS添加安全签名,防止数据篡改
- CDN集成:利用全球分布的DNS服务器减少延迟
- Qname Minimization:减少DNS查询泄露的隐私信息
邮件传输协议
SMTP、POP3、IMAP概述
电子邮件系统使用三种主要协议协同工作:
- SMTP(Simple Mail Transfer Protocol):负责邮件传输,将邮件从源地址发送到目的地址
- POP3(Post Office Protocol version 3):负责从邮件服务器接收邮件到本地设备
- IMAP(Internet Message Access Protocol):提供更高级的邮件访问和管理功能
SMTP详解
SMTP是用于发送电子邮件的协议,工作在TCP 25端口(加密版本使用465或587端口)。
SMTP工作过程
- 连接建立:客户端与SMTP服务器建立TCP连接
- EHLO/HELO握手:客户端发送EHLO或HELO命令进行自我介绍
- MAIL FROM:指定邮件发件人
- RCPT TO:指定邮件收件人
- DATA:发送邮件内容
- QUIT:关闭连接
SMTP命令
- EHLO/HELO:建立连接
- MAIL FROM:指定发件人邮箱
- RCPT TO:指定收件人邮箱
- DATA:发送邮件内容
- RSET:重置邮件传输
- VRFY:验证用户名
- NOOP:空操作
- QUIT:结束邮件传输
POP3详解
POP3是邮局协议第3版,使用TCP 110端口(加密版本使用995端口)。
POP3工作模式
- 下载后删除:下载邮件后从服务器删除
- 下载后保留:下载邮件后保留在服务器上(可设置保留时间)
- 选择性删除:客户端可以选择删除哪些邮件
POP3命令
- USER:指定用户名
- PASS:指定密码
- STAT:查看邮箱状态
- LIST:列出邮件列表
- RETR:检索指定邮件
- DELE:删除指定邮件
- QUIT:退出连接
IMAP详解
IMAP是互联网邮件访问协议,使用TCP 143端口(加密版本使用993端口)。
IMAP特点
- 客户端-服务器架构:客户端通过命令行或图形界面与服务器交互
- 邮箱层次结构:支持文件夹、子文件夹等复杂结构
- 离线访问:客户端可脱机操作,同步时自动同步更改
- 并发访问:多个客户端可同时访问同一邮箱
IMAP优势
- 支持邮箱创建、删除、重命名等管理功能
- 可以查看服务器上的邮件而不需要下载
- 支持断点续传和邮箱共享
- 提供更好的搜索功能,可以在服务器端搜索邮件
文件传输协议FTP
FTP(File Transfer Protocol,文件传输协议)是用于在客户机与服务器之间进行文件传输的协议,使用控制连接和数据连接两个TCP连接,端口为21和20。
FTP工作模式
-
主动模式(Active Mode)
- 客户端随机打开一个大于1024的端口监听
- 服务器使用20端口主动向客户端这个端口发送数据
- 适用于客户端在防火墙后的情况
-
被动模式(Passive Mode)
- 服务器随机打开两个大于1024的端口
- 服务器通知客户端来连接这两个端口
- 适用于服务器在防火墙后的情况
FTP命令
- USER/PASS:登录认证
- QUIT:退出连接
- LIST:列出目录内容
- CWD:改变工作目录
- PASV:切换到被动模式
- PORT:指定数据端口
- RETR:从服务器获取文件
- STOR:将文件上传到服务器
其他重要应用层协议
Telnet
Telnet是互联网远程登录服务的标准协议和主要方式,使用TCP 23端口,提供文本交换的终端接口。
SSH
SSH(Secure Shell)是取代rlogin、rsh、rcp、rscp等不安全协议的加密隧道协议,使用TCP 22端口,提供安全的远程登录和文件传输功能。
SNMP
SNMP(Simple Network Management Protocol)是用于网络管理的协议,使用UDP 161和162端口,允许管理员监控网络设备。
DHCP
DHCP(Dynamic Host Configuration Protocol)用于自动分配IP地址和网络配置参数,使用UDP 67和68端口。
应用层协议总结
| 协议 | 端口 | 功能 | 传输层协议 | 工作方式 |
|---|---|---|---|---|
| HTTP | 80 | Web浏览 | TCP | 请求/响应 |
| HTTPS | 443 | 加密Web浏览 | TCP | 请求/响应 |
| DNS | 53 | 域名解析 | UDP/TCP | 查询/响应 |
| SMTP | 25 | 邮件发送 | TCP | 推送 |
| POP3 | 110 | 邮件接收 | TCP | 拉取 |
| IMAP | 143 | 邮件管理 | TCP | 拉取 |
| FTP | 20/21 | 文件传输 | TCP | 控制/数据分离 |
| Telnet | 23 | 远程登录 | TCP | 交互式会话 |
| SSH | 22 | 安全远程登录 | TCP | 加密隧道 |
| SNMP | 161/162 | 网络管理 | UDP | 请求/响应 |
| DHCP | 67/68 | IP地址分配 | UDP | 广播通信 |
