Chapter 6

应用层

网络应用的体系结构、DNS域名解析、HTTP协议、电子邮件及文件传输等核心协议

6.1网络应用模型

客户端/服务器模型(C/S)

  • 客户端发起请求,服务器提供服务
  • 服务器永久在线,有固定IP
  • 客户端间歇性上线,动态IP
  • 应用:Web、Email、FTP

P2P模型

  • 每个节点既是客户端也是服务器
  • 无需中心服务器
  • 可扩展性强
  • 应用:BitTorrent、Skype

6.2域名系统

DNS域名系统 HOT

  • 功能:将域名解析为IP地址
  • 基于UDP协议,端口53
  • 层次结构:根域名服务器 → 顶级域名服务器 → 权威域名服务器
  • 解析方式:递归查询、迭代查询
  • 本地DNS缓存
  • 层次域名空间:
    • 域名采用层次树状结构,从右到左层级递减
    • 结构:主机名.三级域名.二级域名.顶级域名
    • 例如:www.example.com.cn 中 cn是顶级,com是二级,example是三级,www是主机
    • 顶级域名(TLD)分类:
      • 国家顶级域名(nTLD):cn(中国)、us(美国)、jp(日本)、uk(英国)
      • 通用顶级域名(gTLD):com(商业)、net(网络)、org(组织)、edu(教育)、gov(政府)、mil(军事)
      • 反向域名:arpa(用于反向解析PTR)
    • 域名服务器:
      • 根域名服务器:全球13组,知道所有顶级域名服务器地址
      • 顶级域名服务器:管理该顶级域下的所有授权域名服务器
      • 权限/授权域名服务器:负责一个区的域名解析
      • 本地域名服务器:用户主机配置的DNS,做缓存和代理查询
    • 域名解析方式:
      • 递归查询:主机向本地DNS查询,本地DNS代为查询后返回最终结果(主机-本地DNS之间常用)
      • 迭代查询:本地DNS依次向根→顶级→权威DNS查询,每次返回下一级DNS地址(DNS服务器之间常用)

DNS迭代查询过程

动画
步骤 0 / 9
点击播放按钮开始动画演示

6.3文件传输协议

FTP的工作原理 KEY

  • 基于TCP,使用两个独立的连接:
    • 控制连接:端口21,始终保持,传输命令(如USER、PASS、LIST、RETR、STOR)
    • 数据连接:端口20(主动模式),传输文件数据,传输完即释放
  • 工作模式:
    • 主动模式(Port):服务器主动发起数据连接,服务器端口20 → 客户端随机端口
    • 被动模式(Pasv):客户端主动发起数据连接,客户端随机端口 → 服务器随机端口
    • 被动模式常用于客户端在防火墙/NAT后面的场景
  • 特点:
    • 支持ASCII和二进制两种传输模式
    • 支持断点续传(REST命令)
    • 控制连接和数据连接分离

6.4电子邮件

电子邮件协议

  • SMTP:发送邮件,TCP端口25,推送协议
  • POP3:接收邮件,TCP端口110,下载并删除
  • IMAP:接收邮件,TCP端口143,在线阅读
  • 邮件格式:信封(发件人/收件人) + 首部(Subject/Date) + 主体
  • 电子邮件系统组成:用户代理、邮件服务器、邮件协议
    • 用户代理(UA):用户读写邮件的程序(如Outlook、Foxmail、网页邮箱)
    • 邮件服务器:发送/接收邮件,维护用户邮箱(SMTP发件服务器+POP3/IMAP收件服务器)
  • 邮件格式与MIME:
    • 信封:发件人地址、收件人地址(SMTP使用)
    • 首部:From、To、Subject、Date、Cc、Bcc等
    • 主体:邮件正文,RFC 822规定只能是ASCII文本
    • MIME(多用途互联网邮件扩展):
      • 解决RFC 822只能传输ASCII文本的问题
      • 可传输非ASCII文本、图像、音频、二进制文件等
      • 新增首部:MIME-Version、Content-Type、Content-Transfer-Encoding
      • 编码方式:Base64(二进制转ASCII)、quoted-printable(可读文本转义)
      • Content-Type:text/plain、text/html、image/jpeg、application/pdf等
      • multipart类型:mixed(附件)、alternative(纯文本+HTML)、related(内嵌图片)
  • 发送过程:用户代理 → SMTP → 发送方邮件服务器 → SMTP → 接收方邮件服务器 → POP3/IMAP → 用户代理

6.5万维网

万维网的概念与组成结构

  • 万维网(WWW):不是网络,而是一个大规模的分布式信息资源系统
  • 核心要素:
    • 统一资源定位符(URL):标识互联网上资源的位置
      • 格式:协议://主机:端口/路径?查询#片段
      • 例:https://www.example.com:443/index.html?id=1#top
    • 超文本传输协议(HTTP):万维网的应用层协议
    • 超文本标记语言(HTML):网页的描述语言
    • 浏览器:用户访问万维网的客户端软件
    • Web服务器:存储网页并响应HTTP请求的服务器
  • 工作过程:
    1. 浏览器解析URL
    2. DNS解析域名→IP地址
    3. 建立TCP连接(HTTP默认端口80)
    4. 发送HTTP请求报文
    5. 服务器处理,返回HTTP响应报文
    6. 浏览器解析HTML,渲染页面
    7. 关闭TCP连接(或保持连接)

HTTP协议 HOT

  • 超文本传输协议,基于TCP,端口80
  • 无状态协议(不记录会话)
  • 请求方法:GET(获取)、POST(提交)、PUT(更新)、DELETE(删除)
  • 状态码:200(成功)、301(重定向)、404(未找到)、500(服务器错误)
  • HTTP/1.0:非持久连接(每个请求一个TCP连接)
  • HTTP/1.1:持久连接(一个TCP连接多个请求)
  • HTTP/2.0:多路复用、二进制分帧

HTTP请求-响应过程

动画
步骤 0 / 8
点击播放按钮开始动画演示

Cookie技术

  • 解决HTTP无状态问题
  • 服务器通过Set-Cookie响应头设置
  • 浏览器后续请求携带Cookie

其他应用层协议

  • Telnet:远程终端协议,TCP端口23,明文传输,不安全
    • 网络虚拟终端(NVT):统一字符格式,消除系统差异
  • SSH:安全外壳协议,TCP端口22,加密传输
    • 替代Telnet和rlogin等不安全的远程登录协议
    • 支持端口转发、公钥认证等功能
  • DHCP:动态主机配置协议,UDP端口67(服务器)/68(客户端)
    • 功能:自动分配IP地址、子网掩码、网关、DNS等配置信息
    • 工作过程:Discover → Offer → Request → ACK(四步)
    • 使用广播方式(主机还没有IP时只能广播)