文件名称:
proxyServer squid / varnish / apache traffic server / ATS
开发工具:
文件大小: 213kb
下载次数: 0
上传时间: 2019-03-17
详细说明:NULL
博文链接:https://lindows.iteye.com/blog/247703如何工作
由部分组成:套
函数,个给定长度的位向量。选择位向
量的长度,和函数的数量,依赖于我们想增加多少到设冒中,以及我
们能容忍的多高的假命中率
中所有的数被配置过,其范围匹配位向量的长度。例如,假
如向量是位长,函数返回的值就在到之间。在里使用高质
量的函数相当重要,它保证输出等分在所有可能值上
函数里的“热
点”会增加假命中率。(仙子注:所谓“热点”是指结果过分频繁的分布在某些
值上。
要将某个输入
中,我们在每个函数里遍历它,并将结果作
为在位向量甲的
,并打开我们在该
上找到的任何位。假如该位已经
设置,我们继续保留其打开。还没有在
里关闭位的机制。
在本示例里,让我们看看某个
,它有个函数,并且位向量的
长度是。我们用空格和星号来表示位向量,以便于观察。你也许想到,空的
以所有的位关闭为开始,如图所示。
图:空的
现在我们将字符
增加到中去。为了做到这点,我们以
为参数
来运行每个函数,并采集输出
然后我们打开在向量里相应位置的位一一在这里就是位,,和,如图所
小
图:激活了位的
为了增加另个,例如,我们重复运算过程:
再次打开向量里相应的位,如图里的高亮度显示。
图:增加了第个的
注意位置的位已被打开一一在前面的步骤里,当我们增加
时已设置了
位现在有双重义务,存储
和
两者的信息。当增加更多的
时,它也会存储其他的信息。这种交迭让
如此紧凑一一任何
位同时编码多个
这种交迭也意味着你永不能从里取出,因为你
不能保证你所关闭的位没有携载其他的信息。假如我们试图执行反运算过
程来从里删除,就会不经意的关闭编码的个位。从
里剥离的唯一方法是重建
剔除无用。
检合是否某个已经存在于的过程,非常类似于增加新。我们在所有
的函数里遍历,然后检查是否在那些
上的位都是打开的。假如
任何一位关闭,我们知道该肯定不存在于中。假如所有位都打开,我
们知道该可能存在。
我说“可能”是因为存在种情况,该是个假命中。例如,假如我们用字符
来测试
看看会发生什么情况。我们运行遍历函数:
然后检查在那些
上的位,如图所示。
图
的假命中
所有在位置
和的位都是打开的,故会报告
是有效
然
并非有效
我们构建的仅包含
和
事实是
非常巧合的指向了已激活的位。这就找到了个假命中一一某
个看起来位于中,但实际不是
正如你想的一样,假命中率依赖于位向量的长度和存储在里的的数量。
位向量越宽阔,我们检査的所有位被打开的可能性越小,除非该确实存在
中。在两数的数量和假命中率之间的关系更敏感。假如使用的
函数太少,在之间的差别就很少;但假如使用函数太多,会过于
密集,增加了冲突的可能性。可以使用如下公式来计算任何的假命中率:
这里是假命中率,是函数的数量,是里的数量,是
的位长。
使用
时,我们先要有个意识,期待假命屮率多大;也应该有个粗
槛的想法,关于多少要增加到甲。我们需要一些方法来验证需要多大
的位向量,以保证假命中率不会超出我们的限制。下列方程式会从错误率和
数量求出向量长度
请注意另个自由变量:
函数的数量。可以用微积分来得出的最小值,
但有个偷懒的方法来做它:
为了给你直观的感觉,关于错误率和数量如何影响
的存储
表列出了一些在不同的容量错误率组合下的向量。
在里构建
为了构建个工作
我们需要套良好的函数。这些容易解决
女》
上有几个优秀的算法可用。对我们的目的来说,较好的选择
它是强度加密的,用实现速度很快。通过对不同值的
输出列表进行排序,我们能使用该模块来创建仁意数量的函数。如下是构
建唯
将数列表的子函数
为了能够使川这些函数,我们必须找到个方法来控制其范围
返回令人为难的过长位输出,这仅在向量长度为的次方时有用,
而这种情况实在罕见。我们结合使用位
和
来将输出削减到可用
大小。
如下子函数取某个
运行它遍历数列表,并返回个长度
)的位掩码:
让我们逐行分析上述代码:
我们以使用的操作来创建零位向量开始,它是
长
取个参数,个模型和个值。模型告诉将值解释为
指“重
复任意多需要的次数”,跟则表达式类似。实际上会补充位向量的长度为
的倍数,但我们将忽视这些多余位。
有个空的位向量在手中,我们准备开始运行遍历数
我们保存首个位输出,并丢弃剩下的。这点可让我们不必要求
支持
第行做实际的位
。模型甲的告诉
以网络字节顺序来解包
位整数。因为未在模型里提供任何量词,
仅解包个整数,然后终止。
假如你对位
过度狂热,你可以将分割成个位的片断,并对它
们一起执行运算,将所有信息保存在原始里:
但这样作可能杀伤力过度
现在我们有了来自函数的位整数输出的列表,下一步必须做的是,裁减
它们的大小,以使其位于(
)范围内。
现在我们已转换为位
列表,这正是我们所求的。
剩下唯一要做的事情是,使用来设置位,取个参数:向量自身,开始
位置,要设置的位数量。我们能象赋值给变量一样来分配值给
在设置了所有位后,我们以个位掩码来结束,位掩码和
长度一样。
我们可以使用这个掩码来增加到中:
或者我们使用它来检查是否已存在
注意这些是位逻辑运算符和
,而并非通用的逻辑和
运算符。将这两者混在一起,会导致数小时的有趣调试。第个示例将掩码和位
向量进行运算,打开任何未设置的位。第个小例将掩码和里相应的
位置进行比较一一假如掩码里所有的打开位也在里打开,我们知道已找到
一个匹配。
旦你克服了使用
和位逻辑运算符的难度,
实际非常简单
这里给出了
模块
的完整信息。
分布式社会网络中的
当前的社会网络机制的弊端之一是,它们要求参与者泄露其联系列表给中央服务
器,或公布它到公共
这种情况下都牺牲了大量的用户隐私。通过交
换
而不是暴露联系列表,用户能参与社会网终实践,而不用通知仝
世界他们的朋友是谁。编码了某人联系信息的
能用来检查它是否包
含了给定的用户名或地址,但不能强迫要求它展示用于构建它的完整
列表。甚至有可能将假命中率(虽然它听起来不像好特性),转换为有用工具。
假如我非常关注这些人,他们通过对
运行字典攻击,来试图对社会
网络进行反工程。我可以构建
它具备较高的假命中率(例如),然后
发送的多个拷贝给朋友,并变换用于构建每个的函数。我的朋
友收集到的越多,他们见到的假命中率越低。例如,在个情况下,
假命屮率是的次方,或
通过发送更多,还能进一步减少假命
中率
假如这些
中的任何个被中途截取,它会展示全部的假命中率。所以
我能隔离隐私风险,并且一定程度上能控制其他人能多清楚的了解我的网络。我
的朋友能较高程度的确认是否某个人位于联系列表里,但那些仅截取了个或
个的人,几乎不会获取到什么。如下是个函数,它对组嘈杂的
检查某个
假如你和你的朋友同意使用相同的长度和函数设置,你也能使用位掩
码对比来佔计在你们的社会网络之间的交迭程度。在个
里的共享
位数量会给出个可用的距离度量。
另外,你能使用运算,结合个有相同长度和函数的
来创
建个复合
例如,假如你参与某个小型邮件列表,并希望基于组里每个
人的地址木米创建白名单,你可以为每个参与者独立的创建个
然后将
起进行运算,将结果输入
主列表。组里成员不会
了解到其他成员的联系信息,并且仍能展示正确的行为。
肯定还有其他针对社会网终和分布式应用的
妙用。如下参考列出
些有用资源。
参考
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.