应用层(一)

目录

应用层协议

HTTP

概况

定义

无状态协议 

报文格式

请求报文

响应报文 

常见状态码

连接方式

非持续连接

持续连接 

Cookie 

代理服务器

定义

工作流程 

来源 

好处 

更新副本 

DNS 

主要任务 

定义 

其他服务 

主机别名

邮件服务器别名

负载分配 

工作机理

单一 DNS 服务器缺点 

分布式、层次数据库 

基本流程 

其他情况 

DNS 缓存

DNS 记录和报文

DNS 记录 

DNS 报文

在 DNS 数据库中插入记录 


应用层协议

定义了运行在不同端系统上的应用程序如何相互传递报文。

1.交换的报文类型,如请求报文和响应报文

2.报文类型的语法,如报文中各个字段及它们是如何描述的

3.字段的语义,即字段中信息的含义

4.确定一个进程何时以及如何发送报文,对报文进行响应的规则

HTTP

概况

定义

超文本传输协议(HyperText Transfer Protorcol,HTTP) ;运行在不同端系统中的客户程序与服务器程序通过交换 HTTP 报文进行会话;HTTP 定义了报文的结构以及客户和服务器进行报文交换的方式。

无状态协议 

HTTP 服务器不会保存关于用户的任何信息; 连续请求同一份数据,服务器都会重新返回。

报文格式

请求报文

1.请求行: 方法字段、URL 字段、HTTP 版本字段

2.首部行:如 User-agent:Firefox。

3.实体体(entity body):如 Post 提交的一个 Json 对象。

响应报文 

1.状态行:协议版本字段、状态码、状态信息

2.首部行:如 Content-Type:text/html

3.实体体:请求的对象本身。

常见状态码

200 OK:请求成功,信息在返回的响应报文中。

301 Moved Permanently:请求的对象已被永久移除,新的 URL 定义在首部行 Location:中;客户软件将自动获取新的 URL。

400 Bad Request:指示该请求不能被服务器理解。

404 Not Found:被请求的文档不在服务器上。

505 HTTP Version Not Supported:服务器不支持请求报文使用的 HTTP 协议版本。 

连接方式

非持续连接

1.每次请求都要建立一个新连接。

2. RTT(往返时间) * 2 + X(数据传输时间);每次请求都需要用去的时间。

3. RTT 用于前两次握手,RTT + X 用于第三次握手(带上请求报文)响应报文传输

持续连接 

1.默认连接方式 。

2.保持连接打开,后续的请求和响应报文通过相同的连接进行传送。

Cookie 

1.可在无状态的 HTTP 之上建立一个用户会话层,在后续会话中用于标识用户。

2.响应报文中包含首部行 Set-cookie:。

3.请求报文中包含首部行 cookie:。

代理服务器

定义

即 Web 缓存器 ;是能够代表初始 Web 服务器来满足 HTTP 请求的实体;有自己的磁盘存储空间,保存最近请求过的对象副本

工作流程 

1.收到客户对某对象的请求,检查本地是否存储了该对象的副本;如果有,代理服务器直接用 HTTP 响应报文返回该对象。

2. 如果没有,代理服务器打开与该对象的初始服务器的 TCP 连接,在这个连接上发送一个对该对象的 HTTP 请求;初始服务器收到请求后,发送具有该对象的 HTTP 响应。

3.代理服务器收到该对象时,在本地存储一份副本,并向客户用 HTTP 响应报文发送该副本(通过现有的 TCP 连接)。

来源 

通常由 ISP 购买并安装。如:一所大学可能在它的校园网上安装一台代理服务器,并将所有校园网上的用户浏览器配置为指向它。 

好处 

1.大大减少对客户请求的响应时间(代理服务器在局域网)。

2.大大减少一个机构的接入链路到因特网的通信量;通过减少通信量,该机构不必急着增加带宽,因此降低费用。

3.从整体上大大减少因特网的 Web 流量,从而改善了所有应用的性能。

更新副本 

1.初始服务器上在之后可能对该对象进行了修改,代理服务器上存储的副本此时为旧值。

2.初始服务器在发送的包含该对象的响应报文中,首部行 Last-Modified:表示最后修改日期;代理服务器会将其保存。

3.代理服务器通过一个条件 GET 执行最新检查,请求报文中包含首部行 If-modified-since:为保存的上次修改日期

4.假如初始服务器上该对象未被修改,响应报文状态行中为 304 Not Modified,实体体中不包含对象(因为会浪费带宽、增加响应时间)。

DNS 

主要任务 

主机名到 IP 地址转换的目录服务。 

定义 

域名系统(Domain Name System)

1.一个由分层的 DNS 服务器实现的分布式数据库。

2.一个使得主机能够查询分布式数据库的应用层协议。

3.DNS 通常时运行 BIND(Berkeley Internet Name Domain) 软件的 Unix 机器。

4.DNS 协议运行在 UDP 上,使用 53 号端口。

5.使用客户-服务器模式运行在通信的端系统间。

6.不与用户直接交互,为应用程序以及其他软件提供主机名转换为 IP 地址的核心功能。

其他服务 

主机别名

原主机名一般称为规范主机名,有着复杂主机名的主机能拥有一个或多个主机别名;应用程序可调用 DNS 来获取对应的规范主机名以及 IP 地址。 

邮件服务器别名

同上,并且一个公司的邮件服务器和 Web 服务器可以使用相同的主机别名 

