【复习408】计算机网络应用层协议详解

文章目录

应用层协议概述

应用层是OSI参考模型的最高层,直接为用户提供应用程序所需的数据传输服务。在TCP/IP模型中,应用层包含了OSI模型的应用层、表示层和会话层的功能。它负责提供网络服务,使应用程序能够访问网络,并确定进程间通信的性质与内容。

应用层协议分类

应用层协议主要分为两类:

  1. 面向事务的查询/响应协议

    • DNS(域名系统协议)
    • DHCP(动态主机配置协议)
    • WHOIS(查询数据库协议)
    • NIS(网络信息协议)
  2. 面向会话的协议

    • HTTP(超文本传输协议)
    • FTP(文件传输协议)
    • Telnet(远程登录协议)
    • SMTP(简单邮件传输协议)
    • SNMP(简单网络管理协议)

应用层协议特点

  • 客户端-服务器模型:大多数应用层协议基于此模型,包括HTTP、FTP、DNS等
  • 查询-响应机制:客户端发送请求,服务器响应
  • 自主性:协议之间相互独立,功能明确
  • 依赖传输层:性能和可靠性取决于下层协议

HTTP协议详解

HTTP协议基础

HTTP(HyperText Transfer Protocol)是基于TCP的应用层协议,工作在TCP/IP协议栈的顶层,默认使用TCP 80端口。它是万维网上客户端与服务器之间请求和发送网页的协议。

HTTP版本演进

  1. HTTP/0.9(1991年):最早版本,只支持GET方法,无请求头和响应头
  2. HTTP/1.0(1996年):引入请求头和响应头,支持POST方法,但连接一次只能发送一个请求
  3. HTTP/1.1(1999年):引入持久连接,支持管道化,添加PUT、DELETE等方法
  4. HTTP/2(2015年):采用二进制帧格式,实现多路复用,减少网络延迟
  5. 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的关键改进

  1. 持久连接:默认连接保持打开状态,可复用连接发送多个请求
  2. 管道化:允许在上一个响应返回前发送多个请求
  3. 范围请求:支持请求资源的一部分
  4. 缓存控制:提供更完善的缓存机制
  5. 内容编码:支持压缩传输
  6. 虚拟主机:单台服务器可托管多个域名

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查询类型

  1. 正向查询:通过域名查IP地址(A记录、AAAA记录)
  2. 反向查询:通过IP地址查域名(PTR记录)
  3. 条件查询:查询满足特定条件的记录
  4. 递归查询:DNS解析器向多个DNS服务器发送请求,直到获取结果
  5. 迭代查询: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。查询过程包括:

  1. 本地解析器检查缓存
  2. 查询根域名服务器
  3. 根服务器将请求转发到顶级域名服务器
  4. 顶级域名服务器将请求转发到权威域名服务器
  5. 权威服务器返回结果给递归解析器
  6. 结果经过各级服务器返回给客户端并缓存

DNS优化与安全

  1. DNS缓存:临时存储解析结果以提高后续访问速度
  2. TTL(Time to Live):控制资源记录在缓存中的保留时间
  3. DNSSEC:为DNS添加安全签名,防止数据篡改
  4. CDN集成:利用全球分布的DNS服务器减少延迟
  5. 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工作过程
  1. 连接建立:客户端与SMTP服务器建立TCP连接
  2. EHLO/HELO握手:客户端发送EHLO或HELO命令进行自我介绍
  3. MAIL FROM:指定邮件发件人
  4. RCPT TO:指定邮件收件人
  5. DATA:发送邮件内容
  6. QUIT:关闭连接
SMTP命令
  • EHLO/HELO:建立连接
  • MAIL FROM:指定发件人邮箱
  • RCPT TO:指定收件人邮箱
  • DATA:发送邮件内容
  • RSET:重置邮件传输
  • VRFY:验证用户名
  • NOOP:空操作
  • QUIT:结束邮件传输

POP3详解

POP3是邮局协议第3版,使用TCP 110端口(加密版本使用995端口)。

POP3工作模式
  1. 下载后删除:下载邮件后从服务器删除
  2. 下载后保留:下载邮件后保留在服务器上(可设置保留时间)
  3. 选择性删除:客户端可以选择删除哪些邮件
POP3命令
  • USER:指定用户名
  • PASS:指定密码
  • STAT:查看邮箱状态
  • LIST:列出邮件列表
  • RETR:检索指定邮件
  • DELE:删除指定邮件
  • QUIT:退出连接

IMAP详解

IMAP是互联网邮件访问协议,使用TCP 143端口(加密版本使用993端口)。

IMAP特点
  • 客户端-服务器架构:客户端通过命令行或图形界面与服务器交互
  • 邮箱层次结构:支持文件夹、子文件夹等复杂结构
  • 离线访问:客户端可脱机操作,同步时自动同步更改
  • 并发访问:多个客户端可同时访问同一邮箱
IMAP优势
  • 支持邮箱创建、删除、重命名等管理功能
  • 可以查看服务器上的邮件而不需要下载
  • 支持断点续传和邮箱共享
  • 提供更好的搜索功能,可以在服务器端搜索邮件

文件传输协议FTP

FTP(File Transfer Protocol,文件传输协议)是用于在客户机与服务器之间进行文件传输的协议,使用控制连接和数据连接两个TCP连接,端口为21和20。

FTP工作模式

  1. 主动模式(Active Mode)

    • 客户端随机打开一个大于1024的端口监听
    • 服务器使用20端口主动向客户端这个端口发送数据
    • 适用于客户端在防火墙后的情况
  2. 被动模式(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 广播通信
相关推荐
报错小能手20 小时前
计算机网络自顶向下方法34——网络层 排队论 缓存大小调节 分组调度 网络中立性
计算机网络
0和1的舞者20 小时前
网络通信的奥秘:HTTP详解 (六)
网络·网络协议·计算机网络·http·https·计算机科学与技术
甄心爱学习1 天前
计算机网络10
计算机网络
Wish3D1 天前
查看计算机网络端口是被哪个应用占用
计算机网络
磊 子1 天前
计算机网络概述
网络·计算机网络
yy17962610012 天前
计算机网络分层基础概念
计算机网络
报错小能手2 天前
计算机网络自顶向下方法41——网络层 自治系统内部的路由选择:开放最短路优先(OSPF)设置OSPF链路权值
网络·计算机网络·智能路由器
kyle~2 天前
计算机网络---安全外壳协议(SSH,Secure Shell)
运维·计算机网络·安全·ssh
报错小能手2 天前
计算机网络自顶向下方法39——网络层 中间盒 互联网架构原则(IP沙漏 端到端原则)
tcp/ip·计算机网络·架构