计算机网络学习笔记(4)

2.2.3 Web缓存

web缓存(也称代理服务器)是一种旨在不需要直接访问目标服务器即可满足用户需求的装置。

Web缓存的工作示意图如下所示

1. 浏览器创造一个到代理服务器的TCP协议,并且向其发送一个请求报文

2. 如果代理拥有对象服务器的副本,就向浏览器发送其存储的响应报文

3. 如果代理并不拥有相关对象,那么代理服务器就会向目标服务器建立TCP链接,发送一个请求报文,并获取响应报文

4. 代理接收到报文后,就在其本地空间中存储一份副本,并且向浏览器发送响应报文。

因此,代理服务器即扮演了浏览器的角色,又扮演了服务器的角色

使用代理服务器的原因

1. 由于代理和浏览器的相对距离更近,所以请求的响应速度会更快

2. 避免了由于信道拥挤带来的阻塞问题

3. web缓存减少了使用网络消耗的流量,因此就改善了应用性能

举例--cache的应用

参考如上图所示的网络连接,服务端路由器和客户端路由器由一条速率为1.54MBPS的链路链接,假设对象的平均长度为1MB,浏览器对服务器的平均访问速率为每秒15个请求。将此持续时延称为互联网时延

总的响应时间为浏览器请求对象到接收为止的所用时间。局域网链路强度为0.15,而接入链路上的流量强度为1,也就是极度拥挤

为了解决这个方案,可以使用两种方法

1. 将链路速率提高,比如154MBPS,但这样进行的开销较大

2. 在浏览器端接入一个WEB缓存,平均时延就会达到大约1.2s,效率大大提高

条件GET方法

然而,代理服务器也具有一个问题:如果服务器修改了相关信息,代理的报文就会和服务器不同。为了解决这个问题,HTTP协议本身具有一种机制避免这个问题,也就是条件GET。 

GET方法判断:
1. 请求报文使用get方法

2. 请求报文包含If-modified-since: <date>

条件GET使用

假设代理服务器发送了请求,并且已经接收到了响应。那么,它也会同时存储报文的缓存日期。之后,一个星期后另一个浏览器请求同一个对象,那么就会由代理服务器发送GET条件检查服务端是否已经修改

 2.4 DNS:因特网目录服务

引入:用来识别一个自然人可以有很多方式,例如车牌号,身份证号等。但是用一些方式识别人有时候会比较麻烦,比如“138xxxxxxxx”先生等。

因特网的情况和人类一样,大部分主机使用主机名(例如www.google.com) 进行标识,但是,主机名几乎不提供主机在因特网中的位置信息。所以,也可以用IP地址识别主机

但是,IP地址虽然长度固定,却很难进行记忆。因此,我们需要一种将主机名和IP地址进行对应的工具,这就是DNS(domain name system).DNS具有两个部分:

1. 一个分布式数据库

2. 一个用来查询该数据库的应用层协议

DNS的服务过程如下:

1. DNS客户端在同一台用户主机运行

2. 浏览器抽取主机名并传给DNS客户端

3. 客户端向DNS服务器发起一个请求

4. DNS客户端收到回答报文,包含主机名的IP地址

5. 浏览器能够发起TCP链接

除了以上的功能之外,DNS还能够:

1. 获取规范主机名(一个主机可能有多个别名,DNS可以获取其中的规范主机名)

2. 负载分配 在冗余服务器之间进行负载分配

DNS分布式设计原因

如果DNS按照集中式设计,那么其会具有以下缺点:

1. 单点故障 DNS崩溃即因特网瘫痪

2. 通信容量 DNS将会处理上亿请求服务

3. 远距离集中式数据库 如果物理距离过远,DNS会极大降低效率

4. 维护 集中式的数据库将会过于庞大难以维护

DNS的设计特点

1. 分布式、层次数据库

 如图所示,DNS使用按照层次结构映射分布的DNS服务器,这里先简单解释上图三种类型的服务器

1. 根DNS 服务器 提供TLD服务器的IP地址(TLD:.com/.org等)

2. 顶级域DNS服务器 提供权威服务器的IP地址

3. 权威DNS服务器 记录主机名和IP地址的映射

4. 本地DNS服务器 并不属于DNS服务器的层次结构 用户在本地通过该服务器获取IP地址

 如上图所示,比如主机地址在engineering.nyu.edu ,需要gaia.cs.umass.edu的IP地址

主机首先向本地DNS服务器发送DNS查询报文,之后本地服务器将报文发送至根服务器。根服务器向本地返回具有TLD为.edu的IP地址列表,本地服务器再向TLD服务器发送查询报文找到权威服务器,最后向权威服务器发送报文获取IP地址

在上图的迭代查询方式中,每次请求都要经过本地服务器。同时,DNS查询也可以通过递归方式进行。

 如上图所示,这样就形成了一条完整的查询链

2. DNS缓存

在一个请求链中,如果DNS接收到一个回答,它会缓存在回答中的信息。缓存并非是永久的,在一段时间后,DNS将会丢掉缓存信息

3. DNS记录

DNS的记录形式是一个四元组:

RR format: (name, value, type, ttl)

其中,TTL记录了记录应当从缓存中删除的时间,而name和value的值由type决定

1. type = A name是主机名 value是IP地址

2. type = ns name 是域名(foo.com)value是权威DNS服务器的主机名

3. type = cname value是名字为name的主机的规范主机名

type = mx value 是别名为name的邮件服务器的规范主机名

4. DNS报文

DNS服务器只有查询和回答报文两种,并且形式相同 内容如下

前12个字节--首部区域,识别用于标识查询,标志用于确定是哪种报文,剩下的字段显示了4类数据区中出现的数量

问题--正在进行的查询信息

回答--最初请求名字的资源记录

权威--其他权威服务器的记录

附加--其他有帮助的记录

 可以通过nslookup发送DNS请求,例如:

 可以获得目标服务器的IP地址

DNS服务器可能会收到DDOS攻击和欺骗攻击,但目前还没有成功案例

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值