Artifact Content
Not logged in

Artifact f69afad209a05039b0d96700ef218c40896b4213:

Attachment "2002_xx_xx_GHT_A_Geographic_Hash_Table_for_DataCentric_Storage_by_Sylvia_Ratnasamy_and_Brad_Karp_and_Li_Yin_and_Fang_Yu_and_Deborah_Estrin_and_Ramesh_Govindan_and_Scott_Shenker.ps" to wiki page [Attic 001 for Holding Various Files] added by martin_vahi on 2018-01-20 12:46:44.
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
%%Title: dht.dvi
%%Pages: 10
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%DocumentFonts: Helvetica-Bold Helvetica Times-Bold Times-Roman
%%+ Times-Italic Courier Symbol Times-BoldItalic
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips dht.dvi
%DVIPSParameters: dpi=600, compressed
%DVIPSSource:  TeX output 2002.08.09:1242
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
(LaserWriter 16/600)]{A length product length le{A length product exch 0
exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end

%%EndProcSet
%%BeginProcSet: psfrag.pro
%%
%% This is file `psfrag.pro',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% psfrag.dtx  (with options: `filepro')
%% 
%% Copyright (c) 1996 Craig Barratt, Michael C. Grant, and David Carlisle.
%% All rights reserved.
%% 
%% This file is part of the PSfrag package.
%% 
userdict begin
/PSfragLib 90 dict def
/PSfragDict 6 dict def
/PSfrag { PSfragLib begin load exec end } bind def
end
PSfragLib begin
/RO /readonly      load def
/CP /currentpoint  load def
/CM /currentmatrix load def
/B { bind RO def } bind def
/X { exch def } B
/MD { { X } forall } B
/OE { end exec PSfragLib begin } B
/S false def
/tstr 8 string def
/islev2 { languagelevel } stopped { false } { 2 ge } ifelse def
[ /sM /tM /srcM /dstM /dM /idM /srcFM /dstFM ] { matrix def } forall
sM currentmatrix RO pop
dM defaultmatrix RO idM invertmatrix RO pop
srcFM identmatrix pop
/Hide { gsave { CP } stopped not newpath clip { moveto } if } B
/Unhide { { CP } stopped not grestore { moveto } if } B
/setrepl islev2 {{ /glob currentglobal def true setglobal array astore
                   globaldict exch /PSfrags exch put glob setglobal }}
                {{ array astore /PSfrags X }} ifelse B
/getrepl islev2 {{ globaldict /PSfrags get aload length }}
                {{ PSfrags aload length }} ifelse B
/convert {
   /src X src length string
   /c 0 def src length {
      dup c src c get dup 32 lt { pop 32 } if put /c c 1 add def
   } repeat
} B
/Begin {
    /saver save def
    srcFM exch 3 exch put
    0 ne /debugMode X 0 setrepl
    dup /S exch dict def { S 3 1 roll exch convert exch put } repeat
    srcM CM dup invertmatrix pop
    mark { currentdict { end } stopped { pop exit } if } loop
    PSfragDict counttomark { begin } repeat pop
} B
/End {
    mark { currentdict end dup PSfragDict eq { pop exit } if } loop
    counttomark { begin } repeat pop
    getrepl saver restore
    7 idiv dup /S exch dict def {
        6 array astore /mtrx X tstr cvs /K X
        S K [ S K known { S K get aload pop } if mtrx ] put
    } repeat
} B
/Place {
    tstr cvs /K X
    S K known {
        bind /proc X tM CM pop
        CP /cY X /cX X
        0 0 transform idtransform neg /aY X neg /aX X
        S K get dup length /maxiter X
        /iter 1 def {
            iter maxiter ne { /saver save def } if
            tM setmatrix aX aY translate
            [ exch aload pop idtransform ] concat
            cX neg cY neg translate cX cY moveto
            /proc load OE
            iter maxiter ne { saver restore /iter iter 1 add def } if
        } forall
        /noXY { CP /cY X /cX X } stopped def
        tM setmatrix noXY { newpath } { cX cY moveto } ifelse
    } {
        Hide OE Unhide
    } ifelse
} B
/normalize {
    2 index dup mul 2 index dup mul add sqrt div
    dup 4 -1 roll exch mul 3 1 roll mul
} B
/replace {
    aload pop MD
    CP /bY X /lX X gsave sM setmatrix
    str stringwidth abs exch abs add dup 0 eq
        { pop } { 360 exch div dup scale } ifelse
    lX neg bY neg translate newpath lX bY moveto
    str { /ch X ( ) dup 0 ch put false charpath ch Kproc } forall
    flattenpath pathbbox [ /uY /uX /lY /lX ] MD
    CP grestore moveto
    currentfont /FontMatrix get dstFM copy dup
    0 get 0 lt { uX lX /uX X /lX X } if
    3 get 0 lt { uY lY /uY X /lY X } if
    /cX uX lX add 0.5 mul def
    /cY uY lY add 0.5 mul def
    debugMode { gsave 0 setgray 1 setlinewidth
        lX lY moveto lX uY lineto uX uY lineto uX lY lineto closepath
        lX bY moveto uX bY lineto lX cY moveto uX cY lineto
        cX lY moveto cX uY lineto stroke
    grestore } if
    dstFM dup invertmatrix dstM CM srcM
    2 { dstM concatmatrix } repeat pop
    getrepl /temp X
        S str convert get {
            aload pop [ /rot /scl /loc /K ] MD
            /aX cX def /aY cY def
            loc {
                dup 66  eq { /aY bY def } { % B
                dup 98  eq { /aY lY def } { % b
                dup 108 eq { /aX lX def } { % l
                dup 114 eq { /aX uX def } { % r
                dup 116 eq { /aY uY def }   % t
                if } ifelse } ifelse } ifelse } ifelse pop
            } forall
            K srcFM rot tM rotate dstM
            2 { tM concatmatrix } repeat aload pop pop pop
            2 { scl normalize 4 2 roll } repeat
            aX aY transform
            /temp temp 7 add def
        } forall
    temp setrepl
} B
/Rif {
    S 3 index convert known { pop replace } { exch pop OE } ifelse
} B
/XA { bind [ /Kproc /str } B /XC { ] 2 array astore def } B
/xs   { pop } XA XC
/xks  { /kern load OE } XA /kern XC
/xas  { pop ax ay rmoveto } XA /ay /ax XC
/xws  { c eq { cx cy rmoveto } if } XA /c /cy /cx XC
/xaws { ax ay rmoveto c eq { cx cy rmoveto } if }
    XA /ay /ax /c /cy /cx XC
/raws { xaws { awidthshow } Rif } B
/rws  { xws { widthshow } Rif } B
/rks  { xks { kshow } Rif } B
/ras  { xas { ashow } Rif } B
/rs   { xs { show } Rif } B
/rrs { getrepl dup 2 add -1 roll //restore exec setrepl } B
PSfragDict begin
islev2 not { /restore { /rrs PSfrag } B } if
/show       { /rs   PSfrag } B
/kshow      { /rks  PSfrag } B
/ashow      { /ras  PSfrag } B
/widthshow  { /rws  PSfrag } B
/awidthshow { /raws PSfrag } B
end PSfragDict RO pop
end

%%EndProcSet
%%BeginProcSet: 8r.enc
% @@psencodingfile@{
%   author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry",
%   version = "0.6",
%   date = "1 July 1998",
%   filename = "8r.enc",
%   email = "tex-fonts@@tug.org",
%   docstring = "Encoding for TrueType or Type 1 fonts
%                to be used with TeX."
% @}
% 
% Idea is to have all the characters normally included in Type 1 fonts
% available for typesetting. This is effectively the characters in Adobe
% Standard Encoding + ISO Latin 1 + extra characters from Lucida.
% 
% Character code assignments were made as follows:
% 
% (1) the Windows ANSI characters are almost all in their Windows ANSI
% positions, because some Windows users cannot easily reencode the
% fonts, and it makes no difference on other systems. The only Windows
% ANSI characters not available are those that make no sense for
% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen
% (173). quotesingle and grave are moved just because it's such an
% irritation not having them in TeX positions.
% 
% (2) Remaining characters are assigned arbitrarily to the lower part
% of the range, avoiding 0, 10 and 13 in case we meet dumb software.
% 
% (3) Y&Y Lucida Bright includes some extra text characters; in the
% hopes that other PostScript fonts, perhaps created for public
% consumption, will include them, they are included starting at 0x12.
% 
% (4) Remaining positions left undefined are for use in (hopefully)
% upward-compatible revisions, if someday more characters are generally
% available.
% 
% (5) hyphen appears twice for compatibility with both 
% ASCII and Windows.
% 
/TeXBase1Encoding [
% 0x00 (encoded characters from Adobe Standard not in Windows 3.1)
  /.notdef /dotaccent /fi /fl
  /fraction /hungarumlaut /Lslash /lslash
  /ogonek /ring /.notdef
  /breve /minus /.notdef 
% These are the only two remaining unencoded characters, so may as
% well include them.
  /Zcaron /zcaron 
% 0x10
 /caron /dotlessi 
% (unusual TeX characters available in, e.g., Lucida Bright)
 /dotlessj /ff /ffi /ffl 
 /.notdef /.notdef /.notdef /.notdef
 /.notdef /.notdef /.notdef /.notdef
 % very contentious; it's so painful not having quoteleft and quoteright
 % at 96 and 145 that we move the things normally found there to here.
 /grave /quotesingle 
% 0x20 (ASCII begins)
 /space /exclam /quotedbl /numbersign
 /dollar /percent /ampersand /quoteright
 /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
% 0x30
 /zero /one /two /three /four /five /six /seven
 /eight /nine /colon /semicolon /less /equal /greater /question
% 0x40
 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O
% 0x50
 /P /Q /R /S /T /U /V /W
 /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
% 0x60
 /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o
% 0x70
 /p /q /r /s /t /u /v /w
 /x /y /z /braceleft /bar /braceright /asciitilde
 /.notdef % rubout; ASCII ends
% 0x80
 /.notdef /.notdef /quotesinglbase /florin
 /quotedblbase /ellipsis /dagger /daggerdbl
 /circumflex /perthousand /Scaron /guilsinglleft
 /OE /.notdef /.notdef /.notdef
% 0x90
 /.notdef /.notdef /.notdef /quotedblleft
 /quotedblright /bullet /endash /emdash
 /tilde /trademark /scaron /guilsinglright
 /oe /.notdef /.notdef /Ydieresis
% 0xA0
 /.notdef % nobreakspace
 /exclamdown /cent /sterling
 /currency /yen /brokenbar /section
 /dieresis /copyright /ordfeminine /guillemotleft
 /logicalnot
 /hyphen % Y&Y (also at 45); Windows' softhyphen
 /registered
 /macron
% 0xD0
 /degree /plusminus /twosuperior /threesuperior
 /acute /mu /paragraph /periodcentered
 /cedilla /onesuperior /ordmasculine /guillemotright
 /onequarter /onehalf /threequarters /questiondown
% 0xC0
 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
 /Egrave /Eacute /Ecircumflex /Edieresis
 /Igrave /Iacute /Icircumflex /Idieresis
% 0xD0
 /Eth /Ntilde /Ograve /Oacute
 /Ocircumflex /Otilde /Odieresis /multiply
 /Oslash /Ugrave /Uacute /Ucircumflex
 /Udieresis /Yacute /Thorn /germandbls
% 0xE0
 /agrave /aacute /acircumflex /atilde
 /adieresis /aring /ae /ccedilla
 /egrave /eacute /ecircumflex /edieresis
 /igrave /iacute /icircumflex /idieresis
% 0xF0
 /eth /ntilde /ograve /oacute
 /ocircumflex /otilde /odieresis /divide
 /oslash /ugrave /uacute /ucircumflex
 /udieresis /yacute /thorn /ydieresis
] def

%%EndProcSet
%%BeginProcSet: texps.pro
%!
TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics
exch def dict begin Encoding{exch dup type/integertype ne{pop pop 1 sub
dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}
ifelse}forall Metrics/Metrics currentdict end def[2 index currentdict
end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{
dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1
roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def
dup[exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}
if}forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}
def end

%%EndProcSet
%%BeginProcSet: special.pro
%!
TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{
/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
{userdict/md get type/dicttype eq{userdict begin md length 10 add md
maxlength ge{/md md dup length 20 add dict copy def}if end md begin
/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState
save N userdict maxlength dict begin/magscale true def normalscale
currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts
/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x
psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx
psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub
TR/showpage{}N/erasepage{}N/copypage{}N/p 3 def @MacSetUp}N/doclip{
psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
moveto}N/endTexFig{end psf$SavedState restore}N/@beginspecial{SDict
begin/SpecialSave save N gsave normalscale currentpoint TR
@SpecialDefaults count/ocount X/dcount countdictstack N}N/@setspecial{
CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
lineto closepath clip}if/showpage{}N/erasepage{}N/copypage{}N newpath}N
/@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{end}
repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N
/@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX
currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY
moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X
/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0
1 startangle endangle arc savematrix setmatrix}N end

%%EndProcSet
%%BeginProcSet: color.pro
%!
TeXDict begin/setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop
setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll
}repeat setrgbcolor pop}ifelse}B}ifelse/TeXcolorcmyk{setcmykcolor}def
/TeXcolorrgb{setrgbcolor}def/TeXcolorgrey{setgray}def/TeXcolorgray{
setgray}def/TeXcolorhsb{sethsbcolor}def/currentcmykcolor where{pop}{
/currentcmykcolor{currentrgbcolor 10}B}ifelse/DC{exch dup userdict exch
known{pop pop}{X}ifelse}B/GreenYellow{0.15 0 0.69 0 setcmykcolor}DC
/Yellow{0 0 1 0 setcmykcolor}DC/Goldenrod{0 0.10 0.84 0 setcmykcolor}DC
/Dandelion{0 0.29 0.84 0 setcmykcolor}DC/Apricot{0 0.32 0.52 0
setcmykcolor}DC/Peach{0 0.50 0.70 0 setcmykcolor}DC/Melon{0 0.46 0.50 0
setcmykcolor}DC/YellowOrange{0 0.42 1 0 setcmykcolor}DC/Orange{0 0.61
0.87 0 setcmykcolor}DC/BurntOrange{0 0.51 1 0 setcmykcolor}DC
/Bittersweet{0 0.75 1 0.24 setcmykcolor}DC/RedOrange{0 0.77 0.87 0
setcmykcolor}DC/Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC/Maroon{0 0.87
0.68 0.32 setcmykcolor}DC/BrickRed{0 0.89 0.94 0.28 setcmykcolor}DC/Red{
0 1 1 0 setcmykcolor}DC/OrangeRed{0 1 0.50 0 setcmykcolor}DC/RubineRed{
0 1 0.13 0 setcmykcolor}DC/WildStrawberry{0 0.96 0.39 0 setcmykcolor}DC
/Salmon{0 0.53 0.38 0 setcmykcolor}DC/CarnationPink{0 0.63 0 0
setcmykcolor}DC/Magenta{0 1 0 0 setcmykcolor}DC/VioletRed{0 0.81 0 0
setcmykcolor}DC/Rhodamine{0 0.82 0 0 setcmykcolor}DC/Mulberry{0.34 0.90
0 0.02 setcmykcolor}DC/RedViolet{0.07 0.90 0 0.34 setcmykcolor}DC
/Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC/Lavender{0 0.48 0 0
setcmykcolor}DC/Thistle{0.12 0.59 0 0 setcmykcolor}DC/Orchid{0.32 0.64 0
0 setcmykcolor}DC/DarkOrchid{0.40 0.80 0.20 0 setcmykcolor}DC/Purple{
0.45 0.86 0 0 setcmykcolor}DC/Plum{0.50 1 0 0 setcmykcolor}DC/Violet{
0.79 0.88 0 0 setcmykcolor}DC/RoyalPurple{0.75 0.90 0 0 setcmykcolor}DC
/BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC/Periwinkle{0.57 0.55 0 0
setcmykcolor}DC/CadetBlue{0.62 0.57 0.23 0 setcmykcolor}DC
/CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC/MidnightBlue{0.98 0.13 0
0.43 setcmykcolor}DC/NavyBlue{0.94 0.54 0 0 setcmykcolor}DC/RoyalBlue{1
0.50 0 0 setcmykcolor}DC/Blue{1 1 0 0 setcmykcolor}DC/Cerulean{0.94 0.11
0 0 setcmykcolor}DC/Cyan{1 0 0 0 setcmykcolor}DC/ProcessBlue{0.96 0 0 0
setcmykcolor}DC/SkyBlue{0.62 0 0.12 0 setcmykcolor}DC/Turquoise{0.85 0
0.20 0 setcmykcolor}DC/TealBlue{0.86 0 0.34 0.02 setcmykcolor}DC
/Aquamarine{0.82 0 0.30 0 setcmykcolor}DC/BlueGreen{0.85 0 0.33 0
setcmykcolor}DC/Emerald{1 0 0.50 0 setcmykcolor}DC/JungleGreen{0.99 0
0.52 0 setcmykcolor}DC/SeaGreen{0.69 0 0.50 0 setcmykcolor}DC/Green{1 0
1 0 setcmykcolor}DC/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC
/PineGreen{0.92 0 0.59 0.25 setcmykcolor}DC/LimeGreen{0.50 0 1 0
setcmykcolor}DC/YellowGreen{0.44 0 0.74 0 setcmykcolor}DC/SpringGreen{
0.26 0 0.76 0 setcmykcolor}DC/OliveGreen{0.64 0 0.95 0.40 setcmykcolor}
DC/RawSienna{0 0.72 1 0.45 setcmykcolor}DC/Sepia{0 0.83 1 0.70
setcmykcolor}DC/Brown{0 0.81 1 0.60 setcmykcolor}DC/Tan{0.14 0.42 0.56 0
setcmykcolor}DC/Gray{0 0 0 0.50 setcmykcolor}DC/Black{0 0 0 1
setcmykcolor}DC/White{0 0 0 0 setcmykcolor}DC end

