计算机网络系列专题

自顶向下 | 带你遨游应用层

2020-03-15  本文已影响0人  许朋友爱玩

前言

本文已经收录到我的Github个人博客,欢迎大佬们光临寒舍:

我的GIthub博客

学习导图:

学习导图

一、应用层协议原理

Q1:网络应用程序体系结构

Q2:进程通信

Q3:可供应用使用的运输服务

运输服务的衡量标准:

Q4:因特网提供的运输服务

Q5:应用层协议

应用层协议 (application layer protocol) 定义了运行在不同端系统上的应用程序进程如何相互传递报文

(1) 交换的报文类型,如请求报文和响应报文;

(2) 各种报文类型的语法,如报文中的各个字段公共详细描述;

(3) 字段的语义,即包含在字段中信息的含义;

(4) 进程何时、如何发送报文及对报文进行响应。

二、Web 和 HTTP

Q1:HTTP

Q2:非持续连接和持续连接

这里书上提到了一个概念,RTTRound-Trip Time)往返时延,报文从 C->S->C 的时间。由于有三次握手的存在,前两次握手已经用了 2个 RTT,所以真正的响应时间应该是 2RTT + 传输HTML对象

image

上面说过,每个对象都要握手,经过2个RTT 才可以传输。而持续连接,则是用系统资源来换取效率。

Q3:HTTP 报文格式

  1. 请求报文的格式:
GET /somedir/page.html HTTP/1.1
Host: www.someschool.edu
Connection: close                 //浏览器告诉服务器不要用持续链接,要求服务器在发送完请求对象后就关闭连接
User-agent: Mozilla/5.0          //指明用户代理
Accept-language: fr             //指明用户得到对象的语言版本
请求报文格式

2.响应报文的格式:

响应报文格式
HTTP/1.1  200  OK
Connection: close
Date: Tue, 09 Aug 2011 15:44:04 GMT
Server: Apache/2.2.3 (CentOS)
Last-Modified: Tue, 09 Aug 2011 15:11:03 GMT
Content-Length: 6821
Content-Type: text/html

(data data data data data ...)

常见状态码:

  • 200:请求成功

  • 301:请求的对象被转移了,重定向的 URL在响应报文中

  • 400:非法请求,丢弃

  • 404Not Found,被请求的文档不在服务器上

  • 505:服务器不支持请求报文使用的 http 版本

3.HTTP1.0HTTP1.1HTTP2.0 之间的比较:

a.HTTP/1.0

b. HTTP/1.1:

当前正在广泛使用的版本

最重要的是 长连接

c.HTTP/2.0

重点是可以并行传输

Q4:用户和服务器的交互:cookie

之前说过,HTTP 是无状态协议。但是 Web 站点为了 识别用户身份 ,使用了 Cookie 技术。
Cookie 技术包含 4 个组件:

很好理解,自然是请求报文和相应报文都携带 Cookie,客户端和服务器端都存有 Cookie 文件。即 本地保存,访问携带

CookieSession 的区别
简单来说,二者都是为了 Web 站点 识别用户身份Session 译为 会话,就是保存每一次客户端和服务器端会话中的 用户信息和用户操作,是有时间限制的。
Session 会在服务器端有一个 类似 HashTable 的数据来存放用户数据,浏览器第一次请求,生成一个 HashTable 和对应 的SessionID (用于标识这个 HashTable)。这个 Session ID 一般在 30 分钟后会自动销毁。

区别:

Q5:Web 缓存器(代理服务器)

1.使用 Web 缓存器的 2 个主要原因:

2.工作过程

Web 缓存器有缓存 Web 缓存器无缓存

Q6:条件 get 方法

上述实现方式还有一个问题就是无法保证本地存储器内的内容是最新的,所以需要采用一种方式(条件性 GET 方法)来保证数据是最新版本。这个方法的基本思想就是本地代理服务器向 URL 目标服务器发送一个 GET 请求消息,这个消息里面包括了本地存储资源的更新时间,在 URL 目标服务器中,会用这个时间与最新版本的时间进行比对,如果时间一致就返回 304 Not Modified , 否则就返回 200 OK 和最新版本的资源。代理服务器接收到返回信息后会判断这个返回码,如果是 304,就直接返回给客户给本地代理服务器存储的资源;如果是 200 就把新接收到的资源返回给用户,同时更新代理服务器存储的内容。

三、文件传输协议 FTP

  • 一个用于控制连接
  • 一个用于数据连接

四、因特网中的电子邮件

电子邮件的组成部分:

image
  • 每个接收方在其中的某个服务器上有一个邮箱

  • 邮箱包含用户的到达报文、离开 (将发送) 邮件报文的报文队列

  • 在发送电子邮件报文的邮件服务器之间采用 SMTP 协议。

