--- title: "《计网》应用层" date: 2023-07-27T19:15:08+08:00 --- ## 应用层 * 应用层对应用程序的通信提供服务。应用层协议具体应定义为 * 应用进程交换的报文类型,如请求报文和响应报文 * 各种报文类型的语法,如报文中的各个字段及其详细描述 * 字段的语义,即包含在字段中信息的含义 * 进程何时发送报文,以及对报文的响应的规则 ## 网络应用模型 ### 客户/服务器模型 ![](../../images/408/《计网》应用层/客户服务器模型.png) * 主要特点 * 客户是服务请求方,服务器是服务提供方 * 服务器特点 * 提供永久服务 * 服务器IP地址固定不变 * 客户端特点 * 与服务器通信,使用服务器提供的服务 * 间歇性接入网络 * 可能使用动态的IP地址 * 不与其他客户端直接通信 * 常见应用 * Web * 文件传输协议FTP * 远程登录 * 电子邮件 ### P2P模型 ![](../../images/408/《计网》应用层/P2P模型.png) * 主要特点 * 显著特点:对等节点之间有直接通信能力 * P2P是指在互联网中由对等节点组成的一种覆盖网络 * P2P是一种动态的逻辑网络,不是一种物理网络 * 不存在永远在线的服务器 * 每个主机既可以提供服务,也可以请求服务 * 节点间歇性接入网络,并且可能改变IP地址 * 自扩展性好,网络健壮性强 ## 域名系统DNS * DNS作用:把域名转换为IP地址 * DNS采用C/S模型 * DNS协议运行在UDP上,使用53端口 ### DNS组成部分 * 层次域名空间 * ![](../../images/408/《计网》应用层/层次域名空间.png) * 顶级域名 * 二级域名 * 三级域名 * 多个标号组成的完整域名总共不超过255个字符 * 域名服务器 * ![](../../images/408/《计网》应用层/域名服务器.png) * 种类 * 根域名服务器(.) * 顶级域名服务器 * 授权/权限域名服务器 * 一定能在授权服务器找到对应的IP号 * 本地域名服务器 * 域名服务器被设计为一种联机的分布式数据库系统,采用C/S模型 * 域名解析过程 * 递归查询 * ![](../../images/408/《计网》应用层/递归查询.png) * 本机向本地域名服务器的查询是递归查询 * 递归迭代查询 * ![](../../images/408/《计网》应用层/递归迭代查询.png) * 本地域名服务器向根域名服务器的查询是迭代查询 * 流程 * 主机m.xyz.com先向其本地域名服务器dns.xyz.com进行递归查询 * 本地域名服务器采用迭代查询。它向一个根域名服务器查询 * 根域名服务器告诉本地域名服务器,下一次应查询的顶级域名服务器dns.com的IP地址 * 本地域名服务器向顶级域名其dns.com进行查询 * 顶级域名服务器dns.com告诉本地域名服务器,下一次查询的权限域名服务器的dns.baidu.com的IP地址 * 本地域名服务器向权限域名服务器dns.baidu.com进行查询 * 权限域名服务器dns.baidu.com告诉本地域名服务器所查询的主机的IP地址 * 本地域名服务器dns.xyz.com最后把查询结果告知主机m.xyz.com * 8个步骤共要使用8个UDP用户数据报(使用UDP是为了减少开销)的报文 * 本地域名服务器经过三次迭代查询后,从权限域名服务器dns.baidu.com得到了主机www.baidu.com的IP地址 * 高速缓存(DNS缓存) * 在域名服务器中使用DNS的目的 * 为了提高DNS查询效率 * 减轻根域名服务器的负荷和减少互联网上的DNS查询报文数量 * DNS服务器将在一段时间后丢弃高速缓存中的信息 ## 文件传输协议FTP * FTP使用TCP可靠的传输服务 * FTP必须在整个会话期间保留用户的状态信息 * 服务器必须追踪用户在远程目录树上的当前位置 * FTP特点 * 提供交互式访问 * 运行客户指明文件的类型与格式,运行文件具有存取权限 * 适合在异构网络中的任意计算机之间传送文件 * FTP功能 * 提供不同种类主机系统(软硬件都可)之间的文件传输能力 * 以用户权限管理的方式提供用户对远程FTP服务器的文件管理能力 * 以匿名FTP的方式提供公用文件共享的能力,使用anonymous作为用户名 * FTP组成 * 一个主进程,负责接收新的请求 * 若干个从属进程,负责处理单个请求 * 主进程步骤 * 服务端打开21端口,使客户进程能够连接上 * 等待客户进程发出连接请求 * 启动从属进程处理客户进程发来的请求。主进程与从属进程并发执行,从属进程对客户进程的请求处理完毕后即终止。 * 回到等待状态,继续接受其他客户进程发来的请求 ### FTP工作时用到的TCP连接 * FTP使用两个独立的连接的好处 * 使协议更加简单和容易实现 * 在传输文件的时候可以利用控制连接对文件的传输进行控制(如用户可以在文件传输过程中发生请求中止服务) ![](../../images/408/《计网》应用层/FTP工作时用到的TCP连接.png) * 控制连接 * 作用 * 用于将命令从客户传给服务器并传回服务器的应答 * 端口 * 21端口 * 特点 * 控制信息都以7位ASCII格式传送 * 控制连接在整个会话期间一直保持打开 * FTP的控制信息是带外传送的 * 数据连接 * 作用 * 用于传输文件 * 端口 * 20端口 * 特点 * PORT模式 * 主动模式 * 传送数据是服务器连接到客户端端口 * PASV模式 * 被动模式 * 传送数据是客户端连接服务器端口 ## 电子邮件系统 * 电子邮件系统是一种异步通信方式 * 基于WWW的电子邮件 * 用户浏览器与Gmail的邮件服务器用HTTP发送或接收邮件 * 不同邮件服务器之间传送用SMTP * 三个组成部分 * 用户代理,用户与电子邮件系统的接口,如Outlook,Foxmail * 邮件服务器,用来发送和接收邮件 * 邮件发送协议SMTP【类似Push】和读取协议pop3【类似Pull】 * 发送接收过程 * ![](../../images/408/《计网》应用层/电子邮件发送接收过程.png) ### 电子邮件格式 * 电子邮件 = 信封 + 内容 * 内容 = 首部【RFC822规定】 + 主体【用户自用撰写】 * 首部的关键字 * From:abc@cskaoyan.com【必须要】,由邮件系统自动填入 * To:x123@cskaoyan1.com【必须要】,abc是收件人邮箱号,后者是邮箱所在主机的域名 * Subject:xxxxxxx【可选】,是邮件的主题 * 多用途网络邮件扩充(MIME) * 因为SMTP/pop3只能传送一定长度的ASCII码邮件,且无法传送可执行文件及其他二进制对象,所以提出MIME * MIME继续使用SMTP的格式,增加了邮件主题的结构,定义了传送非ASCII码的编码规则 ### 发送协议和读取协议 ||SMTP|POP3|IMAP| |---|---|---|---| |定义|一种提供可靠且有效的电子邮件传输协议|一种非常简单但功能有限的邮件读取协议|因特网报文存取协议| |特点|使用C/S方式
使用TCP连接
端口号25
只支持传输7比特ASCII码内容|使用C/S方式
使用TCP连接
端口号为110
POP3协议是用明文传输密码的,不对密码加密|为用户提供了联机命令
创建文件夹
在不同文件夹之间移动邮件
在远程文件夹中查询邮件
IMAP服务器维护了会话用户的状态信息
允许用户代理只获取报文的某些部分
适合低带宽| |工作过程|连接建立
邮件传送
链接释放|下载并保留
下载并删除|| ## 万维网 * WWW是一个分布式,联机式的信息存储空间 * 组成部分 * 统一资源定位符URL * 标志分布在整个互联网上的万维网文档 * 超文本传送协议HTTP * 实现WWW上的各种连接的协议 * 超文本标记语言HTML * 使不同风格的文档在互联网上的主机显示 * URL的形式 * <协议>://<主机>:<端口>/<路径> ## HTTP协议 * 定义了浏览器向服务器请求web页面的方式,以及服务器向浏览器传送页面的方式 * HTTP特点 * HTTP使用面向连接的TCP作为传输层协议,保证了数据的可靠传输 * HTTP协议本身是无连接的 * HTTP协议是无状态的 * 不需要保存客户的状态信息,可以减少服务器的CPU及内存的消耗 ### Cookie ![](../../images/408/《计网》应用层/Cookie.png) * Cookie是网站为了辨别用户身份,进行会话跟踪而存储在客户端上的数据 * Cookie的组成 * 在HTTP响应报文中的一个cookie首部行 * 在HTTP请求报文中的一个cookie首部行 * 在用户端系统中保留一个cookie文件,由用户的浏览器进行管理 * 位于web站点的一个后端数据库 ### HTTP操作过程 ![](../../images/408/《计网》应用层/HTTP操作过程.jpg) * 浏览器分析链接指向页面的URL * 浏览器向DNS请求解析网址的IP地址 * 域名系统DNS解析出IP地址 * 浏览器与该服务器建立TPC链接【默认端口80】 * 浏览器发送HTTP请求 * 服务器通过HTTP响应把文件发送给浏览器 * 释放TCP连接 * 浏览器解释文件,把web页面显示给用户 ### 持久连接和非持久连接 * 非持久连接 * ![](../../images/408/《计网》应用层/非持久连接.png) * 传输时间 * 文档传输时间 + 两倍的往返时间RTT * connection状态 * 标志为close,说明是非持久连接 * 持久连接 * ![](../../images/408/《计网》应用层/持久连接.png) * 传输时间 * 共经历1个RTT延迟 * connection状态 * 标志为keep-alive,说明是持久连接 * HTTP/1.1的默认方式是持久连接 ### HTTP的报文结构 ![](../../images/408/《计网》应用层/HTTP的报文结构.jpg) * 两类HTTP报文 * 请求报文 * 响应报文 * 报文的组成 * 开始行【请求报文为请求行】【响应报文为状态行】 * 首部行 * 实体主体 * 请求报文采用的方法 * GET【请求】 * HEAD【读取URL表示的信息的首部,无response】 * POST【上传信息】 * CONNECT【代理服务器】 * 实例 * ![](../../images/408/《计网》应用层/HTTP的报文结构实例.jpg)