1 应用层
1746字约6分钟
2022-06-09
计算机网络应用层,此层协议有例如 HTTP、SMTP、POP3、IMAP、DNS、P2P。
套接字:< IP_addr, Port > 标识互联网上的一台主机上的一个应用进程。
应用层协议举例:HTTP、SMTP、POP3、IMAP、DNS、P2P
WEB 构成:浏览器、WEB 服务器、协议
URL(Uniform Resource Locator):统一资源定位符,描述了资源的位置。
URI (Uniform Resource Identifier):统一资源描述符,唯一标识了一个资源。
HTTP 协议
HTTP/1.0:非持续连接,请求一个文档就要两倍的 RTT 开销。
HTTP/1.1:使用持续连接
- 非流水线方式:客户在收到前一个响应后才能发出下一个请求。
- 流水线方式:收到 HTTP 的响应报文之前就能接着发送新的请求报文。
HTTP 请求方法
根据 HTTP 标准,HTTP 请求可以使用多种请求方法。
HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法。
HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
序号 | 方法 | 描述 |
---|---|---|
1 | GET | 请求指定的页面信息,并返回实体主体。 |
2 | HEAD | 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头 |
3 | POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。 |
4 | PUT | 从客户端向服务器传送的数据取代指定的文档的内容。 |
5 | DELETE | 请求服务器删除指定的页面。 |
6 | CONNECT | HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。 |
7 | OPTIONS | 允许客户端查看服务器的性能。 |
8 | TRACE | 回显服务器收到的请求,主要用于测试或诊断。 |
9 | PATCH | 是对 PUT 方法的补充,用来对已知资源进行局部更新 。 |
HTTP 状态码
状态码 | 状态码英文名称 | 中文描述 |
---|---|---|
200 | OK | 请求成功。一般用于GET与POST请求 |
301 | Moved Permanently | 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替 |
302 | Found | 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI |
304 | Not Modified | 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源 |
400 | Bad Request | 客户端请求的语法错误,服务器无法理解 |
403 | Forbidden | 服务器理解请求客户端的请求,但是拒绝执行此请求 |
404 | Not Found | 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面 |
简单邮件传送协议 SMTP
基本操作
邮件代理 —— 邮件服务器 —— 邮件服务器 —— 邮件代理
格式标准
MIME 多媒体邮件扩展
邮件访问协议 IMAP 与 POP3
操作位置 | 操作内容 | IMAP | POP3 |
---|---|---|---|
收件箱 | 阅读、标记、移动、删除邮件等 | 客户端与邮箱更新同步 | 仅在客户端内 |
发件箱 | 保存到已发送 | 客户端与邮箱更新同步 | 仅在客户端内 |
创建文件夹 | 新建自定义的文件夹 | 客户端与邮箱更新同步 | 仅在客户端内 |
草稿 | 保存草稿 | 客户端与邮箱更新同步 | 仅在客户端内 |
垃圾文件夹 | 接收并移入垃圾文件夹的邮件 | 支持 | 不支持 |
广告邮件 | 接收并移入广告邮件夹的邮件 | 支持 | 不支持 |
DNS
域名系统的层次结构
根域名服务器、顶级域名服务器、权威域名服务器
根域名服务器:提供顶级域名解析服务。由 13 个根服务器集群组成。
顶级域名服务器:提供权威 DNS 服务器的解析服务。
权威域名服务器:提供公共可访问主机的解析服务。
两种 DNS 查询方式
递归查询:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。
主机向本地域名服务器的查询一般都是采用递归查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。
迭代查询:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。
本地域名服务器向根域名服务器的查询的迭代查询。要么给出所要查询的IP地址,要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。
四种 DNS 资源记录
A 记录:将域名指向目标主机地址。
CNAME 记录:将域名指向主机别名。
MX 记录:邮件交换记录。将邮件指向对应的邮件服务器进行处理。
NS 记录:解析服务器记录。用来表明由哪台服务器对该域名进行解析。
P2P 文件分发原理
C/S 模型下的最短时间下界:
TC/S≥max{usNF,dminF}
解释:服务器上传 N 次所需时间,最慢客户机下载时间。
P2P 模型下的最短时间下界:
DP2P≥max{usF,dminF,us+∑i=1NuiNF}
解释:服务器上传 1 次所需时间,最慢客户机下载时间,整体网络上传 N 次的时间。
P2P 协议 BitTorrent:
- 最稀缺优先:针对自己没有的块中优先选择邻居中副本最少的块——均衡每个块在洪流中的副本数量
- 一报还一报:选择 4 + 1 位邻居响应请求,其中 4 位是对自己下载贡献最大的,另外 1 位是随机试探的对等方——速率匹配