负载分配 

1.繁忙的站点被冗余分布在多台服务器上,一个 IP 地址集合与同一个规范主机名相联系。

2.客户对该规范主机名发出一个 DNS 请求。

3.服务器使用整个 IP 地址集合进行响应,每次回答中循环这些地址次序,因为客户通常向排在最前面的服务器发送请求。

4.DNS 就在这些冗余 Web 服务器直接循环分配了负载。

工作机理

单一 DNS 服务器缺点 

1.单点故障:如果 DNS 服务器崩溃,整个因特网将瘫痪。

2.通信容量:必须处理所有 DNS 请求。

3.远距离集中式数据库:DNS 服务器不可能临近所有客户,将给远距离客户带来严重时延。 

4.维护:必须为所有因特网主机保留记录。

分布式、层次数据库 

1.根 DNS 服务器:提供 TLD 服务器的地址。

2.顶级域(DNS)服务器:如(com、org、net、edu、gov),国家级顶级域(uk、fr、ca、jp),提供权威 DNS 服务器的地址。

3.权威 DNS 服务器: 拥有公共可访问主机的组织必须提供 DNS 记录(将主机名映射为 IP 地址),该组织机构的权威 DNS 服务器收藏了这些记录。

基本流程 

case.nyu.edu -----> gaia.cs.umess.edu

   1.首先向它的本地 DNS 服务器发送一个 DNS 查询报文,报文包含被转换的主机名。

   2.本地 DNS 服务器将报文转发到根 DNS 服务器

   3.根 DNS 服务器注意到 edu 前缀,向其本地 DNS 服务器返回负责 edu 的 TLD 的 IP 地址列表

   4.本地 DNS 服务器则再次向这些 TLD 服务器之一发送查询报文

   5.该 TLD 服务器注意到 umass.edu 前缀,向本地 DNS 服务器返回负责 umass.edu 的权威 DNS 服务器 IP 地址

   6.本地 DNS 服务器直接向该权威服务器重新发送查询报文

   7.该权威服务器向本地 DNS 服务器返回 gaia.cs.umess.edu 的 IP 地址

   8.本地 DNS 服务器向请求主机返回 gaia.cs.umess.edu 的 IP 地址。

该流程利了递归查询(请求主机到本地 DNS 服务器)、迭代查询(本地 DNS 服务器进行的查询)。

其他情况 

1.基本流程需要 8 份 DNS 报文。

2.TLD 服务器返回的可能并不是权威 DNS 服务器,而是中间的某个 DNS 服务器

3.该中间 DNS 服务器依次往下才能知道权威 DNS 服务器;所以可能需要 10 份报文,甚至更多。

DNS 缓存

1.当某 DNS 服务器收到一个 DNS 回答,它将映射缓存在本地存储中。

2.DNS 服务器在一段时间之后(通常为两天)将丢弃缓存的信息

3.有助于减少 DNS 的网络流量和 DNS 的平均时延

DNS 记录和报文

DNS 记录 

DNS 服务器存储了资源记录(Resource Record,RR),提供了主机名到 IP 地址的映射

(Name, Value, Type, TTL) ;TTL 表示记录从缓存中删除的时间,Name Value 取决于 Type

    1.Type = A,Name 是主机名,Value 是该主机名对应的 IP 地址

    2.Type = NS,Name 是域(如 umess.edu),Value 是知道如何获得该域中主机 IP 地址的权威 DNS 服务器的主机名。如(umess.edu, dns.umess.edu, NS)

    3.Type = CNAME,Name 是别名,Value 是别名为 Name 的主机对应的规范主机名

    4.Type = MX,Name 是别名,Value 是别名为 Name 的邮件服务器的规范主机名

权威服务器将包含 A 记录。

其他服务器将包含 NS 记录与 A 记录;如(umess.edu, dns.umess.edu, NS),(dns.umess.edu, 128.119.40.111, A)

DNS 报文

1.首部区域:前 12 个字节;

    ①标志符:16 比特的数,用于标识该查询;回答报文会从查询报文中复制。

    ②标志:包含若干标志;"查询/回答"标志,"权威"标志,"希望递归"标志。

2.

    ①问题区域:包含正在进行的查询信息。两个字段:名字(Name)、类型(Type)

    ②回答区域:对最初请求的名字的资源记录。可能包含多条 RR(DNS 负载分配,返回 IP 地址集合)。

    ③权威区域:包含了其他权威服务器记录。

    ④附加区域:包含了其他由帮助的记录;如:一个 MX 请求,回答区域包含一条记录,提供邮件服务器的规范主机名;附加区域包含一条 A 记录,提供规范主机名对应 IP 地址。 

在 DNS 数据库中插入记录 

1.创建一家公司,首先注册域名 ppy.com

2.向注册机构提供基本和辅助权威 DNS 服务器的名字和 IP 地址。

3.假如基本权威 DNS 服务器的名字和 IP 地址为:dns1.ppy.com,123.123.123.1

4.注册机构确保将一个类型 NS 和 A 的记录输入 TLD com 服务器(ppy.com, dns1.ppy.com, NS) ,(dns1.ppy.com, 123.123.123.1, A)

5.确保 Web 服务器 www.ppy.com 的类型 A 记录和用于邮件服务器 mail.ppy.com 的类型 MX 记录,输入自己的权威 DNS 服务器


版权声明:本文为qq_45839708原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>