InkSoul/content/408/《计网》应用层.md

263 lines
10 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
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方式<br>使用TCP连接<br>端口号25<br>只支持传输7比特ASCII码内容|使用C/S方式<br>使用TCP连接<br>端口号为110<br>POP3协议是用明文传输密码的不对密码加密|为用户提供了联机命令<br>创建文件夹<br>在不同文件夹之间移动邮件<br>在远程文件夹中查询邮件<br>IMAP服务器维护了会话用户的状态信息<br>允许用户代理只获取报文的某些部分<br>适合低带宽|
|工作过程|连接建立<br>邮件传送<br>链接释放|下载并保留<br>下载并删除||
## 万维网
* 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)