《网络是怎样连接的》读书笔记5-探索服务器端的局域网

目录

第五章 服务器端的局域网中有什么玄机

一、Web服务器的部署地点

二、防火墙的结构和原理

三、通过将请求平均分配给多台服务器来平衡负载

四、利用缓存服务器分担负载

五、内容分发服务


第五章 服务器端的局域网中有什么玄机

 

一、Web服务器的部署地点

二、防火墙的结构和原理

1. 防火墙基本思路:只允许发往特定服务器中的特定应用程序的包通过,然后屏蔽其他的包。

    防火墙可分为:包过滤、应用层网关、电路层网关等。但出于性能、价格、易用性等因素,现在最为普及的是包过滤方式

    网络包的头部包含了用于控制通信操作的控制信息,经常用于设置包过滤规则的字段如下:

2. 通过接收方IP地址、发送方IP地址、接收方端口号、发送方端口号、TCP控制位这些条件,我们可以判断出通信的起点和终点、应用程序种类,以及访问的方向。结合这些或更多信息来设置规则判断是否允许某个包通过。

3. 包过滤方式的防火墙不仅可以允许或者阻止网络包的通过,还具备地址转换功能

4. 防火墙只关心包的起点和终点,因此即便包中含有特定数据(存在风险),防火墙也无法发现,当包到达Web服务器时,就可能会引发服务器宕机。要应对这种情况有两种方法,这个问题的根源在于Web服务器程序的Bug,因此修复Bug防止宕机就是其中一种方法。另一种方法就是在防火墙之外部署用来检查包的内容并阻止有害包的设备或软件。

5. 实际上,包过滤并不是防火墙专用的一种特殊机制,而应看作在路由器的包转发功能基础上附加的一种功能。只不过当判断规则比较复杂时,通过路由器的命令难以维护这些规则,而且对阻止的包进行记录对于路由器来说负担也比较大,因此才出现了专用的硬件和软件。如果规则不复杂,也不需要记录日志,那么用内置包过滤功能的普通路由器来充当防火墙也是可以的。

 

三、通过将请求平均分配给多台服务器来平衡负载

1. 服务器的访问量上升时,除了增加服务器线路带宽,还可以使用多台服务器来分担负载的方法。这种架构统称为分布式架构。

2. 通过DNS轮询分配访问(每次查询时DNS服务器都会按顺序返回不同的IP地址),但多台Web服务器中有一台出现了故障,普通的DNS服务器并不能确认Web服务器是否正常工作,因此Web服务器就访问不了了。还有通过CGI等方式动态生成网页的情况下,有些操作是要跨多个页面的,如果这期间访问的服务器发生了变化,这个操作就可能无法继续。

3. 使用负载均衡器分配访问,如何判断将请求转发给哪台Web服务器:如果操作没有跨多个页面,则可以根据Web服务器的负载状况来进行判断(可向Web服务器发送测试包,根据响应所需的时间来判断负载状况,或不去查询服务器的负载,而是根据事先设置的服务器性能指数,按比例来分配请求);另外可以在发送表单数据时在里面加上用来表示关联的信息,或者是对HTTP规格进行扩展,在HTTP头部字段中加上用来判断相关性的信息cookie等等来判断操作是否跨多个页面,如果是跨多个页面,则将一系列相关的请求发送到同一台Web服务器,对于不相关的请求则发送到负载较低的服务器。

 

四、利用缓存服务器分担负载

1. 除了使用多台功能相同的Web服务器分担负载之外,还可以将整个系统按功能分成不同的服务器来分担负载,如Web服务器、数据库服务器。缓存服务器就是一种按功能来分担负载的方法(是一台通过代理机制对数据进行缓存的服务器,具有对Web服务器访问进行中转的功能,当Web服务器更新了数据,那么缓存的数据就不能用,故缓存数据有一定时效,而且像CGI程序等产生的页面数据每次都不同,故这样就无法缓存数据)。如果一台缓存服务器对应多台Web服务器,需要根据请求消息的内容来判断应该转发给哪台Web服务器

