当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > Squid工作的原理

Unix/Linux
REDHAT企业版LINUX5.0安装过程图解教程
Linux系统下安装phpmyadmin方法
RedHat Enterprise Linux 5下配置Apache+Mysql+Php
Linux和Windows双系统Grub丢失恢复
Linux系统下touch命令的使用方法
linux下面建立GPRS无线MODEM拨号的方法
redhat linux AS4 下配置无线网卡
让Linux操作系统开机默认进入文本模式
Linux文件权限的设置方法与技巧
linux chown与chmod命令的区别
Linux关机命令详细说明
linux系统 加载u盘、光盘、软盘方法
Linux系统下防止 ARP 欺骗_绑定IP地址和MAC地址
Linux系统中Mysql的安装备份与密码恢复
Linux系统下添加新硬盘,分区,格式化相关步骤
Linux系统下编译安装支持NTFS的内核模块
调整Linux磁盘分区的大小的方法
正确关闭Linux计算机的命令和方法
查看Linux系统下Raid信息
Linux下单网卡绑定多IP与多网卡共用单IP 的方法

Unix/Linux 中的 Squid工作的原理


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 116 ::
收藏到网摘: n/a


  每一部 Squid 代理伺服器上有若颗硬碟,每颗硬碟又分割成多个 patition,每一个 partition 又可建立很多目录(例如:二阶层 64x64 个目录),目录下才放档案( Squid 把它叫 object)。
  
  1. Hash Table 和 Digest Table
  Squid 的工作太忙了,如果每一个用户端想要的资料,都经过硬碟的档案配置表去拿,速度较慢;所以 Squid 启动之後,会在 RAM 建立一个 Hash Table,记录硬碟中 object 配置的情形。Squid 又在 RAM 中建立一个 Digest Table(摘要表) ,其功能是和其他有合作关的 Squid (Sibling)互相交换 Digest Table,万一用户端想要的资料自己没有时,可以很快的知道哪一部 Squid Server 有资料(Squid 也可以透过 ICP 向其他 Squid 查询,但速度较慢)。但是 Digest Table 本身不小,既记忆体又频宽,如果 Server 的记忆体不够,对外频宽不够,反而比 ICP 查询更慢。
  
  2.Child、Parent 和 Sibling
  Squid Server 之间的第一种关是:Child 和 Parent。当 Child Squid Server 没有资料时,会直接向 Parent Squid Server 要资料,然後一直等,直到 Parent 给它资料为止。
  
  Squid Server 之间的第二种关是:Sibling 和 Sibling。当 Squid Server 没有资料时,会先向 Sibling 的 Squid Server 要资料,如果 Sibling 没资料,就跳过它直接向 Parent 要或上 internet 去拿。
  
  一般 Squid Server 运作的模式是:
  
  1. 当 Squid Server 没有资料时,会先向 Sibling 的 Squid Server 要资料,如果 Sibling 没资料,就跳过它直接向 Parent 要。

  2. 向 Parent 要资料,然後一直等,直到 Parent 给它资料为止(Parent 自己有的资料或上 internet 去拿)。
  3. 没有 Parent 时,就自己上 internet 去拿。
  4. 如果这三者都拿不到资料,才向用户端回报拿不到资料。
  
  一般而言,把网路上一层的 Squid Server 设成 Sibling 是不错的选择(例如:学校将市网和中山大学设成 Sibling),因为网路上一层的 Squid Server 服务对象较多,其硬体较强,离我们比较近,速度也比较快;万一要不到资料,我们还可以自己上 internet 去拿。那什麽时候设 Parent?当您的出口只有一个,或上一层 Squid Server 拿不到资料,自己也一定拿不到,只好将上一层 Squid Server 设为 Parent。 学校也可以将市网设为 Parent,因为学校对外的频宽只有 384K(ADSL上传),而且市网拿不到的资料,大概学校也拿不到了。