diff --git a/content/408/《计网》应用层.md b/content/408/《计网》应用层.md new file mode 100644 index 0000000..96fe5ac --- /dev/null +++ b/content/408/《计网》应用层.md @@ -0,0 +1,263 @@ +--- +title: "《计网》应用层" +date: 2023-07-27T19:15:08+08:00 + +--- + +## 应用层 + +* 应用层对应用程序的通信提供服务。应用层协议具体应定义为 + * 应用进程交换的报文类型,如请求报文和响应报文 + * 各种报文类型的语法,如报文中的各个字段及其详细描述 + * 字段的语义,即包含在字段中信息的含义 + * 进程何时发送报文,以及对报文的响应的规则 + +## 网络应用模型 + +### 客户/服务器模型 + +![](../../images/《计网》应用层/客户服务器模型.png) + +* 主要特点 + * 客户是服务请求方,服务器是服务提供方 + * 服务器特点 + * 提供永久服务 + * 服务器IP地址固定不变 + * 客户端特点 + * 与服务器通信,使用服务器提供的服务 + * 间歇性接入网络 + * 可能使用动态的IP地址 + * 不与其他客户端直接通信 +* 常见应用 + * Web + * 文件传输协议FTP + * 远程登录 + * 电子邮件 + +### P2P模型 + +![](../../images/《计网》应用层/P2P模型.png) + +* 主要特点 + * 显著特点:对等节点之间有直接通信能力 + * P2P是指在互联网中由对等节点组成的一种覆盖网络 + * P2P是一种动态的逻辑网络,不是一种物理网络 + * 不存在永远在线的服务器 + * 每个主机既可以提供服务,也可以请求服务 + * 节点间歇性接入网络,并且可能改变IP地址 + * 自扩展性好,网络健壮性强 + +## 域名系统DNS + +* DNS作用:把域名转换为IP地址 +* DNS采用C/S模型 +* DNS协议运行在UDP上,使用53端口 + +### DNS组成部分 + +* 层次域名空间 + * ![](../../images/《计网》应用层/层次域名空间.png) + * 顶级域名 + * 二级域名 + * 三级域名 + * 多个标号组成的完整域名总共不超过255个字符 +* 域名服务器 + * ![](../../images/《计网》应用层/域名服务器.png) + * 种类 + * 根域名服务器(.) + * 顶级域名服务器 + * 授权/权限域名服务器 + * 一定能在授权服务器找到对应的IP号 + * 本地域名服务器 + * 域名服务器被设计为一种联机的分布式数据库系统,采用C/S模型 +* 域名解析过程 + * 递归查询 + * ![](../../images/《计网》应用层/递归查询.png) + * 本机向本地域名服务器的查询是递归查询 + * 递归迭代查询 + * ![](../../images/《计网》应用层/递归迭代查询.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/《计网》应用层/FTP工作时用到的TCP连接.png) + +* 控制连接 + * 作用 + * 用于将命令从客户传给服务器并传回服务器的应答 + * 端口 + * 21端口 + * 特点 + * 控制信息都以7位ASCII格式传送 + * 控制连接在整个会话期间一直保持打开 + * FTP的控制信息是带外传送的 +* 数据连接 + * 作用 + * 用于传输文件 + * 端口 + * 20端口 + * 特点 + * PORT模式 + * 主动模式 + * 传送数据是服务器连接到客户端端口 + * PASV模式 + * 被动模式 + * 传送数据是客户端连接服务器端口 + +## 电子邮件系统 + +* 电子邮件系统是一种异步通信方式 +* 基于WWW的电子邮件 + * 用户浏览器与Gmail的邮件服务器用HTTP发送或接收邮件 + * 不同邮件服务器之间传送用SMTP +* 三个组成部分 + * 用户代理,用户与电子邮件系统的接口,如Outlook,Foxmail + * 邮件服务器,用来发送和接收邮件 + * 邮件发送协议SMTP【类似Push】和读取协议pop3【类似Pull】 +* 发送接收过程 + * ![](../../images/《计网》应用层/电子邮件发送接收过程.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/《计网》应用层/Cookie.png) + +* Cookie是网站为了辨别用户身份,进行会话跟踪而存储在客户端上的数据 +* Cookie的组成 + * 在HTTP响应报文中的一个cookie首部行 + * 在HTTP请求报文中的一个cookie首部行 + * 在用户端系统中保留一个cookie文件,由用户的浏览器进行管理 + * 位于web站点的一个后端数据库 + +### HTTP操作过程 + +![](../../images/《计网》应用层/HTTP操作过程.jpg) + +* 浏览器分析链接指向页面的URL +* 浏览器向DNS请求解析网址的IP地址 +* 域名系统DNS解析出IP地址 +* 浏览器与该服务器建立TPC链接【默认端口80】 +* 浏览器发送HTTP请求 +* 服务器通过HTTP响应把文件发送给浏览器 +* 释放TCP连接 +* 浏览器解释文件,把web页面显示给用户 + +### 持久连接和非持久连接 + +* 非持久连接 + * ![](../../images/《计网》应用层/非持久连接.png) + * 传输时间 + * 文档传输时间 + 两倍的往返时间RTT + * connection状态 + * 标志为close,说明是非持久连接 +* 持久连接 + * ![](../../images/《计网》应用层/持久连接.png) + * 传输时间 + * 共经历1个RTT延迟 + * connection状态 + * 标志为keep-alive,说明是持久连接 + * HTTP/1.1的默认方式是持久连接 + +### HTTP的报文结构 + +![](../../images/《计网》应用层/HTTP的报文结构.jpg) + +* 两类HTTP报文 + * 请求报文 + * 响应报文 +* 报文的组成 + * 开始行【请求报文为请求行】【响应报文为状态行】 + * 首部行 + * 实体主体 +* 请求报文采用的方法 + * GET【请求】 + * HEAD【读取URL表示的信息的首部,无response】 + * POST【上传信息】 + * CONNECT【代理服务器】 +* 实例 + * ![](../../images/《计网》应用层/HTTP的报文结构实例.jpg) \ No newline at end of file diff --git a/static/images/《计网》应用层/Cookie.png b/static/images/《计网》应用层/Cookie.png new file mode 100644 index 0000000..2e46b42 Binary files /dev/null and b/static/images/《计网》应用层/Cookie.png differ diff --git a/static/images/《计网》应用层/FTP工作时用到的TCP连接.png b/static/images/《计网》应用层/FTP工作时用到的TCP连接.png new file mode 100644 index 0000000..fb2b9ce Binary files /dev/null and b/static/images/《计网》应用层/FTP工作时用到的TCP连接.png differ diff --git a/static/images/《计网》应用层/HTTP操作过程.jpg b/static/images/《计网》应用层/HTTP操作过程.jpg new file mode 100644 index 0000000..c8aa104 Binary files /dev/null and b/static/images/《计网》应用层/HTTP操作过程.jpg differ diff --git a/static/images/《计网》应用层/HTTP的报文结构.jpg b/static/images/《计网》应用层/HTTP的报文结构.jpg new file mode 100644 index 0000000..6d1a74a Binary files /dev/null and b/static/images/《计网》应用层/HTTP的报文结构.jpg differ diff --git a/static/images/《计网》应用层/HTTP的报文结构实例.jpg b/static/images/《计网》应用层/HTTP的报文结构实例.jpg new file mode 100644 index 0000000..8175510 Binary files /dev/null and b/static/images/《计网》应用层/HTTP的报文结构实例.jpg differ diff --git a/static/images/《计网》应用层/P2P模型.png b/static/images/《计网》应用层/P2P模型.png new file mode 100644 index 0000000..a45c03d Binary files /dev/null and b/static/images/《计网》应用层/P2P模型.png differ diff --git a/static/images/《计网》应用层/域名服务器.png b/static/images/《计网》应用层/域名服务器.png new file mode 100644 index 0000000..be0149c Binary files /dev/null and b/static/images/《计网》应用层/域名服务器.png differ diff --git a/static/images/《计网》应用层/客户服务器模型.png b/static/images/《计网》应用层/客户服务器模型.png new file mode 100644 index 0000000..b3df298 Binary files /dev/null and b/static/images/《计网》应用层/客户服务器模型.png differ diff --git a/static/images/《计网》应用层/层次域名空间.png b/static/images/《计网》应用层/层次域名空间.png new file mode 100644 index 0000000..30f6c93 Binary files /dev/null and b/static/images/《计网》应用层/层次域名空间.png differ diff --git a/static/images/《计网》应用层/持久连接.png b/static/images/《计网》应用层/持久连接.png new file mode 100644 index 0000000..2d91b5e Binary files /dev/null and b/static/images/《计网》应用层/持久连接.png differ diff --git a/static/images/《计网》应用层/电子邮件发送接收过程.png b/static/images/《计网》应用层/电子邮件发送接收过程.png new file mode 100644 index 0000000..85ced2b Binary files /dev/null and b/static/images/《计网》应用层/电子邮件发送接收过程.png differ diff --git a/static/images/《计网》应用层/递归查询.png b/static/images/《计网》应用层/递归查询.png new file mode 100644 index 0000000..fba6d77 Binary files /dev/null and b/static/images/《计网》应用层/递归查询.png differ diff --git a/static/images/《计网》应用层/递归迭代查询.png b/static/images/《计网》应用层/递归迭代查询.png new file mode 100644 index 0000000..896c3db Binary files /dev/null and b/static/images/《计网》应用层/递归迭代查询.png differ diff --git a/static/images/《计网》应用层/非持久连接.png b/static/images/《计网》应用层/非持久连接.png new file mode 100644 index 0000000..ac5c73e Binary files /dev/null and b/static/images/《计网》应用层/非持久连接.png differ