第六章 应用层
TIP
- 应用层对应用程序的通信提供服务
应用层定义了什么?
- 应用进程交换的报文类型
- 请求还是响应
- 各种报文类型的语法
- 报文中的各个字段及其详细描述。
- 字段的语义
- 包含在字段中的信息的含义
- 进程何时、如何发送报文,以及对报文进行响应的规则
「应用层模型」用户/服务器模型(C/S)
- 服务器:提供计算服务的设备
- 永久提供服务
- 永久性访问地址/域名
- 客户机:请求计算服务的主机
- 与服务器通信,使用服务器提供的服务
- 间歇性接入网络
- 可能使用动态IP地址
- 不与其他客户机直接通信
- 应用场景
- Web
- 文件传输FTP
- 远程登录
- 电子邮件
「应用层模型」P2P模型
- 不存在永远在线的服务器
- 每个主机既可以提供服务,也可以请求服务
- 任意端系统/节点之间可以直接通讯
- 节点间歇性接入网络
- 节点可能改变IP地址
- 可扩展性好
- 网络健壮性强
第二节 域名系统(DNS)
「域名」域名是什么?
- 顶级域名
- 国家顶级域名:cn,us,uk
- 通用顶级域名:com,net,org,gov,int,aero,museum,travel
- 基础结构域名/反向域名:arpa
- 二级域名
- 类别域名:ac,com,edu,gov,mil,net,org
- 行政区域名:bj,js
- 自己注册的:必须要全球唯一
- 三级域名
- 四级域名
- ……
域名的特征
- 域名不区分大小写
- 域名中的符号只能有 “-”
- 域名中的每一段称为一个标号
- 单个标号的长度不超过36个字符
- 整体域名不超过255个字符
「域名」域名服务器
- 根域名服务器:存储各个顶级域名对应的顶级域名服务器地址
- 顶级域名服务器:管理该顶级域名注册的所有二级域名
- 权限域名服务器:负责一个区的域名服务器,将域名转换为所管辖主机的IP地址
- 本地域名服务器:当一个主机发出DNS查询请求时,这个查询请求报文就发给本地域名服务器,本地域名服务器将请求转交至根域名服务器
「域名」域名解析过程
- DNS协议使用UDP传输、是无连接的。
递归查询
- 本地域名服务器的查询请求层层转发,最后得到所找域名的IP地址。
迭代查询
- 每次查询所得的下一级域名服务器IP返回给本地域名服务器,本地域名服务器亲自动手。
第三节 文件传输
文件传送协议FTP(File Transfer Protocol): 提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力。
- FTP是基于C/S的协议
- FTP使用TCP实现可靠传输
- 用户通过一个客户机程序连接至在远程计算机上运行的服务器程序
- FTP服务器:依照FTP协议提供服务,进行文件传送的计算机
- FTP客户端:连接FTP服务器,遵循FTP协议与服务器传送文件的电脑
「FTP」工作原理
- 登录:用户通过用户名密码的方式登录到服务器,也可以通过匿名登陆访问公开共享的文件。
FTP的服务器进程
- (1)主进程
- 只有一个
- 一直打开,准备响应新的请求
- (2)从属进程
- 多个
- 需要时打开,负责处理单个请求
- 处理完单个请求后关闭
工作步骤
- 打开控制端口(21),使得客户进程能够连接
- 等待客户进程发送请求
- 启动从属进程处理请求
- 主进程继续等待其他请求
「FTP」控制连接与数据连接
控制连接
- 负责传输请求
- 始终保持连接
- 服务端端口号为21
数据连接
- 负责传输数据
- 需要时打开连接
- 端口号与传输模式有关
- 主动方式:20(客户端的端口号自定)
- 被动方式:服务端与客户端商定(>1024)
「FTP」数据传输方式
- 文本方式:ASCII模式,以文本序列传输数据
- 二进制方式:Binary模式,以二进制序列传输数据
第四节 电子邮件
「电子邮件」格式
- 首部
- From(系统自动生成):yang722900@gmail.com
- To(必须填入):meetalan@outlook.com
- Subject(可选):电子邮件格式
- 主体
- 正文内容
「电子邮件」组成结构
- 用户代理
- 为用户提供的图形界面
- 例如outlook等
- 将邮件发送到自身的邮件服务器
- 邮件服务器
- 将邮件发送到接收方的邮件服务器
- 向发件人报告邮件传输结果
- 可以同时充当服务器和客户
- 基于C/S模式
- 使用TCP连接实现可靠传输
「电子邮件」简单邮件传送协议SMTP
- SMTP客户:负责发送邮件的SMTP进程
- SMTP服务器:负责接收邮件的进程
- SMTP使用的端口号为25
SMTP传输过程
- 建立连接
- 邮件发送
- 连接释放
SMTP协议的缺点
- SMTP不能传送可执行文件或者其他二进制对象
- SMTP仅限于传送7位ASCII码,不能传送其他非英语国家的文字
- SMTP服务器会拒绝超过一定长度的邮件
- 通用因特网邮件扩充MINE:可以将原本SMTP不支持传输的格式、语言等转化为7位ASCII码,经由SMTP传输后再恢复为原文件类型。
「电子邮件」邮局协议POP3
- 端口为110
- 在传输层明文传输
- 将邮件下载至客户端,并视情况
- 继续保留在服务器中
- 删除服务器中的邮件
「电子邮件」网际报文存取协议IMAP
- 当用户PC上的IMAP客户程序打开IMAP服务器的邮箱时,用户可以看到邮箱的首部
- 若用户需要打开某个邮件,该邮件才上传到用户的计算机上
- IMAP可以让用户在不同的地方使用不同的计算机随时上网阅读处理邮件
- IMAP允许只读取邮件中的某一个部分
「电子邮件」基于万维网的电子邮件
- 使用浏览器登录电子邮箱来收发电子邮件
- 用户代理
- 浏览器
- 通过HTTP协议与邮件服务器连接
- 邮件服务器
- 使用供应商的邮件服务器而不是自己的
- 邮件服务器之间的通信协议仍然为SMTP
第五节 万维网
「万维网」概述
- 万维网是基于C/S的协议
- 统一资源定位符URL:资源在万维网中的唯一标识
- 组成方式:<协议>://<主机>:<端口>/<路径>
- URL不区分大小写
- 超文本传输协议HTTP
- 超文本标记语言HTML
「HTTP」超文本传输协议
HTTP定义了:**
- 浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档
- 服务器怎样把文档传送给浏览器
「HTTP」连接过程
- 浏览器分析URL
- 浏览器向DNS请求解析IP地址
- DNS解析出IP地址
- 浏览器与服务器建立TCP连接
- 浏览器发出取文件命令
- 服务器响应
- 释放TCP连接
- 浏览器显示
「HTTP」协议特点
- HTTP是无状态的
- 每一次连接是一样的
- 通过cookie识别用户,存储用户信息
- HTTP采用TCP作为传输层协议
- HTTP是面向连接的:采用TCP协议
- HTTP本身是无连接的:通信双方在交换HTTP报文之前不需要先建立HTTP连接
「HTTP」连接方式
- 非持久连接:每一次的传输都需要先进行HTTP握手
- 传输时间为2×RTT+文件传输时间2×RTT+文件传输时间
- 持久连接:连接建立后会保持一段时间,可以继续传输后续的请求
- 非流水线式连接:类似停等协议,每一个请求按序发送
- 流水线式连接:类似GBN和SR协议,请求可以一起发送
非持久连接
持久连接
「HTTP」报文结构
- HTTP报文是面向文本的,因此在报文中的每一个字段都是一些ASCII码串
- 请求报文
- 请求行
- 方法:GET、SET等
- URL
- 版本:协议版本
- 换行标志
- 首部行:说明浏览器等的一些信息
- 请求行
- 响应报文
- 状态行
- 状态码+短语:404 NOT FOUND等
- 换行标志
- 首部行
- 状态行