当前位置: 首页 > news >正文

【复习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模型的应用层、表示层和会话层的功能。它负责提供网络服务,使应用程序能够访问网络,并确定进程间通信的性质与内容。

应用层协议分类

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

  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端口。


应用层协议总结

协议端口功能传输层协议工作方式
HTTP80Web浏览TCP请求/响应
HTTPS443加密Web浏览TCP请求/响应
DNS53域名解析UDP/TCP查询/响应
SMTP25邮件发送TCP推送
POP3110邮件接收TCP拉取
IMAP143邮件管理TCP拉取
FTP20/21文件传输TCP控制/数据分离
Telnet23远程登录TCP交互式会话
SSH22安全远程登录TCP加密隧道
SNMP161/162网络管理UDP请求/响应
DHCP67/68IP地址分配UDP广播通信
http://www.dtcms.com/a/598169.html

相关文章:

  • 在那些网站做宣传更好wordpress怎么安装上服务器
  • 2023年php凉透了大连seo顾问
  • Redis的知识整理《1》
  • 怎样免费建一个网站网站开发培训费用
  • 数据产品之数据埋点
  • 7.MySQL这的内置函数
  • 网站建设设计师招募重庆网络seo公司
  • -1网站建设购物中心网站建设
  • 量子计算自学记录
  • 儿童网站建设网站建设要考虑哪些内容
  • office online server
  • 【 Git:本地项目上传至 Gitee 仓库】
  • Hello-Agents task2 大语言模型基础
  • 机器学习“开箱即用“:Scikit-learn快速入门指南
  • 乐迪信息:智慧煤矿井下安全:AI 摄像机实时抓拍违规行为
  • 重庆免费自助建站模板电影网站制作模板
  • 轻松筹 做的网站价格网站建设赠送seo
  • 网站团队网上学习做网站
  • 悬镜安全源鉴SCA(软件成分分析)产品,开源商业化成果获肯定
  • 咸阳企业网站建设阳江做网站多少钱
  • 【C++基础与提高】第一章:走进C++的世界——从零开始的编程之旅
  • 建站一条龙设计制作百度正版下载并安装
  • GitCode 同步发布百度 ERNIE-4.5-VL-28B-A3B-Thinking 多模态大模型
  • 贴吧高级搜索windows优化大师官方免费
  • 网站及app开发招聘如何写好网站建设方案
  • Rotation.from_euler(‘xyz‘) Rotation.from_euler(‘XYZ‘)不同
  • 深度学习:python动物识别系统 YOLOv8模型 PyQt5 深度学习pytorch 计算机(建议收藏)✅
  • wap手机网站开发asp经验办公室装修铺哪种地板
  • K8S Base: 创建Job 与 CronJob
  • langgragh的思想与入门(一)