缓存中没有数据的情况:

缓存中有数据的情况:

2. 最原始的代理——正向代理

缓存服务器使用的代理机制最早就是放在客户端一侧的,这是代理的原型,称为正向代理。正向代理刚刚出现的时候,其目的之一就是缓存,这个目的和服务器端的缓存服务器相同。不过,当时的正向代理还有另外一个目的,那就是用来实现防火墙,它会先接收来自客户端的请求消息,然后再转发到互联网中,这样就可以实现只允许通过必要的网络包了。代理在转发过程中可以查看请求的内容,所以可以根据内容判断是否允许访问。包过滤方式的防火墙只能根据IP地址和端口号进行判断。

3. 在没有设置正向代理的情况下,浏览器会根据网址栏中输入的http://...字符串判断Web服务器的域名,并向其发送请求消息;当设置了正向代理时,浏览器会忽略网址栏的内容,直接将所有请求发送给正向代理。因此请求消息的内容也会有一些不同:

4. 反向代理是为服务端转发请求,客户端将请求发送至反向代理服务器,反向代理服务器再将请求转发给真正的服务器以处理请求,响应时后端真正的服务器将处理结果发送给反向代理,再由反向代理构建响应并响应给客户端。上述的服务端缓存服务器就是使用这个机制。正向代理中 ,proxy和client同属一个lan,正向代理需要配置在client端;反向代理中,proxy和server同属一个lan,反向代理需要配置在proxy端。

5. 缓存服务器判断转发目标的方法还有一种,那就是查看请求消息的包头部。因为包的IP头部中包含接收方IP地址,只要知道了这个地址,就知道用户要访问哪台服务器了。这种方法称为透明代理(transparent proxy)。正向代理时,客户端明确指明请求要交给正向代理服务,也就是说要设置代理。透明代理对客户端是透明的,客户端不知道也不用设置透明代理,但是客户端发出去的请求都会被透明代理拦截。正向代理为了实现某些额外的需求,有可能会修改请求报文,但按照RFC文档的要求,透明代理不会修改请求报文。正向代理可以内网也可以外网,但透明代理都是内网。

五、内容分发服务

1. 缓存服务器的3种部署方式

2. 如上图(C)情况,当有很多缓存服务器时,作为一个Web服务器运营者,如果自己和这些运营商签约并部署缓存服务器,无论是费用还是精力都是吃不消的。为了解决这个问题,一些专门从事相关服务的厂商出现了,他们来部署缓存服务器,并租借给Web服务器运营者。这种服务称为内容分发服务。提供这种服务的厂商称为CDSP,他们会与主要的供应商签约,并部署很多台缓存服务器。另一方面,CDSP会与Web服务器运营者签约,使得CDSP的缓存服务器配合Web服务器工作。缓存服务器可以缓存多个网站的数据,因此CDSP的缓存服务器就可以提供给多个Web服务器的运营者共享。

3. 如何找到最近的缓存服务器

a. 像负载均衡一样用DNS服务器来分配访问

b. 通过重定向服务器分配访问目标(这种方法的缺点在于增加了HTTP消息的交互次数,相应的开销也比较大,但它也有优点。对DNS服务器进行扩展的方法是估算客户端DNS服务器到缓存服务器之间的距离,因此精度较差;相对而言,重定向的方法是根据客户端发送来的HTTP消息的发送方IP地址来估算距离的,因此精度较高),重定向服务器不仅可以返回带有Location字段的HTTP消息,也可以返回一个通过网络包往返时间估算到缓存服务器的距离的脚本,通过在客户端运行脚本来找到最优的缓存服务器。

4. 缓存的更新方法会影响性能:有一种方法是让Web服务器在原始数据发生更新时,立即通知缓存服务器,使得缓存服务器上的数据一直保持最新状态,这样就不需要每次确认原始数据是否有变化了,而且从第一次访问就可以发挥缓存的效果。内容分发服务采用的缓存服务器就具备这样的功能。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值