Chapter 6
应用层
网络应用的体系结构、DNS域名解析、HTTP协议、电子邮件及文件传输等核心协议
网络应用模型
客户端/服务器模型(C/S)
- 客户端发起请求,服务器提供服务
- 服务器永久在线,有固定IP
- 客户端间歇性上线,动态IP
- 应用:Web、Email、FTP
P2P模型
- 每个节点既是客户端也是服务器
- 无需中心服务器
- 可扩展性强
- 应用:BitTorrent、Skype
域名系统
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
点击播放按钮开始动画演示
文件传输协议
FTP的工作原理 KEY
- 基于TCP,使用两个独立的连接:
- 控制连接:端口21,始终保持,传输命令(如USER、PASS、LIST、RETR、STOR)
- 数据连接:端口20(主动模式),传输文件数据,传输完即释放
- 工作模式:
- 主动模式(Port):服务器主动发起数据连接,服务器端口20 → 客户端随机端口
- 被动模式(Pasv):客户端主动发起数据连接,客户端随机端口 → 服务器随机端口
- 被动模式常用于客户端在防火墙/NAT后面的场景
- 特点:
- 支持ASCII和二进制两种传输模式
- 支持断点续传(REST命令)
- 控制连接和数据连接分离
电子邮件
电子邮件协议
- 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 → 用户代理
万维网
万维网的概念与组成结构
- 万维网(WWW):不是网络,而是一个大规模的分布式信息资源系统
- 核心要素:
- 统一资源定位符(URL):标识互联网上资源的位置
- 格式:协议://主机:端口/路径?查询#片段
- 例:https://www.example.com:443/index.html?id=1#top
- 超文本传输协议(HTTP):万维网的应用层协议
- 超文本标记语言(HTML):网页的描述语言
- 浏览器:用户访问万维网的客户端软件
- Web服务器:存储网页并响应HTTP请求的服务器
- 统一资源定位符(URL):标识互联网上资源的位置
- 工作过程:
- 浏览器解析URL
- DNS解析域名→IP地址
- 建立TCP连接(HTTP默认端口80)
- 发送HTTP请求报文
- 服务器处理,返回HTTP响应报文
- 浏览器解析HTML,渲染页面
- 关闭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时只能广播)