SMTP 是因特网电子邮件中主要的应用层协议。它使用 TCP 可靠数据传输服务,从发送方的邮件服务器向接收方的邮件服务器发送邮件。

1、SMTP

为了描述 SMTP 的基本操作,下面来模拟一下 AliceBob 发送一封简单的 ASCII 报文的过程:

image
  1. Alice 使用用户代理写作报文并向 bob@someschool.edu 发送

  2. Alice用户代理 向其邮件服务器发送报文;报文放置在报文队列

  3. SMTP 的客户机侧打开与 Bob 的邮件服务器的 TCP 连接

  4. SMTP 通过 TCP 连接发送 Alice 的报文

  5. Bob 的邮件服务器将该报文放入 Bob 的邮箱

  6. Bob 调用其用户代理(通过POP/POP3)来读报文

2、SMTPHTTP 的对比

3、邮件访问协议

POP

  • POP 协议支持 “离线” 邮件存储转发处理:客户端程序连接服务器,下载所有未阅读的电子邮件
  • 一旦将邮件从邮件服务器端送到客户端上,邮件服务器上的邮件将会被删除

POP3

  • POP3 协议允许电子邮件客户端下载服务器上的邮件
  • 但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上,比如通过客户端收取了邮箱中的 3 封邮件并移动到其他文件夹,邮箱服务器上的这些邮件是没有同时被移动的

IMAP的介绍,以及和 POP3 的区别

五、DNS:因特网的目录服务

Q1:DNS 提供的其他服务:

有着复杂主机名的主机可以拥有一个或多个别名。原复杂主机名也叫规范主机名。主机别名(如果有的话)比主机规范名更容易记忆。应用程序可以调用 DNS 来获得主机别名对应的规范主机名以及主机的 IP 地址

同主机别名类似,电子邮件应用程序调用 DNS,对提供的邮件服务器别名进行解析,以获得该主机的规范主机名以及其 IP 地址。MXMail Exchanger,邮件交换)记录允许一个公司的邮件服务器和 Web 服务器用相同的(别名化的)主机名

DNS 也用于在冗余的服务器(如冗余的 Web 服务器等)之间进行负载分配。对于这些冗余的 Web 服务器,一个 IP 地址集合对应于同一个规范主机名。DNS 数据库中存储着这些 IP 地址集合。当客户机为映射到这个 IP 地址集合的名字发出一个 DNS 请求时,该服务器用包含全部这些地址的报文回答,但在每个回答中旋转这些地址排放顺序。因为客户机通常总是向 IP 地址排在最前面的服务器发送 HTTP 请求报文,所以 DNS 就在所有这些冗余的 Web 服务器之间旋转分配负载。DNS 旋转同样适用于邮件服务器,因此,多个邮件服务器可以具有相同的别名。

2、DNS 的工作原理

DNS 采用分布式的设计方案

下面是 DNS 服务器的部分层次结构(由上到下,每层分别是根服务器、顶级域TLD 服务器、权威服务器)

image

1)分布式、层次数据库

大致来说,有 3 种类型的 DNS 服务器:DNS 服务器顶级域(Top9 Level Domain,TLDDNS 服务器权威 DNS 服务器

下面来详细介绍一下这三种类型的 DNS 服务器:

image

负责 com, org, net, edu 等,以及所有顶级国家域 uk, fr, ca, jp,cn

组织的 DNS 服务器为组织的服务器 (如 Web 和电子邮件) 提供对IP映射的权威主机名。 能够由组织或服务提供商维护。

本地 DNS 服务器严格来说并不属于 DNS 服务器的层次结构,但它对 DNS 层次结构是很重要的。

迭代查询 图 2、递归查询

在图 1 的例子中用到了递归查询迭代查询

从理论上,所有的 DNS 查询既可以是迭代的也可以是递归的。例如,图 2 显示了一条 DNS 查询链,其中所有查询都是递归的

实际中,查询通常遵循图 1 中的模式:从请求主机到本地 DNS 服务器的查询是递归的,其余查询是迭代的

2)DNS 缓存

3)域名解析过程

image

六、P2P 应用

问题 : 从一个服务器向 N 个节点分发一个文件需要多长时间?

(1)客户机 / 服务器:服务器串行地发送 N 个副本

(2)P2P:服务器必须发送一个副本

P2P需要的时间 C/S需要的时间 C/S 模式和 P2P 模式对比

如果文章对您有一点帮助的话,希望您能点一下赞,您的点赞,是我前进的动力

本文参考链接:

上一篇下一篇

猜你喜欢

热点阅读