%%EndProcSet
TeXDict begin 40258431 52099146 1000 600 600 (dht.dvi)
@start /Fa 136[25 1[25 25 25 25 1[25 25 25 25 25 2[25
25 2[25 25 25 1[25 38[25 10[25 25 46[{TeXBase1Encoding ReEncodeFont}19
41.511 /Courier rf /Fb 75[14 29[21 27[18 21 21 30 21
21 12 16 14 21 21 21 21 32 12 21 12 12 21 21 14 18 21
18 21 18 3[14 1[14 25 30 1[39 30 30 25 23 28 1[23 30
30 37 25 30 16 14 30 30 23 25 30 28 28 30 6[12 21 21
21 21 21 21 21 21 21 21 12 10 14 10 2[14 14 37[23 2[{
TeXBase1Encoding ReEncodeFont}72 41.511 /Times-Roman
rf /Fc 140[29 4[42 59[37 4[25 45[{TeXBase1Encoding ReEncodeFont}4
74.7198 /Times-BoldItalic rf /Fd 134[18 18 28 18 21 12
16 16 21 21 21 21 30 12 18 1[12 21 21 12 18 21 18 21
21 9[35 3[21 25 1[25 30 28 35 3[14 30 30 25 25 30 28
1[25 7[21 21 5[21 21 21 12 10 4[14 14 14 39[{
TeXBase1Encoding ReEncodeFont}49 41.511 /Times-Italic
rf /Ff 139[16 2[29 1[29 2[16 2[16 29 3[29 2[29 15[42
12[42 68[{TeXBase1Encoding ReEncodeFont}10 58.1154 /Times-Italic
rf
%DVIPSBitmapFont: Fg cmr10 7 1
/Fg 1 44 df<1438B2B712FCA3C70038C7FCB226277DA12D>43 D
E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fi cmsy10 9 4
/Fi 4 113 df<B812F8A32D037A933A>0 D<EB1F80EBFFF0000313FC487F487F48148048
14C0A24814E0A3B612F0A66C14E0A36C14C0A26C14806C14006C5B6C5BC613F0EB1F801C
1C7CA025>15 D<00E0EB01C000F814F0007EEB00FC001F143ED807C0EB0F80D803F0EB07
E0D800FCEB01F8013EEB007CD90F80131FD907E0EB0FC0D901F0EB03E0D9007CEB00F802
3F147EDA0F80131FDA03E0EB07C0DA01F8EB03F0DA007EEB00FC031F143EDB07C0EB0F80
DB03F0EB07E0DB00F8EB01F0043EEB007C706C133FDC07E0EB0FC0040114030407140FDC
1F80EB3F00043EC7127C04F8EB01F0DB03F0EB07E0DB07C0EB0F80031FC7003EC7FC037E
14FCDA01F8EB03F0DA03E0EB07C0DA0F80011FC8FC023FC7127E027C14F8D901F0EB03E0
D907E0EB0FC0D90F8049C9FC013EC7127C01FC495AD803F0EB07E0D807C0EB0F80001FC7
003ECAFC007E14FC00F8EB01F000E014C042317CAA4B>29 D<19C01801A2F00380A2F007
00A2180EA260A260A260A260A24D5AA24D5AA34DC7FCA2170EA25FA25FA25FA25FA24C5A
A24C5A13E0120100034BC8FCEA0FF0001F150EEA31F800615DEAC0FC00005D137E5EA26D
5CA26D6C485AA26D6C485AA26D6C48C9FCA2EB03F0150EA26D6C5AA26D6C5AA2EC7E70A2
6E5AA26E5AA25D140F92CAFC80A23A4B7B823E>112 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fj cmr10 9 6
/Fj 6 94 df<EB0180EB030013065B131C5B5B13F05B12015B1203485AA290C7FC5AA212
1EA3123EA2123CA2127CA4127812F8B11278127CA4123CA2123EA2121EA37EA27E7FA26C
7E12017F12007F13707F7F130C7F7FEB0180114B79B71D>40 D<12C012607E7E121C7E7E
7F12037F12017F6C7EA213701378A27FA3133EA2131EA2131FA47F1480B114005BA4131E
A2133EA2133CA35BA2137013F0A2485A5B12035B120790C7FC120E5A12185A5A5A114B7C
B71D>I<EC01C0B3A6B91280A3C7D801C0C8FCB3A631337CAB3A>43
D<B91280A27ECCFCAD007FB81280B9FCA231137C9B3A>61 D<EAFFE0A3EAE000B3B3B3AF
EAFFE0A30B4B78B715>91 D<EAFFE0A31200B3B3B3AF12FFA30B4B7FB715>93
D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fk cmmi10 9 3
/Fk 3 63 df<123C127EB4FCA21380A2127F123D1201A412031300A25A1206120E120C5A
12385A122009177A8715>59 D<15301570A215E0A3EC01C0A3EC0380A3EC0700A2140EA3
5CA35CA35CA35CA3495AA3495AA349C7FCA2130EA35BA35BA35BA35BA3485AA3485AA348
C8FCA3120EA25AA35AA35AA35AA25A1C4B7CB725>61 D<12C012F8127EEA1F80EA07E0EA
01F8EA007EEB1F80EB07E0EB01F8EB007EEC1F80EC07E0EC01F8EC007EED1F80ED07E0ED
01F8ED007EEE1F80EE07E0EE01F8EE0078EE01F8EE07E0EE1F80EE7E00ED01F8ED07E0ED
1F80037EC7FCEC01F8EC07E0EC1F80027EC8FCEB01F8EB07E0EB1F80017EC9FCEA01F8EA
07E0EA1F80007ECAFC12F812E02D2D7AA83A>I E
%EndDVIPSBitmapFont
/Fm 199[29 29 29 29 29 29 29 29 49[{TeXBase1Encoding ReEncodeFont}8
58.1154 /Times-Roman rf /Fn 134[41 41 1[41 46 25 36 36
1[46 46 46 66 25 41 1[25 46 46 1[41 46 41 46 46 10[56
1[51 46 1[66 1[66 61 76 6[56 56 66 61 1[56 6[30 4[46
46 46 46 46 2[23 1[23 8[46 35[{TeXBase1Encoding ReEncodeFont}42
91.3242 /Times-Italic rf /Fo 138[45 45 3[45 8[45 1[45
101[{TeXBase1Encoding ReEncodeFont}5 74.7198 /Courier
rf /Fp 133[29 33 33 50 33 37 21 29 29 37 37 37 37 54
21 33 21 21 37 37 21 33 37 33 37 37 12[42 2[54 1[54 1[62
42 3[54 54 2[54 1[46 46 14[37 3[19 25 19 2[25 25 1[58
35[37 2[{TeXBase1Encoding ReEncodeFont}44 74.7198 /Times-Italic
rf /Fq 168[55 3[33 4[44 12[41 14[33 1[33 3[17 4[22 39[{
TeXBase1Encoding ReEncodeFont}8 66.4176 /Times-Italic
rf /Fr 82[22 51[33 1[48 33 33 18 26 22 33 33 33 33 52
18 33 1[18 33 33 22 29 33 29 33 29 11[48 41 37 2[37 2[59
5[48 3[44 1[48 7[33 33 2[33 1[33 33 33 33 18 17 1[17
41[37 2[{TeXBase1Encoding ReEncodeFont}43 66.4176 /Times-Roman
rf /Fs 133[33 37 37 54 37 42 25 29 33 42 42 37 42 62
21 42 25 21 42 37 25 33 42 33 42 37 10[54 1[50 42 54
1[46 1[54 1[50 58 2[58 58 46 50 54 54 8[25 37 37 37 37
37 37 37 37 37 37 21 19 25 19 2[25 25 37[42 2[{
TeXBase1Encoding ReEncodeFont}58 74.7198 /Times-Bold
rf /Ft 104[75 37 1[33 33 24[33 37 37 54 37 37 21 29 25
37 37 37 37 58 21 37 21 21 37 37 25 33 37 33 37 33 3[25
1[25 1[54 1[71 1[54 46 42 50 54 42 54 54 66 46 54 1[25
54 54 42 46 54 50 50 54 5[21 21 37 37 37 37 37 37 37
37 37 37 21 19 25 19 42 1[25 25 25 1[62 37 37 1[25 29[42
42 2[{TeXBase1Encoding ReEncodeFont}80 74.7198 /Times-Roman
rf /Fu 82[33 51[50 1[72 50 55 33 39 44 1[55 50 55 83
28 55 1[28 55 50 33 44 55 44 55 50 8[72 100 1[72 66 55
72 1[61 78 72 94 66 78 1[39 78 78 61 66 72 72 66 72 6[33
1[50 50 50 50 50 50 50 50 2[25 1[25 44[{TeXBase1Encoding ReEncodeFont}
55 99.6264 /Times-Bold rf
%DVIPSBitmapFont: Fv cmsy9 9 2
/Fv 2 104 df<EC07E0143FECFE00EB01F8EB03E0495A130F495AB3A649C7FCA2137E5B
EA03F8EA7FE048C8FCEA7FE0EA03F8C67E137E7FA26D7EB3A66D7E13076D7EEB01F8EB00
FEEC3FE014071B4B7BB726>102 D<127CEAFFC0EA07F0EA01F8EA007C7F133F6D7EB3A6
6D7EA26D7E6D7E6D7E9038007FC0EC1FE0EC7FC0903801F800495A495A495AA2495AB3A6
49C7FC133E5B485AEA07F0EAFFC0007CC8FC1B4B7BB726>I E
%EndDVIPSBitmapFont
/Fw 134[42 6[28 1[46 46 1[69 18 42 1[18 3[46 1[42 13[60
1[55 60 5[46 2[23 3[55 1[60 55 55 7[46 46 46 1[46 46
3[46 23 23 1[23 44[{TeXBase1Encoding ReEncodeFont}28
83.022 /Helvetica rf /Fx 134[50 2[50 55 28 50 33 1[55
55 55 83 22 50 1[22 55 55 28 55 55 50 55 55 7[66 5[66
72 5[55 66 3[78 61 66 72 1[66 1[101 17[28 1[28 44[{
TeXBase1Encoding ReEncodeFont}34 99.6264 /Helvetica rf
/Fy 82[50 56[50 83 58 1[91 91 91 1[42 2[42 91 91 50 83
1[83 91 83 12[91 100 10[108 116 2[108 108 1[108 6[50
58[{TeXBase1Encoding ReEncodeFont}24 149.44 /Helvetica-Bold
rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
TeXDict begin

%%EndSetup
%%Page: 1 1
1 0 bop Black Black Black Black Black -45 107 a Fy(GHT)-6
b(:)41 b(A)h(Geographic)h(Hash)f(T)-12 b(ab)o(le)41 b(f)m(or)h
(Data\255Centric)f(Stora)o(g)q(e)265 295 y Fx(Sylvia)29
b(Ratnasam)o(y)f(and)g(Br)o(ad)i(Kar)s(p)437 382 y Fw(ICIR/ICSI,)23
b(Ber)q(k)n(ele)n(y)-8 b(,)24 b(CA)g(94704)267 514 y
Fv(f)p Fx(sylviar)-5 b(,bkar)s(p)p Fv(g)p Fx(@icsi.ber)q(k)n(ele)n(y)
-10 b(.edu)2467 295 y(Y)n(in)29 b(Li)f(and)h(F)-5 b(ang)29
b(Y)-11 b(u)2211 382 y Fw(Ber)q(k)n(ele)n(y)24 b(EECS)n(,)g(Ber)q(k)n
(ele)n(y)-8 b(,)24 b(CA)f(94704)2230 514 y Fv(f)p Fx(yinli,fyu)p
Fv(g)p Fx(@eecs)o(.ber)q(k)n(ele)n(y)-10 b(.edu)p Black
Black 276 663 a(Debor)o(ah)30 b(Estr)q(in)9 750 y Fw(UCLA)21
b(Comp)m(.)h(Sci.,)f(LA,)h(CA)f(90095)157 882 y Fx(destr)q(in@cs)o
(.ucla.edu)p Black Black 1513 663 a(Ramesh)28 b(Go)o(vindan)1342
750 y Fw(USC)23 b(Comp)m(.)h(Sci.,)g(LA,)f(CA)h(90089)1534
882 y Fx(r)o(amesh@usc.edu)p Black Black 2928 663 a(Scott)k(Shenk)n(er)
2677 750 y Fw(ICIR/ICSI,)c(Ber)q(k)n(ele)n(y)-8 b(,)24
b(CA)f(94704)2648 882 y Fx(shenk)n(er@icsi.ber)q(k)n(ele)n(y)-10
b(.edu)p Black -152 1095 a Fu(ABSTRA)-5 b(CT)-152 1216
y Ft(Making)19 b(ef)n(fecti)n(v)o(e)e(use)h(of)f(the)h(v)n(ast)f
(amounts)h(of)g(data)f(gathered)h(by)g(lar)o(ge-)-152
1303 y(scale)31 b(sensor)f(netw)o(orks)h(will)e(require)i(scalable,)i
(self-or)o(ganizing,)g(and)-152 1390 y(ener)o(gy-ef)n(\002cient)22
b(data)f(dissemination)h(algorithms.)29 b(Pre)n(vious)22
b(w)o(ork)f(has)-152 1477 y(identi\002ed)31 b(data-centric)h(routing)f
(as)g(one)h(such)g(method.)60 b(In)31 b(an)g(asso-)-152
1564 y(ciated)i(position)g(paper)g([23],)i(we)e(ar)o(gue)f(that)h(a)f
(companion)i(method,)-152 1652 y(data-centric)20 b(storage)h(\(DCS\),)d
(is)h(also)h(a)g(useful)g(approach.)27 b(Under)20 b(DCS,)-152
1739 y(sensed)f(data)f(are)f(stored)h(at)g(a)f(node)i(determined)g(by)f
(the)g(name)g(associated)-152 1826 y(with)h(the)g(sensed)h(data.)-77
1913 y(In)c(this)f(paper)m(,)i(we)f(describe)g(GHT)-6
b(,)16 b(a)f(Geographic)i(Hash)g(T)-6 b(able)15 b(system)-152
2000 y(for)22 b(DCS)f(on)h(sensornets.)33 b(GHT)21 b(hashes)h(k)o(e)o
(ys)h(into)f(geographic)h(coordi-)-152 2088 y(nates,)18
b(and)g(stores)g(a)f(k)o(e)o(y-v)n(alue)i(pair)f(at)f(the)g(sensor)h
(node)h(geographically)-152 2175 y(nearest)27 b(the)e(hash)i(of)f(its)f
(k)o(e)o(y)-5 b(.)45 b(The)25 b(system)i(replicates)f(stored)g(data)g
(lo-)-152 2262 y(cally)k(to)g(ensure)g(persistence)h(when)f(nodes)h(f)o
(ail.)55 b(It)29 b(uses)h(an)g(ef)n(\002cient)-152 2349
y(consistenc)o(y)19 b(protocol)g(to)f(ensure)g(that)g(k)o(e)o(y-v)n
(alue)h(pairs)f(are)g(stored)g(at)g(the)-152 2436 y(appropriate)g
(nodes)g(after)e(topological)h(changes.)24 b(And)17 b(it)f(distrib)o
(utes)g(load)-152 2523 y(throughout)22 b(the)e(netw)o(ork)h(using)f(a)g
(geographic)i(hierarchy)-5 b(.)26 b(W)-6 b(e)20 b(e)n(v)n(aluate)-152
2611 y(the)15 b(performance)i(of)e(GHT)f(as)h(a)g(DCS)g(system)g(in)g
(simulation)g(against)h(tw)o(o)-152 2698 y(other)i(dissemination)h
(approaches.)24 b(Our)18 b(results)f(demonstrate)i(that)e(GHT)-152
2785 y(is)22 b(the)g(preferable)h(approach)h(for)e(the)g(application)h
(w)o(orkloads)h(predicted)-152 2872 y(in)g([23],)h(of)n(fers)g(high)f
(data)g(a)o(v)n(ailability)-5 b(,)25 b(and)g(scales)f(to)g(lar)o(ge)g
(sensornet)-152 2959 y(deplo)o(yments,)d(e)n(v)o(en)f(when)f(nodes)h(f)
o(ail)f(or)g(are)f(mobile.)-152 3114 y Fs(Categories)i(and)e(Subject)g
(Descriptors:)-13 3201 y Ft(H.3.4)h([)p Fs(Systems)g(and)f(Softwar)o(e)
p Ft(]:)23 b(Distrib)o(uted)18 b(Systems)-152 3288 y
Fs(General)h(T)-7 b(erms:)-13 3375 y Ft(Algorithms,)19
b(Design,)g(Performance)-152 3569 y Fu(1.)100 b(INTR)m(ODUCTION)-77
3677 y Ft(A)16 b(sensornet)h(is)e(a)h(distrib)o(uted)g(sensing)h(netw)o
(ork)g(comprised)g(of)f(a)g(lar)o(ge)-152 3764 y(number)27
b(of)f(small)g(de)n(vices,)j(each)d(with)g(some)g(computational,)j
(storage)-152 3851 y(and)f(communication)h(capability)-5
b(.)48 b(Such)28 b(netw)o(orks)g(can)f(operate)h(in)f(an)-152
3938 y(unattended)33 b(mode)e(to)f(record)h(detailed)g(information)h
(about)f(their)f(sur)o(-)-152 4026 y(roundings.)52 b(The)o(y)28
b(are)g(thus)g(well)f(suited)h(to)g(applications)g(such)h(as)f(lo-)-152
4113 y(cation)23 b(tracking)g(and)g(habitat)g(monitoring)g([4,)g(18].)
35 b(As)22 b(these)h(netw)o(orks)-152 4200 y(scale)g(in)f(size,)g(so)h
(will)e(the)h(amount)h(of)g(data)f(the)o(y)h(mak)o(e)g(a)o(v)n
(ailable.)33 b(The)-152 4287 y(great)22 b(v)o(olume)g(of)g(these)g
(data)g(and)g(the)g(f)o(act)g(that)f(the)o(y)h(are)g(spread)g(across)
-152 4374 y(the)30 b(entire)g(sensornet)h(create)f(the)g(need)h(for)e
(data-dissemination)i(tech-)-152 4462 y(niques)24 b(capable)g(of)g(e)o
(xtracting)f(rele)n(v)n(ant)h(data)f(from)g(within)g(the)h(sensor)o(-)
-152 4549 y(net.)29 b(Moreo)o(v)o(er)m(,)22 b(communication)g(between)g
(nodes)g(requires)f(the)g(e)o(xpen-)p Black Black Black
-152 4873 a Fr(Permission)26 b(to)f(mak)o(e)h(digital)i(or)d(hard)g
(copies)i(of)e(all)h(or)f(part)g(of)g(this)h(w)o(ork)f(for)-152
4948 y(personal)f(or)f(classroom)g(use)f(is)g(granted)j(without)e(fee)h
(pro)o(vided)g(that)f(copies)h(are)-152 5022 y(not)c(made)f(or)g
(distrib)o(uted)i(for)e(pro\002t)g(or)g(commercial)i(adv)n(antage)h
(and)d(that)h(copies)-152 5097 y(bear)e(this)f(notice)i(and)e(the)g
(full)h(citation)h(on)e(the)g(\002rst)g(page.)25 b(T)-5
b(o)15 b(cop)o(y)j(otherwise,)g(to)-152 5172 y(republish,)g(to)e(post)f
(on)h(serv)o(ers)g(or)g(to)g(redistrib)o(ute)i(to)e(lists,)g(requires)i
(prior)e(speci\002c)-152 5246 y(permission)i(and/or)h(a)e(fee.)-152
5321 y Fq(WSN)n(A)h('02,)e Fr(September)j(28,)e(2002,)g(Atlanta,)h
(Geor)o(gia,)g(USA.)-152 5396 y(Cop)o(yright)i(2002)d(A)m(CM)g
(1\25558113\255589\2550/02/0009)22 b(...)p Ft($)p Fr(5.00.)p
Black 2040 1202 a Ft(diture)k(of)g(ener)o(gy)-5 b(,)28
b(a)d(scarce)i(commodity)f(for)g(most)g(sensornets.)45
b(Thus,)2040 1289 y(making)26 b(ef)n(fecti)n(v)o(e)f(use)g(of)g
(sensornet)h(data)f(will)f(require)h(scalable,)i(self-)2040
1376 y(or)o(ganizing,)19 b(and)h(ener)o(gy-ef)n(\002cient)f(data)h
(dissemination)f(algorithms.)2115 1463 y(The)f(utility)g(of)g(a)g
(sensornet)i(deri)n(v)o(es)e(primarily)h(from)f(the)g(data)h(it)e
(gath-)2040 1550 y(ers;)k(the)g(identity)g(of)g(the)g(indi)n(vidual)g
(sensor)h(node)f(that)g(records)g(the)g(data)2040 1637
y(tends)i(to)g(be)g(less)g(rele)n(v)n(ant.)36 b(Accordingly)-5
b(,)25 b(sensornet)f(researchers)f(ha)o(v)o(e)2040 1725
y(ar)o(gued)i(for)e(communication)i(abstractions)g(that)e(are)h
Fp(data-centric)p Ft(.)38 b(Un-)2040 1812 y(der)22 b(this)f(model,)i
(data)f(are)g(\223named\224)h(and)f(communication)i(abstractions)2040
1899 y(refer)f(to)g(these)g(names)g(rather)g(than)h(to)e(node)i(netw)o
(ork)g(addresses)g([1,)g(9].)2040 1986 y(The)j(directed)f(dif)n(fusion)
i([10])e(data-centric)h(routing)g(scheme)h(has)f(been)2040
2073 y(sho)n(wn)19 b(to)e(be)h(an)f(ener)o(gy-ef)n(\002cient)h(data)g
(dissemination)g(method)h(for)e(sen-)2040 2160 y(sornet)j(en)m
(vironments.)27 b(In)20 b(an)g(associated)h(position)f(paper)g([23],)g
(we)g(sug-)2040 2248 y(gest)15 b(that)g(a)g(companion)i(method,)f
(data-centric)f(storage)h(\(DCS\),)d(will)h(also)2040
2335 y(be)20 b(useful.)k(Under)c(the)f(DCS)g(approach,)h(the)g
(particular)f(node)h(that)f(stores)2040 2422 y(a)k(gi)n(v)o(en)g(data)g
(object)g(is)f(determined)i(by)f(the)g(object')l(s)g(name.)35
b(Hence)23 b(all)2040 2509 y(data)j(with)f(the)g(same)h(general)g(name)
h(\()p Fp(e)o(.g)o(.,)f Ft(\223elephant)g(sightings\224\))g(will)2040
2596 y(be)20 b(stored)g(at)f(the)h(same)f(sensornet)i(node)g(\(not)e
(necessarily)h(the)g(node)h(that)2040 2684 y(originally)26
b(gathered)g(the)g(data\).)43 b(The)25 b(adv)n(antage)i(of)f(DCS)f
(then)g(is)h(that)2040 2771 y(queries)e(for)f(data)h(with)f(a)h
(particular)f(name)h(can)g(be)g(sent)f(directly)h(to)f(the)2040
2858 y(node)18 b(storing)f(these)h(named)f(data,)h(thereby)f(a)o(v)o
(oiding)h(the)f(query)h(\003ooding)2040 2945 y(typically)h(required)h
(in)f(data-centric)g(routing)h(proposals.)2115 3032 y(This)f(paper)i
(outlines)g(what)f(we)f(belie)n(v)o(e)i(are)f(three)g(canonical)h
(dissem-)2040 3119 y(ination)27 b(methods,)i(one)e(of)g(which)f(is)h
(data-centric)f(storage.)47 b(The)26 b(three)2040 3207
y(methods)j(ha)o(v)o(e)g(v)o(ery)f(dif)n(ferent)h(performance)g
(characteristics.)51 b(Which)2040 3294 y(one)20 b(is)e(appropriate)i
(for)e(a)h(particular)g(setting)g(will)e(depend)k(on)e(the)g(nature)
2040 3381 y(of)h(the)f(sensornet)h(and)h(its)d(use.)25
b(Consequently)-5 b(,)21 b(we)f(stress)f(that)g(our)h(point)2040
3468 y(here)e(is)f(not)h(that)f(data-centric)i(storage)f(is)f(al)o(w)o
(ays)h(the)g(method)g(of)g(choice,)2040 3555 y(b)o(ut)i(rather)h(that)f
(under)i(some)f(conditions)g(it)f(will)g(be)h(preferable.)28
b(In)21 b(f)o(act,)2040 3642 y(we)f(e)o(xpect)h(that)g(future)f
(sensornets)i(will)d(embody)j(all)e(of)g(these)h(\(or)f(simi-)2040
3730 y(lar\))f(data-centric)g(dissemination)i(methods,)e(and)h(that)f
(users)h(will)e(choose)2040 3817 y(which)h(to)g(use)g(according)i(to)e
(the)g(task)g(at)f(hand.)2115 3904 y(This)23 b(paper)h(serv)o(es)f(tw)o
(o)g(aims.)36 b(Our)23 b(\002rst)g(is)f(to)i(identify)f(the)g(circum-)
2040 3991 y(stances)29 b(where)g(DCS)f(is)h(the)f(preferred)i
(dissemination)f(method.)54 b(In)28 b(a)2040 4078 y(related)g(position)
h(paper)f([23],)i(we)e(lay)g(out)g(the)g(conte)o(xt)h(for)e(this)h
(com-)2040 4165 y(parati)n(v)o(e)17 b(study)h(with)e(a)h(lengthy)g
(discussion)h(of)f(sensornet)g(dissemination)2040 4253
y(algorithms)j(and)h(the)e(settings)h(in)g(which)g(the)o(y)g(might)g
(be)g(used.)26 b(F)o(or)19 b(com-)2040 4340 y(pleteness,)e(we)f(be)o
(gin)h(our)f(paper)h(with)f(a)g(brief)g(re)n(vie)n(w)h(of)f(this)g
(discussion.)2040 4427 y(This)k(re)n(vie)n(w)h(also)g(pro)o(vides)g
(the)g(needed)h(conte)o(xt)f(for)f(the)h(later)f(compar)o(-)2040
4514 y(ati)n(v)o(e)f(simulations.)2115 4601 y(Our)31
b(second)i(aim)f(is)f(to)h(present)g(design)h(criteria)e(for)g
(scalable,)36 b(ro-)2040 4689 y(b)o(ust)27 b(DCS,)f(and)h(a)g(DCS)f
(system)i(that)f(meets)g(those)g(criteria,)h(the)f(Geo-)2040
4776 y(graphic)19 b(Hash)g(T)-6 b(able)18 b(\(GHT\).)f(GHT)h(is)g
(inspired)g(by)h(the)g(ne)n(w)f(generation)2040 4863
y(of)29 b(Internet-scale)h(Distrib)o(uted)f(Hash)g(T)-6
b(able)29 b(\(DHT\))g(systems)g(such)h(as)2040 4950 y(Chord,)18
b(CAN,)e(P)o(astry)-5 b(,)16 b(and)i(T)-6 b(apestry)17
b([6,)g(21,)g(24,)h(25].)k(In)17 b(these)g(systems,)2040
5037 y(a)22 b(data)f(object)h(is)f(associated)i(with)e(a)g(k)o(e)o(y)h
(and)g(each)h(node)f(in)g(the)f(system)2040 5124 y(is)26
b(responsible)h(for)f(storing)h(a)f(certain)g(range)h(of)f(k)o(e)o(ys.)
46 b(A)26 b(name-based)2040 5212 y(routing)21 b(algorithm)g(allo)n(ws)f
(an)o(y)h(node)g(in)f(the)h(system)f(to)g(locate)h(the)f(stor)o(-)2040
5299 y(age)g(node)h(for)f(an)g(arbitrary)g(k)o(e)o(y)-5
b(.)27 b(This)20 b(enables)h(nodes)g(to)e Fo(put)h Ft(and)g
Fo(get)p Black Black eop
%%Page: 2 2
2 1 bop Black Black -152 -69 a Ft(\002les)20 b(based)i(on)f(their)g(k)o
(e)o(y)-5 b(,)22 b(thereby)g(supporting)g(a)f(hash-table-lik)o(e)h
(inter)o(-)-152 19 y(f)o(ace.)49 b(GHT)27 b(uses)g(the)h(GPSR)e
(geographic)j(routing)e(algorithm)h([13])g(as)-152 106
y(the)c(underlying)h(routing)f(system)f(to)g(pro)o(vide)i(a)e(similar)g
(hash-table-lik)o(e)-152 193 y(functionality)d(in)f(sensornets.)-77
280 y(Our)28 b(paper)h(has)g(7)f(sections.)52 b(W)-6
b(e)28 b(start)g(with)g(a)g(brief)g(discussion)i(of)-152
367 y(data)22 b(dissemination)h(in)f(sensornets)h(in)f(Section)f(2)h
(and)h(elaborate)f(on)h(the)-152 454 y(DCS)f(problem)h(in)f(Section)g
(3.)33 b(Section)22 b(4)g(presents)h(the)f(detailed)h(design)-152
542 y(of)g(GHT)e(which)i(we)f(e)n(v)n(aluate)h(in)f(Section)h(5.)33
b(W)-6 b(e)22 b(discuss)h(related)f(w)o(ork)-152 629
y(in)d(Section)f(6)g(and)h(conclude)h(with)e(a)g(short)h(discussion)g
(of)f(future)h(w)o(ork)g(in)-152 716 y(Section)g(7.)-152
914 y Fu(2.)100 b(CONTEXT)-77 1022 y Ft(In)16 b(this)f(section)h(we)g
(\002rst)f(state)g(our)h(basic)g(assumptions)h(about)g(the)f(class)-152
1109 y(of)23 b(sensornets)h(we)f(consider)l(.)36 b(W)-6
b(e)22 b(then)h(describe)h(some)f(basic)g(concepts)-152
1196 y(used)g(in)g(or)o(ganizing)f(sensornet)i(data)e(and)h(outline)g
(possible)g(approaches)-152 1283 y(to)c(data)g(dissemination)h(in)f
(sensornets.)-152 1436 y Fu(2.1)99 b(Assumptions)25 b(and)h(Metrics)-77
1544 y Ft(Projected)c(sensornet)g(designs)h(in)f(the)f(literature)h
([5])f(dif)n(fer)h(greatly)g(in)-152 1632 y(their)f(characteristics)g
(and)g(intended)h(use.)30 b(In)21 b(this)f(paper)m(,)i(we)f(focus)g(on)
h(a)-152 1719 y(class)j(of)f(sensornets)h(that)f(is)g(most)h(rele)n(v)n
(ant)g(to)f(the)g(data)h(dissemination)-152 1806 y(issues)20
b(we)e(address.)-77 1893 y(W)-6 b(e)14 b(consider)i(lar)o(ge-scale)f
(sensornets)h(with)f(nodes)h(that)f(are)g(spread)g(out)-152
1980 y(o)o(v)o(er)20 b(an)f(area)g(whose)h(approximate)g(geographic)h
(boundaries)f(are)f(kno)n(wn)-152 2067 y(to)28 b(the)h(netw)o(ork)f
(operators.)52 b(W)-6 b(e)28 b(assume)g(that)g(nodes)i(kno)n(w)f(their)
e(ge-)-152 2155 y(ographic)h(location.)45 b(This)26 b(can)h(be)g(achie)
n(v)o(ed)g(through)h(the)e(use)h(of)f(GPS)-152 2242 y(or)d(some)g
(other)f(approximate)i(b)o(ut)e(less)h(b)o(urdensome)h(localization)e
(tech-)-152 2329 y(nique)17 b([3,)f(8,)g(19,)g(20,)g(22].)23
b(This)15 b(assumption)i(is)e(critical)g(for)g(our)h(proposed)-152
2416 y(data-centric)g(storage)g(algorithm.)23 b(Ho)n(we)n(v)o(er)m(,)16
b(we)g(think)g(it)f(is)g(a)g(reasonable)-152 2503 y(assumption)31
b(because)g(in)e(man)o(y)h(cases)g(the)g(sensornet)g(data)g(are)f
(useful)-152 2590 y(only)20 b(if)e(the)h(location)h(of)f(their)f
(source)i(is)e(kno)n(wn.)-77 2678 y(W)-6 b(e)22 b(assume)h(that)g(the)f
(sensornet)i(is)e(connected)i(to)f(the)f(outside)h(w)o(orld)-152
2765 y(through)i(a)e(small)g(number)h(of)f(access)h(points,)g(hence)h
(getting)e(data)h(from)-152 2852 y(a)33 b(sensornet)g(node)g(to)f(the)h
(outside)g(w)o(orld)f(requires)h(routing)g(the)f(data)-152
2939 y(through)17 b(the)e(sensornet)h(to)g(the)f(access)h(point.)22
b(This)15 b(assumption)h(is)f(not)h(re-)-152 3026 y(quired)k(by)g(our)f
(DCS)g(mechanism)h(per)g(se)f(b)o(ut)g(is)g(k)o(e)o(y)h(to)f(our)g
(comparison)-152 3113 y(of)g(the)g(dif)n(ferent)g(dissemination)h
(mechanisms.)-77 3201 y(Finally)-5 b(,)16 b(we)g(assume)h(that)f(ener)o
(gy)h(is)f(a)g(scarce)g(commodity)i(for)e(sensor)o(-)-152
3288 y(net)f(nodes)h([18])f(and)h(so)e(the)h(data)g(dissemination)h
(algorithms)f(should)h(seek)-152 3375 y(to)k(minimize)g(communication)i
(in)e(order)g(to)g(e)o(xtend)h(o)o(v)o(erall)f(system)g(life-)-152
3462 y(time.)j(While)17 b(the)i(mapping)g(between)g(communication)h
(and)f(ener)o(gy)g(con-)-152 3549 y(sumption)25 b(is)e(complicated)h
(\226)f(depending)j(greatly)d(on)h(the)f(precise)h(hard-)-152
3636 y(w)o(are)16 b(in)m(v)o(olv)o(ed)g(and)g(the)f(pack)o(et)h
(transmission)g(pattern)g(\226)f(in)g(what)h(follo)n(ws)-152
3724 y(we)j(will)f(focus)i(on)f(tw)o(o)g(simpli\002ed)g(metrics)f(of)h
(ener)o(gy)h(consumption:)p Black -152 3868 a Fs(T)-7
b(otal)19 b(usage:)p Black 38 w Ft(The)g(total)f(number)i(of)f(pack)o
(ets)h(sent)f(in)g(the)g(sensornet)p Black -152 3984
a Fs(Hotspot)g(usage:)p Black 38 w Ft(The)i(maximal)h(number)g(of)f
(pack)o(ets)h(sent)g(by)f(an)o(y)h(par)o(-)35 4071 y(ticular)d
(sensornet)h(node)-152 4224 y Fu(2.2)99 b(Sensor)o(net)27
b(Data)-77 4332 y Ft(In)16 b(this)g(section,)g(we)g(present)h(our)f
(terminology)h(for)f(the)g(dif)n(ferent)g(types)-152
4419 y(of)24 b(sensornet)g(data)g(and)g(describe)g(the)f(operations)i
(we)e(en)m(visage)i(will)d(be)-152 4506 y(used)e(to)f(e)o(xtract)g
(rele)n(v)n(ant)g(data)g(from)g(a)g(sensornet.)-129 4659
y Fn(2.2.1)90 b(Observations)20 b(and)i(Events)-77 4767
y Ft(W)-6 b(e)23 b(use)h(the)f(term)g Fp(observations)i
Ft(to)e(refer)h(to)f(the)g(lo)n(w-le)n(v)o(el)h(readings)-152
4855 y(from)d(these)f(sensors)i(and)f(the)f(term)g Fp(e)o(vents)h
Ft(to)f(refer)g(to)h(pre-de\002ned)g(con-)-152 4942 y(stellations)27
b(of)g(lo)n(w-le)n(v)o(el)g(observ)n(ations.)48 b(F)o(or)26
b(e)o(xample,)k(detailed)d(tem-)-152 5029 y(perature)17
b(and)g(pressure)g(readings)g(might)f(constitute)h(observ)n(ations,)h
(while)-152 5116 y(a)k(particular)f(combination)i(of)e(temperature)h
(and)g(pressure)g(observ)n(ations)-152 5203 y(might)d(de\002ne)h(an)f
(\223elephant-sighting\224)i(e)n(v)o(ent.)-77 5290 y(T)-6
b(ypically)h(,)22 b(the)g(lar)o(ge)g(v)o(olume)g(of)f(observ)n(ations)j
(prohibits)e(communi-)-152 5378 y(cating)h(them)g(directly)g(to)f(the)h
(outside)g(w)o(orld.)35 b(Ev)o(ents)22 b(are)h(thus)g(deri)n(v)o(ed)
2040 -69 y(by)28 b(processing)h(the)f(lo)n(w-le)n(v)o(el)g(observ)n
(ations)h(within)e(the)h(netw)o(ork)h(and)2040 19 y(users)24
b(can)h(then)f(query)g(for)g(e)n(v)o(ents.)39 b(Once)24
b(e)n(v)o(ents)g(ha)o(v)o(e)g(been)h(detected,)2040 106
y(users)f(might)f(w)o(ant)h(to)f(access)i(the)e(lo)n(w-le)n(v)o(el)h
(observ)n(ations)h(related)e(to)g(a)2040 193 y(particular)16
b(e)n(v)o(ent.)23 b(This)15 b(is)h(easily)g(accommodated)h(by)g(ha)o
(ving)f(each)h(e)n(v)o(ent)2040 280 y(noti\002cation)g(include)h(the)f
(e)n(v)o(ent')l(s)g(location,)h(so)f(that)g(to)g(gather)g(additional)
2040 367 y(data)27 b(one)h(need)g(only)f(do)n(wnload)i(the)e(required)h
(observ)n(ations)g(from)f(the)2040 454 y(rele)n(v)n(ant)20
b(sensors.)2063 608 y Fn(2.2.2)90 b(T)-8 b(asks,)20 b(Actions,)i(and)g
(Queries)2115 716 y Ft(Users)27 b(send)g(instructions)h(\(by)f
(\003ooding)h(or)f(some)h(other)f(global)h(dis-)2040
803 y(semination)23 b(method\))g(to)g(sensornet)g(nodes)h(to)e(run)h
(certain)f(local)h(identi-)2040 891 y(\002cation)d Fp(tasks)p
Ft(.)25 b(These)20 b(tasks)g(could)h(be)f(simple,)f(such)i(as)e(taking)
i(temper)o(-)2040 978 y(ature)26 b(readings,)h(or)f(comple)o(x,)h(such)
f(as)g(identifying)g(an)g(animal)f(from)g(a)2040 1065
y(collection)c(of)f(sensor)g(readings.)28 b(In)20 b(essence,)h(one)f
(can)h(think)f(of)g(tasks)g(as)2040 1152 y(do)n(wnloaded)h(code.)2115
1239 y(Once)j(an)h(e)n(v)o(ent)f(has)h(been)g(identi\002ed,)g(nodes)g
(can)g(tak)o(e)f(a)g(number)h(of)2040 1327 y(dif)n(ferent)i
Fp(actions)p Ft(.)49 b(F)o(or)27 b(e)o(xample,)i(actions)f(might)f
(instruct)h(a)f(node)h(on)2040 1414 y(where)19 b(to)g(store)g
(information)h(for)e(a)h(particular)g(e)n(v)o(ent.)2115
1501 y(When)24 b(e)n(v)o(ent)h(information)f(is)g(stored)h(within)e
(the)i(sensornet,)h Fp(queries)2040 1588 y Ft(are)16
b(used)g(to)g(retrie)n(v)o(e)g(this)f(information)h(from)g(the)g(netw)o
(ork.)23 b(Ho)n(w)16 b(queries)2040 1675 y(are)21 b(e)o(x)o(ecuted)h
(will)e(depend)i(on)f(the)g(actions)h(nodes)f(tak)o(e)h(upon)g(e)n(v)o
(ent)f(de-)2040 1762 y(tection.)2040 1916 y Fu(2.3)99
b(A)n(ppr)n(oaches)26 b(to)f(Data)g(Dissemination)2115
2024 y Ft(Data)19 b(dissemination)i(starts)e(by)i(\003ooding)f(the)g
(tasks)g(to)g(the)f(entire)h(sen-)2040 2111 y(sornet.)55
b(The)30 b(tasks)f(specify)h(which)g(e)n(v)o(ents)g(to)g(detect,)i(ho)n
(w)e(to)f(detect)2040 2199 y(them,)22 b(and)h(what)e(actions)i(to)e
(tak)o(e)h(upon)h(detection.)32 b(Upon)23 b(detecting)f(an)2040
2286 y(e)n(v)o(ent,)h(there)g(are)f(three)g(basic)h(actions)f(a)g(node)
h(can)g(tak)o(e)g(which)f(lead)h(di-)2040 2373 y(rectly)f(to)h(three)f
(canonical)i(data)f(dissemination)g(methods.)35 b(These)22
b(three)2040 2460 y(methods)17 b(ha)o(v)o(e)e(a)h(v)o(ery)g(dif)n
(ferent)g(cost)f(structure.)23 b(In)15 b(this)h(section,)g(we)f
(\002rst)2040 2547 y(describe)i(these)f(canonical)h(methods)g(and)g
(then)f(compare)h(their)f(costs)g(ana-)2040 2635 y(lytically;)h(in)g
(Section)f(5)h(we)g(use)g(simulation)g(to)g(perform)g(a)g(more)g
(detailed)2040 2722 y(comparison.)2115 2809 y(In)28 b(the)g(discussion)
i(that)e(follo)n(ws,)i(we)e(assume)h(that)f(tasks)h(are)f(long-)2040
2896 y(li)n(v)o(ed)j(\()p Fp(i.e)o(.,)h Ft(that)e(the)h(tasking)g
(instructions)g(remain)f(in)h(force)f(for)h(long)2040
2983 y(periods)e(of)g(time\))f(and)h(so)g(the)g(initial)f(cost)g(of)h
(issuing)g(tasks)g(is)f(domi-)2040 3070 y(nated)c(by)f(the)g(ensuing)h
(data)f(processing.)3175 3043 y Fm(1)3244 3070 y Ft(In)g(e)n(v)n
(aluating)h(communica-)2040 3158 y(tion)i(costs)g(we)g(use)h(the)f
(asymptotic)g(cost)h(of)f Fp(O)p Fj(\()p Fp(n)p Fj(\))g
Ft(message)h(transmis-)2040 3245 y(sions)g(for)f(\003oods)h(and)g
Fp(O)p Fj(\()2759 3191 y Fi(p)p 2821 3191 38 3 v 54 x
Fp(n)q Fj(\))f Ft(for)g(point-to-point)h(routing)h(where)e
Fp(n)h Ft(is)2040 3332 y(the)19 b(number)h(of)f(sensornet)h(nodes.)2063
3486 y Fn(2.3.1)90 b(Canonical)21 b(Methods)2115 3594
y Ft(When)e(an)g(e)n(v)o(ent)g(occurs,)g(the)g(detecting)g(node)h(has)f
(only)g(three)g(options)2040 3681 y(for)k(where)g(the)f(e)n(v)o(ent)i
(information)f(can)g(be)g(stored:)31 b(at)23 b(e)o(xternal)g(storage)
2040 3768 y(outside)29 b(the)g(sensornet,)i(within)d(the)g(sensornet)i
(at)e(the)g(detecting)h(node)2040 3855 y(or)h(within)f(the)g(sensornet)
i(at)e(a)h(node)g(other)g(than)g(the)f(detecting)i(node.)2040
3943 y(These)f(three)g(storage)g(actions)g(lead)f(to)h(the)f(follo)n
(wing)i(canonical)f(data)2040 4030 y(dissemination)20
b(methods:)p Black 2040 4194 a Fs(Exter)o(nal)f(Storage)g(\(ES\):)p
Black 37 w Ft(Upon)c(detection)g(of)f(e)n(v)o(ents,)i(the)f(rele)n(v)n
(ant)g(data)2227 4281 y(are)27 b(sent)g(to)g(e)o(xternal)h(storage)f
(where)h(the)o(y)f(can)h(be)f(further)g(pro-)2227 4368
y(cessed)17 b(as)f(needed.)23 b(This)16 b(entails)g(a)g(cost)g(of)g
Fp(O)p Fj(\()3474 4315 y Fi(p)p 3536 4315 V 53 x Fp(n)p
Fj(\))g Ft(for)g(each)h(e)n(v)o(ent)2227 4455 y(\(to)g(ship)h(the)g
(information)g(to)g(the)g(access)g(point\).)23 b(There)18
b(is)f(no)h(cost)2227 4543 y(for)i(user)h(queries)f(since)h(the)f(e)n
(v)o(ent)h(information)g(is)f(already)h(e)o(xter)o(-)2227
4630 y(nal.)2337 4603 y Fm(2)p Black 2040 4747 a Fs(Local)e(Storage)h
(\(LS\):)p Black 36 w Ft(Ev)o(ent)15 b(information)g(is)f(stored)h
(locally)g(\(at)f(the)h(de-)2227 4835 y(tecting)j(node\))h(upon)g
(detection)g(of)f(an)g(e)n(v)o(ent;)h(this)e(incurs)i(no)f(com-)2227
4922 y(munication)24 b(costs.)35 b(Queries)23 b(are)g(\003ooded)h(to)e
(all)h(nodes)h(at)e(a)h(cost)p Black 2040 4968 797 4
v 2044 5029 a Fm(1)2077 5056 y Ft(Of)31 b(course,)j(there)d(are)g
(situations)g(where)g(tasks)g(are)g(short-li)n(v)o(ed;)37
b(for)2040 5131 y(these,)c(the)e(cost)f(of)g(\003ooding)h(tasks)g
(dominates)g(all)f(other)h(costs,)i(so)d(it)2040 5205
y(w)o(on')o(t)19 b(matter)g(much)g(which)h(of)f(the)g(approaches)h(are)
f(used.)2044 5267 y Fm(2)2077 5294 y Ft(If)27 b(queries)h(can)g(be)f
(generated)h(by)g(internal)f(nodes,)j(the)o(y)e(will)e(incur)h(a)2040
5378 y(cost)19 b(of)g Fp(O)p Fj(\()2343 5324 y Fi(p)p
2405 5324 38 3 v 54 x Fp(n)q Fj(\))f Ft(to)h(reach)h(the)f(e)o(xternal)
g(storage.)p Black Black Black eop
%%Page: 3 3
3 2 bop Black Black 35 -69 a Ft(of)21 b Fp(O)p Fj(\()p
Fp(n)p Fj(\))p Ft(.)30 b(Responses)23 b(are)e(sent)g(back)h(to)f(the)g
(source)h(of)f(the)h(query)35 19 y(at)d(a)g(cost)g(of)g
Fp(O)p Fj(\()463 -35 y Fi(p)p 525 -35 38 3 v 54 x Fp(n)p
Fj(\))p Ft(.)p Black -152 132 a Fs(Data-Centric)g(Storage)h(\(DCS\):)p
Black 36 w Ft(Here,)e(after)g(an)h(e)n(v)o(ent)g(is)f(detected)i(the)35
219 y(data)h(are)f(stored)g(by)h(name)g(\()p Fp(i.e)o(.,)e
Ft(at)h(a)g(storage)h(node)g(that)f(need)h(not)35 307
y(be)f(the)f(same)g(as)g(the)g(detecting)h(node\))g(within)f(the)g
(sensornet.)25 b(The)35 394 y(communication)20 b(cost)e(to)f(store)h
(the)g(e)n(v)o(ent)g(is)g Fp(O)p Fj(\()1330 340 y Fi(p)p
1392 340 V 54 x Fp(n)p Fj(\))p Ft(.)23 b(Queries)18 b(are)35
481 y(directed)26 b(to)g(the)g(node)h(that)f(stores)g(e)n(v)o(ents)h
(of)f(that)f(name,)j(which)35 568 y(returns)19 b(a)g(response,)h(both)f
(at)g(a)g(cost)g(of)g Fp(O)p Fj(\()1191 515 y Fi(p)p
1253 515 V 53 x Fp(n)p Fj(\))p Ft(.)-77 724 y(The)j(three)g(approaches)
i(abo)o(v)o(e)e(certainly)h(do)f(not)g(e)o(xhaust)h(the)f(design)-152
811 y(space;)e(see)f([23])g(for)g(v)n(ariants)g(and)h(combinations)g
(of)f(the)g(abo)o(v)o(e.)-129 963 y Fn(2.3.2)90 b(Appr)l(oximate)21
b(Communication)g(Costs)-77 1071 y Ft(W)-6 b(e)17 b(no)n(w)h(compare)g
(the)f(performance)i(of)e(these)h(methods)g(using)g(a)f(sim-)-152
1158 y(ple)k(analytical)g(model.)28 b(The)20 b(cost)h(structure)f(for)h
(the)f(canonical)i(methods)-152 1245 y(is)d(described)h(by)f(se)n(v)o
(eral)g(parameters.)24 b(W)-6 b(e)18 b(consider)i(a)e(sensornet)i(with)
e Fp(n)-152 1332 y Ft(nodes)g(equipped)g(to)f(detect)g
Fp(T)25 b Ft(e)n(v)o(ent)17 b(types.)23 b(W)-6 b(e)16
b(let)g Fp(D)1298 1346 y Ff(t)t(o)o(t)t(al)1435 1332
y Ft(denote)h(the)g(to-)-152 1419 y(tal)j(number)h(of)g(e)n(v)o(ents)f
(detected,)h Fp(Q)f Ft(denote)h(the)g(number)g(of)f(e)n(v)o(ent)h
(types)-152 1507 y(for)i(which)g(queries)g(are)f(issued,)i(and)f
Fp(D)927 1518 y Ff(q)983 1507 y Ft(denote)g(the)g(number)g(of)g(e)n(v)o
(ents)-152 1594 y(detected)e(for)e(the)h(types)g(of)g(e)n(v)o(ents)g
(queried)h(for)l(.)k(W)-6 b(e)20 b(assume)g(there)g(is)f(no)-152
1681 y(more)i(than)h(one)f(query)h(for)e(each)i(e)n(v)o(ent)f(type,)g
(so)g(there)g(are)g Fp(Q)f Ft(queries)i(in)-152 1768
y(total.)-77 1855 y(In)g(comparing)h(costs,)g(we)f(also)g(consider)h
(the)f(case)g(where)h(users)f(only)-152 1942 y(care)28
b(about)g(a)g(summary)g(of)g(the)f(e)n(v)o(ents)h(rather)g(than)g(a)f
(listing)g(of)h(each)-152 2030 y(e)n(v)o(ent;)20 b Fp(e)o(.g)o(.,)f
Ft(one)g(might)h(just)f(w)o(ant)g(a)h(count)g(of)f(the)g(number)h(of)g
(elephants)-152 2117 y(seen)g(rather)f(than)g(a)g(listing)f(of)h(each)h
(elephant)g(sighting.)-77 2204 y(W)-6 b(e)20 b(compare)i(costs)f(using)
g(approximations)i(for)e(both)g(the)g(total)f(num-)-152
2291 y(ber)c(of)g(pack)o(ets)h(in)f(the)f(sensornet)i(and)g(the)f(pack)
o(ets)g(arri)n(ving)h(at)e(the)h(access)-152 2378 y(point.)20
2351 y Fm(3)99 2378 y Ft(W)-6 b(e)26 b(assume)h(that)g(the)f(pack)o(et)
h(count)g(at)g(the)f(access)h(point)g(is)f(a)-152 2465
y(good)20 b(estimate)f(of)f(the)h(hotspot)h(usage,)f(since)g(we)f(e)o
(xpect)i(that)e(the)h(access)-152 2553 y(point)24 b(to)e(be)i(the)f
(most)g(hea)o(vily)g(used)h(area)f(of)g(the)g(sensornet.)36
b(W)m(ith)22 b(this)-152 2640 y(setup,)d(the)g(costs)h(are)e(as)h
(follo)n(ws:)p Black -152 2795 a Fs(Exter)o(nal)g(Storage:)p
Black 271 2882 a Ft(T)-6 b(otal:)23 b Fp(D)520 2896 y
Ff(t)t(o)o(t)t(al)639 2829 y Fi(p)p 701 2829 V 53 x Fp(n)601
b Ft(Hotspot:)23 b Fp(D)1672 2896 y Ff(t)t(o)o(t)t(al)p
Black -152 3026 a Fs(Local)d(Storage:)p Black 205 3113
a Ft(T)-6 b(otal:)23 b Fp(Qn)10 b Fj(+)g Fp(D)624 3124
y Ff(q)658 3060 y Fi(p)p 720 3060 V 53 x Fp(n)600 b Ft(Hotspot:)24
b Fp(Q)10 b Fj(+)g Fp(D)1824 3124 y Ff(q)p Black -152
3257 a Fs(Data-Centric)19 b(Storage:)p Black 35 3344
a Ft(T)-6 b(otal:)23 b Fp(Q)285 3291 y Fi(p)p 347 3291
V 53 x Fp(n)11 b Fj(+)f Fp(D)516 3358 y Ff(t)t(o)o(t)t(al)636
3291 y Fi(p)p 698 3291 V 53 x Fp(n)h Fj(+)f Fp(D)868
3355 y Ff(q)901 3291 y Fi(p)p 964 3291 V 964 3344 a Fp(n)19
b Ft(\(list\))35 3431 y(T)-6 b(otal:)23 b Fp(Q)285 3378
y Fi(p)p 347 3378 V 53 x Fp(n)11 b Fj(+)f Fp(D)516 3445
y Ff(t)t(o)o(t)t(al)636 3378 y Fi(p)p 698 3378 V 53 x
Fp(n)h Fj(+)f Fp(Q)868 3378 y Fi(p)p 930 3378 V 53 x
Fp(n)19 b Ft(\(summary\))35 3519 y(Hotspot:)24 b Fp(Q)10
b Fj(+)g Fp(D)502 3530 y Ff(q)554 3519 y Ft(\(list\))18
b(or)h(2)p Fp(Q)g Ft(\(summary\))-152 3674 y(where)g(\(list\))e
(indicates)i(a)f(full)g(listing)g(of)g(e)n(v)o(ents)h(is)f(returned)h
(\(requiring)g(a)-152 3761 y(pack)o(et)h(for)e(each)h(e)n(v)o(ent\))g
(and)h(\(summary\))f(indicates)g(only)g(a)f(summary)i(of)-152
3848 y(e)n(v)o(ents)g(is)e(returned)i(\(requiring)g(only)f(one)h(pack)o
(et\).)-77 3936 y(These)e(calculations)g(support)g(a)g(fe)n(w)f(relati)
n(v)o(ely)g(ob)o(vious)i(points.)k(First,)-152 4023 y(all)j(other)g
(parameters)g(being)h(\002x)o(ed,)g(as)f Fp(n)g Ft(gets)g(lar)o(ge)f
(the)h(local)g(storage)-152 4110 y(method)18 b(incurs)f(the)f(highest)h
(total)g(pack)o(et)g(count.)23 b(Second,)18 b(e)o(xternal)e(stor)o(-)
-152 4197 y(age)31 b(al)o(w)o(ays)f(incurs)g(a)g(lo)n(wer)g(total)f
(message)i(count)f(than)g(data-centric)-152 4301 y(storage,)c(b)o(ut)d
(the)h(ratio)g(1)12 b Fj(+)631 4261 y Ff(Q)p Fg(+)p Ff(D)760
4270 y Fd(q)p 631 4284 154 3 v 644 4327 a Ff(D)685 4336
y Fd(t)s(o)o(t)s(al)818 4301 y Ft(is)24 b(unlik)o(ely)h(to)e(be)i(lar)o
(ge)e(if)h(there)g(are)-152 4388 y(man)o(y)c(e)n(v)o(ents)g(detected)f
(\(and,)h(if)e(there)h(is)g(at)g(least)g(one)g(e)n(v)o(ent)h(detected)g
(of)-152 4475 y(each)g(type,)e(this)h(ratio)f(is)g(bounded)j(by)e(3\).)
k(Third,)c(if)f Fp(D)1314 4486 y Ff(q)1363 4475 y Fi(\035)e
Fp(Q)j Ft(and)g(e)n(v)o(ents)-152 4563 y(are)25 b(summarized,)i(then)e
(data-centric)g(storage)g(has)g(the)f(lo)n(west)h(load)g(\(of)-152
4650 y(all)f(three)h(methods\))g(on)g(the)f(access)h(path.)40
b(F)o(ourth,)26 b(if)d(e)n(v)o(ents)j(are)e(listed)-152
4737 y(and)j Fp(D)35 4751 y Ff(t)t(o)o(t)t(al)175 4737
y Fi(\035)20 b Fp(D)324 4748 y Ff(q)383 4737 y Ft(then)26
b(data-centric)g(storage)h(and)f(local)g(storage)g(ha)o(v)o(e)-152
4824 y(signi\002cantly)19 b(lo)n(wer)g(access)h(loads)f(than)h(e)o
(xternal)f(storage.)-77 4911 y(W)-6 b(e)14 b(conclude)i(that)e
(data-centric)h(storage)g(is)f(preferable)h(in)f(cases)h(where)-152
4999 y(\(a\))h(the)g(sensornet)g(is)g(lar)o(ge,)f(\(b\))h(there)g(are)g
(man)o(y)g(detected)h(e)n(v)o(ents)f(and)g(not)-152 5086
y(all)21 b(e)n(v)o(ent)g(types)h(are)f(queried,)h(so)f(that)g
Fp(D)951 5100 y Ff(t)t(o)o(t)t(al)1088 5086 y Fi(\035)c
Ft(max)q Fj([)p Fp(D)1384 5097 y Ff(q)1417 5086 y Fk(;)8
b Fp(Q)p Fj(])p Ft(.)28 b(This)21 b(per)o(-)-152 5173
y(formance)30 b(adv)n(antage)h(increases)e(further)g(when)g(summaries)g
(are)g(used.)p Black -152 5215 797 4 v -148 5276 a Fm(3)-114
5303 y Ft(While)e(we)h(assume)h(a)f(single)g(access)h(point,)h(our)f
(discussion)g(e)o(xtends)-152 5378 y(easily)19 b(to)g(cases)g(where)h
(there)f(are)g(a)f(fe)n(w)h(access)h(points.)p Black
2040 -69 a(Ho)n(we)n(v)o(er)m(,)33 b(if)d(the)g(number)h(of)f(e)n(v)o
(ents)h(is)e(lar)o(ge)h(compared)h(to)f(the)g(sys-)2040
19 y(tem)18 b(size,)f Fp(D)2375 33 y Ff(t)t(o)o(t)t(al)2510
19 y Fk(>)f Fp(Q)2638 -35 y Fi(p)p 2700 -35 38 3 v 54
x Fp(n)p Ft(,)h(and)i(e)n(v)o(ent)f(lists)f(\(rather)g(than)h
(summaries\))g(are)2040 106 y(used,)h(then)h(local)f(storage)g(may)h
(be)f(preferable.)2040 311 y Fu(3.)99 b(THE)26 b(DCS)f(PR)m(OBLEM)2115
419 y Ft(W)-6 b(e)23 b(ha)o(v)o(e)g(ar)o(gued)h(for)f(the)h(utility)e
(of)h(a)h(DCS)e(service)i(for)f(sensornets.)2040 506
y(No)n(w)i(we)g(will)f(de\002ne)h(the)g(data-centric)h(storage)f
(problem)h(in)f(more)g(de-)2040 593 y(tail:)34 b(the)25
b(storage)g(abstraction)h(DCS)d(pro)o(vides,)k(the)e(design)h(goals)f
(a)g(ro-)2040 680 y(b)o(ust,)18 b(scalable)h(DCS)f(system)h(must)g
(meet,)f(and)i(our)f Fp(g)o(eo)o(gr)o(aphic)i(hashing)2040
768 y Ft(approach)g(to)d(DCS)g(architecture)i(that)f(meets)g(these)g
(design)h(goals.)2040 924 y Fu(3.1)99 b(Storage)26 b(Abstraction)2115
1032 y Ft(Lik)o(e)i(the)g(man)o(y)h(distrib)o(uted)f(hash)h(table)f
(systems)h(before)g(it)e([6,)j(21,)2040 1119 y(24,)i(25],)g(DCS)d(pro)o
(vides)h(a)f Fp(\(k)o(e)n(y)l(,)j(value\))p Ft(-based)f(associati)n(v)o
(e)f(memory)-5 b(.)2040 1206 y(Ev)o(ents)23 b(are)h(named)g(with)f(k)o
(e)o(ys.)37 b(Both)24 b(the)f(storage)h(of)f(an)h(e)n(v)o(ent)g(and)g
(its)2040 1294 y(retrie)n(v)n(al)c(are)f(performed)i(using)f(these)g(k)
o(e)o(ys.)27 b(DCS)18 b(is)i(naming-agnostic;)2040 1381
y(an)o(y)h(naming)h(scheme)f(that)g(distinguishes)g(e)n(v)o(ents)h
(that)e(users)h(of)f(the)h(sen-)2040 1468 y(sornet)e(wish)g(to)f
(identify)h(distinctly)g(suf)n(\002ces.)k(The)c(tw)o(o)g(operations)g
(DCS)2040 1555 y(supports)h(are:)p Black 2040 1723 a
Fs(Put\()p Fp(k)q Fk(;)8 b Fp(v)p Fs(\))p Black 37 w
Ft(stores)26 b Fp(v)g Ft(\(the)g(observ)o(ed)i(data\))e(according)h(to)
f(the)h(k)o(e)o(y)g Fp(k)q Ft(,)g(the)2227 1810 y(name)19
b(of)g(the)g(data.)p Black 2040 1963 a Fs(Get\()p Fp(k)q
Fs(\))p Black 38 w Ft(retrie)n(v)o(es)g(whate)n(v)o(er)g(v)n(alue)h(is)
f(stored)g(associated)h(with)e(k)o(e)o(y)i Fp(k)q Ft(.)2040
2131 y Fu(3.2)99 b(Design)25 b(Criteria)g(f)n(or)g(Scalable,)g(Rob)n
(ust)g(DCS)2115 2239 y Ft(The)f(challenge)h(in)f(an)o(y)h(design)g(for)
f(a)h(DCS)e(system)h(is)g(to)g(meet)h(scal-)2040 2327
y(ability)g(and)h(rob)o(ustness)g(criteria)f(despite)h(the)f(system')l
(s)h(fundamentally)2040 2414 y(distrib)o(uted)c(nature.)35
b(Sensornets)23 b(represent)g(a)f(particularly)h(challenging)2040
2501 y(en)m(vironment)d(for)f(a)g(distrib)o(uted)g(storage)g(system:)
2115 2588 y Fs(Node)i(failur)o(es)g Ft(may)i(be)f(routine;)h(e)o
(xhaustion)g(of)f(battery)g(po)n(wer)h(and)2040 2675
y(permanent)d(or)f(transient)f(f)o(ailure)h(in)g(a)f(harsh)i(en)m
(vironment)g(are)f(problems)2040 2762 y(in)g(an)o(y)g(realistic)g
(sensornet)g(deplo)o(yment.)2115 2850 y Fs(T)-7 b(opology)15
b(changes)g Ft(will)e(be)i(more)f(frequent)i(than)e(on)h(traditional)g
(wired)2040 2937 y(netw)o(orks.)23 b(Node)15 b(f)o(ailures,)g(node)g
(mobility)-5 b(,)15 b(and)h(recei)n(v)o(ed)f(signal)g(strength)2040
3024 y(v)n(ariations)g(in)f(real)h(radio)f(deplo)o(yments)j(each)e
(independently)h(cause)g(neigh-)2040 3111 y(bor)j(relationships)h
(among)g(nodes)g(to)f(change)h(o)o(v)o(er)f(time.)2115
3198 y Fs(System)27 b(scale)g(in)f(nodes)g Ft(may)h(be)g(v)o(ery)g
(great.)47 b(Sensor)27 b(nodes)h(may)2040 3285 y(be)h(deplo)o(yed)i(e)o
(xtremely)e(densely)g(\(consider)h(the)e(limit)g(case)h(of)g(smart)2040
3373 y(dust)21 b([11]\),)f(and)h(may)g(be)g(deplo)o(yed)h(o)o(v)o(er)f
(a)f(v)o(ery)h(wide)f(physical)h(re)o(gion,)2040 3460
y(such)f(that)g(the)g(total)f(number)i(of)e(de)n(vices)i(participating)
f(in)g(the)f(DCS)g(sys-)2040 3547 y(tem)g(may)g(be)g(on)h(the)f(order)g
(of)g(10)2942 3520 y Fm(6)2995 3547 y Ft(or)g(more)g(nodes.)2115
3634 y Fs(Ener)o(gy)c(constraints)f Ft(will)f(often)i(be)g(se)n(v)o
(ere;)h(nodes)f(will)f(operate)h(from)2040 3721 y(battery)k(po)n(wer)l
(.)2115 3808 y(These)c(challenges)g(suggest)h(se)n(v)o(eral)f
(speci\002c,)g(important)g(design)g(crite-)2040 3896
y(ria)i(for)h(ensuring)h(scalability)e(and)i(rob)o(ustness)f(in)g(the)f
(distrib)o(uted)h(storage)2040 3983 y(system)h(we)g(en)m(vision:)2115
4070 y Fs(P)o(ersistence:)i Ft(a)c Fj(\()p Fp(k)q Fk(;)8
b Fp(v)p Fj(\))18 b Ft(pair)f(stored)h(in)f(the)g(system)g(must)g
(remain)h(a)o(v)n(ail-)2040 4157 y(able)28 b(to)h(queriers,)h(despite)f
(sensor)f(node)i(f)o(ailures)e(and)h(changes)g(in)f(the)2040
4244 y(sensor)20 b(netw)o(ork)f(topology)-5 b(.)2115
4332 y Fs(Consistency:)34 b Ft(a)24 b(query)i(for)e Fp(k)i
Ft(must)f(be)f(routed)i(correctly)e(to)h(a)f(node)2040
4419 y(where)19 b Fj(\()p Fp(k)q Fk(;)8 b Fp(v)p Fj(\))18
b Ft(pairs)h(are)f(currently)h(stored;)f(if)g(this)g(node)h(changes)h
(\()p Fp(e)o(.g)o(.,)d Ft(to)2040 4506 y(maintain)24
b(persistence)h(after)f(a)g(node)h(f)o(ailure\),)g(queries)f(and)h
(stored)f(data)2040 4593 y(must)19 b(choose)h(a)f(ne)n(w)g(node)h
(consistently)-5 b(.)2115 4680 y Fs(Scaling)18 b(in)h(database)g(size:)
24 b Ft(as)c(the)f(number)h(of)g Fj(\()p Fp(k)q Fk(;)8
b Fp(v)p Fj(\))19 b Ft(pairs)h(stored)f(in)2040 4767
y(the)j(system)f(increases,)i(whether)e(for)h(the)f(same)h(or)f(dif)n
(ferent)h Fp(k)q Ft(s,)g(storage)2040 4855 y(should)e(not)f
(concentrate)h(at)f(an)o(y)g(one)h(node.)2115 4942 y
Fs(Scaling)25 b(in)f(node)h(count:)36 b Ft(as)26 b(the)g(number)g(of)g
(nodes)h(in)e(the)h(system)2040 5029 y(increases,)e(the)f(system')l(s)g
(total)g(storage)g(capacity)h(should)g(increase,)g(and)2040
5116 y(the)17 b(communication)h(cost)f(of)g(the)g(system)g(should)g
(not)g(gro)n(w)h(unduly)-5 b(.)23 b(Nor)2040 5203 y(should)d(an)o(y)g
(node)f(become)i(a)d(concentration)j(point)e(of)g(communication.)2115
5290 y Fs(T)-7 b(opological)17 b(generality:)22 b Ft(the)16
b(system)g(should)i(w)o(ork)e(well)g(on)g(a)g(broad)2040
5378 y(range)k(of)f(netw)o(ork)g(topologies.)p Black
Black eop
%%Page: 4 4
4 3 bop Black Black -152 -69 a Fu(3.3)99 b(GHT)-7 b(:)25
b(A)f(Geographic)i(Hash)e(T)-9 b(able)-77 39 y Ft(The)23
b(DCS)e(system)i(architecture)h(we)e(describe)i(in)e(this)h(paper)g(to)
g(meet)-152 126 y(the)g(abo)o(v)o(e-enumerated)j(design)e(criteria)e
(is)h(GHT)-6 b(,)22 b(a)h Fp(Geo)o(gr)o(aphic)i(Hash)-152
214 y(T)-7 b(able)23 b(\(GHT\).)e Ft(The)h(core)h(step)f(in)g(GHT)g(is)
g(the)g(hashing)h(of)g(a)f(k)o(e)o(y)h Fp(k)h Ft(into)-152
301 y(geographic)h(coordinates.)34 b(Both)23 b(a)f Fs(Put\(\))g
Ft(operation)h(and)g(a)g Fs(Get\(\))f Ft(oper)o(-)-152
388 y(ation)h(on)g(the)g(same)g(k)o(e)o(y)h Fp(k)g Ft(hash)f
Fp(k)h Ft(to)f(the)f(same)i(location.)35 b(A)22 b(k)o(e)o(y-v)n(alue)
-152 475 y(pair)i(is)f(stored)h(at)g(a)f(node)i(in)f(the)f(vicinity)h
(of)g(the)f(location)i(to)e(which)h(its)-152 562 y(k)o(e)o(y)g(hashes.)
35 b(Choosing)24 b(this)e(node)i(consistently)f(is)f(central)h(to)f(b)o
(uilding)-152 649 y(a)c(GHT)-6 b(.)18 b(If)f(we)h(assume)g(a)g
(perfectly)h(static)e(netw)o(ork)i(topology)g(and)g(a)f(net-)-152
737 y(w)o(ork)27 b(routing)f(system)g(that)f(can)h(deli)n(v)o(er)g
(pack)o(ets)h(to)f(positions,)h(such)g(a)-152 824 y(GHT)c(will)f(cause)
i(storage)g(requests)g(and)g(queries)g(for)f(the)h(same)g
Fp(k)g Ft(to)f(be)-152 911 y(routed)c(to)g(the)f(same)h(node,)g(and)g
(will)e(distrib)o(ute)h(the)g(storage)h(request)g(and)-152
998 y(query)h(load)f(for)g(distinct)f Fp(k)i Ft(v)n(alues)g(e)n(v)o
(enly)g(across)f(the)g(area)g(co)o(v)o(ered)g(by)h(a)-152
1085 y(netw)o(ork.)-77 1173 y(The)29 b(service)h(pro)o(vided)h(by)f
(GHT)f(is)g(similar)f(in)i(character)g(to)f(those)-152
1260 y(of)n(fered)k(by)f(other)h(distrib)o(uted)f(hash)g(table)g
(systems)h([6,)i(21,)g(24,)h(25].)-152 1347 y(Ho)n(we)n(v)o(er)m(,)30
b(as)d(is)f(the)i(case)f(with)g(those)g(systems,)i(much)f(of)f(the)g
(nuance)-152 1434 y(to)d(the)f(GHT)g(system)h(design)g(arises)g
(speci\002cally)f(to)h(ensure)g(rob)o(ustness)-152 1521
y(and)18 b(scalability)g(in)f(the)g(f)o(ace)h(of)g(the)f(man)o(y)h
(sorts)f(of)h(f)o(ailures)f(possible)h(in)g(a)-152 1608
y(distrib)o(uted)g(system.)23 b(GHT)17 b(uses)i(a)f(no)o(v)o(el)g
Fp(perimeter)g(r)m(efr)m(esh)h(pr)m(otocol)g Ft(to)-152
1696 y(pro)o(vide)h(both)f(persistence)g(and)h(consistenc)o(y)g(when)f
(nodes)h(f)o(ail)e(or)g(mo)o(v)o(e.)-152 1783 y(This)24
b(protocol)h(replicates)f(stored)h(data)f(for)g(k)o(e)o(y)h
Fp(k)g Ft(at)f(nodes)h(around)h(the)-152 1870 y(location)j(to)e(which)h
Fp(k)h Ft(hashes,)i(and)d(ensures)g(that)g(one)g(node)h(is)e(chosen)
-152 1957 y(consistently)19 b(as)e(the)h Fp(home)g(node)h
Ft(for)e(that)h Fp(k)q Ft(,)g(so)f(that)h(all)f(storage)h(requests)-152
2044 y(and)27 b(queries)g(for)f Fp(k)i Ft(can)e(be)h(routed)g(to)f
(that)g(node.)46 b(Y)-7 b(et)26 b(the)g(protocol)h(is)-152
2131 y(ef)n(\002cient;)h(it)c(typically)i(uses)f(highly)h(local)f
(communication,)j(especially)-152 2219 y(on)23 b(netw)o(orks)g(where)f
(nodes)i(are)e(deplo)o(yed)i(densely)-5 b(.)34 b(By)22
b(hashing)h(k)o(e)o(ys,)-152 2306 y(GHT)k(spreads)i(storage)g(and)f
(communication)i(load)e(between)g(dif)n(ferent)-152 2393
y(k)o(e)o(ys)21 b(e)n(v)o(enly)g(throughout)h(the)e(sensornet.)28
b(When)20 b(man)o(y)h(e)n(v)o(ents)g(with)f(the)-152
2480 y(same)d(k)o(e)o(y)h(are)f(stored,)g(GHT)f(a)o(v)o(oids)g
(creating)h(a)g(hotspot)h(of)e(communica-)-152 2567 y(tion)g(and)h
(storage)f(at)g(their)g(shared)h(home)f(node)h(by)g(emplo)o(ying)g
Fp(structur)m(ed)-152 2654 y(r)m(eplication)p Ft(,)26
b(whereby)f(e)n(v)o(ents)f(that)g(hash)g(to)g(the)g(same)g(home)g(node)
h(can)-152 2742 y(be)20 b(di)n(vided)g(among)g(multiple)e(mirrors.)-152
2924 y Fu(4.)100 b(ALGORITHMS)-77 3032 y Ft(W)-6 b(e)20
b(proceed)j(no)n(w)e(to)g(describe)h(the)e(algorithms)i(that)f
(comprise)g(GHT)-6 b(.)-152 3119 y(GHT)20 b(is)f(b)o(uilt)h(atop)g
(GPSR)f([12,)i(13,)f(14],)h(a)f(geographic)i(routing)e(system)-152
3207 y(for)26 b(multi-hop)g(wireless)f(netw)o(orks.)43
b(After)25 b(brie\003y)g(re)n(vie)n(wing)h(the)g(fea-)-152
3294 y(tures)d(of)g(GPSR')l(s)e(design)j(rele)n(v)n(ant)f(to)g(GHT)-6
b(,)22 b(we)h(identify)g(a)f(pre)n(viously)-152 3381
y(une)o(xploited)e(characteristic)e(of)f(GPSR)g(that)h(allo)n(ws)g(all)
f(pack)o(ets)i(destined)-152 3468 y(for)j(an)g(arbitrary)g(location)g
(\(unoccupied)i(by)e(a)g(node\))h(to)f(be)g(routed)g(con-)-152
3555 y(sistently)28 b(to)g(the)h(same)f(node)h(in)f(the)h(vicinity)f
(of)g(that)g(location.)51 b(GHT)-152 3642 y(le)n(v)o(erages)28
b(this)e(characteristic)h(to)f(route)h(storage)h(requests)f(and)g
(queries)-152 3730 y(for)h(the)g(same)h(k)o(e)o(y)g(to)f(the)g(same)g
(node,)j(despite)e(the)f(ignorance)h(of)g(the)-152 3817
y(hash)i(function)f(that)f(maps)h(k)o(e)o(ys)h(into)e(locations)h(of)g
(the)f(placement)i(of)-152 3904 y(nodes)21 b(in)e(the)h(netw)o(ork.)26
b(W)-6 b(e)19 b(then)h(describe)g(algorithms)g(and)g(implemen-)-152
3991 y(tations)g(of)f(the)g(perimeter)g(refresh)h(protocol)g(and)g
(structured)g(replication,)-152 4078 y(which)e(allo)n(w)f(GHT)g(to)g
(achie)n(v)o(e)i(the)e(DCS)f(design)j(criteria)d(for)i(scalability)-152
4165 y(and)i(rob)o(ustness)g(discussed)g(in)e(the)h(pre)n(vious)i
(section.)-152 4311 y Fu(4.1)99 b(GPSR)-77 4419 y Ft(Under)19
b(GPSR,)e(pack)o(ets)j(are)f(routed)g(geographically)-5
b(.)25 b(All)18 b(pack)o(ets)i(are)-152 4506 y(mark)o(ed)29
b(with)e(the)g Fp(positions)h Ft(of)g(their)f(destinations.)49
b(All)27 b(nodes)i(kno)n(w)-152 4593 y(their)g(o)n(wn)h(positions,)i
(and)d(the)g(positions)h(of)f(the)g(nodes)h(a)f(single)h(hop)-152
4680 y(a)o(w)o(ay)17 b(from)g(them.)23 b(Using)16 b(only)i(this)e
(local)h(kno)n(wledge,)h(GPSR)d(can)i(route)-152 4767
y(a)j(pack)o(et)h(to)e(an)o(y)h(connected)i(destination.)k(There)19
b(are)h(tw)o(o)g(distinct)f(algo-)-152 4855 y(rithms)24
b(GPSR)e(uses)i(for)f(routing:)34 b(a)23 b Fp(gr)m(eedy)i
Ft(forw)o(arding)g(algorithm)f([7])-152 4942 y(that)h(mo)o(v)o(es)g
(pack)o(ets)g(progressi)n(v)o(ely)h(closer)f(to)f(the)h(destination)g
(at)f(each)-152 5029 y(hop,)29 b(and)d(a)g Fp(perimeter)h
Ft(forw)o(arding)g(algorithm)f(that)g(forw)o(ards)h(pack)o(ets)-152
5116 y(where)20 b(greedy)g(forw)o(arding)f(is)g(impossible.)-77
5203 y(The)d(greedy)h(forw)o(arding)f(rule)g(is)f(simple:)22
b(a)16 b(node)h Fp(x)f Ft(forw)o(ards)g(a)g(pack)o(et)-152
5290 y(to)23 b(its)g(neighbor)h Fp(y)f Ft(that)g(is)f(closest)h(to)g
(the)g(destination)h Fp(D)f Ft(mark)o(ed)h(in)f(the)-152
5378 y(pack)o(et,)31 b(so)e(long)f(as)g(that)g(neighbor)i(is)d(closer)i
(to)f Fp(D)f Ft(than)i Fp(x)p Ft(.)51 b(Figure)27 b(1)2040
-69 y(sho)n(ws)20 b(an)g(e)o(xample)h(of)e(greedy)i(forw)o(arding;)g
(the)e(dotted)h(line)g(represents)2040 19 y(the)f(radio)g(range)g(of)g
(node)g Fp(x)p Ft(,)g(and)g(the)g(dashed)h(line)e(the)h(circle)f
(centered)i(at)2040 106 y Fp(D)f Ft(with)f(radius)p 2466
48 88 3 v 20 w Fp(xD)p Ft(.)2115 193 y(Greedy)h(forw)o(arding)g(f)o
(ails)f(when)g(no)h(neighbor)g(is)f(closer)g(than)h Fp(x)f
Ft(to)g(the)2040 280 y(destination.)42 b(Figure)25 b(2)g(sho)n(ws)h(an)
f(e)o(xample)h(topology)g(for)f(greedy)h(for)o(-)2040
367 y(w)o(arding)d(f)o(ailure.)33 b(Here)23 b(again,)g(the)f(dotted)h
(line)f(sho)n(ws)h Fp(x)p Ft(')l(s)f(radio)h(range)2040
454 y(and)c(the)g(dashed)h(line)e(the)h(circle)f(centered)i(at)e
Fp(D)g Ft(of)h(radius)p 3624 397 V 19 w Fp(xD)p Ft(.)k(The)18
b(solid)2040 542 y(lines)28 b(sho)n(w)h(the)f(links)g(that)g(e)o(xist,)
i(as)e(dictated)g(by)h(radio)f(range.)51 b(Note)2040
629 y(that)18 b(tw)o(o)f(paths)h(to)g Fp(D)f Ft(e)o(xist,)h(b)o(ut)f
Fp(x)h Ft(cannot)g(forw)o(ard)h(greedily)f(on)g(either)f(of)2040
716 y(them)g(because)i(both)f(in)m(v)o(olv)o(e)f(temporarily)g(mo)o
(ving)i Fp(farther)e(away)h Ft(than)f Fp(x)2040 803 y
Ft(from)i(the)g(destination.)2115 890 y(GPSR)i(reco)o(v)o(ers)h(from)h
(greedy)g(forw)o(arding)g(f)o(ailure)f(using)h Fp(perimeter)2040
977 y(mode)p Ft(,)j(which)e(amounts)h(to)f(forw)o(arding)g(pack)o(ets)h
(using)g(the)f Fp(right-hand)2040 1065 y(rule)p Ft(.)36
b(Figure)23 b(3)g(demonstrates)i(the)e(right-hand)h(rule:)32
b(upon)24 b(arri)n(ving)g(on)2040 1152 y(an)e(edge)h(at)f(node)h
Fp(x)p Ft(,)f(the)g(pack)o(et)h(is)f(forw)o(arded)h(on)f(the)g(ne)o(xt)
h(edge)f(coun-)2040 1239 y(terclockwise)27 b(about)g
Fp(x)g Ft(from)f(the)h(ingress)g(edge.)46 b(This)26 b(process)i(causes)
2040 1326 y(pack)o(ets)21 b(to)g(tour)f(enclosed)h(f)o(aces)g(as)f(sho)
n(wn;)i(intuiti)n(v)o(ely)-5 b(,)20 b(it)g(is)g(useful)h(for)2040
1413 y(circumna)o(vigating)e(re)o(gions)g(where)g(greedy)g(forw)o
(arding)g(f)o(ails,)f(as)g(in)g(Fig-)2040 1500 y(ure)k(2.)32
b(GPSR)21 b(routes)h(perimeter)g(mode)h(pack)o(ets)g(on)f(a)g(planar)h
(subgraph)2040 1588 y(of)h(the)f(netw)o(ork)h(connecti)n(vity)h(graph,)
g(in)f(which)g(there)f(are)h(no)g(crossing)2040 1675
y(edges.)f(A)15 b(perimeter)g(is)g(a)g(f)o(ace)h(of)f(this)g(planar)g
(graph.)23 b(Bose)16 b Fp(et)e(al.)h Ft([2])g(also)2040
1762 y(present)k(an)f(algorithm)h(that)f(uses)g(planar)h(netw)o(ork)g
(subgraphs)h(to)e(reco)o(v)o(er)2040 1849 y(from)h(greedy)h(forw)o
(arding)g(f)o(ailure.)2115 1936 y(GPSR)j(originates)j(pack)o(ets)g(in)f
(greedy)h(mode,)h(b)o(ut)e(changes)h(them)f(to)2040 2023
y(perimeter)18 b(mode)h(when)g(no)g(neighbor)g(of)g(the)f(forw)o
(arding)h(node)g(is)f(closer)2040 2111 y(to)23 b(the)g(pack)o(et')l(s)i
(destination)e(than)h(the)f(forw)o(arding)h(node)h(itself.)35
b(GPSR)2040 2198 y(returns)24 b(a)f(perimeter)o(-mode)g(pack)o(et)i(to)
e(greedy)h(mode)g(when)g(the)f(pack)o(et)2040 2285 y(reaches)15
b(a)g(node)g(closer)g(to)g(the)f(destination)h(than)g(that)g(at)f
(which)h(the)f(pack)o(et)2040 2372 y(entered)19 b(perimeter)g(mode)g
(\(stored)f(in)h(the)f(pack)o(et\).)24 b(As)18 b(will)f(be)i(sho)n(wn)g
(in)2040 2459 y(the)27 b(ne)o(xt)g(section,)h(our)f(GHT)f(algorithms)h
(use)g(perimeter)f(mode)i(in)e(an-)2040 2547 y(other)m(,)18
b(no)o(v)o(el,)f(w)o(ay)h(to)f(route)h(pack)o(ets)g(that)f(refer)g(to)g
(the)g(same)h(storage)g(k)o(e)o(y)2040 2634 y(to)h(the)g(same)g(node.)
2040 2829 y Fu(4.2)99 b(The)26 b(Home)f(Node)g(and)g(Home)g(P)n
(erimeter)2115 2937 y Ft(GPSR)17 b(w)o(as)i(designed)h(for)f(a)f(netw)o
(ork)i(model)f(where)g(a)g(sender)g(wishes)2040 3024
y(to)14 b(transmit)h(pack)o(ets)g(to)f(a)h(destination)g(node)g(with)f
(a)h(kno)n(wn)h(non-geographic)2040 3111 y(address;)30
b(a)c(sender)g(must)g(map)g(the)g(destination')l(s)h(identi\002er)e(to)
h(its)f(cur)o(-)2040 3198 y(rent)f(location)h(using)f(a)g(location)h
(database,)h(such)e(as)g(GLS)f([16].)39 b(Under)2040
3285 y(GHT)-6 b(,)23 b(ho)n(we)n(v)o(er)m(,)j(the)e(originator)g(of)g
(a)f Fs(Put\(\))g Ft(or)g Fs(Get\(\))h Ft(pack)o(et)h(does)f
Fp(not)2040 3373 y Ft(kno)n(w)i(the)g(identi\002er)e(of)i(the)f(node)h
(that)f(is)g(the)g(e)n(v)o(entual)h(destination)g(of)2040
3460 y(the)g(pack)o(et.)46 b(As)26 b(sk)o(etched)i(in)e(Section)g(3.3,)
i(the)f(originator)f(of)h(a)f Fs(Put\(\))2040 3547 y
Ft(or)19 b Fs(Get\(\))g Ft(for)f(a)h(k)o(e)o(y)h Fp(k)g
Ft(hashes)g(the)f(name)g Fp(k)i Ft(into)e(geographic)h(coordinates)2040
3634 y(that)j(are)h(the)f(destination)i(of)e(the)g(pack)o(et)i(for)e
(that)h(operation.)37 b(The)24 b(hash)2040 3721 y(function)31
b(is)e(ignorant)i(of)f(the)g(placement)h(of)f(indi)n(vidual)h(nodes)g
(in)e(the)2040 3808 y(topology;)d(it)d(merely)g(spreads)h(the)f(dif)n
(ferent)g(k)o(e)o(y)g(names)h(e)n(v)o(enly)g(across)2040
3896 y(the)h(geographic)h(re)o(gion)f(where)g(the)g(netw)o(ork)g(is)f
(deplo)o(yed.)42 b(Thus,)26 b(it)e(is)2040 3983 y(quite)18
b(lik)o(ely)g(that)g(there)g(is)g(no)g(node)h(at)f(the)g(precise)g
(coordinates)i(the)e(hash)2040 4070 y(function)23 b(produces.)34
b(W)-6 b(e)21 b(de\002ne)i(the)f Fp(home)g(node)h Ft(for)f(a)g(GHT)f
(pack)o(et)i(to)2040 4157 y(be)i(the)f(node)h Fp(g)o(eo)o(gr)o
(aphically)i(near)m(est)f Ft(the)e(destination)h(coordinates)g(of)2040
4244 y(the)16 b(pack)o(et.)23 b(The)16 b(home)h(node)g(serv)o(es)g(as)f
(the)g(rendezv)o(ous)h(point)g(for)f Fs(Put\(\))2040
4332 y Ft(and)k Fs(Get\(\))e Ft(operations)i(on)g(the)f(same)g(k)o(e)o
(y)-5 b(.)2115 4419 y(Because)25 b(a)g(GHT)f(pack)o(et)i(is)e(not)h
(addressed)h(to)e(a)h(speci\002c)g(node,)i(b)o(ut)2040
4506 y(rather)20 b(only)h(to)f(a)h(speci\002c)f(location,)h(it)e(is)h
(treated)g(by)h(GPSR)e(as)h(a)g(pack)o(et)2040 4593 y(bound)33
b(for)d(a)h(disconnected)i(destination:)48 b(no)32 b(recei)n(v)o(er)f
(e)n(v)o(er)g(sees)g(the)2040 4680 y(pack)o(et)22 b(addressed)h(to)e
(its)g(o)n(wn)h(identi\002er)l(.)29 b(W)-6 b(e)21 b(observ)o(e)h(that)f
(GPSR)f(will)2040 4767 y(route)15 b(such)g(a)f(pack)o(et)i(to)e(the)h
(appropriate)g(home)g(node.)23 b(GHT)14 b(uses)h(GPSR')l(s)2040
4855 y(perimeter)21 b(mode)h(to)e(\002nd)h(these)g(home)h(nodes.)30
b(Under)21 b(GHT)-6 b(,)20 b(the)h(pack)o(et)2040 4942
y(enters)30 b(perimeter)g(mode)h(at)f(the)g(home)h(node,)i(as)d(no)h
(neighbor)g(of)f(the)2040 5029 y(home)c(node)g(can)g(be)f(closer)g(to)g
(the)g(destination.)42 b(The)25 b(pack)o(et)h(then)g(tra-)2040
5116 y(v)o(erses)21 b(the)f(entire)h(perimeter)f(that)h
Fp(encloses)g Ft(the)f(destination,)i(before)f(re-)2040
5203 y(turning)j(to)f(the)g(home)h(node)h([13].)36 b(W)-6
b(e)22 b(name)i(this)f(perimeter)h(the)f Fp(home)2040
5290 y(perimeter)p Ft(.)63 b(Under)33 b(GHT)-6 b(,)32
b(the)g(home)h(node)g(kno)n(ws)h(to)e(consume)h(the)2040
5378 y(pack)o(et)20 b(when)g(it)e(returns)h(after)g(this)f(tour)h(of)g
(the)g(home)h(perimeter)l(.)p Black Black eop
%%Page: 5 5
5 4 bop Black Black Black -67 520 a @beginspecial 0 @llx
75 @lly 351 @urx 259 @ury 1404 @rwi @clip @setspecial
%%BeginDocument: figs/greedy.eps
%!PS-Adobe-2.0 EPSF-2.0
%%Title: greedy.eps
%%Creator: fig2dev Version 3.2 Patchlevel 1
%%CreationDate: Sun Feb 27 22:56:36 2000
%%For: bkarp@leibniz.aciri.org (Brad Karp)
%%Orientation: Portrait
%%BoundingBox: 0 0 526 409
%%Pages: 0
%%BeginSetup
%%EndSetup
%%Magnification: 1.0000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def

end
save
-2.0 254.0 translate
1 -1 scale

/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
  bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
  4 -2 roll mul srgb} bind def
 /DrawEllipse {
	/endangle exch def
	/startangle exch def
	/yrad exch def
	/xrad exch def
	/y exch def
	/x exch def
	/savematrix mtrx currentmatrix def
	x y tr xrad yrad sc 0 0 1 startangle endangle arc
	closepath
	savematrix setmatrix
	} def

/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
%%EndProlog

$F2psBegin
10 setmiterlimit
n -1000 5224 m -1000 -1000 l 9800 -1000 l 9800 5224 l cp clip
 0.06000 0.06000 sc
/Times-BoldItalic ff 210.00 scf sf
2025 2250 m
gs 1 -1 sc (y) col0 sh gr
7.500 slw
% Ellipse
n 1725 975 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr

% Ellipse
n 975 1125 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr

% Ellipse
n 1725 1425 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr

% Ellipse
n 2625 1200 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr

% Ellipse
n 3975 900 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr

% Ellipse
n 3075 825 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr

% Ellipse
n 4425 1575 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr

% Ellipse
n 3375 1500 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr

% Ellipse
n 3525 1125 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr

% Ellipse
n 3300 1725 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr

 [15 45] 45 sd
1 slc
% Ellipse
n 1275 1650 1230 1230 0 360 DrawEllipse gs col0 s gr
 [] 0 sd
% Ellipse
n 2250 2100 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr

 [60] 0 sd
% Ellipse
n 5400 825 3392 3392 0 360 DrawEllipse gs col0 s gr
 [] 0 sd
% Ellipse
n 1275 1650 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr

% Polyline
0 slc
gs  clippath
2003 1949 m 2100 2025 l 1978 2004 l 2102 2059 l 2126 2004 l cp
clip
n 1425 1725 m 2100 2025 l gs col0 s gr gr

% arrowhead
n 2003 1949 m 2100 2025 l 1978 2004 l  col0 s
/Times-BoldItalic ff 210.00 scf sf
1050 1725 m
gs 1 -1 sc (x) col0 sh gr
/Times-BoldItalic ff 210.00 scf sf
5550 975 m
gs 1 -1 sc (D) col0 sh gr
% Ellipse
n 5400 825 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr

$F2psEnd
rs

%%EndDocument
 @endspecial -152 740 a Fs(Figur)o(e)20 b(1:)25 b(Gr)o(eedy)20
b(F)n(orwarding)g(Example:)26 b Fp(x)-152 827 y Fs(f)n(orwards)20
b(to)f Fp(y)p Fs(,)f(its)g(neighbor)h(closest)g(to)g
Fp(D)p Fs(.)1347 627 y @beginspecial 0 @llx 90 @lly 263
@urx 252 @ury 1404 @rwi @clip @setspecial
%%BeginDocument: figs/void-example.eps
%!PS-Adobe-2.0 EPSF-2.0
%%Title: voiddef.eps
%%Creator: fig2dev Version 3.2 Patchlevel 1
%%CreationDate: Mon Feb 28 01:32:50 2000
%%For: bkarp@leibniz.aciri.org (Brad Karp)
%%Orientation: Portrait
%%BoundingBox: 0 0 263 367
%%Pages: 0
%%BeginSetup
%%EndSetup
%%Magnification: 1.0000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def

end
save
-44.0 254.0 translate
1 -1 scale

/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
  bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
  4 -2 roll mul srgb} bind def
 /DrawEllipse {
	/endangle exch def
	/startangle exch def
	/yrad exch def
	/xrad exch def
	/y exch def
	/x exch def
	/savematrix mtrx currentmatrix def
	x y tr xrad yrad sc 0 0 1 startangle endangle arc
	closepath
	savematrix setmatrix
	} def

/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
%%EndProlog

$F2psBegin
10 setmiterlimit
n -1000 5232 m -1000 -1000 l 6108 -1000 l 6108 5232 l cp clip
 0.06000 0.06000 sc
7.500 slw
 [60] 0 sd
% Ellipse
n 2925 300 2175 2175 0 360 DrawEllipse gs col0 s gr
 [] 0 sd
% Arc
gs n 2924.3 320.5 2159.5 137.6 42.2 arcn
gs 0.75 setgray ef gr gs col0 s gr
 gr

% Ellipse
n 2925 300 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr

% Arc
gs n 2929.6 2456.7 1736.9 -157.1 -23.3 arc
gs 0.75 setgray ef gr gs col0 s gr
 gr

/Times-BoldItalic ff 210.00 scf sf
2700 300 m
gs 1 -1 sc (D) col0 sh gr
/Times-BoldItalic ff 210.00 scf sf
1650 825 m
gs 1 -1 sc (v) col0 sh gr
/Times-BoldItalic ff 210.00 scf sf
4125 825 m
gs 1 -1 sc (z) col0 sh gr
/Times-BoldItalic ff 210.00 scf sf
1350 2250 m
gs 1 -1 sc (w) col0 sh gr
% Ellipse
n 4500 2100 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr

% Ellipse
n 1350 2025 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr

% Ellipse
n 1800 900 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr

% Ellipse
n 4050 900 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr

 [15 45] 45 sd
1 slc
% Ellipse
n 2925 2475 1749 1749 0 360 DrawEllipse gs col0 s gr
 [] 0 sd
% Polyline
0 slc
n 4500 2100 m 4050 900 l gs col0 s gr 
% Polyline
n 4050 900 m 2925 300 l gs col0 s gr 
% Polyline
n 1350 2025 m 1800 900 l gs col0 s gr 
% Polyline
n 1800 900 m 2925 300 l gs col0 s gr 
/Times-BoldItalic ff 210.00 scf sf
2850 2700 m
gs 1 -1 sc (x) col0 sh gr
/Times-BoldItalic ff 210.00 scf sf
4425 2325 m
gs 1 -1 sc (y) col0 sh gr
% Ellipse
n 2925 2475 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr

% Polyline
n 2925 2475 m 4500 2100 l gs col0 s gr 
/Times-Bold ff 210.00 scf sf
2700 1500 m
gs 1 -1 sc (void) col0 sh gr
% Polyline
n 1350 2025 m 2925 2475 l gs col0 s gr 
$F2psEnd
rs

%%EndDocument
 @endspecial 1262 847 a(Figur)o(e)24 b(2:)35 b(V)-7 b(oid)24
b(Example:)36 b Fp(x)25 b Fs(has)f(no)h(neigh-)1262 934
y(bor)19 b(closer)g(to)g Fp(D)p Fs(.)2910 552 y @beginspecial
0 @llx 0 @lly 155 @urx 115 @ury 1044 @rwi @setspecial
%%BeginDocument: figs/rhr-example.eps
%!PS-Adobe-2.0 EPSF-2.0
%%Title: rhr.eps
%%Creator: fig2dev Version 3.2 Patchlevel 1
%%CreationDate: Mon Feb 28 22:54:32 2000
%%For: bkarp@leibniz.aciri.org (Brad Karp)
%%Orientation: Portrait
%%BoundingBox: 0 0 155 115
%%Pages: 0
%%BeginSetup
%%EndSetup
%%Magnification: 1.0000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def

end
save
-54.0 142.0 translate
1 -1 scale

/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
  bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
  4 -2 roll mul srgb} bind def
 /DrawEllipse {
	/endangle exch def
	/startangle exch def
	/yrad exch def
	/xrad exch def
	/y exch def
	/x exch def
	/savematrix mtrx currentmatrix def
	x y tr xrad yrad sc 0 0 1 startangle endangle arc
	closepath
	savematrix setmatrix
	} def

/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
%%EndProlog

$F2psBegin
10 setmiterlimit
n -1000 3365 m -1000 -1000 l 4467 -1000 l 4467 3365 l cp clip
 0.06000 0.06000 sc
/Times-BoldItalic ff 210.00 scf sf
2025 2325 m
gs 1 -1 sc (y) col0 sh gr
7.500 slw
% Ellipse
n 2100 2025 106 106 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr

% Ellipse
n 3150 975 106 106 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr

% Polyline
n 1200 975 m 3150 975 l gs 0.00 setgray ef gr gs col0 s gr 
% Polyline
n 3150 975 m 2100 2025 l gs 0.00 setgray ef gr gs col0 s gr 
% Polyline
n 1200 975 m 2100 2025 l gs 0.00 setgray ef gr gs col0 s gr 
% Polyline
 [60] 0 sd
gs  clippath
1030 1236 m 975 1125 l 1076 1197 l 988 1094 l 942 1133 l cp
clip
n 1875 2175 m 975 1125 l gs col0 s gr gr
 [] 0 sd
% arrowhead
n 1030 1236 m 975 1125 l 1076 1197 l 1053 1216 l 1030 1236 l  cp gs 0.00 setgray ef gr  col0 s
% Polyline
 [60] 0 sd
gs  clippath
2955 645 m 3075 675 l 2955 705 l 3090 705 l 3090 645 l cp
clip
n 1200 675 m 3075 675 l gs col0 s gr gr
 [] 0 sd
% arrowhead
n 2955 645 m 3075 675 l 2955 705 l 2955 675 l 2955 645 l  cp gs 0.00 setgray ef gr  col0 s
% Polyline
 [60] 0 sd
gs  clippath
2429 2108 m 2325 2175 l 2385 2067 l 2293 2165 l 2337 2206 l cp
clip
n 3375 1050 m 2325 2175 l gs col0 s gr gr
 [] 0 sd
% arrowhead
n 2429 2108 m 2325 2175 l 2385 2067 l 2407 2087 l 2429 2108 l  cp gs 0.00 setgray ef gr  col0 s
% Polyline
gs  clippath
1507 1133 m 1470 1015 l 1558 1102 l 1488 987 l 1437 1018 l cp
clip
n 1470 1240 m 1471 1240 l 1474 1238 l 1481 1233 l 1492 1226 l 1505 1216 l
 1518 1206 l 1530 1196 l 1538 1186 l 1543 1176 l 1545 1165 l
 1544 1155 l 1540 1143 l 1534 1129 l 1526 1112 l 1516 1093 l
 1505 1074 l 1494 1055 l 1484 1038 l 1470 1015 l gs col0 s gr gr

% arrowhead
n 1507 1133 m 1470 1015 l 1558 1102 l 1532 1118 l 1507 1133 l  cp gs 0.00 setgray ef gr  col0 s
% Polyline
gs  clippath
2111 1794 m 1993 1831 l 2080 1743 l 1965 1813 l 1996 1864 l cp
clip
n 2218 1831 m 2218 1830 l 2216 1827 l 2211 1820 l 2204 1809 l 2194 1796 l
 2184 1783 l 2174 1771 l 2164 1763 l 2154 1758 l 2143 1756 l
 2133 1757 l 2121 1761 l 2107 1767 l 2090 1775 l 2071 1785 l
 2052 1796 l 2033 1807 l 2016 1817 l 1993 1831 l gs col0 s gr gr

% arrowhead
n 2111 1794 m 1993 1831 l 2080 1743 l 2096 1769 l 2111 1794 l  cp gs 0.00 setgray ef gr  col0 s
% Polyline
gs  clippath
2789 1099 m 2826 1217 l 2738 1130 l 2808 1245 l 2859 1214 l cp
clip
n 2826 992 m 2825 992 l 2822 994 l 2815 999 l 2804 1006 l 2791 1016 l
 2778 1026 l 2766 1036 l 2758 1046 l 2753 1056 l 2751 1067 l
 2752 1077 l 2756 1089 l 2762 1103 l 2770 1120 l 2780 1139 l
 2791 1158 l 2802 1177 l 2812 1194 l 2826 1217 l gs col0 s gr gr

% arrowhead
n 2789 1099 m 2826 1217 l 2738 1130 l 2764 1114 l 2789 1099 l  cp gs 0.00 setgray ef gr  col0 s
/Times-Bold ff 210.00 scf sf
3000 1650 m
gs 1 -1 sc (3.) col0 sh gr
/Times-Bold ff 210.00 scf sf
1200 1725 m
gs 1 -1 sc (1.) col0 sh gr
/Times-Bold ff 210.00 scf sf
2025 600 m
gs 1 -1 sc (2.) col0 sh gr
/Times-BoldItalic ff 210.00 scf sf
900 900 m
gs 1 -1 sc (x) col0 sh gr
/Times-BoldItalic ff 210.00 scf sf
3375 825 m
gs 1 -1 sc (z) col0 sh gr
% Ellipse
n 1200 975 106 106 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr

$F2psEnd
rs

%%EndDocument
 @endspecial 2676 772 a(Figur)o(e)51 b(3:)89 b(Right-hand)50
b(Rule)i(Example:)2676 859 y(P)o(ack)o(ets)36 b(tra)n(v)o(el)h
(clockwise)e(ar)o(ound)g(the)g(en-)2676 946 y(closed)19
b(r)o(egion.)p Black -77 1194 a Ft(W)m(ith)25 b(only)h(the)g(home)g
(node)h(binding)g(mechanism)f(we')l(v)o(e)h(described)-152
1281 y(thus)g(f)o(ar)m(,)h(GHT)e(will)f(w)o(ork)i(on)g(static)f(netw)o
(ork)i(topologies.)46 b(Note)27 b(that)-152 1368 y(when)j(the)g(netw)o
(ork)h(topology)g(changes)g(after)e(node)h(f)o(ailures,)i(deplo)o(y-)
-152 1455 y(ment)21 b(of)f(ne)n(w)h(nodes,)h(or)e(mobility)-5
b(,)21 b(the)g(identity)f(of)h(the)f(home)h(node)h(and)-152
1543 y(membership)f(of)e(the)g(home)h(perimeter)f(may)h(change.)25
b(But)19 b(for)g(an)o(y)h(snap-)-152 1630 y(shot)c(of)f(the)g(netw)o
(ork)g(topology)-5 b(,)17 b(there)f(e)o(xist)e(a)h(home)h(node)g(and)f
(enclosing)-152 1717 y(home)22 b(perimeter)f(for)g(e)n(v)o(ery)h
(location)g(in)f(the)g(netw)o(ork.)31 b(T)-6 b(o)20 b(of)n(fer)i
(persis-)-152 1804 y(tence)g(and)g(consistenc)o(y)h(under)f(the)f
(topological)i(dynamics)f(that)g(sensor)o(-)-152 1891
y(nets)15 b(are)g(sure)g(to)g(e)o(xhibit,)g(GHT)f(needs)i(a)f(protocol)
g(to)g(replicate)g(k)o(e)o(y-v)n(alue)-152 1979 y(pairs,)21
b(and)g(re-associate)f(them)h(with)f(the)g(appropriate)i(home)f(node)g
(when)-152 2066 y(the)e(topology)i(changes.)-152 2219
y Fu(4.3)99 b(P)n(erimeter)26 b(Refr)n(esh)g(Pr)n(otocol)-77
2327 y Ft(GHT)h(uses)g(the)h Fp(perimeter)f(r)m(efr)m(esh)i(pr)m
(otocol)f Ft(\(PRP\))d(to)j(accomplish)-152 2414 y(replication)21
b(of)f(k)o(e)o(y-v)n(alue)i(pairs)e(and)g(their)g(consistent)h
(placement)g(at)f(the)-152 2501 y(appropriate)j(home)g(nodes)f(when)h
(the)e(netw)o(ork)i(topology)g(changes.)33 b(Re-)-152
2588 y(call)15 b(that)g(GHT)f(routes)i(all)e(pack)o(ets)i(on)g(a)f
(tour)g(of)g(the)g(home)h(perimeter)f(that)-152 2675
y(encloses)25 b(a)e(destination)i(location.)37 b(PRP)23
b(stores)g(a)h(cop)o(y)h(of)e(a)h(k)o(e)o(y-v)n(alue)-152
2762 y(pair)19 b(at)g Fp(eac)o(h)g(node)h(on)g(the)f(home)g(perimeter)
-8 b(.)-77 2850 y Ft(PRP)25 b(distinguishes)i(between)g(the)f(home)h
(node)g(and)g(other)f(nodes)h(on)-152 2937 y(the)g(home)g(perimeter)m
(,)g(the)g Fp(r)m(eplica)f(nodes.)46 b Ft(A)26 b(node)h(becomes)h(a)e
(home)-152 3024 y(node)d(for)e(a)h(particular)g(k)o(e)o(y)g(when)g(the)
g Fs(Put\(\))e Ft(pack)o(et)i(arri)n(v)o(es)g(after)f(com-)-152
3111 y(pleting)d(its)g(tour)g(of)f(the)h(home)h(perimeter)l(.)j(\(This)
c(condition)h(is)e(detectable)-152 3198 y(because)27
b(GPSR)d(writes)g(the)i(identity)f(of)h(the)f(\002rst)f(edge)i(a)g
(pack)o(et)g(tak)o(es)-152 3285 y(on)d(a)g(perimeter)f(into)h(the)f
(pack)o(et;)j(the)e(perimeter)f(has)h(been)g(toured)h(pre-)-152
3373 y(cisely)30 b(when)h(the)e(pack)o(et)i(arri)n(v)o(es)f(in)g
(perimeter)g(mode)g(and)h(w)o(ould)f(be)-152 3460 y(forw)o(arded)23
b(ne)o(xt)g(on)f(the)g(same)h(directed)f(edge)h(written)f(in)f(the)i
(pack)o(et)g(as)-152 3547 y(the)c(\002rst)f(perimeter)h(edge)h(tak)o
(en.\))-77 3634 y(PRP)g(generates)i Fp(r)m(efr)m(esh)f(pac)o(k)o(ets)h
Ft(periodically)g(using)f(a)g(simple)g(timer)-152 3721
y(scheme.)45 b(Ev)o(ery)27 b Fp(T)375 3735 y Ff(h)433
3721 y Ft(seconds,)i(the)d(home)h(node)g(for)f(a)g(k)o(e)o(y)h
(generates)g(a)-152 3808 y(refresh)g(pack)o(et)i(addressed)f(to)f(the)g
(hashed)h(location)g(of)f(that)f(k)o(e)o(y)-5 b(.)49
b(The)-152 3896 y(refresh)24 b(contains)g(the)f(data)h(stored)g(for)f
(that)g(k)o(e)o(y)-5 b(,)25 b(and)f(is)f(routed)h(e)o(xactly)-152
3983 y(as)15 b(are)g Fs(Get\(\))g Ft(and)h Fs(Put\(\))d
Ft(pack)o(ets)j(in)f(GHT)-6 b(.)15 b(Thus,)g(the)g(refresh)h(pack)o(et)
g(will)-152 4070 y(tak)o(e)j(a)f(tour)g(of)g(the)h(current)f(home)h
(perimeter)f(for)g(that)g(k)o(e)o(y)-5 b(,)19 b(re)o(gardless)g(of)-152
4157 y(changes)i(in)d(the)h(netw)o(ork)h(topology)h(since)e(that)g(k)o
(e)o(y')l(s)g(insertion.)-77 4244 y(When)k(a)f(refresh)g(pack)o(et)i
(arri)n(v)o(es)e(at)g(a)g(node,)i(there)f(are)f(tw)o(o)g(possibil-)-152
4332 y(ities:)31 b(either)22 b(the)h(recei)n(v)o(er)g(is)g(closer)g(to)
f(the)h(destination)h(than)f(the)g(origi-)-152 4419 y(nator)m(,)h(in)f
(which)h(case)f(the)g(recei)n(v)o(er)h(consumes)g(the)g(refresh)f(pack)
o(et)h(and)-152 4506 y(initiates)16 b(its)h(o)n(wn;)g(or)g(the)g(recei)
n(v)o(er)g(is)f(not,)h(in)g(which)g(case)g(it)f(forw)o(ards)i(the)-152
4593 y(refresh)26 b(pack)o(et)g(in)e(perimeter)i(mode.)42
b(In)25 b(both)g(cases,)i(the)e(recei)n(v)o(er)g(ap-)-152
4680 y(pends)18 b(an)o(y)f(additional)h(k)o(e)o(y-v)n(alue)g(pairs)f
(it)f(has)h(stored)g(for)g(that)f(k)o(e)o(y)i(to)f(the)-152
4767 y(refresh)j(pack)o(et.)28 b(When)20 b(a)g(refresh)g(pack)o(et)h
(returns)f(to)g(its)g(originator)m(,)g(and)-152 4855
y(that)26 b(node)i(w)o(as)e(not)h(pre)n(viously)h(the)e(home)h(node)g
(for)g(that)f(k)o(e)o(y)-5 b(,)28 b(it)e(con-)-152 4942
y(sumes)g(the)f(refresh)g(pack)o(et,)i(and)e(transitions)g(to)g(being)h
(the)f(home)h(node)-152 5029 y(for)19 b(that)h(k)o(e)o(y)-5
b(.)25 b(That)19 b(is,)f(the)i(ne)n(w)f(home)h(node)g(sets)g(its)e(o)n
(wn)i(refresh)f(timer)m(,)-152 5116 y(and)f(subsequently)g(originates)g
(refreshes)f(for)f(that)h(k)o(e)o(y)-5 b(.)23 b(This)17
b(mechanism)-152 5203 y(pro)o(vides)28 b(the)f(design)g(goal)g(of)g
(consistenc)o(y:)40 b(it)26 b(ensures)h(that)g(the)g(node)-152
5290 y(closest)19 b(to)e(a)h(k)o(e)o(y')l(s)h(hash)g(location)f(will)g
(become)h(the)f(home)h(node)g(for)f(that)-152 5378 y(k)o(e)o(y)i(and)g
(store)f(that)f(k)o(e)o(y')l(s)i(data)f(after)g(topological)g(changes.)
2115 1194 y(When)f(a)g(replica)g(node)h(recei)n(v)o(es)g(a)f(refresh)g
(pack)o(et)h(it)e(didn')o(t)h(originate,)2040 1281 y(it)k(caches)i(the)
f(data)g(in)g(the)g(refresh,)h(and)g(sets)e(a)h(tak)o(eo)o(v)o(er)h
(timer)f(for)g(that)2040 1368 y(k)o(e)o(y)-5 b(,)26 b
Fp(T)2220 1379 y Ff(t)2244 1368 y Ft(.)38 b(This)24 b(timer)g(is)f
(reset)h(e)n(v)o(ery)h(time)f(a)g(refresh)g(for)g(that)g(k)o(e)o(y)h
(from)2040 1455 y(another)16 b(node)g(arri)n(v)o(es.)21
b(Should)16 b(the)f(timer)f(e)o(xpire,)i(the)f(replica)f(node)i(initi-)
2040 1543 y(ates)g(a)f(refresh)h(for)g(that)f(k)o(e)o(y)i(and)f(its)f
(data,)h(addressed)h(to)f(the)g(k)o(e)o(y')l(s)g(hashed)2040
1630 y(location.)26 b(The)19 b(replica)h(nodes)g(and)h(tak)o(eo)o(v)o
(er)f(timer)f(pro)o(vide)i(persistence)2040 1717 y(when)k(nodes)h(f)o
(ail.)40 b(When)25 b(the)g(home)g(node)h(for)f(a)f(k)o(e)o(y)i(f)o
(ails,)f(its)f(replica)2040 1804 y(nodes)c(will)e(note)i(the)f(absence)
i(of)e(refreshes)g(for)g(that)g(k)o(e)o(y)h(from)f(its)g(home)2040
1891 y(node,)h(and)h(step)e(forw)o(ard)h(to)f(initiate)g(refreshes.)25
b(A)19 b(replica)h(node)g(may)g(or)2040 1979 y(may)j(not)f(itself)g(be)
g(the)g(ne)n(w)h(home)g(node;)h(the)f(GHT)e(routing)i(procedure)2040
2066 y(causes)d(the)f(refresh)g(to)g(reach)g(the)g(ne)n(w)g(home)h
(node.)2115 2153 y(All)g(nodes)j(that)e(hold)h(data)g(for)f(a)g(k)o(e)o
(y)-5 b(,)23 b(both)f(home)g(nodes)g(and)g(replica)2040
2240 y(nodes,)29 b(e)o(xpire)e(k)o(e)o(ys)h(the)o(y)e(cache)i(when)f
(the)f(death)i(timer)m(,)f Fp(T)3716 2254 y Ff(d)3752
2240 y Ft(,)h(e)o(xpires.)2040 2327 y(The)22 b(death)h(timer)f(is)g
(reset)g(e)n(v)o(ery)h(time)f(a)g(node)h(recei)n(v)o(es)g(a)f(refresh)g
(mes-)2040 2414 y(sage)16 b(for)g(that)f(k)o(e)o(y)-5
b(,)17 b(whether)f(from)g(itself)e(or)i(from)f(another)i(node.)23
b(Clearly)-5 b(,)2040 2502 y Fp(T)2076 2516 y Ff(d)2134
2502 y Fk(>)22 b Fp(T)2250 2516 y Ff(h)2311 2502 y Ft(and)29
b Fp(T)2482 2513 y Ff(t)2527 2502 y Fk(>)22 b Fp(T)2643
2516 y Ff(h)2676 2502 y Ft(.)51 b(That)28 b(is,)i(a)e(home)h(node)g(e)o
(xpires)g(a)f(k)o(e)o(y-v)n(alue)2040 2589 y(pair)h(after)g(f)o(ailing)
g(to)g(recei)n(v)o(e)h(back)f(multiple)g(refreshes)h(it)e(originates,)
2040 2676 y(and)d(a)e(replica)h(node)h(w)o(aits)e(for)h(multiple)g
(home)g(node)h(refresh)f(interv)n(als)2040 2763 y(to)i(elapse)h(before)
g(stepping)g(forw)o(ard)g(to)f(send)i(a)e(refresh)g(for)h(it.)44
b(These)2040 2850 y(choices)22 b(of)g(timer)f(v)n(alues)h(mak)o(e)g
(the)g(PRP)e(rob)o(ust)i(against)f(episodic)h(loss)2040
2937 y(of)33 b(its)f(refresh)h(pack)o(ets.)66 b(In)33
b(the)g(GHT)f(system)h(we)f(e)n(v)n(aluate)i(herein,)2040
3025 y Fp(T)2076 3039 y Ff(d)2129 3025 y Fj(=)17 b Ft(3)p
Fp(T)2277 3039 y Ff(h)2310 3025 y Ft(,)h(and)i Fp(T)2509
3036 y Ff(t)2549 3025 y Fj(=)d Ft(2)p Fp(T)2697 3039
y Ff(h)2730 3025 y Ft(.)2115 3112 y(Figures)e(4)g(through)h(6)f(sho)n
(w)g(an)g(e)o(xample)h(of)f(the)g(operation)h(of)e(the)h(PRP)-8
b(.)2040 3199 y(Here,)28 b(k)o(e)o(y)f Fp(k)g Ft(hashes)g(to)f
(location)h Fp(L)p Ft(.)44 b(After)25 b(a)h Fs(Put\(\))f
Ft(of)h Fj(\()p Fp(k)q Fk(;)8 b Fp(v)p Fj(\))p Ft(,)28
b(node)f Fp(a)2040 3286 y Ft(becomes)20 b(the)f(home)h(node,)g(and)g
(sends)f(a)g(refresh)h(to)f Fp(L)f Ft(containing)i Fj(\()p
Fp(k)q Fk(;)8 b Fp(v)p Fj(\))p Ft(.)2040 3373 y(Figure)25
b(4)h(sho)n(ws)g(the)f(home)h(perimeter)g(enclosing)g
Fp(L)f Ft(after)g(this)g(refresh)2040 3460 y(has)c(returned)f(to)g
Fp(a)p Ft(.)27 b(Suppose)21 b(that)f(node)h Fp(a)f Ft(f)o(ails.)26
b(After)20 b(time)g Fp(T)3755 3471 y Ff(t)3798 3460 y
Ft(elapses,)2040 3548 y(during)29 b(which)g(node)g Fp(d)j
Ft(recei)n(v)o(es)d(no)f(refreshes)h(from)f(node)h Fp(a)p
Ft(,)h(node)f Fp(d)2040 3635 y Ft(sends)c(a)f(refresh)g(to)g
Fp(L)f Ft(containing)i Fj(\()p Fp(k)q Fk(;)8 b Fp(v)p
Fj(\))p Ft(,)25 b(as)f(sho)n(wn)h(in)f(Figure)g(5.)38
b(This)2040 3722 y(refresh)21 b(is)f(deli)n(v)o(ered)i(to)f(node)32
b Fp(f)11 b Ft(,)21 b(which)g(becomes)h(the)f(ne)n(w)g(home)g(node)2040
3809 y(for)c Fj(\()p Fp(k)q Fk(;)8 b Fp(v)p Fj(\))p Ft(.)23
b(Figure)17 b(6)h(sho)n(ws)g(the)f(netw)o(ork)h(after)28
b Fp(f)g Ft(has)18 b(sent)f(a)g(refresh)h(that)2040 3896
y(has)26 b(returned)h(to)e(it,)i(and)f(the)g(replicas)g(it)f(has)h
(recruited)g(along)g(the)g(ne)n(w)2040 3983 y(home)20
b(perimeter)f(about)h Fp(L)p Ft(.)2115 4071 y(It)i(is)h(important)g(to)
g(note)g(that)g(the)g(PRP)f(typically)h(generates)h(v)o(ery)g(lo-)2040
4158 y(cal)e(netw)o(ork)h(traf)n(\002c.)31 b(On)23 b(dense)f(netw)o
(orks,)i(perimeters)e(are)g(quite)g(short)2040 4245 y(\(most)15
b(perimeters)f(in)g(a)h(dense)g(netw)o(ork)g(are)g(three)f(hops)i(in)e
(length\).)22 b(When)2040 4332 y(a)27 b(home)i(node)f(mo)o(v)o(es,)i
(the)d(refreshes)h(it)f(generates)h(w)o(on')o(t)g(ha)o(v)o(e)f(f)o(ar)g
(to)2040 4419 y(tra)o(v)o(el)i(before)i(reaching)g(the)f(home)h
(perimeter)m(,)h(under)f(reasonable)h(as-)2040 4507 y(sumptions)f(of)g
(mobility)f(rate)g(and)h(radio)g(range)g(\(that)f(is,)j(that)d(a)g
(node)2040 4594 y(doesn')o(t)19 b(mo)o(v)o(e)h(man)o(y)f(radio)h
(ranges)f(in)g(a)g(period)h(shorter)f(than)g Fp(T)3777
4608 y Ff(h)3810 4594 y Ft(\).)2115 4681 y(The)h(PRP)f(also)h(includes)
h(a)f Fp(join)h(optimization)p Ft(,)f(which)h(impro)o(v)o(es)g(per)o(-)
2040 4768 y(formance)29 b(on)f(dynamic)h(topologies.)51
b(When)29 b(a)e(node)i Fp(A)f Ft(senses)g(a)g(ne)n(w)2040
4855 y(neighbor)18 b Fp(B)p Ft(,)e Fp(A)g Ft(sends)i
Fp(B)d Ft(all)i(those)g(e)n(v)o(ent)g(entries)f(from)h(its)f(local)g
(database)2040 4942 y(for)j(which)g Fp(B)f Ft(is)h(closer)g(to)g(the)f
(e)n(v)o(ent)i(destination)g(than)f Fp(A)p Ft(,)f(and)h(for)g(which)
2040 5030 y Fp(A)i Ft(is)g(the)h(closest)g(of)g(its)f(neighbors)i(to)e
(that)h(e)n(v)o(ent)g(destination.)32 b(This)21 b(op-)2040
5117 y(timization)k(trades)h(of)n(f)f(increased)i(communication)g(for)e
(more)h(rapid)g(re-)2040 5204 y(establishment)20 b(of)f(a)g(consistent)
g(home)h(node)g(when)f(nodes)h(f)o(ail)f(or)g(mo)o(v)o(e.)p
Black Black eop
%%Page: 6 6
6 5 bop Black Black Black -118 814 a @beginspecial 0
@llx 0 @lly 128 @urx 97 @ury 1526 @rwi @setspecial
%%BeginDocument: figs/prpbasic.eps
%!PS-Adobe-2.0 EPSF-2.0
%%Title: prpbasic.eps
%%Creator: fig2dev Version 3.2.3 Patchlevel 
%%CreationDate: Mon Jun  3 18:19:39 2002
%%For: bkarp@pynchon.icsi.berkeley.edu (Brad Karp)
%%BoundingBox: 0 0 128 97
%%Magnification: 1.0000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def

end
save
newpath 0 97 moveto 0 0 lineto 128 0 lineto 128 97 lineto closepath clip newpath
-48.0 239.0 translate
1 -1 scale

/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
  bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
  4 -2 roll mul srgb} bind def
 /DrawEllipse {
	/endangle exch def
	/startangle exch def
	/yrad exch def
	/xrad exch def
	/y exch def
	/x exch def
	/savematrix mtrx currentmatrix def
	x y tr xrad yrad sc 0 0 1 startangle endangle arc
	closepath
	savematrix setmatrix
	} def

/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def

$F2psBegin
%%Page: 1 1
10 setmiterlimit
 0.06000 0.06000 sc
/Times-Bold ff 180.00 scf sf
2225 2520 m
gs 1 -1 sc (\(replica\)) col0 sh gr
% Polyline
7.500 slw
n 1275 2775 m
 2325 2625 l gs 0.00 setgray ef gr gs col0 s gr 
% Polyline
n 2325 2625 m
 1875 3375 l gs 0.00 setgray ef gr gs col0 s gr 
% Polyline
n 1275 2775 m
 1875 3375 l gs 0.00 setgray ef gr gs col0 s gr 
% Polyline
n 1875 3375 m
 2250 3225 l gs 0.00 setgray ef gr gs col0 s gr 
% Polyline
n 2250 3225 m
 2325 2625 l gs 0.00 setgray ef gr gs col0 s gr 
% Polyline
n 1875 3375 m
 1950 3825 l gs 0.00 setgray ef gr gs col0 s gr 
% Polyline
n 1950 3825 m
 2250 3225 l gs 0.00 setgray ef gr gs col0 s gr 
% Polyline
n 1275 2775 m
 1275 3600 l gs 0.00 setgray ef gr gs col0 s gr 
% Polyline
n 1275 3600 m
 1950 3825 l gs 0.00 setgray ef gr gs col0 s gr 
/Times-BoldItalic ff 210.00 scf sf
1200 2775 m
gs 1 -1 sc (d) col0 sh gr
/Times-BoldItalic ff 210.00 scf sf
2325 2625 m
gs 1 -1 sc (e) col0 sh gr
/Times-BoldItalic ff 210.00 scf sf
2250 3300 m
gs 1 -1 sc (f) col0 sh gr
/Times-BoldItalic ff 210.00 scf sf
1950 3975 m
gs 1 -1 sc (b) col0 sh gr
/Times-BoldItalic ff 210.00 scf sf
1200 3750 m
gs 1 -1 sc (c) col0 sh gr
/Times-BoldItalic ff 210.00 scf sf
1725 3450 m
gs 1 -1 sc (a) col0 sh gr
/Times-BoldItalic ff 210.00 scf sf
1800 3075 m
gs 1 -1 sc (L) col0 sh gr
/Times-Bold ff 180.00 scf sf
1345 3570 m
gs 1 -1 sc (\(home\)) col0 sh gr
/Times-Bold ff 180.00 scf sf
800 2615 m
gs 1 -1 sc (\(replica\)) col0 sh gr
% Ellipse
n 1875 3150 34 34 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr

$F2psEnd
rs

%%EndDocument
 @endspecial -152 984 a Fs(Figur)o(e)25 b(4:)37 b(K)n(ey)27
b(stor)o(ed)e(at)h(location)f Fp(L)p Fs(,)i(home)-152
1071 y(node)41 b Fp(a)p Fs(,)47 b(r)o(eplicas)40 b Fp(d)46
b Fs(and)40 b Fp(e)h Fs(on)g(the)g(home)-152 1158 y(perimeter)-7
b(.)1296 814 y @beginspecial 0 @llx 0 @lly 128 @urx 97
@ury 1526 @rwi @setspecial
%%BeginDocument: figs/prptakeover.eps
%!PS-Adobe-2.0 EPSF-2.0
%%Title: prptakeover.eps
%%Creator: fig2dev Version 3.2.3 Patchlevel 
%%CreationDate: Mon Jun  3 18:23:11 2002
%%For: bkarp@pynchon.icsi.berkeley.edu (Brad Karp)
%%BoundingBox: 0 0 128 97
%%Magnification: 1.0000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def

end
save
newpath 0 97 moveto 0 0 lineto 128 0 lineto 128 97 lineto closepath clip newpath
-48.0 239.0 translate
1 -1 scale

/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
  bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
  4 -2 roll mul srgb} bind def
 /DrawEllipse {
	/endangle exch def
	/startangle exch def
	/yrad exch def
	/xrad exch def
	/y exch def
	/x exch def
	/savematrix mtrx currentmatrix def
	x y tr xrad yrad sc 0 0 1 startangle endangle arc
	closepath
	savematrix setmatrix
	} def

/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def

$F2psBegin
%%Page: 1 1
10 setmiterlimit
 0.06000 0.06000 sc
/Times-Bold ff 180.00 scf sf
2225 2520 m
gs 1 -1 sc (\(replica\)) col0 sh gr
% Polyline
7.500 slw
n 1275 2775 m
 2325 2625 l gs 0.00 setgray ef gr gs col0 s gr 
% Polyline
n 2250 3225 m
 2325 2625 l gs 0.00 setgray ef gr gs col0 s gr 
% Polyline
n 1950 3825 m
 2250 3225 l gs 0.00 setgray ef gr gs col0 s gr 
% Polyline
n 1275 2775 m
 1275 3600 l gs 0.00 setgray ef gr gs col0 s gr 
% Polyline
n 1275 3600 m
 1950 3825 l gs 0.00 setgray ef gr gs col0 s gr 
% Polyline
gs  clippath
2244 2607 m 2235 2548 l 2085 2570 l 2209 2582 l 2094 2629 l cp
eoclip
n 1335 2715 m
 2225 2580 l gs 0.00 setgray ef gr gs col0 s gr gr

% arrowhead
n 2094 2629 m 2209 2582 l 2085 2570 l  col0 s
% Polyline
gs  clippath
2358 3126 m 2418 3132 l 2433 2982 l 2392 3099 l 2374 2976 l cp
eoclip
n 2440 2615 m
 2390 3115 l gs 0.00 setgray ef gr gs col0 s gr gr

% arrowhead
n 2374 2976 m 2392 3099 l 2433 2982 l  col0 s
/Times-BoldItalic ff 210.00 scf sf
1200 2775 m
gs 1 -1 sc (d) col0 sh gr
/Times-BoldItalic ff 210.00 scf sf
2325 2625 m
gs 1 -1 sc (e) col0 sh gr
/Times-BoldItalic ff 210.00 scf sf
2250 3300 m
gs 1 -1 sc (f) col0 sh gr
/Times-BoldItalic ff 210.00 scf sf
1950 3975 m
gs 1 -1 sc (b) col0 sh gr
/Times-BoldItalic ff 210.00 scf sf
1200 3750 m
gs 1 -1 sc (c) col0 sh gr
/Times-BoldItalic ff 210.00 scf sf
1800 3075 m
gs 1 -1 sc (L) col0 sh gr
/Times-Bold ff 180.00 scf sf
800 2615 m
gs 1 -1 sc (\(replica\)) col0 sh gr
% Ellipse
n 1875 3150 34 34 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr

$F2psEnd
rs

%%EndDocument
 @endspecial 1262 984 a(Figur)o(e)15 b(5:)21 b(T)o(ime)15
b Fp(T)1786 995 y Ff(t)1825 984 y Fs(after)h(node)e Fp(a)i
Fs(fails,)f(r)o(eplica)1262 1071 y Fp(d)23 b Fs(initiates)18
b(a)h(r)o(efr)o(esh)f(f)n(or)h Fp(L)p Fs(.)2709 814 y
@beginspecial 0 @llx 0 @lly 141 @urx 107 @ury 1526 @rwi
@setspecial
%%BeginDocument: figs/prpend.eps
%!PS-Adobe-2.0 EPSF-2.0
%%Title: prpend.eps
%%Creator: fig2dev Version 3.2.3 Patchlevel 
%%CreationDate: Mon Jun  3 18:24:08 2002
%%For: bkarp@pynchon.icsi.berkeley.edu (Brad Karp)
%%BoundingBox: 0 0 141 107
%%Magnification: 1.0000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def

end
save
newpath 0 107 moveto 0 0 lineto 141 0 lineto 141 107 lineto closepath clip newpath
-37.0 249.0 translate
1 -1 scale

/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
  bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
  4 -2 roll mul srgb} bind def
 /DrawEllipse {
	/endangle exch def
	/startangle exch def
	/yrad exch def
	/xrad exch def
	/y exch def
	/x exch def
	/savematrix mtrx currentmatrix def
	x y tr xrad yrad sc 0 0 1 startangle endangle arc
	closepath
	savematrix setmatrix
	} def

/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def

$F2psBegin
%%Page: 1 1
10 setmiterlimit
 0.06000 0.06000 sc
/Times-Bold ff 180.00 scf sf
2020 4085 m
gs 1 -1 sc (\(replica\)) col0 sh gr
% Polyline
7.500 slw
n 1275 2775 m
 2325 2625 l gs 0.00 setgray ef gr gs col0 s gr 
% Polyline
n 2250 3225 m
 2325 2625 l gs 0.00 setgray ef gr gs col0 s gr 
% Polyline
n 1950 3825 m
 2250 3225 l gs 0.00 setgray ef gr gs col0 s gr 
% Polyline
n 1275 2775 m
 1275 3600 l gs 0.00 setgray ef gr gs col0 s gr 
% Polyline
n 1275 3600 m
 1950 3825 l gs 0.00 setgray ef gr gs col0 s gr 
/Times-BoldItalic ff 210.00 scf sf
1200 2775 m
gs 1 -1 sc (d) col0 sh gr
/Times-BoldItalic ff 210.00 scf sf
2325 2625 m
gs 1 -1 sc (e) col0 sh gr
/Times-BoldItalic ff 210.00 scf sf
2250 3300 m
gs 1 -1 sc (f) col0 sh gr
/Times-BoldItalic ff 210.00 scf sf
1950 3975 m
gs 1 -1 sc (b) col0 sh gr
/Times-BoldItalic ff 210.00 scf sf
1200 3750 m
gs 1 -1 sc (c) col0 sh gr
/Times-BoldItalic ff 210.00 scf sf
1800 3075 m
gs 1 -1 sc (L) col0 sh gr
/Times-Bold ff 180.00 scf sf
800 2615 m
gs 1 -1 sc (\(replica\)) col0 sh gr
/Times-Bold ff 180.00 scf sf
2225 2520 m
gs 1 -1 sc (\(replica\)) col0 sh gr
/Times-Bold ff 180.00 scf sf
2385 3265 m
gs 1 -1 sc (\(home\)) col0 sh gr
/Times-Bold ff 180.00 scf sf
630 3880 m
gs 1 -1 sc (\(replica\)) col0 sh gr
% Ellipse
n 1875 3150 34 34 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr

$F2psEnd
rs

%%EndDocument
 @endspecial 2676 984 a(Figur)o(e)24 b(6:)36 b(Node)g
Fp(f)g Fs(becomes)25 b(the)g(new)f(home)2676 1071 y(node,)18
b(and)g(r)o(ecruits)g(r)o(eplicas)h Fp(b)p Fk(;)8 b Fp(c)p
Fk(;)g Fp(d)t Fk(;)19 b Fs(and)f Fp(e)p Fs(.)p Black
Black -152 3093 a @beginspecial 0 @llx 0 @lly 535 @urx
451 @ury 2520 @rwi @setspecial
%%BeginDocument: figs/sr.eps
%!PS-Adobe-2.0 EPSF-2.0
%%Title: sr.eps
%%Creator: fig2dev Version 3.2 Patchlevel 1
%%CreationDate: Fri Feb  1 17:35:33 2002
%%For: sylvia@oblaten.aciri.org (Sylvia Ratnasamy)
%%Orientation: Portrait
%%BoundingBox: 0 0 535 451
%%Pages: 0
%%BeginSetup
%%EndSetup
%%Magnification: 1.0000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def

end
save
-17.0 504.0 translate
1 -1 scale

/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
  bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
  4 -2 roll mul srgb} bind def
 /DrawEllipse {
	/endangle exch def
	/startangle exch def
	/yrad exch def
	/xrad exch def
	/y exch def
	/x exch def
	/savematrix mtrx currentmatrix def
	x y tr xrad yrad sc 0 0 1 startangle endangle arc
	closepath
	savematrix setmatrix
	} def

/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
%%EndProlog

$F2psBegin
10 setmiterlimit
n -1000 9400 m -1000 -1000 l 10197 -1000 l 10197 9400 l cp clip
 0.06000 0.06000 sc
/Palatino-BoldItalic ff 240.00 scf sf
750 1125 m
gs 1 -1 sc (\(0,100\)) col0 sh gr
7.500 slw
 [15 45] 45 sd
1 slc
% Ellipse
n 3900 3300 75 75 0 360 DrawEllipse gs col7 0.60 shd ef gr gs col0 s gr
 [] 0 sd
 [15 45] 45 sd
% Ellipse
n 1500 3300 75 75 0 360 DrawEllipse gs col7 0.60 shd ef gr gs col0 s gr
 [] 0 sd
 [15 45] 45 sd
% Ellipse
n 3900 5700 75 75 0 360 DrawEllipse gs col7 0.60 shd ef gr gs col0 s gr
 [] 0 sd
15.000 slw
% Ellipse
n 2700 2100 75 75 0 360 DrawEllipse gs col0 s gr

% Ellipse
n 2700 3300 75 75 0 360 DrawEllipse gs col0 s gr

% Ellipse
n 2700 5700 75 75 0 360 DrawEllipse gs col0 s gr

% Ellipse
n 2700 4575 75 75 0 360 DrawEllipse gs col0 s gr

% Ellipse
n 1478 4522 75 75 0 360 DrawEllipse gs col0 s gr

% Ellipse
n 3902 4592 75 75 0 360 DrawEllipse gs col0 s gr

% Ellipse
n 5102 5717 75 75 0 360 DrawEllipse gs col0 s gr

% Ellipse
n 5102 4592 75 75 0 360 DrawEllipse gs col0 s gr

% Ellipse
n 5102 3317 75 75 0 360 DrawEllipse gs col0 s gr

% Ellipse
n 3900 2100 75 75 0 360 DrawEllipse gs col0 s gr

% Ellipse
n 5100 2100 75 75 0 360 DrawEllipse gs col0 s gr

% Ellipse
n 1500 2100 75 75 0 360 DrawEllipse gs col0 s gr

7.500 slw
 [15 45] 45 sd
% Ellipse
n 450 6825 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr
 [] 0 sd
15.000 slw
% Ellipse
n 450 7875 75 75 0 360 DrawEllipse gs col0 s gr

7.500 slw
 [15 45] 45 sd
% Ellipse
n 450 7350 75 75 0 360 DrawEllipse gs col7 0.60 shd ef gr gs col0 s gr
 [] 0 sd
% Polyline
0 slc
n 3446 3525 m 3454 3525 l gs col0 s gr
% Polyline
15.000 slw
 [90] 0 sd
n 1200 3600 m 6075 3600 l gs col0 s gr  [] 0 sd
% Polyline
 [90] 0 sd
n 3600 6000 m 3600 1275 l gs col0 s gr  [] 0 sd
% Polyline
7.500 slw
 [15 45] 45 sd
n 2400 6000 m 2400 4725 l 2400 2925 l 2400 1200 l gs col0 s gr  [] 0 sd
% Polyline
 [15 45] 45 sd
n 4800 6000 m 4800 4725 l 4800 2925 l 4800 1200 l gs col0 s gr  [] 0 sd
% Polyline
 [15 45] 45 sd
n 1200 4800 m 6075 4800 l gs col0 s gr  [] 0 sd
% Polyline
 [15 45] 45 sd
n 1200 2400 m 6075 2400 l gs col0 s gr  [] 0 sd
% Polyline
n 6596 3225 m 6604 3225 l gs col0 s gr
% Polyline
45.000 slw
n 1200 6000 m 6075 6000 l 6075 1200 l 1200 1200 l cp gs col0 s gr 
% Polyline
7.500 slw
n 296 7650 m 304 7650 l gs col0 s gr
/Palatino-BoldItalic ff 210.00 scf sf
3675 7500 m
gs 1 -1 sc ( ) col0 sh gr
/Palatino-BoldItalic ff 240.00 scf sf
750 7425 m
gs 1 -1 sc (level 1 mirror points:  \(53,3\) \(3,53\) \(53,53\)    ) col0 sh gr
/Palatino-BoldItalic ff 240.00 scf sf
750 6900 m
gs 1 -1 sc (root point:   \(3,3\)) col0 sh gr
/Palatino-BoldItalic ff 240.00 scf sf
750 8025 m
gs 1 -1 sc (level 2 mirror points: \(28,3\) \(3,28\) \(28,28\) \(78,3\) \(53,28\) \(78,28\)) col0 sh gr
/Palatino-BoldItalic ff 240.00 scf sf
675 8400 m
gs 1 -1 sc (                                     \(3,78\) \(28,53\) \(28,78\) \(78,53\) \(53,78\)\(78,78\)) col0 sh gr
/Palatino-BoldItalic ff 240.00 scf sf
900 6300 m
gs 1 -1 sc (\(0,0\)) col0 sh gr
/Palatino-BoldItalic ff 240.00 scf sf
6075 6225 m
gs 1 -1 sc (\(100,0\)) col0 sh gr
/Palatino-BoldItalic ff 240.00 scf sf
6000 1125 m
gs 1 -1 sc (\(100,100\)) col0 sh gr
 [15 45] 45 sd
1 slc
% Ellipse
n 1500 5700 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr
 [] 0 sd
$F2psEnd
rs

%%EndDocument
 @endspecial 170 x(Figur)o(e)h(7:)25 b(Example)19 b(of)h(Structur)o(ed)
d(Replication)i(with)g(a)g(2-le)o(v)o(el)h(de-)-152 3351
y(composition.)p Black -152 3613 a Fu(4.4)99 b(Structur)n(ed)28
b(Replication)-77 3721 y Ft(Thus)d(f)o(ar)m(,)g(GHT)f(stores)h(all)f(e)
n(v)o(ents)h(with)f(the)h(same)g(k)o(e)o(y)g(in)g(the)f(same)-152
3808 y(place.)f(If)17 b(too)g(man)o(y)h(e)n(v)o(ents)f(with)g(the)g
(same)g(k)o(e)o(y)h(are)f(detected,)h(that)f(k)o(e)o(y')l(s)-152
3896 y(home)25 b(node)h(could)f(become)g(a)g(hotspot,)h(both)f(for)f
(communication)i(and)-152 3983 y(storage.)35 b(GHT)22
b(emplo)o(ys)i Fp(structur)m(ed)g(r)m(eplication)f Ft(\(SR\))f(to)g
(address)i(this)-152 4070 y(scaling)e(problem.)30 b(In)21
b(SR)g(we)g(augment)h(e)n(v)o(ent)g(names)f(with)g(a)g(hierarchy)-152
4157 y(depth)f(and)g(use)g(a)f(hierarchical)g(decomposition)i(of)e(the)
h(k)o(e)o(y)f(space)h(\(simi-)-152 4244 y(lar)f(to)g(that)f(used)i(in)f
(GLS)f([16]\).)23 b(Let)18 b(us)h(name)h(the)f(single)g(location)g(GHT)
-152 4332 y(hashes)k(a)e(k)o(e)o(y)i(name)f(into)f(the)h
Fp(r)m(oot)f Ft(of)h(that)f(k)o(e)o(y)-5 b(.)32 b(No)n(w)-5
b(,)22 b(for)g(a)f(gi)n(v)o(en)h(root)-152 4419 y Fp(r)29
b Ft(and)e(a)g(gi)n(v)o(en)h(hierarchy)f(depth)h Fp(d)t
Ft(,)g(one)g(can)f(compute)h(4)1465 4392 y Ff(d)1515
4419 y Fi(\000)13 b Ft(1)27 b(mirror)-152 4506 y(images)20
b(of)g Fp(r)r Ft(;)f Fp(d)i Fj(=)c Ft(0)i(refers)h(to)f(the)g(original)
h(GHT)f(scheme)h(without)g(mir)o(-)-152 4593 y(rors.)27
b(F)o(or)19 b(e)o(xample,)i(Figure)f(7)g(sho)n(ws)g(a)g
Fp(d)i Fj(=)17 b Ft(2)j(decomposition,)i(and)f(the)-152
4680 y(mirror)e(images)g(of)g(the)g(root)g(point)h Fj(\()p
Ft(3)p Fk(;)8 b Ft(3)p Fj(\))19 b Ft(at)g(e)n(v)o(ery)g(le)n(v)o(el.)
-77 4767 y(A)29 b(node)h(that)f(detects)g(an)g(e)n(v)o(ent)h(no)n(w)g
(stores)f(the)g(e)n(v)o(ent)h(at)f(the)g(mir)o(-)-152
4855 y(ror)d(closest)g(to)g(its)g(location,)i(which)e(is)g(easily)g
(computable.)46 b(Thus,)27 b(SR)-152 4942 y(reduces)g(the)f(storage)h
(cost)f(at)g(one)h(node)g(for)f(one)g(k)o(e)o(y)h(with)f
Fp(n)g Ft(detected)-152 5029 y(e)n(v)o(ents)20 b(from)g
Fp(O)p Fj(\()303 4975 y Fi(p)p 365 4975 38 3 v 54 x Fp(n)p
Fj(\))f Ft(to)g Fp(O)p Fj(\()610 4975 y Fi(p)p 672 4975
V 54 x Fp(n)q Fk(=)p Ft(2)784 5002 y Ff(d)821 5029 y
Fj(\))p Ft(.)24 b(GHT)18 b(must)i(no)n(w)f(route)h(queries)g(to)-152
5116 y(all)25 b(mirror)g(nodes,)i(ho)n(we)n(v)o(er)l(.)43
b(It)24 b(does)i(so)f(recursi)n(v)o(ely;)k(\002rst)24
b(it)g(routes)i(a)-152 5203 y(query)e(to)e(the)h(root)g(node,)h(then)f
(from)g(the)f(root)h(node)h(to)e(the)h(three)g(le)n(v)o(el-)-152
5290 y(1)28 b(mirror)e(points.)49 b(Each)27 b(of)g(these)g(in)g(turn)h
(forw)o(ards)f(the)g(query)i(to)e(the)-152 5378 y(three)i(le)n(v)o
(el-2)g(mirror)g(points)g(associated)h(with)e(them.)54
b(This)28 b(recursi)n(v)o(e)2040 1406 y(process)20 b(continues)h(until)
e(all)g(mirrors)g(are)h(reached.)25 b(Responses)c(tra)o(v)o(erse)2040
1493 y(the)h(same)g(path)h(as)f(queries)g(b)o(ut)g(in)g(the)g(re)n(v)o
(erse)g(direction\227up)h(the)f(hier)o(-)2040 1580 y(archy)j(to)n(w)o
(ard)h(the)f(root.)41 b(Thus,)27 b(a)d(single)i(query)f(incurs)h(a)f
(routing)g(cost)2040 1667 y(of)i Fp(O)p Fj(\()p Ft(2)2249
1640 y Ff(d)2285 1614 y Fi(p)p 2347 1614 V 53 x Fp(n)q
Fj(\))f Ft(as)g(compared)i(with)e Fp(O)p Fj(\()3091 1614
y Fi(p)p 3154 1614 V 3154 1667 a Fp(n)p Fj(\))g Ft(for)h(GHT)e(without)
i(mirrors.)2040 1755 y(F)o(or)d(an)g(e)n(v)o(ent)h Fp(i)f
Ft(with)g Fp(D)2700 1767 y Ff(i)2744 1755 y Ft(detected)h(instances)g
(and)g Fp(Q)3501 1767 y Ff(i)3545 1755 y Ft(queries)g(the)f(total)2040
1842 y(message)c(cost)f(of)g(storing)h(and)f(retrie)n(ving)h(this)e(e)n
(v)o(ent)i(information)g(is)e(ap-)2040 1929 y(proximately)25
b Fp(O)p Fj(\()p Fp(Q)2562 1941 y Ff(i)2583 1929 y Ft(2)2620
1902 y Ff(d)2656 1875 y Fi(p)p 2718 1875 V 54 x Fp(n)13
b Fj(+)f Fp(D)2892 1941 y Ff(i)2913 1929 y Fj(\()2942
1875 y Fi(p)p 3004 1875 V 54 x Fp(n)q Fk(=)p Ft(2)3116
1902 y Ff(d)3153 1929 y Fj(\)\))24 b Ft(Thus,)i(SR)d(reduces)j(the)e
(cost)2040 2016 y(of)e(storage)h(b)o(ut)f(increases)g(the)g(cost)h(of)f
(queries.)33 b(SR)21 b(of)n(fers)h(an)g(interme-)2040
2103 y(diate)i(solution)h(between)g(the)f(local)h(storage)g(canonical)g
(method,)h(where)2040 2190 y(storage)21 b(is)g(free)f(b)o(ut)h(queries)
g(e)o(xpensi)n(v)o(e,)h(and)g(GHT)e(without)h(SR,)e(where)2040
2278 y(both)25 b(are)f(of)h(moderate)g(cost.)2840 2251
y Fm(4)2912 2278 y Ft(W)-6 b(e)24 b(e)o(xpect)h(that)f(SR)g(will)f(be)i
(useful)g(for)2040 2365 y(frequently)20 b(detected)f(e)n(v)o(ents.)24
b(Note)18 b(that)h(the)g(depth)g(of)g(the)f(hierarchy)i(\()p
Fp(d)t Ft(\))2040 2452 y(can,)f(and)h(indeed)g(should,)f(be)g(dif)n
(ferent)h(for)e(dif)n(ferent)h(e)n(v)o(ent)h(types.)3859
2425 y Fm(5)2040 2673 y Fu(5.)99 b(SIMULA)-9 b(TION)25
b(RESUL)-9 b(TS)2115 2781 y Ft(In)16 b(this)h(section,)g(we)f(\002rst)g
(e)n(v)n(aluate)i(the)e(performance)i(of)f(our)g(proposed)2040
2868 y(mechanism)33 b(\(Section)e(5.1\))h(in)f Fp(ns-2)h
Ft(simulations)g(of)f(relati)n(v)o(ely)h(small)2040 2955
y(systems)23 b(of)g(between)g(50)g(and)h(200)f(nodes.)36
b(These)23 b(simulations)g(include)2040 3042 y(detailed)i(models)g(of)f
(a)h(wireless)f(netw)o(ork')l(s)h(MA)m(C)g(and)g(physical)g(layer)l(.)
2040 3129 y(After)e(v)o(erifying)i(the)f(correct)g(functioning)h(of)f
(GHT)f(and)i(measuring)g(its)2040 3216 y(performance)c(on)g(static)e
(netw)o(orks,)i(we)f(then)g(consider)h(the)f(system')l(s)g(be-)2040
3304 y(ha)o(vior)g(in)g(simulations)h(with)f(both)h(f)o(ailing)f(nodes)
h(and)g(mobile)f(nodes,)h(to)2040 3391 y(test)e(the)g(system)g(in)g
(the)g(harsh)g(sensornet)h(en)m(vironment.)2115 3478
y(After)14 b(con\002rming)h(the)f(viability)h(of)f(our)h(design,)h(we)e
(then)h(\(Section)f(5.2\))2040 3565 y(v)o(erify)i(the)h(scaling)f(ar)o
(guments)h(from)f(Section)h(2.3.2)f(with)g(simulations)g(of)2040
3652 y(much)25 b(lar)o(ger)o(-scale)f(systems)h(of)f(up)h(to)f(10)3202
3625 y Fm(5)3260 3652 y Ft(nodes)i(that,)f(in)f(the)h(interest)2040
3740 y(of)19 b(computational)i(tractability)-5 b(,)19
b(do)h(not)f(model)h(radio)g(details,)f(node)h(f)o(ail-)2040
3827 y(ures,)f(or)g(mobility)-5 b(.)2040 3991 y Fu(5.1)99
b(Small\255Scale)25 b(Netw)o(orks,)h(W)n(ir)n(eless)e(Details)2115
4099 y Ft(W)-6 b(e)15 b(implemented)i(GHT)e(in)h Fp(ns-2)g
Ft([17],)h(which)f(supports)h(detailed)f(sim-)2040 4186
y(ulation)21 b(of)f(mobile,)g(wireless)g(netw)o(orks)h(using)f(IEEE)f
(802.11)i(radios.)27 b(In)2040 4273 y(these)j(simulations,)j(we)d(seek)
g(to)g(demonstrate)h(GHT')l(s)e(rob)o(ustness)i(on)2040
4360 y(real)25 b(radios)g(and)h(dynamic)g(topologies,)h(where)e(node)h
(f)o(ailures)f(and)g(mo-)2040 4448 y(bility)c(cause)i(changes)g(in)e
(nodes')i(neighbors,)g(and)f(changes)h(in)f(the)f(node)2040
4535 y(closest)e(to)g(a)g Fp(k)o(e)n(y)p Ft(')l(s)g(hashed)h
(coordinates.)2115 4622 y(By)i(modeling)h(the)f(full)f(802.11)j(MA)m(C)
e(layer)g(and)g(physical)h(layer)m(,)f Fp(ns-)2040 4709
y(2)31 b Ft(allo)n(ws)g(e)n(v)n(aluation)h(of)f(a)g(system')l(s)g
(performance)h(on)f(a)g(bandwidth-)2040 4796 y(limited,)d
(contention-prone)h(wireless)e(medium.)48 b(Our)27 b(simulations)g(use)
2040 4883 y(a)e(modi\002ed)h(802.11)h(radio)f(with)f(a)g(40-m)h(radio)g
(range,)h(rather)e(than)h(the)2040 4971 y(250-m)g(radio)f(range)h(of)f
(IEEE-compliant)g(hardw)o(are;)k(this)c(choice)g(mir)o(-)2040
5058 y(rors)19 b(that)g(made)g(in)g(the)g(e)n(v)n(aluation)h(of)f
(directed)g(dif)n(fusion)h(in)f([10],)g(in)f(the)p Black
2040 5125 797 4 v 2044 5187 a Fm(4)2077 5214 y Ft(Choosing)j
Fp(d)i Ft(such)c(that)g(2)2766 5187 y Ff(d)2819 5214
y Fj(=)2894 5160 y Fi(p)p 2956 5160 38 3 v 54 x Fp(n)g
Ft(costs)g(the)g(same)g(as)g(local)g(storage.)2044 5276
y Fm(5)2077 5303 y Ft(One)25 b(might,)h(for)e(e)o(xample,)i(encode)g
(the)f(hierarchy)g(le)n(v)o(el)f(in)g(the)h(e)n(v)o(ent)2040
5378 y(name)20 b(so)f(that)f Fp(d)23 b Ft(is)c(globally)h(kno)n(wn)g
(for)f(each)g(e)n(v)o(ent)h(type.)p Black Black Black
eop
%%Page: 7 7
7 6 bop Black Black Black Black Black 112 -148 1467 4
v 110 -56 4 93 v 332 -82 a Ft(Node)19 b(Density)p 963
-56 V 287 w(1)g(node)h(/)e(256)i(m)1479 -109 y Fm(2)p
1576 -56 V 112 -53 1467 4 v 110 34 4 88 v 344 8 a Ft(Radio)f(Range)p
963 34 V 465 w(40)g(m)p 1576 34 V 112 38 1467 4 v 110
125 4 88 v 199 99 a(GPSR)e(Beacon)j(Interv)n(al)p 963
125 V 352 w(1)f(s)p 1576 125 V 112 128 1467 4 v 110 215
4 88 v 156 189 a(GPSR)f(Beacon)i(Expiration)p 963 215
V 281 w(4.5)f(s)p 1576 215 V 112 219 1467 4 v 110 306
4 88 v 341 280 a(Planarization)p 963 306 V 482 w(GG)p
1576 306 V 112 309 1467 4 v 110 396 4 88 v 330 370 a(Mobility)g(Rate)p
963 396 V 340 w(0,)f(0.1,)h(1)g(m/s)p 1576 396 V 112
400 1467 4 v 110 487 4 88 v 271 461 a(Number)g(of)g(Nodes)p
963 487 V 205 w(50,)g(100,)g(150,)h(200)p 1576 487 V
112 490 1467 4 v 110 577 4 88 v 287 551 a(Simulation)f(T)m(ime)p
963 577 V 402 w(300)h(s)p 1576 577 V 112 581 1467 4 v
110 668 4 88 v 192 642 a(Query)f(Generation)h(Rate)p
963 668 V 306 w(2)f(qps)p 1576 668 V 112 671 1467 4 v
110 758 4 88 v 278 732 a(Query)g(Start)f(T)m(ime)p 963
758 V 412 w(42)h(s)p 1576 758 V 112 762 1467 4 v 110
849 4 88 v 297 823 a(Refresh)h(Interv)n(al)p 963 849
V 431 w(10)f(s)p 1576 849 V 112 852 1467 4 v 110 939
4 88 v 354 913 a(Ev)o(ent)g(T)-6 b(ypes)p 963 939 V 512
w(20)p 1576 939 V 112 943 1467 4 v 110 1030 4 88 v 295
1004 a(Ev)o(ents)19 b(Detected)p 963 1030 V 360 w(10)g(/)f(type)p
1576 1030 V 112 1033 1467 4 v -65 1102 a Fs(T)-7 b(able)18
b(1:)23 b(GHT)c(simulation)f(parameters)i(in)e Fc(ns-2)h
Fs(simulations.)p Black -152 1378 a Ft(interest)h(of)h(using)g
(parameters)g(closer)f(to)h(those)g(found)g(in)f(sensor)i(radios.)-152
1465 y(Our)f(radio)g(model)g(is)g(realistic)f(in)g(its)g(use)i(of)e
(the)h(802.11)h(MA)m(C)f(protocol)-152 1552 y(for)i(\003oor)f
(acquisition,)i(and)g(in)e(its)g(modeling)i(of)e(capture;)j(these)e
(aspects)-152 1639 y(re\003ect)e(the)h(contention)h(beha)o(vior)f(of)f
(today')l(s)i(commodity)f(of)n(f-the-shelf)-152 1726
y(radios.)27 b(Ho)n(we)n(v)o(er)m(,)21 b(we)f(do)h(not)f(consider)h(en)
m(vironmental)g(noise)g(or)f(prop-)-152 1813 y(agation)h(obstacles,)g
(and)g(lea)o(v)o(e)g(e)o(xamination)g(of)g(their)f(important)h(ef)n
(fects)-152 1901 y(to)e(a)g(future)g(implementation)h(study)-5
b(.)-77 1988 y(In)16 b(all)f(our)h Fp(ns-2)h Ft(simulations,)f(there)g
(is)g(a)g(single)g(querying)h(node)g(placed)-152 2075
y(in)24 b(the)g(upper)o(-left)g(corner)g(of)g(the)g(simulated)g(re)o
(gion.)38 b(This)24 b(node)g(repre-)-152 2162 y(sents)f(the)h(access)f
(point)g(where)h(queries)f(enter)g(the)g(sensor)h(netw)o(ork.)36
b(At)-152 2249 y(the)20 b(start)f(of)g(a)h(simulation,)g(all)f(e)n(v)o
(ents)h(are)f(inserted)h(into)g(the)f(DHT)g Fp(once)p
Ft(,)-152 2336 y(by)k(sensors)g(chosen)g(uniformly)g(at)f(random;)i
(these)f(are)f(the)g(sensors)h(that)-152 2424 y(measured)28
b(the)e(inserted)h(e)n(v)o(ents.)46 b(Queries)26 b(are)g(ackno)n
(wledged)j(and)e(re-)-152 2511 y(tried)c(until)g(the)o(y)h(succeed.)38
b(At)22 b(time)h(42)h(s,)g(to)f(allo)n(w)h(the)f(DHT)g(to)g(stabi-)-152
2598 y(lize,)18 b(the)h(querying)g(node)h(be)o(gins)f(generating)g
(queries)g(at)f(a)g(rate)h(of)f(2)g(qps,)-152 2685 y(including)i(both)g
(ne)n(w)f(and)h(retransmitted)f(queries.)-77 2772 y(T)-6
b(able)24 b(1)g(sho)n(ws)h(the)f(parameters)h(we)f(used)h(in)f(our)g
Fp(ns-2)h Ft(simulations.)-152 2859 y(W)-6 b(e)23 b(present)h(results)f
(that)h(are)f(a)o(v)o(eraged)h(o)o(v)o(er)g(multiple)f(simulations;)j
(in)-152 2947 y(all)31 b(cases,)j(the)d(v)n(ariances)h(of)f(these)g
(runs)g(are)g(reasonable.)61 b(Note)31 b(that)-152 3034
y(node)c(density)f(remains)f(constant)h(in)f(our)h(simulations;)j(as)c
(we)g(increase)-152 3121 y(the)d(number)h(of)e(nodes,)i(we)f(scale)f
(the)h(re)o(gion)g(size)g(such)g(that)f(node)i(den-)-152
3208 y(sity)c(does)h(not)f(change.)474 3181 y Fm(6)-77
3295 y Ft(In)29 b(measuring)i(GHT')l(s)d(performance,)33
b(we)c(are)h(concerned)h(with)e(the)-152 3383 y Fp(availability)c
Ft(of)g(the)g(data)g(stored)g(to)g(queriers,)i(and)e(the)g
Fp(load)g Ft(placed)h(on)-152 3470 y(nodes)21 b(participating)f(in)f
(GHT)-6 b(,)19 b(both)i(in)e(communication)i(and)f(storage)h(of)-152
3557 y(e)n(v)o(ents.)37 b(T)-6 b(o)23 b(measure)h(a)o(v)n(ailability)-5
b(,)24 b(we)f(propose)h(the)g(metric)f(of)g Fp(success)-152
3644 y(r)o(ate)p Ft(,)g(measured)h(after)e(all)g(e)n(v)o(ents)h(ha)o(v)
o(e)g(been)g(inserted)g(into)f(GHT)l(:)g(for)h(a)-152
3731 y(w)o(orkload)h(of)e(queries,)h(we)f(compute)h(the)g(mean)f(o)o(v)
o(er)h(all)f(queries)g(of)h(the)-152 3818 y(fraction)k(of)g(e)n(v)o
(ents)g(returned)g(in)f(each)i(response,)h(di)n(vided)e(by)g(the)g
(total)-152 3906 y(number)18 b(of)f(e)n(v)o(ents)h(kno)n(wn)g(to)f(ha)o
(v)o(e)g(been)g(stored)h(in)e(the)h(netw)o(ork)h(for)f(that)-152
3993 y Fp(k)o(e)n(y)p Ft(.)47 b(Because)27 b(insertions)g(and)h
(queries)f(are)g(both)g(ackno)n(wledged,)k(this)-152
4080 y(measurement)e(focuses)g(mainly)f(on)g(the)g(ability)f(of)h(GHT)f
(to)g(hold)h(data)-152 4167 y(written)19 b(to)f(it.)-77
4254 y(T)-6 b(o)15 b(measure)i(the)f(storage)g(load)g(on)g(nodes,)h(we)
f(e)o(xamine)g(the)g(maximum)-152 4341 y(number)23 b(of)f(e)n(v)o(ents)
g(stored)g(at)f(an)o(y)h(node,)h(to)f(capture)g(the)g(w)o(orst-case)g
(re-)-152 4429 y(quired)29 b(storage;)k(and)28 b(the)g(mean)h(number)g
(of)f(e)n(v)o(ents)g(stored)h(across)f(all)-152 4516
y(nodes)23 b(in)e(the)h(netw)o(ork,)h(to)e(capture)h(typical)g(storage)
g(requirements.)32 b(W)-6 b(e)-152 4603 y(measure)26
b(the)f(communication)h(load)f(on)g(nodes)h(by)f(counting)h(the)f(mean)
-152 4690 y(number)c(of)e(messages)h(forw)o(arded)g(by)g(a)f(node)h(in)
f(a)g(refresh)h(interv)n(al,)f(and)-152 4777 y(the)g(mean)h(number)g
(of)f(refresh)g(messages)h(forw)o(arded)g(by)g(a)f(node)h(in)f(a)g(re-)
-152 4864 y(fresh)k(interv)n(al;)h(these)e(message)h(counts)h(are)e(a)o
(v)o(eraged)h(across)g(all)f(nodes)-152 4952 y(and)e(refresh)f(interv)n
(als)g(in)g(a)g(simulation.)-77 5039 y(Note)f(that)h(we)f(do)h(not)f
(measure)i(the)e(routing)h(protocol)g(load)g(placed)g(on)p
Black -152 5140 797 4 v -148 5201 a Fm(6)-114 5228 y
Ft(W)-6 b(e)19 b(do)h(not)f(in)m(v)o(estigate)h(v)n(arying)g(node)h
(densities)f(in)f(this)g(w)o(ork.)26 b(Karp')l(s)-152
5303 y(thesis)d(demonstrates)h(the)f(ef)n(\002cac)o(y)h(of)f(perimeter)
o(-mode)g(forw)o(arding)h(on)-152 5378 y(both)c(dense)g(and)f(sparse)h
(netw)o(orks)f([14].)p Black Black Black Black 2072 -148
1929 4 v 2070 -61 4 88 v 2131 -87 a(Number)p 2432 -61
V 119 w(Success)p 2789 -61 V 152 w(Max)p 3107 -61 V 188
w(A)-6 b(vg)p 3425 -61 V 149 w(T)g(otal)p 3677 -61 V
94 w(Refresh)p 3999 -61 V 2070 26 V 2117 0 a(of)19 b(Nodes)p
2432 26 V 91 w(Rate)f(\(\045\))p 2789 26 V 90 w(Storage)p
3107 26 V 90 w(Storage)p 3425 26 V 90 w(Msgs)p 3677 26
V 126 w(Msgs)p 3999 26 V 2072 29 1929 4 v 2070 116 4
88 v 2216 90 a(50)p 2432 116 V 235 w(100\045)p 2789 116
V 187 w(47.2)p 3107 116 V 188 w(40.7)p 3425 116 V 154
w(10.2)p 3677 116 V 176 w(4.4)p 3999 116 V 2072 120 1929
4 v 2070 207 4 88 v 2197 181 a(100)p 2432 207 V 217 w(100\045)p
2789 207 V 187 w(11.9)p 3107 207 V 188 w(10.0)p 3425
207 V 173 w(2.6)p 3677 207 V 194 w(1.1)p 3999 207 V 2072
210 1929 4 v 2070 297 4 88 v 2197 271 a(150)p 2432 297
V 208 w(99.8\045)p 2789 297 V 195 w(7.2)p 3107 297 V
225 w(5.9)p 3425 297 V 192 w(1.6)p 3677 297 V 175 w(0.72)p
3999 297 V 2072 301 1929 4 v 2070 388 4 88 v 2197 362
a(200)p 2432 388 V 217 w(100\045)p 2789 388 V 205 w(5.8)p
3107 388 V 225 w(4.6)p 3425 388 V 192 w(1.2)p 3677 388
V 175 w(0.53)p 3999 388 V 2072 391 1929 4 v 2040 460
a Fs(T)-7 b(able)20 b(2:)26 b(P)o(erf)n(ormance)21 b(of)f(GHT)g(on)g
(Static)g(Netw)o(orks.)27 b(Results)19 b(ar)o(e)2040
548 y(the)f(means)h(of)g(thr)o(ee)g(simulations.)p Black
Black Black Black 2161 652 1750 4 v 2159 739 4 88 v 2243
713 a Fp(f)p 2343 739 V 141 w Ft(Success)p 2700 739 V
151 w(Max)p 3018 739 V 189 w(A)-6 b(vg)p 3336 739 V 149
w(T)g(otal)p 3588 739 V 94 w(Refresh)p 3910 739 V 2159
827 V 2343 827 V 2389 800 a(Rate)19 b(\(\045\))p 2700
827 V 90 w(Storage)p 3018 827 V 90 w(Storage)p 3336 827
V 90 w(Msgs)p 3588 827 V 125 w(Msgs)p 3910 827 V 2161
830 1750 4 v 2159 917 4 88 v 2234 891 a(0)p 2343 917
V 156 w(83.3\045)p 2700 917 V 176 w(25.4)p 3018 917 V
207 w(8.8)p 3336 917 V 192 w(3.2)p 3588 917 V 194 w(1.6)p
3910 917 V 2161 920 1750 4 v 2159 1008 4 88 v 2206 981
a(0.2)p 2343 1008 V 128 w(94.2\045)p 2700 1008 V 176
w(24.9)p 3018 1008 V 188 w(10.3)p 3336 1008 V 174 w(3.4)p
3588 1008 V 194 w(1.8)p 3910 1008 V 2161 1011 1750 4
v 2159 1098 4 88 v 2206 1072 a(0.4)p 2343 1098 V 128
w(97.3\045)p 2700 1098 V 176 w(22.6)p 3018 1098 V 188
w(10.7)p 3336 1098 V 174 w(3.4)p 3588 1098 V 194 w(1.8)p
3910 1098 V 2161 1101 1750 4 v 2159 1189 4 88 v 2206
1162 a(0.6)p 2343 1189 V 128 w(98.6\045)p 2700 1189 V
176 w(17.4)p 3018 1189 V 188 w(10.3)p 3336 1189 V 174
w(3.1)p 3588 1189 V 194 w(1.6)p 3910 1189 V 2161 1192
1750 4 v 2159 1279 4 88 v 2206 1253 a(0.8)p 2343 1279
V 128 w(99.7\045)p 2700 1279 V 176 w(14.0)p 3018 1279
V 188 w(10.1)p 3336 1279 V 174 w(3.1)p 3588 1279 V 194
w(1.5)p 3910 1279 V 2161 1282 1750 4 v 2159 1370 4 88
v 2206 1343 a(1.0)p 2343 1370 V 137 w(100\045)p 2700
1370 V 186 w(16.2)p 3018 1370 V 188 w(14.5)p 3336 1370
V 174 w(3.9)p 3588 1370 V 194 w(1.6)p 3910 1370 V 2161
1373 1750 4 v 2040 1442 a Fs(T)-7 b(able)25 b(3:)35 b(P)o(erf)n
(ormance)25 b(of)g(GHT)-7 b(.)25 b(Stationary)f(nodes,)i(v)o(aried)f
(frac-)2040 1529 y(tion)i(of)h(nodes)f(alter)o(nate)h(between)f(up)f
(and)h(do)o(wn)g(states.)50 b(Results)2040 1616 y(ar)o(e)19
b(the)f(means)h(of)g(eight)g(simulations.)p Black 2040
1873 a Ft(the)j(netw)o(ork)h(by)g(GPSR)d(in)i(our)h(simulations;)h(we)e
(are)g(e)n(v)n(aluating)h(GHT)-6 b(,)2040 1960 y(not)22
b(the)f(underlying)i(routing)g(system,)f(as)f(is)g(the)h(practice)g(in)
f(the)g(e)n(v)n(alua-)2040 2047 y(tion)i(of)g(DHT)f(systems)46
b([6,)23 b(21,)h(24,)g(25].)36 b(GPSR)21 b(generates)j(a)f(constant)
2040 2134 y(v)o(olume)k(of)g(routing)h(protocol)f(traf)n(\002c)g
(\(beacons\))h(per)f(node,)i(re)o(gardless)2040 2222
y(of)24 b(system)h(size)f(in)g(nodes)h([14];)i(this)d(load)g(is)g(of)g
(lo)n(wer)g(order)h(than)g(that)2040 2309 y(generated)19
b(by)g(GHT)-6 b(,)17 b(which)h(sends)h(pack)o(ets)g(on)g(paths)f(of)g
(length)g Fp(O)p Fj(\()3885 2255 y Fi(p)p 3948 2255 38
3 v 3948 2309 a Fp(n)p Fj(\))p Ft(.)2040 2396 y(Moreo)o(v)o(er)m(,)27
b(there)f(is)e Fp(no)i(location)f(database)i Ft(lik)o(e)e(GLS)f([16])h
(used)h(with)2040 2483 y(GHT)-6 b(,)18 b(as)h(GHT)g(sends)g(no)h(traf)n
(\002c)e(to)h(node)h(IDs.)2063 2646 y Fn(5.1.1)90 b(Stable)22
b(and)g(Static)h(Nodes)2115 2754 y Ft(As)29 b(one)g(w)o(ould)h(e)o
(xpect,)i(on)e(static)e(netw)o(orks,)k(where)e(the)f(topology)2040
2841 y(doesn')o(t)15 b(change,)h(GHT)e(of)n(fers)h(v)o(ery)f(nearly)h
(perfect)g(a)o(v)n(ailability)f(of)h(stored)2040 2928
y(e)n(v)o(ents.)35 b(At)23 b(all)f(netw)o(ork)i(scales,)f(essentially)g
(all)f(queries)i(are)e(answered)2040 3015 y(with)i(all)f(e)n(v)o(ents)i
(stored)g(in)e(the)i(netw)o(ork.)39 b(As)24 b(the)g(system)g(scales)h
(in)f(in-)2040 3102 y(creasing)29 b(number)f(of)g(nodes,)j(the)d
(unchanging)i(number)f(of)f(e)n(v)o(ents)g(are)2040 3189
y(dispersed)g(among)h(a)e(wider)g(population)i(of)e(nodes,)j(and)e
(thus)f(both)h(the)2040 3277 y(mean)f(and)h(maximum)f(state)f
(requirements)i(per)f(node)g(decrease.)47 b(Sim-)2040
3364 y(ilarly)-5 b(,)34 b(dispersion)e(reduces)g(the)f(count)h(of)f
(the)g(mean)h(number)g(of)f(for)o(-)2040 3451 y(w)o(arded)c(refresh)g
(messages;)k(fe)n(wer)c(nodes)g(are)g(on)g(perimeters)f(about)h(a)2040
3538 y(point)21 b(to)g(which)g(a)g Fp(\(k)o(e)n(y)l(,)g(value\))h
Ft(pair)e(hashes,)i(and)g(so)f(a)g(smaller)f(fraction)2040
3625 y(of)f(nodes)h(recei)n(v)o(es)f(refresh)h(messages)f(for)g(forw)o
(arding.)2063 3788 y Fn(5.1.2)90 b(Static)23 b(b)n(ut)f(F)-7
b(ailing)23 b(Nodes)2115 3896 y Ft(W)-6 b(e)19 b(no)n(w)g(demonstrate)i
(that)e(GHT)f(is)h(rob)o(ust)g(in)g(the)h(presence)g(of)f(node)2040
3983 y(f)o(ailures,)e(despite)h(the)f(topology)i(changes)g(that)e
(result.)22 b(All)16 b(the)h(results)h(we)2040 4070 y(present)i(in)e
(this)h(section)g(are)g(for)g(netw)o(orks)h(of)f(100)h(nodes.)2115
4157 y(T)-6 b(able)26 b(3)h(sho)n(ws)g(the)g(performance)g(of)g(GHT)f
(under)h(a)f(f)o(ailure)h(model)2040 4244 y(where)19
b(a)g(con\002gured)h(fraction)f(of)g(nodes)g(selected)h(uniformly)f(at)
f(random)2040 4332 y(alternate)h(between)g(f)o(ailing)g(and)g
(restarting.)k(When)c(a)g(node)g(f)o(ails,)f(it)g(loses)2040
4419 y(the)h(contents)g(of)g(its)e(database;)j(it)e(only)h(reacquires)g
(its)f(database)i(contents)2040 4506 y(upon)c(returning)g(to)e
(operation)i(and)g(recei)n(ving)f(refreshes)g(from)g(neighbors.)2040
4593 y(In)22 b(these)f(results,)h(a)g(node)g(selected)g(as)g
(unreliable)g(remains)f(up)h(for)g(a)f(pe-)2040 4680
y(riod)e(selected)h(uniformly)g(at)f(random)h(in)f Fj([)p
Ft(0)p Fk(;)8 b Ft(120)p Fj(])19 b Ft(s,)g(then)h(goes)f(do)n(wn)i(for)
2040 4767 y(a)i(period)h(uniformly)g(chosen)g(in)f Fj([)p
Ft(0)p Fk(;)8 b Ft(60)p Fj(])p Ft(.)36 b(W)-6 b(e)23
b(denote)h(by)34 b Fp(f)g Ft(the)23 b(fraction)2040 4855
y(of)c(nodes)h(that)f(remain)g(up)g(for)g(the)g(entire)g(simulation.)
2115 4942 y(As)i(one)i(w)o(ould)f(e)o(xpect,)h(the)e(success)i(rate)e
(decreases)i(as)32 b Fp(f)h Ft(does.)f(But)2040 5029
y(the)24 b(decrease)h(is)f(slight,)h(until)f Fp(all)f
Ft(nodes)i(c)o(ycle)g(between)g(a)o(v)n(ailable)f(and)2040
5116 y(una)o(v)n(ailable,)17 b(at)26 b Fp(f)e Fj(=)13
b Ft(0.)22 b(The)16 b(deterioration)f(in)h(the)f(success)h(rate)f(is)g
(caused)2040 5203 y(by)23 b(e)n(v)o(ents)g(that)f(were)g(not)h(sa)o(v)o
(ed)f(by)h(the)g(refresh)f(mechanism)h(when)g(the)2040
5290 y(node)h(holding)g(them)f(f)o(ailed.)36 b(Analysis)23
b(of)g(the)g(simulation)h(logs)f(re)n(v)o(eals)2040 5378
y(that)e(the)g(v)n(ast)g(majority)f(of)h(queries)h(and)f(responses)h
(reach)g(their)e(destina-)p Black Black eop
%%Page: 8 8
8 7 bop Black Black Black Black Black -130 -148 1950
4 v -132 -61 4 88 v -85 -87 a Ft(Up/Do)n(wn)p 251 -61
V 106 w(Success)p 608 -61 V 151 w(Max)p 926 -61 V 189
w(A)-6 b(vg)p 1244 -61 V 149 w(T)g(otal)p 1496 -61 V
94 w(Refresh)p 1818 -61 V -132 26 V -65 0 a(T)m(ime)19
b(\(s\))p 251 26 V 109 w(Rate)g(\(\045\))p 608 26 V 90
w(Storage)p 926 26 V 90 w(Storage)p 1244 26 V 89 w(Msgs)p
1496 26 V 126 w(Msgs)p 1818 26 V -130 29 1950 4 v -132
116 4 88 v -24 90 a(60/30)p 251 116 V 190 w(75.1\045)p
608 116 V 176 w(18.6)p 926 116 V 207 w(6.0)p 1244 116
V 192 w(2.9)p 1496 116 V 175 w(0.93)p 1818 116 V -130
120 1950 4 v -132 207 4 88 v -43 181 a(120/60)p 251 207
V 172 w(84.7\045)p 608 207 V 176 w(29.6)p 926 207 V 207
w(9.8)p 1244 207 V 192 w(3.5)p 1496 207 V 194 w(1.8)p
1818 207 V -130 210 1950 4 v -132 297 4 88 v -61 271
a(240/120)p 251 297 V 153 w(94.7\045)p 608 297 V 176
w(45.9)p 926 297 V 188 w(15.2)p 1244 297 V 174 w(4.7)p
1496 297 V 194 w(3.1)p 1818 297 V -130 301 1950 4 v -132
388 4 88 v -61 362 a(480/240)p 251 388 V 153 w(95.7\045)p
608 388 V 176 w(53.2)p 926 388 V 188 w(17.5)p 1244 388
V 174 w(5.3)p 1496 388 V 194 w(3.7)p 1818 388 V -130
391 1950 4 v -152 460 a Fs(T)-7 b(able)24 b(4:)33 b(P)o(erf)n(ormance)
25 b(of)f(GHT)-7 b(.)24 b(Stationary)g(nodes,)g(all)g(alter)o(nate)-152
548 y(between)e(up)f(and)g(do)o(wn)g(states)i(of)f(v)o(aried)g
(lengths.)32 b(Results)21 b(ar)o(e)h(the)-152 635 y(means)d(of)g(f)n
(our)g(simulations.)p Black Black Black Black -141 747
1970 4 v -143 835 4 88 v -49 808 a Ft(Motion)p 261 835
V 153 w(Success)p 618 835 V 151 w(Max)p 936 835 V 189
w(A)-6 b(vg)p 1254 835 V 149 w(T)g(otal)p 1506 835 V
94 w(Refresh)p 1828 835 V -143 922 V -95 896 a(Rate)18
b(\(m/s\))p 261 922 V 90 w(Rate)g(\(\045\))p 618 922
V 90 w(Storage)p 936 922 V 90 w(Storage)p 1254 922 V
90 w(Msgs)p 1506 922 V 126 w(Msgs)p 1828 922 V -141 925
1970 4 v -143 1012 4 88 v 14 986 a(0.1)p 261 1012 V 238
w(96.8\045)p 618 1012 V 177 w(18.6)p 936 1012 V 188 w(10.4)p
1254 1012 V 154 w(19.2)p 1506 1012 V 157 w(1.45)p 1828
1012 V -141 1016 1970 4 v -143 1103 4 88 v 43 1077 a(1)p
261 1103 V 265 w(96.3\045)p 618 1103 V 177 w(52.2)p 936
1103 V 188 w(22.5)p 1254 1103 V 154 w(17.4)p 1506 1103
V 157 w(4.10)p 1828 1103 V -141 1106 1970 4 v -152 1175
a Fs(T)-7 b(able)23 b(5:)33 b(P)o(erf)n(ormance)24 b(of)g(GHT)f(on)g
(mobile)g(netw)o(orks.)37 b(0.1)24 b(and)e(1)-152 1262
y(m/s)d(mobility)-5 b(.)22 b(Results)17 b(ar)o(e)i(the)e(means)i(of)f
(f)n(our)g(runs)g(f)n(or)h(the)e(0.1)i(m/s)-152 1350
y(case,)g(and)g(twelv)o(e)g(runs)f(f)n(or)h(the)f(1)h(m/s)g(case.)p
Black -152 1612 a Ft(tion)i(successfully)h(in)f(a)f(single)h
(transmission.)30 b(Note)20 b(that)h(the)g(maximum)-152
1699 y(number)d(of)f(e)n(v)o(ents)h(stored)g(at)e(a)h(node)h
Fp(decr)m(eases)h Ft(as)e(more)g(nodes)h(become)-152
1787 y(reliable,)24 b(while)g(the)f(mean)h(number)h(of)e(e)n(v)o(ents)i
(stored)f(across)g(all)f(nodes)-152 1874 y Fp(incr)m(eases)p
Ft(;)k(these)d(trends)f(re\003ect)g(the)h(increased)g(uniformity)g(of)f
(the)h(dis-)-152 1961 y(trib)o(ution)f(of)h(e)n(v)o(ents)g(across)g
(nodes,)h(as)f(the)f(number)i(of)e(simultaneously)-152
2048 y(a)o(v)n(ailable)c(nodes)h(increases.)-77 2135
y(T)-6 b(able)28 b(4)g(sho)n(ws)h(the)f(performance)h(of)f(GHT)f(where)
39 b Fp(f)33 b Fj(=)22 b Ft(0)28 b(\(that)f(is,)-152
2222 y(where)18 b(all)g(nodes)h(f)o(ail)e(and)h(restart)g
(repeatedly\).)23 b(Here,)18 b(we)f(v)n(ary)i(the)f(peri-)-152
2310 y(ods)j(that)e(nodes)i(remain)f(up)h(and)f(do)n(wn.)27
b(F)o(or)19 b(an)h(up/do)n(wn)i(time)d(v)n(alue)i(of)-152
2397 y Fp(x)p Fk(=)p Fp(y)p Ft(,)g(a)f(node)h(remains)f(up)g(for)g(a)g
(period)h(chosen)g(uniformly)f(in)g Fj([)p Ft(0)p Fk(;)8
b Fp(x)p Fj(])p Ft(,)20 b(and)-152 2484 y(remains)25
b(do)n(wn)g(for)e(a)h(period)h(chosen)g(uniformly)g(in)f
Fj([)p Ft(0)p Fk(;)8 b Fp(y)p Fj(])p Ft(.)38 b(Simulation)-152
2571 y(times)19 b(for)h(this)f(group)h(of)g(simulations)f
Fp(only)h Ft(are)g Fp(not)f Ft(300)i(s;)e(we)g(scale)h(the)-152
2658 y(simulation)29 b(time)e(linearly)h(with)g(the)g(up/do)n(wn)h
(time;)j(each)c(simulation)-152 2745 y(lasts)19 b(\002)n(v)o(e)g(times)
f(the)h(length)h(of)f(a)f(do)n(wn)i(time)f(interv)n(al.)-77
2833 y(When)27 b(nodes)h(transition)f(between)g(up)h(and)f(do)n(wn)h
(more)f(frequently)-5 b(,)-152 2920 y(GHT')l(s)22 b(ability)h(to)f
(hold)i(e)n(v)o(ents)f(is)f(stressed)h(more)g(hea)o(vily)-5
b(,)24 b(as)f(the)g(node)-152 3007 y(closest)f(to)f(an)g(e)n(v)o(ent')l
(s)h(destination)g(position)g(changes)g(more)g(frequently)-5
b(.)-152 3094 y(The)18 b(success)h(rate)e(decreases)i(v)o(ery)f
(gradually)h(at)e(\002rst,)g(b)o(ut)g(progressi)n(v)o(ely)-152
3181 y(more)28 b(noticeably)g(as)f(the)g(up/do)n(wn)i(periods)f
(shorten.)49 b(The)27 b(maximum)-152 3269 y(and)h(a)o(v)o(erage)f
(storage)h(\002gures)f(in)g(these)g(cases)h(re\003ect)e(that)h(e)n(v)o
(ents)h Fp(dis-)-152 3356 y(appear)22 b Ft(from)e(GHT)g(when)h(the)f
(join)g(optimization)h(and)g(refreshes)g(f)o(ail)f(to)-152
3443 y(k)o(eep)g(e)n(v)o(ents)g(ali)n(v)o(e)f(in)g(GHT)-6
b(.)-129 3613 y Fn(5.1.3)90 b(Stable)22 b(b)n(ut)h(Mobile)g(Nodes)-77
3721 y Ft(T)-6 b(able)23 b(5)h(sho)n(ws)g(ho)n(w)g(GHT)e(performs)i(on)
g(a)f(mobile)h(sensor)g(netw)o(ork)-152 3808 y(of)e(100)h(nodes.)33
b(In)21 b(these)h(simulations,)h(nodes)g(mo)o(v)o(e)f(using)h(the)f
(random)-152 3896 y(w)o(aypoint)f(model)f([17];)f(that)g(is,)g(in)g
(discrete)h(steps,)f(each)h(to)f(a)g(point)h(cho-)-152
3983 y(sen)j(uniformly)h(at)e(random,)i(at)f(a)f(rate)h(chosen)g
(uniformly)h(at)e(random)i(in)-152 4070 y Fj(\()p Ft(0)p
Fk(;)8 b Fp(M)s Fj(\))22 b Ft(m/s,)g(where)g Fp(M)i Ft(is)d(the)h
(maximum)g(motion)g(rate.)31 b(The)o(y)22 b(pause)g(60)-152
4157 y(s)27 b(between)h(motion)g(steps.)48 b(In)27 b(these)h
(simulations,)h(we)e(use)h(a)f(timer)g(to)-152 4244 y(cause)18
b(GPSR)f(to)g(replanarize)h(once)g(e)n(v)o(ery)g(tw)o(o)g(seconds,)h
(which)e(costs)h(no)-152 4332 y(communication;)j(only)e(computation)h
(within)f(a)g(sensor)h(node.)-77 4419 y(Under)h(node)g(mobility)-5
b(,)20 b(GHT)g(continues)h(to)f(of)n(fer)h(rob)o(ust)f(persistence)-152
4506 y(for)29 b(stored)f(e)n(v)o(ents,)j(as)d(demonstrated)i(by)f(the)f
(96+\045)h(success)h(rates)e(in)-152 4593 y(T)-6 b(able)28
b(5.)52 b(The)28 b(cost)g(of)h(this)f(rob)o(ustness)h(is)e(in)i
(communication\227note)-152 4680 y(the)24 b(greater)f(number)h(of)f
(messages)i(forw)o(arded)f(by)f(GHT)g(in)g(the)g(mobile)-152
4767 y(scenarios,)34 b Fp(vs.)c Ft(in)h(the)f(non-mobile)i(ones.)58
b(Under)31 b(mobility)-5 b(,)33 b(GPSR')l(s)-152 4855
y(perimeters)19 b(change,)h(and)f(it')l(s)e(possible)j(for)e(a)g(pack)o
(et)i(w)o(alking)f(a)f(perime-)-152 4942 y(ter)e(that)g(changes)h
(underfoot)h(to)e(loop,)g(until)g(the)g(pack)o(et)h(e)o(xhausts)g(its)f
(TTL)-152 5029 y(in)21 b(hops)g([14].)28 b(W)-6 b(e)20
b(limit)f(the)i(TTL)e(on)i(refresh)f(messages)i(to)e(ten)g(hops)i(in)
-152 5116 y(the)17 b(mobile)g(simulations;)g(the)o(y)g(need)h(not)e
(all)g(w)o(alk)h(the)g(intended)g(perime-)-152 5203 y(ter)j(for)h
(refreshes)g(to)f(function)h(properly)-5 b(,)22 b(and)f(the)g(cost)f
(in)h(congestion)h(to)-152 5290 y(the)i(netw)o(ork)h(of)f(forw)o
(arding)h(them)f(on)h(f)o(ar)f(longer)g(tours)g(is)g(signi\002cant.)
-152 5378 y(In)18 b(a)g(more)g(general)g(implementation)g(of)g(GHT)-6
b(,)17 b(a)h(node)g(can)g(dynamically)2040 -69 y(determine)g(the)f
(appropriate)h(TTL)e(to)h(use,)g(by)h(periodically)f(sending)i(a)e(re-)
2040 19 y(fresh)26 b(with)f(a)g(small)g(TTL,)f(and)i(e)o(xpanding)i
(the)d(TTL)f(until)i(the)f(refresh)2040 106 y(returns)c(successfully)-5
b(.)28 b(In)20 b(these)g(results,)g(we)g(elide)h(this)f(implementation)
2040 193 y(step,)f(and)g(\002x)f(the)h(TTL)e(at)h(ten)h(hops)g(for)g
(refreshes.)k(This)18 b(v)n(alue)i(is)e(longer)2040 280
y(than)h(the)g(typical)g(perimeter)g(for)g(the)g(netw)o(ork)h(density)g
(we)e(simulate.)2063 444 y Fn(5.1.4)90 b(Discussion)2115
552 y Ft(As)14 b(e)o(xpected,)j(GHT)d(w)o(orks)h(well)f(in)h
(sensornets)g(with)g(stable)g(and)g(static)2040 639 y(nodes.)32
b(But)22 b(f)o(ailures)f(\(and)h(mo)o(v)o(ement,)h(in)f(some)g(cases\))
g(are)f(ine)n(vitable,)2040 726 y(and)k(thus)f(we)f(are)h(interested)g
(in)g(the)g(rob)o(ustness)h(of)e(our)i(design)f(against)2040
814 y(these)c(f)o(actors.)25 b(In)19 b(our)h(v)n(arious)g(rob)o
(ustness)h(tests)e(we)g(subject)h(our)g(design)2040 901
y(to)27 b(v)o(ery)g(harsh)h(en)m(vironments.)48 b(Our)27
b(most)g(generous)i(run)e(with)f(f)o(ailing)2040 988
y(nodes)k(uses)e(mean)h(c)o(ycle-times)g(on)f(the)h(order)g(of)f
(minutes,)j(f)o(ar)d(w)o(orse)2040 1075 y(than)f(we)f(hope)i(for)e
(most)g(projected)h(sensornet)h(systems.)46 b(And)26
b(yet,)i(as)2040 1162 y(long)23 b(as)f(the)g(fraction)g(of)g(f)o
(ailing)g(nodes)h(isn')o(t)e(o)o(v)o(erly)h(high,)h(or)f(the)g(c)o
(ycle)2040 1249 y(times)e(are)f(tens)h(of)g(minutes,)g(the)g(system)g
(performs)g(well.)26 b(Similarly)-5 b(,)18 b(the)2040
1337 y(e)o(xtent)h(and)g(rate)g(of)f(mo)o(v)o(ement)i(in)f(the)f
(mobile)h(node)h(case)f(is)g(signi\002cant;)2040 1424
y(nodes)j(rest)e(only)i(a)e(minute)i(between)f(mo)o(v)o(ements,)h(and)f
(the)g(mo)o(v)o(ements)2040 1511 y(are)c(lar)o(ge)g(e)o(xcursions)i
(\(half)e(the)h(size)f(of)g(the)g(sensornet,)i(on)e(a)o(v)o(erage\),)h
(not)2040 1598 y(slight)h(adjustments.)24 b(Here,)18
b(too,)h(a)o(v)n(ailability)g(remains)g(high.)2115 1685
y(Our)25 b(GHT)g(algorithm)h(replicates)g(a)f(k)o(e)o(y-v)n(alue)i
(pair)f(at)f(nodes)i(in)e(the)2040 1773 y(immediate)20
b(vicinity)g(of)f(the)h(home)h(node.)26 b(Localized)20
b(replication)g(of)g(this)2040 1860 y(form)h(is)f(of)h(little)f(use)h
(if)f(all)g(the)h(nodes)h(in)f(an)g(area)g(f)o(ail)f(at)h(the)g(same)g
(time)2040 1947 y(\()p Fp(e)o(.g)o(.,)d Ft(a)h(\002re)g(destro)o(ys)h
(all)e(nodes)j(in)e(a)g(re)o(gion\).)24 b(Resilience)19
b(against)g(these)2040 2034 y Fp(cluster)m(ed)h(failur)m(es)f
Ft(could)h(be)f(pro)o(vided)h(by)f(storing)h(each)f(e)n(v)o(ent)h
(multiple)2040 2121 y(times)f(at)f(dispersed)i(locations)g(\(using)f
(multiple)g(hash)h(functions\).)2040 2285 y Fu(5.2)99
b(Comparati)o(v)o(e)25 b(Study)2115 2393 y Ft(The)c(detailed)h
Fp(ns-2)g Ft(simulations)f(v)o(erify)h(the)f(correctness)h(and)g(rob)o
(ust-)2040 2480 y(ness)c(of)f(the)h(GHT)e(system)i(in)f(a)h(realistic)e
(wireless)h(en)m(vironment,)i(includ-)2040 2568 y(ing)26
b(MA)m(C-layer)f(beha)o(vior)m(,)i(pack)o(et)g(loss,)f(node)g
(dynamics,)i Fp(&c.)42 b Ft(Ho)n(w-)2040 2655 y(e)n(v)o(er)m(,)23
b(the)o(y)g(were)f(limited)g(to)g(system)g(sizes)h(on)f(the)h(order)f
(of)h(100)g(nodes.)2040 2742 y(W)-6 b(e)21 b(no)n(w)i(use)f(less)g
(detailed)g(simulations)g(to)g(compare)g(the)g(three)g(canon-)2040
2829 y(ical)29 b(mechanisms\227e)o(xternal)i(storage)f(\(ES\),)e(local)
i(storage)g(\(LS\),)e(and)2040 2916 y(data-centric)g(storage)f
(\(DCS\)\227in)f(much)i(lar)o(ger)f(systems.)48 b(W)-6
b(e)26 b(b)o(uilt)g(a)2040 3003 y(special-purpose)k(simulator)d(that)h
(assumes)h(that)e(nodes)i(are)f(stable)g(and)2040 3091
y(stationary)22 b(and)h(that)f(pack)o(et)h(deli)n(v)o(ery)f(to)g
(neighboring)i(nodes)f(is)e(instan-)2040 3178 y(taneous)d(and)g(error)o
(-free.)k(This)17 b(simulator)g(thus)h(f)o(aithfully)f(represents)h
(the)2040 3265 y(pack)o(et)f(generation)g(and)g(forw)o(arding)g(beha)o
(vior)f(of)g(the)g(v)n(arious)h(canonical)2040 3352 y(mechanisms.)23
b(W)-6 b(e)16 b(use)g(this)g(simulator)g(to)f(e)o(xamine)i(the)f
(number)h(and)f(pat-)2040 3439 y(tern)j(of)g(pack)o(et)h(transmissions)
g(\(as)e(a)h(measure)h(of)f(ener)o(gy)h(consumption\))2040
3527 y(as)d(the)f(size)h(and)g(nature)g(of)g(the)f(sensornet)i(and)f(w)
o(orkload)h(v)n(ary)-5 b(,)18 b(to)e(illumi-)2040 3614
y(nate)25 b(the)f Fp(r)m(elative)h Ft(performance)h(of)f(the)f
(canonical)i(data)e(dissemination)2040 3701 y(algorithms.)f(W)-6
b(e)15 b(do)i(not)g(count)g(PRP)e(pack)o(ets)i(in)f(these)h
(simulations.)22 b(The)2040 3788 y(length)17 b(of)g(a)f(perimeter)h(is)
f(purely)h(determined)h(by)f(the)f(density)h(of)g(the)f(net-)2040
3875 y(w)o(ork,)25 b(and)f(we)f(only)h(v)n(ary)g(system)f(scale)h(in)f
(nodes,)i(not)e(density)-5 b(,)25 b(in)e(the)2040 3962
y(lar)o(ge-scale)c(simulations.)2115 4050 y(W)-6 b(e)20
b(use)i(tw)o(o)f(metrics)g(to)f(e)n(v)n(aluate)i(the)g(performance:)28
b(the)21 b(total)g(num-)2040 4137 y(ber)33 b(of)g(pack)o(ets)h
(generated,)j(and)c(the)g(hotspot)h(usage,)j(the)c(maximum)2040
4224 y(number)22 b(of)f(pack)o(ets)h(transmitted)f(by)g(an)o(y)h
(single)f(node.)30 b(W)-6 b(e)20 b(don')o(t)h(mea-)2040
4311 y(sure)31 b(latenc)o(y)-5 b(,)34 b(as)d(that)f(is)g(approximately)
i(the)f(same)g(across)g(the)g(algo-)2040 4398 y(rithms.)52
b(Moreo)o(v)o(er)m(,)32 b(we)c(assume)h(that)g(all)f(other)h(f)o
(actors)g(\(such)g(as)f(the)2040 4485 y(\002delity)19
b(of)f(the)h(data\))g(are)g(held)h(\002x)o(ed)f(across)g(the)g(v)n
(arious)h(algorithms.)2115 4573 y(The)f(rele)n(v)n(ant)g(system)h
(parameters)f(are:)p Black 2152 4660 a Fi(\017)p Black
38 w Fp(n)p Ft(,)g(the)g(number)h(of)e(nodes)i(in)f(the)g(system)p
Black 2152 4754 a Fi(\017)p Black 38 w Fp(T)9 b Ft(,)18
b(the)h(number)h(of)f(e)n(v)o(ent)h(types)p Black 2152
4848 a Fi(\017)p Black 38 w Fp(Q)p Ft(,)e(the)h(number)h(of)f(e)n(v)o
(ent)h(types)f(queried)h(for)p Black 2152 4942 a Fi(\017)p
Black 38 w Fp(D)2281 4954 y Ff(i)2301 4942 y Ft(,)f(the)f(number)i(of)f
(detected)h(e)n(v)o(ents)g(of)f(e)n(v)o(ent)g(type)g
Fp(i)2115 5029 y Ft(In)k(this)g(section)h(we)f(set)g
Fp(T)28 b Fj(=)19 b Ft(100)24 b(and)f Fp(D)3248 5041
y Ff(i)3288 5029 y Fj(=)c Ft(100)24 b(for)f(all)f Fp(i)p
Ft(,)i(and)g(v)n(ary)2040 5116 y Fp(n)i Ft(and)h Fp(Q)p
Ft(.)44 b(W)-6 b(e)26 b(present)g(tw)o(o)g(basic)h(tests.)44
b(In)26 b(test)f(#1)i(we)f(hold)g Fp(n)g Ft(\002x)o(ed)2040
5203 y(\()p Fp(n)19 b Fj(=)f Ft(10000\))23 b(and)g(v)n(ary)g
Fp(Q)p Ft(.)31 b(In)22 b(test)g(#2)g(we)g(set)g Fp(Q)c
Fj(=)g Ft(50)23 b(and)g(v)n(ary)f Fp(n)p Ft(;)i(for)2040
5290 y(reasons)h(we)f(ga)o(v)o(e)h(in)f(Section)g(5.1,)h(we)g(hold)f
(the)h(system)f(density)h(\002x)o(ed)2040 5378 y(and)e(increase)g(the)g
(sensornet)g(size)g(as)f(we)g(increase)h Fp(n)p Ft(.)34
b(All)22 b(these)h(results)p Black Black eop
%%Page: 9 9
9 8 bop Black Black Black -101 1242 a @beginspecial 50
@llx 50 @lly 410 @urx 302 @ury 2289 @rwi @setspecial
%%BeginDocument: figs/scaleQ_M.eps
%!PS-Adobe-2.0 EPSF-2.0
%%Title: graph.ps
%%Creator: gnuplot 3.7 patchlevel 1
%%CreationDate: Fri Aug  9 11:12:20 2002
%%DocumentFonts: (atend)
%%BoundingBox: 50 50 410 302
%%Orientation: Portrait
%%EndComments
/gnudict 256 dict def
gnudict begin
/Color false def
/Solid false def
/gnulinewidth 5.000 def
/userlinewidth gnulinewidth def
/vshift -46 def
/dl {10 mul} def
/hpt_ 31.5 def
/vpt_ 31.5 def
/hpt hpt_ def
/vpt vpt_ def
/M {moveto} bind def
/L {lineto} bind def
/R {rmoveto} bind def
/V {rlineto} bind def
/vpt2 vpt 2 mul def
/hpt2 hpt 2 mul def
/Lshow { currentpoint stroke M
  0 vshift R show } def
/Rshow { currentpoint stroke M
  dup stringwidth pop neg vshift R show } def
/Cshow { currentpoint stroke M
  dup stringwidth pop -2 div vshift R show } def
/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
 {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
/BL { stroke userlinewidth 2 mul setlinewidth } def
/AL { stroke userlinewidth 2 div setlinewidth } def
/UL { dup gnulinewidth mul /userlinewidth exch def
      10 mul /udl exch def } def
/PL { stroke userlinewidth setlinewidth } def
/LTb { BL [] 0 0 0 DL } def
/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def
/LT0 { PL [] 1 0 0 DL } def
/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def
/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
/Pnt { stroke [] 0 setdash
   gsave 1 setlinecap M 0 0 V stroke grestore } def
/Dia { stroke [] 0 setdash 2 copy vpt add M
  hpt neg vpt neg V hpt vpt neg V
  hpt vpt V hpt neg vpt V closepath stroke
  Pnt } def
/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
  currentpoint stroke M
  hpt neg vpt neg R hpt2 0 V stroke
  } def
/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
  0 vpt2 neg V hpt2 0 V 0 vpt2 V
  hpt2 neg 0 V closepath stroke
  Pnt } def
/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
  hpt2 vpt2 neg V currentpoint stroke M
  hpt2 neg 0 R hpt2 vpt2 V stroke } def
/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
  hpt neg vpt -1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt 1.62 mul V closepath stroke
  Pnt  } def
/Star { 2 copy Pls Crs } def
/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
  hpt2 neg 0 V  closepath fill } def
/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
  hpt neg vpt -1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt 1.62 mul V closepath fill } def
/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
  hpt neg vpt 1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt -1.62 mul V closepath stroke
  Pnt  } def
/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
  hpt neg vpt 1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt -1.62 mul V closepath fill} def
/DiaF { stroke [] 0 setdash vpt add M
  hpt neg vpt neg V hpt vpt neg V
  hpt vpt V hpt neg vpt V closepath fill } def
/Pent { stroke [] 0 setdash 2 copy gsave
  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
  closepath stroke grestore Pnt } def
/PentF { stroke [] 0 setdash gsave
  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
  closepath fill grestore } def
/Circle { stroke [] 0 setdash 2 copy
  hpt 0 360 arc stroke Pnt } def
/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
/C1 { BL [] 0 setdash 2 copy        moveto
       2 copy  vpt 0 90 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C2 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 90 180 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C3 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 0 180 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C4 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 180 270 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C5 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 0 90 arc
       2 copy moveto
       2 copy  vpt 180 270 arc closepath fill
               vpt 0 360 arc } bind def
/C6 { BL [] 0 setdash 2 copy moveto
      2 copy  vpt 90 270 arc closepath fill
              vpt 0 360 arc closepath } bind def
/C7 { BL [] 0 setdash 2 copy moveto
      2 copy  vpt 0 270 arc closepath fill
              vpt 0 360 arc closepath } bind def
/C8 { BL [] 0 setdash 2 copy moveto
      2 copy vpt 270 360 arc closepath fill
              vpt 0 360 arc closepath } bind def
/C9 { BL [] 0 setdash 2 copy moveto
      2 copy  vpt 270 450 arc closepath fill
              vpt 0 360 arc closepath } bind def
/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
       2 copy moveto
       2 copy vpt 90 180 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C11 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 0 180 arc closepath fill
       2 copy moveto
       2 copy  vpt 270 360 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C12 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 180 360 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C13 { BL [] 0 setdash  2 copy moveto
       2 copy  vpt 0 90 arc closepath fill
       2 copy moveto
       2 copy  vpt 180 360 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C14 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 90 360 arc closepath fill
               vpt 0 360 arc } bind def
/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
               vpt 0 360 arc closepath } bind def
/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
       neg 0 rlineto closepath } bind def
/Square { dup Rec } bind def
/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
       2 copy vpt Square fill
       Bsquare } bind def
/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
       Bsquare } bind def
/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
       Bsquare } bind def
/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
       2 copy vpt Square fill Bsquare } bind def
/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
/DiaE { stroke [] 0 setdash vpt add M
  hpt neg vpt neg V hpt vpt neg V
  hpt vpt V hpt neg vpt V closepath stroke } def
/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
  0 vpt2 neg V hpt2 0 V 0 vpt2 V
  hpt2 neg 0 V closepath stroke } def
/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
  hpt neg vpt -1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt 1.62 mul V closepath stroke } def
/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
  hpt neg vpt 1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt -1.62 mul V closepath stroke } def
/PentE { stroke [] 0 setdash gsave
  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
  closepath stroke grestore } def
/CircE { stroke [] 0 setdash 
  hpt 0 360 arc stroke } def
/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def
/DiaW { stroke [] 0 setdash vpt add M
  hpt neg vpt neg V hpt vpt neg V
  hpt vpt V hpt neg vpt V Opaque stroke } def
/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M
  0 vpt2 neg V hpt2 0 V 0 vpt2 V
  hpt2 neg 0 V Opaque stroke } def
/TriUW { stroke [] 0 setdash vpt 1.12 mul add M
  hpt neg vpt -1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt 1.62 mul V Opaque stroke } def
/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M
  hpt neg vpt 1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt -1.62 mul V Opaque stroke } def
/PentW { stroke [] 0 setdash gsave
  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
  Opaque stroke grestore } def
/CircW { stroke [] 0 setdash 
  hpt 0 360 arc Opaque stroke } def
/BoxFill { gsave Rec 1 setgray fill grestore } def
end
%%EndProlog
gnudict begin
gsave
50 50 translate
0.050 0.050 scale
0 setgray
newpath
(Helvetica-Bold) findfont 140 scalefont setfont
1.000 UL
LTb
966 420 M
63 0 V
5933 0 R
-63 0 V
882 420 M
(0) Rshow
966 1056 M
63 0 V
5933 0 R
-63 0 V
-6017 0 R
(200000) Rshow
966 1692 M
63 0 V
5933 0 R
-63 0 V
-6017 0 R
(400000) Rshow
966 2328 M
63 0 V
5933 0 R
-63 0 V
-6017 0 R
(600000) Rshow
966 2964 M
63 0 V
5933 0 R
-63 0 V
-6017 0 R
(800000) Rshow
966 3600 M
63 0 V
5933 0 R
-63 0 V
-6017 0 R
(1e+06) Rshow
966 4236 M
63 0 V
5933 0 R
-63 0 V
-6017 0 R
(1.2e+06) Rshow
966 4872 M
63 0 V
5933 0 R
-63 0 V
-6017 0 R
(1.4e+06) Rshow
966 420 M
0 63 V
0 4389 R
0 -63 V
966 280 M
(0) Cshow
1566 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
(10) Cshow
2165 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
(20) Cshow
2765 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
(30) Cshow
3364 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
(40) Cshow
3964 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
(50) Cshow
4564 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
(60) Cshow
5163 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
(70) Cshow
5763 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
(80) Cshow
6362 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
(90) Cshow
6962 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
(100) Cshow
1.000 UL
LTb
966 420 M
5996 0 V
0 4452 V
-5996 0 V
966 420 L
140 2646 M
currentpoint gsave translate 90 rotate 0 0 M
(Total Messages) Cshow
grestore
3964 70 M
(Queries) Cshow
2.000 UP
2.000 UL
LT0
1554 4739 M
(LS) Rshow
1638 4739 M
399 0 V
1026 464 M
540 391 V
599 435 V
600 436 V
599 435 V
600 435 V
600 435 V
599 436 V
600 435 V
599 435 V
600 436 V
1026 464 Pls
1566 855 Pls
2165 1290 Pls
2765 1726 Pls
3364 2161 Pls
3964 2596 Pls
4564 3031 Pls
5163 3467 Pls
5763 3902 Pls
6362 4337 Pls
6962 4773 Pls
1837 4739 Pls
2.000 UP
2.000 UL
LT1
1554 4599 M
(ES) Rshow
1638 4599 M
399 0 V
1026 1592 M
540 0 V
599 1 V
600 0 V
599 0 V
600 0 V
600 1 V
599 0 V
600 0 V
599 1 V
600 0 V
1026 1592 Crs
1566 1592 Crs
2165 1593 Crs
2765 1593 Crs
3364 1593 Crs
3964 1593 Crs
4564 1594 Crs
5163 1594 Crs
5763 1594 Crs
6362 1595 Crs
6962 1595 Crs
1837 4599 Crs
2.000 UP
2.000 UL
LT2
1554 4459 M
(N-DCS) Rshow
1638 4459 M
399 0 V
1026 1423 M
540 106 V
599 119 V
600 122 V
599 121 V
600 123 V
600 116 V
599 121 V
600 115 V
599 117 V
600 115 V
1026 1423 Star
1566 1529 Star
2165 1648 Star
2765 1770 Star
3364 1891 Star
3964 2014 Star
4564 2130 Star
5163 2251 Star
5763 2366 Star
6362 2483 Star
6962 2598 Star
1837 4459 Star
2.000 UP
2.000 UL
LT3
1554 4319 M
(S-DCS) Rshow
1638 4319 M
399 0 V
1026 1412 M
540 1 V
599 4 V
600 3 V
599 3 V
600 2 V
600 3 V
599 1 V
600 5 V
599 1 V
600 3 V
1026 1412 Box
1566 1413 Box
2165 1417 Box
2765 1420 Box
3364 1423 Box
3964 1425 Box
4564 1428 Box
5163 1429 Box
5763 1434 Box
6362 1435 Box
6962 1438 Box
1837 4319 Box
2.000 UP
2.000 UL
LT4
1554 4179 M
(SR-DCS) Rshow
1638 4179 M
399 0 V
1026 645 M
540 69 V
599 26 V
600 25 V
599 24 V
600 24 V
600 22 V
599 10 V
600 9 V
599 8 V
600 9 V
1026 645 BoxF
1566 714 BoxF
2165 740 BoxF
2765 765 BoxF
3364 789 BoxF
3964 813 BoxF
4564 835 BoxF
5163 845 BoxF
5763 854 BoxF
6362 862 BoxF
6962 871 BoxF
1837 4179 BoxF
stroke
grestore
end
showpage
%%Trailer
%%DocumentFonts: Helvetica-Bold

%%EndDocument
 @endspecial -152 1309 a Fs(Figur)o(e)15 b(8:)22 b(T)-7
b(otal)15 b(number)g(of)g(messages)i(generated)e(as)h
Fp(Q)p Fs(,)g(the)f(number)-152 1396 y(of)h(e)o(v)o(ent)h(types)f
(queried)e(f)n(or)-7 b(,)17 b(is)f(incr)o(eased.)21 b(The)16
b(number)f(of)h(nodes)g(\()p Fp(n)p Fs(\))-152 1484 y(is)j(held)f
(\002xed)g(at)h(10,000)h(nodes.)2074 1242 y @beginspecial
50 @llx 50 @lly 410 @urx 302 @ury 2289 @rwi @setspecial
%%BeginDocument: figs/scaleQ_S.eps
%!PS-Adobe-2.0 EPSF-2.0
%%Title: graph.ps
%%Creator: gnuplot 3.7 patchlevel 1
%%CreationDate: Fri Aug  9 11:12:39 2002
%%DocumentFonts: (atend)
%%BoundingBox: 50 50 410 302
%%Orientation: Portrait
%%EndComments
/gnudict 256 dict def
gnudict begin
/Color false def
/Solid false def
/gnulinewidth 5.000 def
/userlinewidth gnulinewidth def
/vshift -46 def
/dl {10 mul} def
/hpt_ 31.5 def
/vpt_ 31.5 def
/hpt hpt_ def
/vpt vpt_ def
/M {moveto} bind def
/L {lineto} bind def
/R {rmoveto} bind def
/V {rlineto} bind def
/vpt2 vpt 2 mul def
/hpt2 hpt 2 mul def
/Lshow { currentpoint stroke M
  0 vshift R show } def
/Rshow { currentpoint stroke M
  dup stringwidth pop neg vshift R show } def
/Cshow { currentpoint stroke M
  dup stringwidth pop -2 div vshift R show } def
/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
 {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
/BL { stroke userlinewidth 2 mul setlinewidth } def
/AL { stroke userlinewidth 2 div setlinewidth } def
/UL { dup gnulinewidth mul /userlinewidth exch def
      10 mul /udl exch def } def
/PL { stroke userlinewidth setlinewidth } def
/LTb { BL [] 0 0 0 DL } def
/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def
/LT0 { PL [] 1 0 0 DL } def
/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def
/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
/Pnt { stroke [] 0 setdash
   gsave 1 setlinecap M 0 0 V stroke grestore } def
/Dia { stroke [] 0 setdash 2 copy vpt add M
  hpt neg vpt neg V hpt vpt neg V
  hpt vpt V hpt neg vpt V closepath stroke
  Pnt } def
/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
  currentpoint stroke M
  hpt neg vpt neg R hpt2 0 V stroke
  } def
/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
  0 vpt2 neg V hpt2 0 V 0 vpt2 V
  hpt2 neg 0 V closepath stroke
  Pnt } def
/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
  hpt2 vpt2 neg V currentpoint stroke M
  hpt2 neg 0 R hpt2 vpt2 V stroke } def
/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
  hpt neg vpt -1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt 1.62 mul V closepath stroke
  Pnt  } def
/Star { 2 copy Pls Crs } def
/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
  hpt2 neg 0 V  closepath fill } def
/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
  hpt neg vpt -1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt 1.62 mul V closepath fill } def
/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
  hpt neg vpt 1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt -1.62 mul V closepath stroke
  Pnt  } def
/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
  hpt neg vpt 1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt -1.62 mul V closepath fill} def
/DiaF { stroke [] 0 setdash vpt add M
  hpt neg vpt neg V hpt vpt neg V
  hpt vpt V hpt neg vpt V closepath fill } def
/Pent { stroke [] 0 setdash 2 copy gsave
  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
  closepath stroke grestore Pnt } def
/PentF { stroke [] 0 setdash gsave
  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
  closepath fill grestore } def
/Circle { stroke [] 0 setdash 2 copy
  hpt 0 360 arc stroke Pnt } def
/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
/C1 { BL [] 0 setdash 2 copy        moveto
       2 copy  vpt 0 90 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C2 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 90 180 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C3 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 0 180 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C4 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 180 270 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C5 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 0 90 arc
       2 copy moveto
       2 copy  vpt 180 270 arc closepath fill
               vpt 0 360 arc } bind def
/C6 { BL [] 0 setdash 2 copy moveto
      2 copy  vpt 90 270 arc closepath fill
              vpt 0 360 arc closepath } bind def
/C7 { BL [] 0 setdash 2 copy moveto
      2 copy  vpt 0 270 arc closepath fill
              vpt 0 360 arc closepath } bind def
/C8 { BL [] 0 setdash 2 copy moveto
      2 copy vpt 270 360 arc closepath fill
              vpt 0 360 arc closepath } bind def
/C9 { BL [] 0 setdash 2 copy moveto
      2 copy  vpt 270 450 arc closepath fill
              vpt 0 360 arc closepath } bind def
/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
       2 copy moveto
       2 copy vpt 90 180 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C11 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 0 180 arc closepath fill
       2 copy moveto
       2 copy  vpt 270 360 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C12 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 180 360 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C13 { BL [] 0 setdash  2 copy moveto
       2 copy  vpt 0 90 arc closepath fill
       2 copy moveto
       2 copy  vpt 180 360 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C14 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 90 360 arc closepath fill
               vpt 0 360 arc } bind def
/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
               vpt 0 360 arc closepath } bind def
/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
       neg 0 rlineto closepath } bind def
/Square { dup Rec } bind def
/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
       2 copy vpt Square fill
       Bsquare } bind def
/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
       Bsquare } bind def
/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
       Bsquare } bind def
/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
       2 copy vpt Square fill Bsquare } bind def
/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
/DiaE { stroke [] 0 setdash vpt add M
  hpt neg vpt neg V hpt vpt neg V
  hpt vpt V hpt neg vpt V closepath stroke } def
/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
  0 vpt2 neg V hpt2 0 V 0 vpt2 V
  hpt2 neg 0 V closepath stroke } def
/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
  hpt neg vpt -1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt 1.62 mul V closepath stroke } def
/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
  hpt neg vpt 1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt -1.62 mul V closepath stroke } def
/PentE { stroke [] 0 setdash gsave
  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
  closepath stroke grestore } def
/CircE { stroke [] 0 setdash 
  hpt 0 360 arc stroke } def
/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def
/DiaW { stroke [] 0 setdash vpt add M
  hpt neg vpt neg V hpt vpt neg V
  hpt vpt V hpt neg vpt V Opaque stroke } def
/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M
  0 vpt2 neg V hpt2 0 V 0 vpt2 V
  hpt2 neg 0 V Opaque stroke } def
/TriUW { stroke [] 0 setdash vpt 1.12 mul add M
  hpt neg vpt -1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt 1.62 mul V Opaque stroke } def
/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M
  hpt neg vpt 1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt -1.62 mul V Opaque stroke } def
/PentW { stroke [] 0 setdash gsave
  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
  Opaque stroke grestore } def
/CircW { stroke [] 0 setdash 
  hpt 0 360 arc Opaque stroke } def
/BoxFill { gsave Rec 1 setgray fill grestore } def
end
%%EndProlog
gnudict begin
gsave
50 50 translate
0.050 0.050 scale
0 setgray
newpath
(Helvetica-Bold) findfont 140 scalefont setfont
1.000 UL
LTb
714 420 M
63 0 V
6185 0 R
-63 0 V
630 420 M
(0) Rshow
714 977 M
63 0 V
6185 0 R
-63 0 V
630 977 M
(1000) Rshow
714 1533 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
(2000) Rshow
714 2090 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
(3000) Rshow
714 2646 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
(4000) Rshow
714 3203 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
(5000) Rshow
714 3759 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
(6000) Rshow
714 4316 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
(7000) Rshow
714 4872 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
(8000) Rshow
714 420 M
0 63 V
0 4389 R
0 -63 V
714 280 M
(0) Cshow
1339 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
(10) Cshow
1964 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
(20) Cshow
2588 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
(30) Cshow
3213 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
(40) Cshow
3838 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
(50) Cshow
4463 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
(60) Cshow
5088 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
(70) Cshow
5712 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
(80) Cshow
6337 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
(90) Cshow
6962 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
(100) Cshow
1.000 UL
LTb
714 420 M
6248 0 V
0 4452 V
-6248 0 V
714 420 L
140 2646 M
currentpoint gsave translate 90 rotate 0 0 M
(Max Msgs Tx per Node) Cshow
grestore
3838 70 M
(Queries) Cshow
2.000 UP
2.000 UL
LT0
1302 4739 M
(LS) Rshow
1386 4739 M
399 0 V
776 464 M
563 394 V
625 444 V
624 441 V
625 441 V
625 443 V
625 441 V
625 442 V
624 444 V
625 444 V
625 438 V
776 464 Pls
1339 858 Pls
1964 1302 Pls
2588 1743 Pls
3213 2184 Pls
3838 2627 Pls
4463 3068 Pls
5088 3510 Pls
5712 3954 Pls
6337 4398 Pls
6962 4836 Pls
1585 4739 Pls
2.000 UP
2.000 UL
LT1
1302 4599 M
(ES) Rshow
1386 4599 M
399 0 V
776 3986 M
563 1 V
625 0 V
624 -3 V
625 -4 V
625 3 V
625 -3 V
625 0 V
624 1 V
625 0 V
625 1 V
776 3986 Crs
1339 3987 Crs
1964 3987 Crs
2588 3984 Crs
3213 3980 Crs
3838 3983 Crs
4463 3980 Crs
5088 3980 Crs
5712 3981 Crs
6337 3981 Crs
6962 3982 Crs
1585 4599 Crs
2.000 UP
2.000 UL
LT2
1302 4459 M
(N-DCS) Rshow
1386 4459 M
399 0 V
776 625 M
563 183 V
625 363 V
624 367 V
625 355 V
625 334 V
625 392 V
625 372 V
624 348 V
625 373 V
625 339 V
776 625 Star
1339 808 Star
1964 1171 Star
2588 1538 Star
3213 1893 Star
3838 2227 Star
4463 2619 Star
5088 2991 Star
5712 3339 Star
6337 3712 Star
6962 4051 Star
1585 4459 Star
2.000 UP
2.000 UL
LT3
1302 4319 M
(S-DCS) Rshow
1386 4319 M
399 0 V
776 624 M
563 -1 V
625 2 V
624 -1 V
625 2 V
625 -5 V
625 6 V
625 -2 V
624 0 V
625 4 V
625 -1 V
776 624 Box
1339 623 Box
1964 625 Box
2588 624 Box
3213 626 Box
3838 621 Box
4463 627 Box
5088 625 Box
5712 625 Box
6337 629 Box
6962 628 Box
1585 4319 Box
2.000 UP
2.000 UL
LT4
1302 4179 M
(SR-DCS) Rshow
1386 4179 M
399 0 V
776 442 M
563 7 V
625 5 V
624 5 V
625 7 V
625 11 V
625 12 V
625 11 V
624 11 V
625 11 V
625 11 V
776 442 BoxF
1339 449 BoxF
1964 454 BoxF
2588 459 BoxF
3213 466 BoxF
3838 477 BoxF
4463 489 BoxF
5088 500 BoxF
5712 511 BoxF
6337 522 BoxF
6962 533 BoxF
1585 4179 BoxF
stroke
grestore
end
showpage
%%Trailer
%%DocumentFonts: Helvetica-Bold

%%EndDocument
 @endspecial 2024 1309 a(Figur)o(e)c(9:)23 b(The)17 b(maximum)g(number)
f(of)i(messages)g(sent)f(by)g(any)g(single)2024 1396
y(node)22 b(as)h Fp(Q)p Fs(,)f(the)g(number)g(of)g(e)o(v)o(ent)g(types)
h(queried)e(f)n(or)-7 b(,)23 b(is)f(incr)o(eased.)2024
1484 y(The)c(number)g(of)h(nodes)g(\()p Fp(n)p Fs(\))f(is)h(held)f
(\002xed)g(at)h(10,000)h(nodes.)p Black Black -101 2862
a @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury 2289
@rwi @setspecial
%%BeginDocument: figs/scaleN_M.eps
%!PS-Adobe-2.0 EPSF-2.0
%%Title: graph.ps
%%Creator: gnuplot 3.7 patchlevel 1
%%CreationDate: Fri Aug  9 11:13:44 2002
%%DocumentFonts: (atend)
%%BoundingBox: 50 50 410 302
%%Orientation: Portrait
%%EndComments
/gnudict 256 dict def
gnudict begin
/Color false def
/Solid false def
/gnulinewidth 5.000 def
/userlinewidth gnulinewidth def
/vshift -46 def
/dl {10 mul} def
/hpt_ 31.5 def
/vpt_ 31.5 def
/hpt hpt_ def
/vpt vpt_ def
/M {moveto} bind def
/L {lineto} bind def
/R {rmoveto} bind def
/V {rlineto} bind def
/vpt2 vpt 2 mul def
/hpt2 hpt 2 mul def
/Lshow { currentpoint stroke M
  0 vshift R show } def
/Rshow { currentpoint stroke M
  dup stringwidth pop neg vshift R show } def
/Cshow { currentpoint stroke M
  dup stringwidth pop -2 div vshift R show } def
/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
 {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
/BL { stroke userlinewidth 2 mul setlinewidth } def
/AL { stroke userlinewidth 2 div setlinewidth } def
/UL { dup gnulinewidth mul /userlinewidth exch def
      10 mul /udl exch def } def
/PL { stroke userlinewidth setlinewidth } def
/LTb { BL [] 0 0 0 DL } def
/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def
/LT0 { PL [] 1 0 0 DL } def
/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def
/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
/Pnt { stroke [] 0 setdash
   gsave 1 setlinecap M 0 0 V stroke grestore } def
/Dia { stroke [] 0 setdash 2 copy vpt add M
  hpt neg vpt neg V hpt vpt neg V
  hpt vpt V hpt neg vpt V closepath stroke
  Pnt } def
/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
  currentpoint stroke M
  hpt neg vpt neg R hpt2 0 V stroke
  } def
/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
  0 vpt2 neg V hpt2 0 V 0 vpt2 V
  hpt2 neg 0 V closepath stroke
  Pnt } def
/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
  hpt2 vpt2 neg V currentpoint stroke M
  hpt2 neg 0 R hpt2 vpt2 V stroke } def
/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
  hpt neg vpt -1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt 1.62 mul V closepath stroke
  Pnt  } def
/Star { 2 copy Pls Crs } def
/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
  hpt2 neg 0 V  closepath fill } def
/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
  hpt neg vpt -1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt 1.62 mul V closepath fill } def
/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
  hpt neg vpt 1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt -1.62 mul V closepath stroke
  Pnt  } def
/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
  hpt neg vpt 1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt -1.62 mul V closepath fill} def
/DiaF { stroke [] 0 setdash vpt add M
  hpt neg vpt neg V hpt vpt neg V
  hpt vpt V hpt neg vpt V closepath fill } def
/Pent { stroke [] 0 setdash 2 copy gsave
  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
  closepath stroke grestore Pnt } def
/PentF { stroke [] 0 setdash gsave
  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
  closepath fill grestore } def
/Circle { stroke [] 0 setdash 2 copy
  hpt 0 360 arc stroke Pnt } def
/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
/C1 { BL [] 0 setdash 2 copy        moveto
       2 copy  vpt 0 90 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C2 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 90 180 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C3 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 0 180 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C4 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 180 270 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C5 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 0 90 arc
       2 copy moveto
       2 copy  vpt 180 270 arc closepath fill
               vpt 0 360 arc } bind def
/C6 { BL [] 0 setdash 2 copy moveto
      2 copy  vpt 90 270 arc closepath fill
              vpt 0 360 arc closepath } bind def
/C7 { BL [] 0 setdash 2 copy moveto
      2 copy  vpt 0 270 arc closepath fill
              vpt 0 360 arc closepath } bind def
/C8 { BL [] 0 setdash 2 copy moveto
      2 copy vpt 270 360 arc closepath fill
              vpt 0 360 arc closepath } bind def
/C9 { BL [] 0 setdash 2 copy moveto
      2 copy  vpt 270 450 arc closepath fill
              vpt 0 360 arc closepath } bind def
/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
       2 copy moveto
       2 copy vpt 90 180 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C11 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 0 180 arc closepath fill
       2 copy moveto
       2 copy  vpt 270 360 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C12 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 180 360 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C13 { BL [] 0 setdash  2 copy moveto
       2 copy  vpt 0 90 arc closepath fill
       2 copy moveto
       2 copy  vpt 180 360 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C14 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 90 360 arc closepath fill
               vpt 0 360 arc } bind def
/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
               vpt 0 360 arc closepath } bind def
/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
       neg 0 rlineto closepath } bind def
/Square { dup Rec } bind def
/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
       2 copy vpt Square fill
       Bsquare } bind def
/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
       Bsquare } bind def
/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
       Bsquare } bind def
/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
       2 copy vpt Square fill Bsquare } bind def
/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
/DiaE { stroke [] 0 setdash vpt add M
  hpt neg vpt neg V hpt vpt neg V
  hpt vpt V hpt neg vpt V closepath stroke } def
/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
  0 vpt2 neg V hpt2 0 V 0 vpt2 V
  hpt2 neg 0 V closepath stroke } def
/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
  hpt neg vpt -1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt 1.62 mul V closepath stroke } def
/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
  hpt neg vpt 1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt -1.62 mul V closepath stroke } def
/PentE { stroke [] 0 setdash gsave
  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
  closepath stroke grestore } def
/CircE { stroke [] 0 setdash 
  hpt 0 360 arc stroke } def
/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def
/DiaW { stroke [] 0 setdash vpt add M
  hpt neg vpt neg V hpt vpt neg V
  hpt vpt V hpt neg vpt V Opaque stroke } def
/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M
  0 vpt2 neg V hpt2 0 V 0 vpt2 V
  hpt2 neg 0 V Opaque stroke } def
/TriUW { stroke [] 0 setdash vpt 1.12 mul add M
  hpt neg vpt -1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt 1.62 mul V Opaque stroke } def
/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M
  hpt neg vpt 1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt -1.62 mul V Opaque stroke } def
/PentW { stroke [] 0 setdash gsave
  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
  Opaque stroke grestore } def
/CircW { stroke [] 0 setdash 
  hpt 0 360 arc Opaque stroke } def
/BoxFill { gsave Rec 1 setgray fill grestore } def
end
%%EndProlog
gnudict begin
gsave
50 50 translate
0.050 0.050 scale
0 setgray
newpath
(Helvetica-Bold) findfont 140 scalefont setfont
1.000 UL
LTb
630 420 M
63 0 V
6269 0 R
-63 0 V
546 420 M
(4) Rshow
630 1162 M
63 0 V
6269 0 R
-63 0 V
-6353 0 R
(4.5) Rshow
630 1904 M
63 0 V
6269 0 R
-63 0 V
-6353 0 R
(5) Rshow
630 2646 M
63 0 V
6269 0 R
-63 0 V
-6353 0 R
(5.5) Rshow
630 3388 M
63 0 V
6269 0 R
-63 0 V
-6353 0 R
(6) Rshow
630 4130 M
63 0 V
6269 0 R
-63 0 V
-6353 0 R
(6.5) Rshow
630 4872 M
63 0 V
6269 0 R
-63 0 V
-6353 0 R
(7) Rshow
630 420 M
0 63 V
0 4389 R
0 -63 V
630 280 M
(100) Cshow
2741 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
(1000) Cshow
4851 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
(10000) Cshow
6962 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
(100000) Cshow
1.000 UL
LTb
630 420 M
6332 0 V
0 4452 V
-6332 0 V
630 420 L
140 2646 M
currentpoint gsave translate 90 rotate 0 0 M
(Total Messages \(log10 scale\)) Cshow
grestore
3796 70 M
(Network Size \(log10 scale\)) Cshow
2.000 UP
2.000 UL
LT0
1218 4739 M
(LS) Rshow
1302 4739 M
399 0 V
630 1001 M
2741 2028 L
4851 3154 L
6962 4524 L
630 1001 Pls
2741 2028 Pls
4851 3154 Pls
6962 4524 Pls
1501 4739 Pls
2.000 UP
2.000 UL
LT1
1218 4599 M
(ES) Rshow
1302 4599 M
399 0 V
630 1298 M
2111 829 V
2110 660 V
2111 924 V
630 1298 Crs
2741 2127 Crs
4851 2787 Crs
6962 3711 Crs
1501 4599 Crs
2.000 UP
2.000 UL
LT2
1218 4459 M
(N-DCS) Rshow
1302 4459 M
399 0 V
630 1864 M
2111 508 V
2110 582 V
2111 734 V
630 1864 Star
2741 2372 Star
4851 2954 Star
6962 3688 Star
1501 4459 Star
2.000 UP
2.000 UL
LT3
1218 4319 M
(S-DCS) Rshow
1302 4319 M
399 0 V
630 1718 M
2111 412 V
2110 522 V
2111 646 V
630 1718 Box
2741 2130 Box
4851 2652 Box
6962 3298 Box
1501 4319 Box
2.000 UP
2.000 UL
LT4
1218 4179 M
(SR-DCS) Rshow
1302 4179 M
399 0 V
630 1571 M
2111 232 V
2110 247 V
2111 417 V
630 1571 BoxF
2741 1803 BoxF
4851 2050 BoxF
6962 2467 BoxF
1501 4179 BoxF
stroke
grestore
end
showpage
%%Trailer
%%DocumentFonts: Helvetica-Bold

%%EndDocument
 @endspecial -152 2929 a(Figur)o(e)h(10:)29 b(T)-7 b(otal)22
b(number)e(of)i(messages)h(generated)f(as)g Fp(n)p Fs(,)g(the)f(num-)
-152 3016 y(ber)i(of)h(nodes,)g(is)f(incr)o(eased.)36
b(The)23 b(number)f(of)i(e)o(v)o(ent)g(types)f(queried)-152
3104 y(f)n(or)d(\()p Fp(Q)p Fs(\))e(is)g(held)g(\002xed)g(at)h(50.)2074
2862 y @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury
2289 @rwi @setspecial
%%BeginDocument: figs/scaleN_S.eps
%!PS-Adobe-2.0 EPSF-2.0
%%Title: graph.ps
%%Creator: gnuplot 3.7 patchlevel 1
%%CreationDate: Fri Aug  9 11:13:56 2002
%%DocumentFonts: (atend)
%%BoundingBox: 50 50 410 302
%%Orientation: Portrait
%%EndComments
/gnudict 256 dict def
gnudict begin
/Color false def
/Solid false def
/gnulinewidth 5.000 def
/userlinewidth gnulinewidth def
/vshift -46 def
/dl {10 mul} def
/hpt_ 31.5 def
/vpt_ 31.5 def
/hpt hpt_ def
/vpt vpt_ def
/M {moveto} bind def
/L {lineto} bind def
/R {rmoveto} bind def
/V {rlineto} bind def
/vpt2 vpt 2 mul def
/hpt2 hpt 2 mul def
/Lshow { currentpoint stroke M
  0 vshift R show } def
/Rshow { currentpoint stroke M
  dup stringwidth pop neg vshift R show } def
/Cshow { currentpoint stroke M
  dup stringwidth pop -2 div vshift R show } def
/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
 {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
/BL { stroke userlinewidth 2 mul setlinewidth } def
/AL { stroke userlinewidth 2 div setlinewidth } def
/UL { dup gnulinewidth mul /userlinewidth exch def
      10 mul /udl exch def } def
/PL { stroke userlinewidth setlinewidth } def
/LTb { BL [] 0 0 0 DL } def
/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def
/LT0 { PL [] 1 0 0 DL } def
/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def
/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
/Pnt { stroke [] 0 setdash
   gsave 1 setlinecap M 0 0 V stroke grestore } def
/Dia { stroke [] 0 setdash 2 copy vpt add M
  hpt neg vpt neg V hpt vpt neg V
  hpt vpt V hpt neg vpt V closepath stroke
  Pnt } def
/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
  currentpoint stroke M
  hpt neg vpt neg R hpt2 0 V stroke
  } def
/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
  0 vpt2 neg V hpt2 0 V 0 vpt2 V
  hpt2 neg 0 V closepath stroke
  Pnt } def
/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
  hpt2 vpt2 neg V currentpoint stroke M
  hpt2 neg 0 R hpt2 vpt2 V stroke } def
/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
  hpt neg vpt -1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt 1.62 mul V closepath stroke
  Pnt  } def
/Star { 2 copy Pls Crs } def
/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
  hpt2 neg 0 V  closepath fill } def
/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
  hpt neg vpt -1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt 1.62 mul V closepath fill } def
/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
  hpt neg vpt 1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt -1.62 mul V closepath stroke
  Pnt  } def
/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
  hpt neg vpt 1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt -1.62 mul V closepath fill} def
/DiaF { stroke [] 0 setdash vpt add M
  hpt neg vpt neg V hpt vpt neg V
  hpt vpt V hpt neg vpt V closepath fill } def
/Pent { stroke [] 0 setdash 2 copy gsave
  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
  closepath stroke grestore Pnt } def
/PentF { stroke [] 0 setdash gsave
  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
  closepath fill grestore } def
/Circle { stroke [] 0 setdash 2 copy
  hpt 0 360 arc stroke Pnt } def
/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
/C1 { BL [] 0 setdash 2 copy        moveto
       2 copy  vpt 0 90 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C2 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 90 180 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C3 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 0 180 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C4 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 180 270 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C5 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 0 90 arc
       2 copy moveto
       2 copy  vpt 180 270 arc closepath fill
               vpt 0 360 arc } bind def
/C6 { BL [] 0 setdash 2 copy moveto
      2 copy  vpt 90 270 arc closepath fill
              vpt 0 360 arc closepath } bind def
/C7 { BL [] 0 setdash 2 copy moveto
      2 copy  vpt 0 270 arc closepath fill
              vpt 0 360 arc closepath } bind def
/C8 { BL [] 0 setdash 2 copy moveto
      2 copy vpt 270 360 arc closepath fill
              vpt 0 360 arc closepath } bind def
/C9 { BL [] 0 setdash 2 copy moveto
      2 copy  vpt 270 450 arc closepath fill
              vpt 0 360 arc closepath } bind def
/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
       2 copy moveto
       2 copy vpt 90 180 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C11 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 0 180 arc closepath fill
       2 copy moveto
       2 copy  vpt 270 360 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C12 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 180 360 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C13 { BL [] 0 setdash  2 copy moveto
       2 copy  vpt 0 90 arc closepath fill
       2 copy moveto
       2 copy  vpt 180 360 arc closepath fill
               vpt 0 360 arc closepath } bind def
/C14 { BL [] 0 setdash 2 copy moveto
       2 copy  vpt 90 360 arc closepath fill
               vpt 0 360 arc } bind def
/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
               vpt 0 360 arc closepath } bind def
/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
       neg 0 rlineto closepath } bind def
/Square { dup Rec } bind def
/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
       2 copy vpt Square fill
       Bsquare } bind def
/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
       Bsquare } bind def
/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
       Bsquare } bind def
/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
       2 copy vpt Square fill Bsquare } bind def
/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
/DiaE { stroke [] 0 setdash vpt add M
  hpt neg vpt neg V hpt vpt neg V
  hpt vpt V hpt neg vpt V closepath stroke } def
/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
  0 vpt2 neg V hpt2 0 V 0 vpt2 V
  hpt2 neg 0 V closepath stroke } def
/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
  hpt neg vpt -1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt 1.62 mul V closepath stroke } def
/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
  hpt neg vpt 1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt -1.62 mul V closepath stroke } def
/PentE { stroke [] 0 setdash gsave
  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
  closepath stroke grestore } def
/CircE { stroke [] 0 setdash 
  hpt 0 360 arc stroke } def
/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def
/DiaW { stroke [] 0 setdash vpt add M
  hpt neg vpt neg V hpt vpt neg V
  hpt vpt V hpt neg vpt V Opaque stroke } def
/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M
  0 vpt2 neg V hpt2 0 V 0 vpt2 V
  hpt2 neg 0 V Opaque stroke } def
/TriUW { stroke [] 0 setdash vpt 1.12 mul add M
  hpt neg vpt -1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt 1.62 mul V Opaque stroke } def
/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M
  hpt neg vpt 1.62 mul V
  hpt 2 mul 0 V
  hpt neg vpt -1.62 mul V Opaque stroke } def
/PentW { stroke [] 0 setdash gsave
  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
  Opaque stroke grestore } def
/CircW { stroke [] 0 setdash 
  hpt 0 360 arc Opaque stroke } def
/BoxFill { gsave Rec 1 setgray fill grestore } def
end
%%EndProlog
gnudict begin
gsave
50 50 translate
0.050 0.050 scale
0 setgray
newpath
(Helvetica-Bold) findfont 140 scalefont setfont
1.000 UL
LTb
714 420 M
63 0 V
6185 0 R
-63 0 V
630 420 M
(0) Rshow
714 1056 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
(1000) Rshow
714 1692 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
(2000) Rshow
714 2328 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
(3000) Rshow
714 2964 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
(4000) Rshow
714 3600 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
(5000) Rshow
714 4236 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
(6000) Rshow
714 4872 M
63 0 V
6185 0 R
-63 0 V
-6269 0 R
(7000) Rshow
714 420 M
0 63 V
0 4389 R
0 -63 V
714 280 M
(100) Cshow
2797 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
(1000) Cshow
4879 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
(10000) Cshow
6962 420 M
0 63 V
0 4389 R
0 -63 V
0 -4529 R
(100000) Cshow
1.000 UL
LTb
714 420 M
6248 0 V
0 4452 V
-6248 0 V
714 420 L
140 2646 M
currentpoint gsave translate 90 rotate 0 0 M
(Max Msgs Tx per Node) Cshow
grestore
3838 70 M
(Network Size \(log10 scale\)) Cshow
2.000 UP
2.000 UL
LT0
1302 4739 M
(LS) Rshow
1386 4739 M
399 0 V
714 2417 M
2083 168 V
2082 161 V
2083 106 V
714 2417 Pls
2797 2585 Pls
4879 2746 Pls
6962 2852 Pls
1585 4739 Pls
2.000 UP
2.000 UL
LT1
1302 4599 M
(ES) Rshow
1386 4599 M
399 0 V
714 3518 M
2083 555 V
2082 215 V
2083 157 V
714 3518 Crs
2797 4073 Crs
4879 4288 Crs
6962 4445 Crs
1585 4599 Crs
2.000 UP
2.000 UL
LT2
1302 4459 M
(N-DCS) Rshow
1386 4459 M
399 0 V
714 2755 M
2797 2316 L
2082 168 V
2083 -31 V
714 2755 Star
2797 2316 Star
4879 2484 Star
6962 2453 Star
1585 4459 Star
2.000 UP
2.000 UL
LT3
1302 4319 M
(S-DCS) Rshow
1386 4319 M
399 0 V
714 1942 M
2797 985 L
4879 657 L
6962 567 L
714 1942 Box
2797 985 Box
4879 657 Box
6962 567 Box
1585 4319 Box
2.000 UP
2.000 UL
LT4
1302 4179 M
(SR-DCS) Rshow
1386 4179 M
399 0 V
714 1268 M
2797 606 L
4879 484 L
2083 0 V
714 1268 BoxF
2797 606 BoxF
4879 484 BoxF
6962 484 BoxF
1585 4179 BoxF
stroke
grestore
end
showpage
%%Trailer
%%DocumentFonts: Helvetica-Bold

%%EndDocument
 @endspecial 2024 2929 a(Figur)o(e)g(11:)26 b(The)20
b(maximum)g(number)g(of)g(messages)h(sent)f(by)f(any)h(sin-)2024
3016 y(gle)e(node)f(as)h Fp(n)p Fs(,)f(the)g(number)g(of)h(nodes,)f(is)
g(incr)o(eased.)22 b(The)17 b(number)f(of)2024 3104 y(e)o(v)o(ent)j
(types)g(queried)e(f)n(or)j(\()p Fp(Q)p Fs(\))e(is)h(held)e(\002xed)i
(at)g(50.)p Black -152 3351 a Ft(are)24 b(a)o(v)o(eraged)g(across)f
(ten)h(dif)n(ferent)f(topologies,)i(and)f(ten)g(runs)f(on)h(each)-152
3438 y(topology)-5 b(.)40 b(In)23 b(each)i(of)e(these)h(tests,)h(we)e
(sho)n(w)i(the)f(results)f(ES,)g(LS,)f(and)-152 3526
y(the)d(follo)n(wing)h(three)f(v)o(ersions)g(of)g(DCS:)p
Black -152 3666 a Fs(Normal)h(DCS)e(\(N-DCS\):)p Black
36 w Ft(A)29 b(query)g(returns)g(a)g(separate)g(message)h(for)35
3754 y(each)20 b(detected)f(e)n(v)o(ent)p Black -152
3891 a Fs(Summarized)g(DCS)f(\(S-DCS\):)p Black 36 w
Ft(A)d(query)h(returns)g(a)g(single)f(message)i(re-)35
3979 y(gardless)i(of)g(the)g(number)h(of)f(detected)h(e)n(v)o(ents)p
Black -152 4116 a Fs(Structur)o(ed)d(Replication)h(DCS)g(\(SR-DCS\):)p
Black 36 w Ft(W)-6 b(e)25 b(assume)i(an)f(optimal)35
4204 y(le)n(v)o(el)d(of)g(SR)f(\(as)h(described)h(in)e(Section)h(4.4\))
g(to)g(pro)o(vide)h(a)f(lo)n(wer)35 4291 y(bound.)i(W)-6
b(e)18 b(assume)i(summarization)g(in)e(this)h(case.)1432
4264 y Fm(7)-129 4373 y Fn(5.2.1)90 b(T)-8 b(est)22 b(#1:)32
b(V)-10 b(arying)21 b Fp(Q)-77 4481 y Ft(The)k(results)f(from)h(v)n
(arying)h Fp(Q)e Ft(are)h(sho)n(wn)h(in)f(Figures)f(8)h(and)g(9.)41
b(F)o(or)-152 4569 y(lo)n(w)22 b Fp(Q)p Ft(,)g(LS)f(has)i(lo)n(w)f
(total)f(and)i(hotspot)g(usage,)g(b)o(ut)f(both)g(quantities)h(in-)-152
4656 y(crease)29 b(linearly)g(in)f Fp(Q)p Ft(,)j(making)e(LS)f(a)g
(poor)h(choice)h(for)e(systems)h(with)-152 4743 y(man)o(y)22
b(queries.)30 b(External)21 b(storage)g(has)h(a)f(v)o(ery)g(high)h
(hotspot)g(load)f(and)h(a)-152 4830 y(medium)f(le)n(v)o(el)g(of)f
(total)g(usage,)h(both)g(independent)h(of)f Fp(Q)p Ft(.)27
b(Both)20 b(v)n(ariants)-152 4917 y(of)k(DCS)e(that)h(use)h
(summarization)g(ha)o(v)o(e)g(lo)n(w)f(total)g(and)h(hotspot)g(usage,)
-152 5004 y(b)o(ut)18 b(note)g(that)g(structured)g(replication)g(in)g
(SR-DCS)e(reduces)j(the)f(total)g(us-)-152 5092 y(age)g
(signi\002cantly)-5 b(.)23 b(The)16 b(hotspot)i(and)g(total)e(usage)i
(of)f(DCS)f(without)h(sum-)-152 5179 y(marization)28
b(\(N-DCS\))d(increases)j(linearly)f(in)g Fp(Q)p Ft(,)h(b)o(ut)f(the)g
(slope)h(of)f(the)p Black -152 5215 797 4 v -148 5276
a Fm(7)-114 5303 y Ft(W)-6 b(e)24 b(omit)h(structured)g(replication)g
(without)g(summarization)h(in)f(the)g(in-)-152 5378 y(terest)19
b(of)g(bre)n(vity)-5 b(.)p Black 2040 3351 a(total)20
b(usage)h(is)f(much)h(lo)n(wer)g(than)f(that)g(of)h(LS)e(\(b)o(ut)h
(has)h(a)f(higher)h(of)n(fset\).)2040 3438 y(These)26
b(results)g(suggest)h(that)e(for)h(lo)n(w)g Fp(Q)f Ft(all)h(methods)h
(b)o(ut)e(ES)g(perform)2040 3526 y(reasonably)k(well,)g(with)f(LS)f
(and)h(SR-DCS)e(being)j(the)f(best.)50 b(F)o(or)27 b(high)2040
3613 y Fp(Q)p Ft(,)d(SR-DCS)e(is)i(the)f(clearly)h(superior)g(choice,)i
(follo)n(wed)e(by)g(S-DCS.)e(If)2040 3700 y(summarization)d(is)e(not)h
(allo)n(wed,)h(then)f(the)g(choice)g(is)g(between)g(the)g(lo)n(wer)2040
3787 y(hotspot)i(usage)g(of)f(N-DCS)e(and)j(the)f(lo)n(wer)g(total)f
(usage)i(of)f(ES.)2063 3875 y Fn(5.2.2)90 b(T)-8 b(est)22
b(#2:)32 b(V)-10 b(arying)21 b Fp(n)2115 3983 y Ft(The)i(results)f
(from)h(v)n(arying)h Fp(n)f Ft(appear)g(in)g(Figures)g(10)g(and)g(11.)
35 b(All)22 b(of)2040 4070 y(the)i(methods)h(ha)o(v)o(e)g(reasonably)g
(similar)e(beha)o(vior)i(for)f(total)g(usage,)i(b)o(ut)2040
4157 y(LS)20 b(starts)g(of)n(f)g(\(at)g(lo)n(w)h Fp(n)p
Ft(\))f(with)g(the)h(lo)n(west)f(v)n(alue,)h(and)h(ends)f(up)g(\(at)f
(high)2040 4244 y Fp(n)p Ft(\))29 b(with)f(the)h(highest)g(v)n(alue.)53
b(S-DCS)27 b(and)i(SR-DCS)e(ha)o(v)o(e)i(the)f(lo)n(west)2040
4332 y(hotspot)f(usage)g(by)f(f)o(ar)m(,)h(b)o(ut)f(among)h(methods)g
(without)e(summarization)2040 4419 y(DCS)e(and)h(LS)e(ha)o(v)o(e)i
(similar)f(performance.)38 b(ES)23 b(has)g(the)h(w)o(orst)g(hotspot)
2040 4506 y(load.)50 b(Thus,)29 b(at)e(all)h(b)o(ut)f(the)g(lo)n(west)h
(v)n(alues)g(of)g Fp(n)g Ft(\(lo)n(wer)f(than)h(around)2040
4593 y Fp(n)20 b Fj(=)g Ft(1000\))26 b(the)f(DCS)f(v)n(ariants)i(are)f
(the)g(superior)g(choices.)42 b(Recall)25 b(that)2040
4680 y(these)20 b(simulations)g(use)g Fp(Q)d Fj(=)g Ft(50,)k(and)f(so)g
(these)g(conclusions)h(are)f(similar)2040 4767 y(to)f(those)g(in)g
(test)g(#1)g(abo)o(v)o(e.)2115 4855 y(These)c(performance)h(results)f
(are)g(remarkably)g(consistent)h(with)e(the)h(ap-)2040
4942 y(proximate)k(formulae)g(presented)h(in)e(Section)g(2.3.2;)h(the)f
(only)h(signi\002cant)2040 5029 y(de)n(viations)i(arise)e(in)h(cases)g
(where)g(the)g(hotspot)g(usage)h(does)f(not)g(occur)h(at)2040
5116 y(the)g(access)h(point.)29 b(These)21 b(simulations,)h(while)e
(idealizing)i(wireless)e(link)2040 5203 y(beha)o(vior)m(,)g(were)g
(true)g(pack)o(et-le)n(v)o(el)h(simulations)f(of)f(these)h(algorithms)g
(in)2040 5290 y(systems)27 b(as)f(lar)o(ge)g(as)g Fp(n)21
b Fj(=)g Ft(100)p Fk(;)8 b Ft(000.)47 b(The)26 b(formulae)h(of)f
(Section)g(2.3.2)2040 5378 y(suggest)f(that)e(DCS)g(is)g(particularly)g
(appropriate)i(as)f(system)f(size)h(gro)n(ws)p Black
Black eop
%%Page: 10 10
10 9 bop Black Black -152 -69 a Ft(and)27 b(the)e(number)i(of)e(e)n(v)o
(ents)h(is)g(f)o(ar)f(greater)h(than)g(the)f(number)i(returned)-152
19 y(in)i(queries)h(\(either)f(because)h(not)g(all)e(e)n(v)o(ent)i
(types)f(are)g(queried)h(for)m(,)i(or)-152 106 y(because)20
b(e)n(v)o(ents)g(are)f(summarized)h(in)f(responses\).)-152
324 y Fu(6.)100 b(RELA)-9 b(TED)26 b(W)o(ORK)-77 432
y Ft(Directed)14 b(dif)n(fusion)i([9,)f(10])f(is)g(an)h(e)o(xample)g
(of)g Fp(data-centric)g(r)m(outing)p Ft(\227)-152 519
y(routing)20 b(based)f(on)h(the)f(name)g(of)g(the)g(data)g(rather)f
(than)i(on)f(the)g(identity)g(of)-152 606 y(the)i(destination)g(node.)
29 b(Unlik)o(e)21 b(our)g(proposed)h(DCS)d(mechanism,)j(e)n(v)o(ent)
-152 693 y(information)j(in)g(directed)g(dif)n(fusion)g(is)f(stored)h
(locally)f(at)g(the)h(detecting)-152 780 y(node;)d(as)f(such,)g
(directed)g(dif)n(fusion)g(is)g(closer)f(to)h(the)f(local)h(storage)g
(\(LS\))-152 867 y(model.)62 b(Directed)31 b(dif)n(fusion)h(also)g(pro)
o(vides)g(additional)g(mechanisms)-152 955 y(for)c(the)h
Fp(r)m(einfor)m(cement)i Ft(of)d(high-quality)i(data)e(deli)n(v)o(ery)h
(paths)g(and)g(for)-152 1042 y Fp(in-network)c(a)o(g)o(gr)m(e)m(gation)
h Ft(\()p Fp(i.e)o(.,)e Ft(as)f(the)h(data)g(is)g(being)g(routed)g(to)g
(the)g(re-)-152 1129 y(questor)m(,)33 b(it)d(may)g(be)g(aggre)o(gated)h
(by)f(intermediate)h(nodes\).)57 b(Directed)-152 1216
y(dif)n(fusion)20 b(doesn')o(t)f(require)h(geographic)g(information;)f
(it)g(uses)g(\003ooding.)-77 1303 y(The)g(Geographic)i(Location)e
(System)g(\(GLS\))f(used)i(in)f(GRID)g([16])g(can)-152
1390 y(be)24 b(augmented)h(to)f(pro)o(vide)g(a)f(DCS-lik)o(e)g
(service.)37 b(Geographic)25 b(routing)-152 1478 y(deli)n(v)o(ers)g
(pack)o(ets)g(to)f(locations,)i(not)e(addresses;)k(thus,)e(a)e(pack)o
(et)h(sender)-152 1565 y(must)17 b(be)f(able)g(to)g(map)h(a)f
(destination')l(s)g(identi\002er)g(to)g(its)g(geographic)h(loca-)-152
1652 y(tion.)23 b(GLS)15 b(is)i(a)f(scalable)h(location)g(service)h
(that)e(performs)h(this)g(mapping.)-152 1739 y(The)28
b(location)h(database)g(is)f(distrib)o(uted)g(across)g(the)g(nodes;)34
b(each)29 b(node)-152 1826 y(acting)h(as)e(the)h(location)h(serv)o(er)f
(for)g(a)f(small)h(number)h(of)f(other)g(nodes.)-152
1913 y(The)d(crux)h(of)f(the)g(problem)h(is)f(that)g(nodes)h(must)f(be)
h(able)f(to)g(\002nd)g(these)-152 2001 y(location)i(serv)o(er)g
(without)g(kno)n(wing)h(their)e(geographic)i(location.)50
b(GLS)-152 2088 y(achie)n(v)o(es)24 b(this)e(with)g(a)h(no)o(v)o(el)g
(algorithm)g(that)f(uses)h(a)g(prede\002ned)g(hierar)o(-)-152
2175 y(chical)18 b(decomposition)i(of)e(the)g(geographic)h(space)g
(into)e(nested)i(grids)f(and)-152 2262 y(a)i(prede\002ned)i(ordering)f
(of)f(node)h(identi\002ers.)27 b(Thus,)20 b(what)h(GLS)e(enables)-152
2349 y(is)k(routing)g(to)g(node)h Fp(identi\002er)o(s)p
Ft(.)36 b(Moreo)o(v)o(er)m(,)25 b(an)e(attempt)g(to)g(route)g(to)g(an)
-152 2437 y(identi\002er)i(Y)g(for)g(which)h(no)g(node)g(e)o(xists)f
(terminates)g(at)g(the)h(node)g(with)-152 2524 y(identi\002er)21
b(closest)h(to)f(Y)g(as)g(per)g(the)h(prede\002ned)g(ordering)g(of)f
(identi\002ers.)-152 2611 y(Thus,)h(we)f(could)h(use)g(GLS)e(to)i(pro)o
(vide)g(the)f(DHT)g(interf)o(ace)h(by)f(hashing)-152
2698 y(e)n(v)o(ent)k(names)f(to)g(the)g(node)h(address)g(space.)39
b(The)24 b(main)g(dra)o(wback)h(with)-152 2785 y(the)g(abo)o(v)o(e)h
(approach)h(is)e(that)g(supporting)h(the)f(DHT)g(interf)o(ace)g
(requires)-152 2872 y(the)e(location)g(database)g(to)f(be)h(b)o(uilt)e
(and)i(maintained.)34 b(While)22 b(GLS)f(pro-)-152 2960
y(vides)15 b(this)g(location)g(database)g(itself)f(as)g(a)h(service,)g
(GHT)f(a)o(v)o(oids)g(this)h(le)n(v)o(el)-152 3047 y(of)k(indirection)h
(and)f(instead)h(maps)f(e)n(v)o(ent)h(names)f(directly)g(to)g
(locations.)-77 3134 y(The)27 b(SCOUT)e([15])i(location)g(tracking)g
(system)g(might)f(also)h(be)g(used)-152 3221 y(similarly)-5
b(.)32 b(While)21 b(SCOUT)f(uses)i(hierarchical)g(addressing)i(and)e
(routing)-152 3308 y(based)k(on)f(landmark)g(routing,)i(GHT)d(uses)h
(GPSR,)e(a)h(\003at)g(routing)h(algo-)-152 3395 y(rithm)19
b(wherein)g(nodes)h(are)f(addressed)h(with)f(geographic)i(coordinates.)
-77 3483 y(Although)h(GHT)d(w)o(as)i(inspired)g(by)g(Distrib)o(uted)f
(Hash)h(T)-6 b(able)20 b(systems)-152 3570 y(lik)o(e)28
b(Chord)g(and)g(CAN)f([6,)i(21,)h(24,)g(25],)f(we)e(did)h(not)g(adopt)g
(the)g(rout-)-152 3657 y(ing)i(algorithms)h(used)f(in)g(these)g
(systems.)57 b(These)30 b(algorithms)g(require)-152 3744
y(nodes)18 b(to)e(be)h(interconnected)h(in)e(a)g(f)o(airly)h(rigid)f
(manner)l(.)23 b(On)16 b(the)h(Internet,)-152 3831 y(node)k(neighbor)h
(relationships)e(are)g(at)g(the)g Fp(lo)o(gical)h Ft(le)n(v)o(el;)f
(the)g(underlying)-152 3918 y(IP)h(routing)h(system)g(logically)g
(connects)g(nodes)h(that)e(are)h(not)f(immediate)-152
4006 y(physical)c(neighbors.)23 b(It)15 b(is)h(not)g(clear)f(ho)n(w)i
(\(if)e(at)g(all\))h(the)g(node)g(connecti)n(v-)-152
4093 y(ity)h(required)h(by)f(these)g(DHT)g(algorithms)g(can)g(be)h(ef)n
(\002ciently)e(achie)n(v)o(ed)j(in)-152 4180 y(a)k(sensornet)h(en)m
(vironment.)35 b(GPSR)22 b(allo)n(ws)g(us)h(to)g(achie)n(v)o(e)g(the)g
(required)-152 4267 y(hash-table)f(functionality)g(while)f(w)o(orking)h
(with)f(only)h(the)f(true)g(physical)-152 4354 y(connecti)n(vity)g
(between)e(nodes.)-152 4572 y Fu(7.)100 b(CONCLUSION)24
b(AND)h(FUTURE)g(W)o(ORK)-77 4680 y Ft(This)d(paper)i(presented)f(the)g
(design)g(and)g(e)n(v)n(aluation)h(of)f(GHT)-6 b(,)22
b(a)h(DCS)-152 4767 y(system)k(for)f(sensornets)h(b)o(uilt)f(on)h
(geographic)h(routing.)45 b(W)-6 b(e)26 b(ha)o(v)o(e)h(pre-)-152
4855 y(dicted)20 b(analytically)g(and)g(v)o(eri\002ed)g(in)f
(simulations)h(of)g(netw)o(orks)g(of)g(up)g(to)-152 4942
y(100,000)26 b(nodes)f(the)f(cases)g(where)g(DCS)f(of)n(fers)h(reduced)
h(total)f(netw)o(ork)-152 5029 y(load)30 b(and)f(hotspot)h(netw)o(ork)f
(usage)h(as)f(compared)h(with)e(e)o(xternal)h(stor)o(-)-152
5116 y(age)24 b(and)g(local)f(storage.)36 b(Our)23 b(analysis)h(re)n(v)
o(eals)g(that)f(these)g(bene\002ts)g(oc-)-152 5203 y(cur)e(on)h
(sensornets)g(comprised)g(of)f(lar)o(ge)f(node)i(populations,)h(and)e
(where)-152 5290 y(man)o(y)f(e)n(v)o(ents)g(are)f(detected,)h(b)o(ut)e
(not)i(all)e(e)n(v)o(ent)i(types)g(are)f(queried.)24
b(GHT)-152 5378 y(le)n(v)o(erages)c(the)e(GPSR)g(geographic)i(routing)f
(system)g(to)f(of)n(fer)h(an)g(ef)n(\002cient)2040 -69
y(DCS)i(service)h(that)g(maintains)g(persistence)h(of)f(data)g(when)h
(nodes)g(f)o(ail)e(or)2040 19 y(mo)o(v)o(e,)c(while)e(scalably)h
(spreading)h(the)f(load)g(of)g(\(k)o(e)o(y)-5 b(,)16
b(v)n(alue\))h(pairs)e(e)n(v)o(enly)2040 106 y(throughout)21
b(the)e(sensornet.)2115 193 y(Se)n(v)o(eral)c(a)o(v)o(enues)g(be)o(g)h
(further)f(in)m(v)o(estigation.)22 b(F)o(oremost)15 b(among)h(these)
2040 280 y(is)27 b(the)g(ef)n(fect)h(of)f(v)n(arying)i(node)f(density)
-5 b(.)49 b(Under)28 b(GHT)-6 b(,)27 b(k)o(e)o(ys)h(are)f(uni-)2040
367 y(formly)19 b(hashed)i(o)o(v)o(er)e(the)g(geographic)i(space.)k
(Hence,)19 b(as)g(nodes)h(are)g(dis-)2040 454 y(trib)o(uted)e
(increasingly)g(non-uniformly)-5 b(,)20 b(we)d(e)o(xpect)i(the)e
(storage)i(and)f(for)o(-)2040 542 y(w)o(arding)24 b(load)f(across)g
(nodes)h(to)f(be)g(correspondingly)i(sk)o(e)n(wed.)36
b(W)-6 b(e)22 b(are)2040 629 y(in)m(v)o(estigating)j(the)f(consequent)j
(performance)e(implications)g(and)g(de)n(v)o(el-)2040
716 y(oping)20 b(mechanisms)g(that)f(can)g(adapt)h(to)f(such)g
(non-uniformity)-5 b(.)2115 803 y(T)f(o)22 b(a)o(v)o(oid)h(hashing)h(k)
o(e)o(ys)f(to)g(points)g(outside)g(the)g(sensornet,)h(GHT)e(re-)2040
890 y(quires)j(approximate)h(kno)n(wledge)h(of)d(a)h(sensornet')l(s)g
(boundaries.)3841 863 y Fm(8)3916 890 y Ft(Our)2040 977
y(w)o(ork)16 b(herein)h(assumes)f(forekno)n(wledge)i(of)e(these)g
(boundaries)i(\(recorded,)2040 1065 y Fp(e)o(.g)o(.,)f
Ft(when)g(the)h(netw)o(ork)g(w)o(as)f(\002rst)f(deplo)o(yed\).)25
b(An)17 b(open)h(research)g(prob-)2040 1152 y(lem)j(is)g(to)g(de)n
(vise)i(scalable)e(distrib)o(uted)h(algorithms)f(to)h(map)f(these)h
(\(pos-)2040 1239 y(sibly)d(changing!\))25 b(geographic)c(boundaries.)
2115 1326 y(Finally)-5 b(,)20 b(our)g(proposed)i(design)g
(fundamentally)f(requires)g(that)f(a)g(node)2040 1413
y(kno)n(w)27 b(its)f(o)n(wn)g(geographic)i(position.)45
b(While)26 b(this)g(assumption)h(seems)2040 1500 y(reasonable)20
b(for)e(most)h(sensornets,)g(an)g(open)g(question)h(is)e(ho)n(w)h(one)g
(might)2040 1588 y(achie)n(v)o(e)28 b(DCS)e(using)h(only)h(approximate)
g(geographic)g(information,)h(or)2040 1675 y(without)19
b(an)o(y)h(such)f(information.)2040 1869 y Fu(8.)99 b(REFERENCES)p
Black 2116 1928 a Fb([1])p Black 37 w(W)l(.)11 b(Adjie-W)n(inoto,)e(E.)
i(Schwartz,)g(and)f(H.)h(Balakrishnan,)f(The)g(Design)g(and)h
(Implementation)e(of)h(an)h(Intentional)2202 1978 y(Naming)f(System,)h
(In)f Fd(Pr)n(oceedings)h(of)f(the)g(Symposium)f(on)h(Oper)o(ating)g
(Systems)g(Principles)p Fb(,)h(Charleston,)e(SC,)i(USA,)2202
2028 y(Dec.)h(1999,)d(pp.)i(186\226201.)p Black 2116
2086 a([2])p Black 37 w(P)-5 b(.)11 b(Bose,)g(P)-5 b(.)11
b(Morin,)f(I.)g(Stojmeno)o(vi)r(\264)-16 b(c,)10 b(and)h(J.)g(Urrutia,)
e(Routing)f(with)i(guaranteed)g(deli)o(v)o(ery)g(in)f
Fd(ad)h(hoc)h Fb(wireless)2202 2136 y(networks,)e(In)h
Fd(W)l(orkshop)g(on)g(Discr)n(ete)i(Algorithms)d(and)g(Methods)h(for)f
(Mobile)g(Computing)f(and)i(Communications)2202 2185
y(\(DialM)f('99\))p Fb(,)g(Aug.)i(1999.)p Black 2116
2243 a([3])p Black 37 w(N.)g(Bulusu,)e(J.)i(Heidemann,)g(and)f(D.)h
(Estrin,)f(GPS-Less)h(Lo)o(w)g(Cost)e(Outdoor)g(Localization)h(for)g(W)
n(ireless)h(Sensor)2202 2293 y(Networks,)f(Oct.)g(2000.)p
Black 2116 2351 a([4])p Black 37 w(A.)h(Cerpa,)g(J.)f(Elson,)h(D.)f
(Estrin,)g(L.)i(Girod,)d(M.)i(Hamilton,)e(and)i(J.)g(Zhao,)g(Habitat)e
(monitoring:)h(application)f(dri)o(v)o(er)h(for)2202
2401 y(wireless)g(communications)g(technology)f(In)h(2001)f(A)n(CM)i
(SIGCOMM)e(W)m(orkshop)g(on)h(Data)h(Communications)e(in)h(Latin)2202
2451 y(America)h(and)g(the)f(Caribbean,)g(Costa)g(Rica,)h(Apr)n(.)f
(2001.)p Black 2116 2509 a([5])p Black 37 w(Defense)h(Adv)o(anced)g
(Research)g(Projects)g(Agenc)o(y)m(,)g(Sensor)f(Information)f(T)m
(echnology,)h Fa(http:)2202 2559 y(www.darpa.mil/ito//research/sensit)p
Fb(.)p Black 2116 2617 a([6])p Black 37 w(P)-5 b(.)11
b(Druschel)f(and)h(A.)f(Ro)o(wstron,)g(P)o(astry:)i(scalable,)g
(distrib)o(uted)c(object)i(location)f(and)h(routing)e(for)i(lar)o
(ge-scale)2202 2667 y(peer)o(-to-peer)g(systems,)i(In)d
Fd(Pr)n(oceedings)j(of)d(the)h(18th)f(IFIP/A)o(CM)h(International)e
(Confer)n(ence)j(on)f(Distrib)o(uted)e(Systems)2202 2717
y(Platforms)h(\(Middle)o(war)n(e)h(2001\))p Fb(,)f(No)o(v)m(.)i(2001.)p
Black 2116 2775 a([7])p Black 37 w(G.G.)g(Finn,)f(Routing)e(and)i
(addressing)g(problems)g(in)g(lar)o(ge)g(metropolitan-scale)g
(internetworks,)2202 2825 y(T)m(ech.)i(Rep.)e(ISI/RR-87-180,)e
(Information)h(Sciences)j(Institute,)c(Mar)n(.)j(1987.)p
Black 2116 2883 a([8])p Black 37 w(L.)g(Girod)e(and)i(D.)f(Estrin,)g
(Rob)o(ust)f(range)i(estimation)e(using)h(acoustic)g(and)g(multimodal)f
(sensing,)i(In)e Fd(Pr)n(oceedings)j(of)d(the)2202 2933
y(IEEE)i(Confer)n(ence)g(on)f(Intelligent)e(Robots)i(and)f(Systems)p
Fb(,)i(2001.)p Black 2116 2991 a([9])p Black 37 w(J.)g(Heidemann,)g(F)m
(.)f(Silv)o(a,)h(C.)f(Intanagonwiwat,)f(R.)h(Go)o(vindan,)g(D.)h
(Estrin,)f(and)g(D.)h(Ganesan,)g(Building)d(ef)o(\002cient)2202
3040 y(wireless)i(sensor)h(networks)e(with)g(lo)o(w-le)o(v)o(el)h
(naming,)g(In)g Fd(Pr)n(oceedings)h(of)f(the)g(Symposium)f(on)h(Oper)o
(ating)f(Systems)2202 3090 y(Principles)p Fb(,)h(pages)h(146\226159,)e
(Banf)o(f,)i(Alberta,)f(Canada,)h(Oct.)g(2001.)p Black
2095 3148 a([10])p Black 37 w(C.)f(Intanagonwiwat,)f(R.)i(Go)o(vindan,)
e(and)i(D.)g(Estrin,)e(Directed)i(dif)o(fusion:)f(a)h(scalable)g(and)f
(rob)o(ust)g(communication)2202 3198 y(paradigm)g(for)g(sensor)g
(networks,)g(In)g Fd(Pr)n(oceedings)h(of)e(the)i(Sixth)e(Annual)g(A)o
(CM/IEEE)i(International)c(Confer)n(ence)k(on)2202 3248
y(Mobile)e(Computing)f(and)h(Networking)h(\(Mobicom)f(2000\))p
Fb(,)g(Boston,)h(MA,)g(USA,)h(Aug.)f(2000.)p Black 2095
3306 a([11])p Black 37 w(J.)h(M.)g(Kahn,)f(R.)h(H.)f(Katz)h(and)f(K.)h
(S.)g(J.)g(Pister)n(.)f(Mobile)f(networking)f(for)i(smart)h(dust,)f(In)
g Fd(A)o(CM/IEEE)g(Intl.)f(Conf)o(.)h(on)2202 3356 y(Mobile)f
(Computing)f(and)h(Networking)h(\(MobiCom)e(99\))p Fb(,)i(Seattle,)h(W)
-5 b(A,)11 b(USA,)f(Aug.)h(1999.)p Black 2095 3414 a([12])p
Black 37 w(B.)f(Karp,)h(Greedy)g(perimeter)f(state)h(routing,)d(in)n
(vited)h(seminar)i(at)f(USC/ISI,)g(Arlington,)e(V)-6
b(A,)11 b(USA,)g(Jul.)f(1998.)p Black 2095 3472 a([13])p
Black 37 w(B.)g(Karp)h(and)f(H.T)m(.)h(K)o(ung.)g(GPSR:)f(greedy)g
(perimeter)g(stateless)h(routing)d(for)i(wireless)h(networks,)e(In)h
Fd(Pr)n(oceedings)h(of)2202 3522 y(the)f(Sixth)f(Annual)h(A)o(CM/IEEE)g
(International)d(Confer)n(ence)12 b(on)e(Mobile)f(Computing)e(and)j
(Networking)f(\(Mobicom)2202 3572 y(2000\))p Fb(,)h(Boston,)f(MA,)i
(USA,)f(Aug.)h(2000.)p Black 2095 3630 a([14])p Black
37 w(B.)f(Karp,)h Fd(Geogr)o(aphic)f(Routing)f(for)g(W)n(ir)n(eless)i
(Networks)p Fb(,)g(Ph.D.)f(Dissertation,)g(Di)o(vision)e(of)i
(Engingeering)f(and)2202 3680 y(Applied)g(Sciences,)j(Harv)o(ard)e(Uni)
o(v)o(ersity)m(,)g(Oct.)h(2000.)p Black 2095 3738 a([15])p
Black 37 w(S.)g(K)o(umar)n(,)h(C.)e(Alaettinoglu,)e(and)j(D.)f(Estrin,)
g(SCalable)h(object-tracking)d(through)h(unattended)g(techniques)h
(\(SCOUT\),)2202 3788 y(In)g Fd(Pr)n(oceedings)h(of)f(the)g(8th)f
(International)f(Confer)n(ence)j(on)f(Network)g(Pr)n(otocols)g
(\(ICNP\))p Fb(,)g(Osaka,)h(Japan,)g(No)o(v)m(.)g(2000.)p
Black 2095 3846 a([16])p Black 37 w(J.)g(Li,)g(J.)f(Jannotti,)g(D.)g
(DeCouto,)g(D.)h(Kar)o(ger)n(,)g(and)g(R.)f(Morris,)g(A)g(scalable)h
(location)e(service)i(for)f(geographic)g(ad-hoc)2202
3896 y(routing,)f(In)h Fd(Pr)n(oceedings)h(of)e(the)h(Sixth)g(Annual)f
(A)o(CM/IEEE)h(International)e(Confer)n(ence)j(on)f(Mobile)f(Computing)
f(and)2202 3945 y(Networking)h(\(MobiCom)f(2000\))i Fb(Boston,)f(MA,)i
(USA,)f(Aug.)h(2000.)p Black 2095 4004 a([17])p Black
37 w(S.)g(McCanne)g(and)f(S.)h(Floyd.)19 b Fd(ns)11 b
Fb(network)e(simulator,)g Fa(http://www.isi.edu/nsnam/ns/)p
Fb(.)p Black 2095 4062 a([18])p Black 37 w(G.)i(Pottie)e(and)h(W)l(.)h
(Kaiser)n(,)h(W)n(ireless)f(sensor)f(networks,)g Fd(Communications)d
(of)j(the)g(A)o(CM)p Fb(,)g(2000.)p Black 2095 4120 a([19])p
Black 37 w(N.)h(Priyantha,)f(A.)g(Chakraborty)m(,)g(and)g(H.)h
(Balakrishnan,)f(The)h(Cricket)e(location)g(support)g(system,)i(In)f
Fd(Pr)n(oceedings)h(of)2202 4170 y(the)f(Sixth)f(Annual)h(A)o(CM/IEEE)g
(International)d(Confer)n(ence)12 b(on)e(Mobile)f(Computing)e(and)j
(Networking)f(\(Mobicom)2202 4219 y(2000\))p Fb(,)h(Boston,)f(MA,)i
(USA,)f(Aug.)h(2000.)p Black 2095 4278 a([20])p Black
37 w(N.)g(Priyantha,)f(A.)g(Liu,)h(H.)f(Balakrishnan,)g(and)h(S.)f(T)m
(eller)n(,)i(The)f(Cricket)e(compass)i(for)f(conte)o(xt-a)o(ware)h
(mobile)2202 4327 y(applications,)e(In)h Fd(Pr)n(oceedings)h(of)f(the)g
(Se)o(venth)h(Annual)e(A)o(CM/IEEE)h(International)e(Confer)n(ence)j
(on)f(Mobile)2202 4377 y(Computing)e(and)h(Networking)h(\(Mobicom)f
(2001\))p Fb(,)g(Rome,)i(Italy)m(,)f(Jul.)g(2001.)p Black
2095 4435 a([21])p Black 37 w(S.)h(Ratnasamy)m(,)g(P)-5
b(.)12 b(Francis,)e(M.)h(Handle)o(y)m(,)g(R.)g(Karp,)f(and)h(S.)g
(Shenker)n(,)f(A)h(scalable)g(content-addressable)f(network,)f(In)2202
4485 y Fd(Pr)n(oc.)j(A)o(CM)d(SIGCOMM)r Fb(,)g(San)i(Die)o(go,)f(CA,)h
(Aug.)f(2001,)g(pp.)g(161\226172.)p Black 2095 4543 a([22])p
Black 37 w(A.)h(Sa)o(vvides,)f(C.-C.)h(Han,)g(and)f(M.)h(B.)f(Sri)o(v)o
(asta)o(v)o(a,)h(Dynamic)f(\002ne-grain)g(localization)f(in)h(ad-hoc)g
(networks)f(of)h(sensors,)2202 4593 y(In)g Fd(Pr)n(oceedings)h(of)f
(the)g(Se)o(venth)h(Annual)e(A)o(CM/IEEE)h(International)e(Confer)n
(ence)j(on)f(Mobile)f(Computing)e(and)2202 4643 y(Networking)i
(\(Mobicom)g(2001\))p Fb(,)h(Rome,)h(Italy)m(,)f(Jul.)g(2001.)p
Black 2095 4701 a([23])p Black 37 w(S.)h(Shenker)n(,)f(S.)h(Ratnasamy)m
(,)h(B.)e(Karp,)h(R.)f(Go)o(vindan,)g(and)h(D.)f(Estrin,)g
(Data-centric)h(storage)f(in)g(sensornets,)g(Under)2202
4751 y(submission)f(to)h Fd(A)o(CM)g(SIGCOMM)e(HotNets)p
Fb(,)i(Jul.)g(2002.)p Black 2095 4809 a([24])p Black
37 w(I.)h(Stoica,)f(R.)g(Morris,)g(D.)h(Kar)o(ger)n(,)h(M.)e(F)m(.)h
(Kaashoek,)g(and)f(H.)h(Balakrishnan.)f(Chord:)h(A)g(scalable)g(peer)o
(-to-peer)f(lookup)2202 4859 y(service)h(for)f(Internet)f
(applications,)h(In)f Fd(Pr)n(oceedings)i(of)f(the)g(A)o(CM)g(SIGCOMM)f
('01)g(Confer)n(ence)p Fb(,)j(San)f(Die)o(go,)f(CA,)2202
4908 y(USA,)h(Aug.)f(2001.)p Black 2095 4967 a([25])p
Black 37 w(B.)g(Y)-5 b(.)11 b(Zhao,)g(J.)g(K)o(ubiato)o(wicz,)f(and)g
(A.)h(Joseph,)g(T)m(apestry:)h(An)e(infrastructure)f(for)h
(fault-tolerant)e(wide-area)j(location)2202 5016 y(and)f(routing,)f(T)m
(ech.)j(Rep.)e(UCB/CSD-01-1141,)e(Uni)o(v)o(ersity)h(of)h(California)f
(at)h(Berkele)o(y)m(,)h(EECS)g(Department,)f(2001.)p
Black 2040 5066 797 4 v 2044 5126 a Fm(8)2077 5153 y
Ft(When)34 b(a)f Fs(Get\(\))g Ft(or)g Fs(Put\(\))f Ft(hashes)i(to)f(a)g
(point)h(outside)g(the)f(e)o(xternal)2040 5228 y(perimeter)m(,)19
b(the)f(pack)o(et)i(will)e(w)o(alk)h(the)f(entire)h(e)o(xternal)g
(perimeter)g(before)2040 5303 y(arri)n(ving)k(at)g(the)f(home)i(node.)
35 b(In)23 b(such)g(cases,)h(GHT)e(operates)i Fp(corr)m(ectly)2040
5378 y Ft(albeit)19 b(less)g(ef)n(\002ciently)-5 b(.)p
Black Black Black eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF