%!PS-Adobe-3.0 %%BoundingBox: (atend) %%Pages: (atend) %%PageOrder: (atend) %%DocumentFonts: (atend) %%Creator: Frame 4.0 %%DocumentData: Clean7Bit %%EndComments %%BeginProlog % % Frame ps_prolog 4.0, for use with Frame 4.0 products % This ps_prolog file is Copyright (c) 1986-1993 Frame Technology % Corporation. All rights reserved. This ps_prolog file may be % freely copied and distributed in conjunction with documents created % using FrameMaker, FrameBuilder and FrameViewer as long as this % copyright notice is preserved. % % Frame products normally print colors as their true color on a color printer % or as shades of gray, based on luminance, on a black-and white printer. The % following flag, if set to True, forces all non-white colors to print as pure % black. This has no effect on bitmap images. /FMPrintAllColorsAsBlack false def % % Frame products can either set their own line screens or use a printer's % default settings. Three flags below control this separately for no % separations, spot separations and process separations. If a flag % is true, then the default printer settings will not be changed. If it is % false, Frame products will use their own settings from a table based on % the printer's resolution. /FMUseDefaultNoSeparationScreen true def /FMUseDefaultSpotSeparationScreen true def /FMUseDefaultProcessSeparationScreen false def % % For any given PostScript printer resolution, Frame products have two sets of % screen angles and frequencies for printing process separations, which are % recomended by Adobe. The following variable chooses the higher frequencies % when set to true or the lower frequencies when set to false. This is only % effective if the appropriate FMUseDefault...SeparationScreen flag is false. /FMUseHighFrequencyScreens true def % % PostScript Level 2 printers contain an "Accurate Screens" feature which can % improve process separation rendering at the expense of compute time. This % flag is ignored by PostScript Level 1 printers. /FMUseAcccurateScreens true def % % The following PostScript procedure defines the spot function that Frame % products will use for process separations. You may un-comment-out one of % the alternative functions below, or use your own. % % Dot function /FMSpotFunction {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1 sub } {dup mul exch dup mul add 1 exch sub }ifelse } def % % Line function % /FMSpotFunction { pop } def % % Elipse function % /FMSpotFunction { dup 5 mul 8 div mul exch dup mul exch add % sqrt 1 exch sub } def % % /FMversion (4.0) def /FMLevel1 /languagelevel where {pop languagelevel} {1} ifelse 2 lt def /FMPColor FMLevel1 { false /colorimage where {pop pop true} if } { true } ifelse def /FrameDict 400 dict def systemdict /errordict known not {/errordict 10 dict def errordict /rangecheck {stop} put} if % The readline in PS 23.0 doesn't recognize cr's as nl's on AppleTalk FrameDict /tmprangecheck errordict /rangecheck get put errordict /rangecheck {FrameDict /bug true put} put FrameDict /bug false put mark % Some PS machines read past the CR, so keep the following 3 lines together! currentfile 5 string readline 00 0000000000 cleartomark errordict /rangecheck FrameDict /tmprangecheck get put FrameDict /bug get { /readline { /gstring exch def /gfile exch def /gindex 0 def { gfile read pop dup 10 eq {exit} if dup 13 eq {exit} if gstring exch gindex exch put /gindex gindex 1 add def } loop pop gstring 0 gindex getinterval true } bind def } if /FMshowpage /showpage load def /FMquit /quit load def /FMFAILURE { dup = flush FMshowpage /Helvetica findfont 12 scalefont setfont 72 200 moveto show FMshowpage FMquit } def /FMVERSION { FMversion ne { (Frame product version does not match ps_prolog!) FMFAILURE } if } def /FMBADEPSF { (PostScript Lang. Ref. Man., 2nd Ed., H.2.4 says EPS must not call X ) dup dup (X) search pop exch pop exch pop length 4 -1 roll putinterval FMFAILURE } def /FMLOCAL { FrameDict begin 0 def end } def /concatprocs { /proc2 exch cvlit def/proc1 exch cvlit def/newproc proc1 length proc2 length add array def newproc 0 proc1 putinterval newproc proc1 length proc2 putinterval newproc cvx }def FrameDict begin /FMnone 0 def /FMcyan 1 def /FMmagenta 2 def /FMyellow 3 def /FMblack 4 def /FMcustom 5 def /FrameNegative false def /FrameSepIs FMnone def /FrameSepBlack 0 def /FrameSepYellow 0 def /FrameSepMagenta 0 def /FrameSepCyan 0 def /FrameSepRed 1 def /FrameSepGreen 1 def /FrameSepBlue 1 def /FrameCurGray 1 def /FrameCurPat null def /FrameCurColors [ 0 0 0 1 0 0 0 ] def /FrameColorEpsilon .001 def /eqepsilon { sub dup 0 lt {neg} if FrameColorEpsilon le } bind def /FrameCmpColorsCMYK { 2 copy 0 get exch 0 get eqepsilon { 2 copy 1 get exch 1 get eqepsilon { 2 copy 2 get exch 2 get eqepsilon { 3 get exch 3 get eqepsilon } {pop pop false} ifelse }{pop pop false} ifelse } {pop pop false} ifelse } bind def /FrameCmpColorsRGB { 2 copy 4 get exch 0 get eqepsilon { 2 copy 5 get exch 1 get eqepsilon { 6 get exch 2 get eqepsilon }{pop pop false} ifelse } {pop pop false} ifelse } bind def /RGBtoCMYK { 1 exch sub 3 1 roll 1 exch sub 3 1 roll 1 exch sub 3 1 roll 3 copy 2 copy le { pop } { exch pop } ifelse 2 copy le { pop } { exch pop } ifelse dup dup dup 6 1 roll 4 1 roll 7 1 roll sub 6 1 roll sub 5 1 roll sub 4 1 roll } bind def /CMYKtoRGB { dup dup 4 -1 roll add 5 1 roll 3 -1 roll add 4 1 roll add 1 exch sub dup 0 lt {pop 0} if 3 1 roll 1 exch sub dup 0 lt {pop 0} if exch 1 exch sub dup 0 lt {pop 0} if exch } bind def /FrameSepInit { 1.0 RealSetgray } bind def /FrameSetSepColor { /FrameSepBlue exch def /FrameSepGreen exch def /FrameSepRed exch def /FrameSepBlack exch def /FrameSepYellow exch def /FrameSepMagenta exch def /FrameSepCyan exch def /FrameSepIs FMcustom def setCurrentScreen } bind def /FrameSetCyan { /FrameSepBlue 1.0 def /FrameSepGreen 1.0 def /FrameSepRed 0.0 def /FrameSepBlack 0.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 1.0 def /FrameSepIs FMcyan def setCurrentScreen } bind def /FrameSetMagenta { /FrameSepBlue 1.0 def /FrameSepGreen 0.0 def /FrameSepRed 1.0 def /FrameSepBlack 0.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 1.0 def /FrameSepCyan 0.0 def /FrameSepIs FMmagenta def setCurrentScreen } bind def /FrameSetYellow { /FrameSepBlue 0.0 def /FrameSepGreen 1.0 def /FrameSepRed 1.0 def /FrameSepBlack 0.0 def /FrameSepYellow 1.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 0.0 def /FrameSepIs FMyellow def setCurrentScreen } bind def /FrameSetBlack { /FrameSepBlue 0.0 def /FrameSepGreen 0.0 def /FrameSepRed 0.0 def /FrameSepBlack 1.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 0.0 def /FrameSepIs FMblack def setCurrentScreen } bind def /FrameNoSep { /FrameSepIs FMnone def setCurrentScreen } bind def /FrameSetSepColors { FrameDict begin [ exch 1 add 1 roll ] /FrameSepColors exch def end } bind def /FrameColorInSepListCMYK { FrameSepColors { exch dup 3 -1 roll FrameCmpColorsCMYK { pop true exit } if } forall dup true ne {pop false} if } bind def /FrameColorInSepListRGB { FrameSepColors { exch dup 3 -1 roll FrameCmpColorsRGB { pop true exit } if } forall dup true ne {pop false} if } bind def /RealSetgray /setgray load def /RealSetrgbcolor /setrgbcolor load def /RealSethsbcolor /sethsbcolor load def end /setgray { FrameDict begin FrameSepIs FMnone eq { RealSetgray } { FrameSepIs FMblack eq { RealSetgray } { FrameSepIs FMcustom eq FrameSepRed 0 eq and FrameSepGreen 0 eq and FrameSepBlue 0 eq and { RealSetgray } { 1 RealSetgray pop } ifelse } ifelse } ifelse end } bind def /setrgbcolor { FrameDict begin FrameSepIs FMnone eq { RealSetrgbcolor } { 3 copy [ 4 1 roll ] FrameColorInSepListRGB { FrameSepBlue eq exch FrameSepGreen eq and exch FrameSepRed eq and { 0 } { 1 } ifelse } { FMPColor { RealSetrgbcolor currentcmykcolor } { RGBtoCMYK } ifelse FrameSepIs FMblack eq {1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse RealSetgray } ifelse end } bind def /sethsbcolor { FrameDict begin FrameSepIs FMnone eq { RealSethsbcolor } { RealSethsbcolor currentrgbcolor setrgbcolor } ifelse end } bind def FrameDict begin /setcmykcolor where { pop /RealSetcmykcolor /setcmykcolor load def } { /RealSetcmykcolor { 4 1 roll 3 { 3 index add 0 max 1 min 1 exch sub 3 1 roll} repeat setrgbcolor pop } bind def } ifelse userdict /setcmykcolor { FrameDict begin FrameSepIs FMnone eq { RealSetcmykcolor } { 4 copy [ 5 1 roll ] FrameColorInSepListCMYK { FrameSepBlack eq exch FrameSepYellow eq and exch FrameSepMagenta eq and exch FrameSepCyan eq and { 0 } { 1 } ifelse } { FrameSepIs FMblack eq {1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse RealSetgray } ifelse end } bind put FMLevel1 not { /patProcDict 5 dict dup begin <0f1e3c78f0e1c387> { 3 setlinewidth -1 -1 moveto 9 9 lineto stroke 4 -4 moveto 12 4 lineto stroke -4 4 moveto 4 12 lineto stroke} bind def <0f87c3e1f0783c1e> { 3 setlinewidth -1 9 moveto 9 -1 lineto stroke -4 4 moveto 4 -4 lineto stroke 4 12 moveto 12 4 lineto stroke} bind def <8142241818244281> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke -1 -1 moveto 9 9 lineto stroke } bind def <03060c183060c081> { 1 setlinewidth -1 -1 moveto 9 9 lineto stroke 4 -4 moveto 12 4 lineto stroke -4 4 moveto 4 12 lineto stroke} bind def <8040201008040201> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke -4 4 moveto 4 -4 lineto stroke 4 12 moveto 12 4 lineto stroke} bind def end def /patDict 15 dict dup begin /PatternType 1 def /PaintType 2 def /TilingType 3 def /BBox [ 0 0 8 8 ] def /XStep 8 def /YStep 8 def /PaintProc { begin patProcDict bstring known { patProcDict bstring get exec } { 8 8 true [1 0 0 -1 0 8] bstring imagemask } ifelse end } bind def end def } if /combineColor { FrameSepIs FMnone eq { graymode FMLevel1 or not { [/Pattern [/DeviceCMYK]] setcolorspace FrameCurColors 0 4 getinterval aload pop FrameCurPat setcolor } { FrameCurColors 3 get 1.0 ge { FrameCurGray RealSetgray } { FMPColor graymode and { 0 1 3 { FrameCurColors exch get 1 FrameCurGray sub mul } for RealSetcmykcolor } { 4 1 6 { FrameCurColors exch get graymode { 1 exch sub 1 FrameCurGray sub mul 1 exch sub } { 1.0 lt {FrameCurGray} {1} ifelse } ifelse } for RealSetrgbcolor } ifelse } ifelse } ifelse } { FrameCurColors 0 4 getinterval aload FrameColorInSepListCMYK { FrameSepBlack eq exch FrameSepYellow eq and exch FrameSepMagenta eq and exch FrameSepCyan eq and FrameSepIs FMcustom eq and { FrameCurGray } { 1 } ifelse } { FrameSepIs FMblack eq {FrameCurGray 1.0 exch sub mul 1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop FrameCurGray 1.0 exch sub mul 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse graymode FMLevel1 or not { [/Pattern [/DeviceGray]] setcolorspace FrameCurPat setcolor } { graymode not FMLevel1 and { dup 1 lt {pop FrameCurGray} if } if RealSetgray } ifelse } ifelse } bind def /savematrix { orgmatrix currentmatrix pop } bind def /restorematrix { orgmatrix setmatrix } bind def /dmatrix matrix def /dpi 72 0 dmatrix defaultmatrix dtransform dup mul exch dup mul add sqrt def /freq dpi dup 72 div round dup 0 eq {pop 1} if 8 mul div def /sangle 1 0 dmatrix defaultmatrix dtransform exch atan def /dpiranges [ 2540 2400 1693 1270 1200 635 600 0 ] def /CMLowFreqs [ 100.402 94.8683 89.2289 100.402 94.8683 66.9349 63.2456 47.4342 ] def /YLowFreqs [ 95.25 90.0 84.65 95.25 90.0 70.5556 66.6667 50.0 ] def /KLowFreqs [ 89.8026 84.8528 79.8088 89.8026 84.8528 74.8355 70.7107 53.033 ] def /CLowAngles [ 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 ] def /MLowAngles [ 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 ] def /YLowTDot [ true true false true true false false false ] def /CMHighFreqs [ 133.87 126.491 133.843 108.503 102.523 100.402 94.8683 63.2456 ] def /YHighFreqs [ 127.0 120.0 126.975 115.455 109.091 95.25 90.0 60.0 ] def /KHighFreqs [ 119.737 113.137 119.713 128.289 121.218 89.8026 84.8528 63.6395 ] def /CHighAngles [ 71.5651 71.5651 71.5651 70.0169 70.0169 71.5651 71.5651 71.5651 ] def /MHighAngles [ 18.4349 18.4349 18.4349 19.9831 19.9831 18.4349 18.4349 18.4349 ] def /YHighTDot [ false false true false false true true false ] def /PatFreq [ 10.5833 10.0 9.4055 10.5833 10.0 10.5833 10.0 9.375 ] def /screenIndex { 0 1 dpiranges length 1 sub { dup dpiranges exch get 1 sub dpi le {exit} {pop} ifelse } for } bind def /getCyanScreen { FMUseHighFrequencyScreens { CHighAngles CMHighFreqs} {CLowAngles CMLowFreqs} ifelse screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load } bind def /getMagentaScreen { FMUseHighFrequencyScreens { MHighAngles CMHighFreqs } {MLowAngles CMLowFreqs} ifelse screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load } bind def /getYellowScreen { FMUseHighFrequencyScreens { YHighTDot YHighFreqs} { YLowTDot YLowFreqs } ifelse screenIndex dup 3 1 roll get 3 1 roll get { 3 div {2 { 1 add 2 div 3 mul dup floor sub 2 mul 1 sub exch} repeat FMSpotFunction } } {/FMSpotFunction load } ifelse 0.0 exch } bind def /getBlackScreen { FMUseHighFrequencyScreens { KHighFreqs } { KLowFreqs } ifelse screenIndex get 45.0 /FMSpotFunction load } bind def /getSpotScreen { getBlackScreen } bind def /getCompositeScreen { getBlackScreen } bind def /FMSetScreen FMLevel1 { /setscreen load }{ { 8 dict begin /HalftoneType 1 def /SpotFunction exch def /Angle exch def /Frequency exch def /AccurateScreens FMUseAcccurateScreens def currentdict end sethalftone } bind } ifelse def /setDefaultScreen { FMPColor { orgrxfer cvx orggxfer cvx orgbxfer cvx orgxfer cvx setcolortransfer } { orgxfer cvx settransfer } ifelse orgfreq organgle orgproc cvx setscreen } bind def /setCurrentScreen { FrameSepIs FMnone eq { FMUseDefaultNoSeparationScreen { setDefaultScreen } { getCompositeScreen FMSetScreen } ifelse } { FrameSepIs FMcustom eq { FMUseDefaultSpotSeparationScreen { setDefaultScreen } { getSpotScreen FMSetScreen } ifelse } { FMUseDefaultProcessSeparationScreen { setDefaultScreen } { FrameSepIs FMcyan eq { getCyanScreen FMSetScreen } { FrameSepIs FMmagenta eq { getMagentaScreen FMSetScreen } { FrameSepIs FMyellow eq { getYellowScreen FMSetScreen } { getBlackScreen FMSetScreen } ifelse } ifelse } ifelse } ifelse } ifelse } ifelse } bind def end /gstring FMLOCAL /gfile FMLOCAL /gindex FMLOCAL /orgrxfer FMLOCAL /orggxfer FMLOCAL /orgbxfer FMLOCAL /orgxfer FMLOCAL /orgproc FMLOCAL /orgrproc FMLOCAL /orggproc FMLOCAL /orgbproc FMLOCAL /organgle FMLOCAL /orgrangle FMLOCAL /orggangle FMLOCAL /orgbangle FMLOCAL /orgfreq FMLOCAL /orgrfreq FMLOCAL /orggfreq FMLOCAL /orgbfreq FMLOCAL /yscale FMLOCAL /xscale FMLOCAL /edown FMLOCAL /manualfeed FMLOCAL /paperheight FMLOCAL /paperwidth FMLOCAL /FMDOCUMENT { array /FMfonts exch def /#copies exch def FrameDict begin 0 ne /manualfeed exch def /paperheight exch def /paperwidth exch def 0 ne /FrameNegative exch def 0 ne /edown exch def /yscale exch def /xscale exch def FMLevel1 { manualfeed {setmanualfeed} if /FMdicttop countdictstack 1 add def /FMoptop count def setpapername manualfeed {true} {papersize} ifelse {manualpapersize} {false} ifelse {desperatepapersize} {false} ifelse { (Can't select requested paper size for Frame print job!) FMFAILURE } if count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for } {{1 dict dup /PageSize [paperwidth paperheight]put setpagedevice}stopped { (Can't select requested paper size for Frame print job!) FMFAILURE } if {1 dict dup /ManualFeed manualfeed put setpagedevice } stopped pop } ifelse FMPColor { currentcolorscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def cvlit /orgbproc exch def /orgbangle exch def /orgbfreq exch def cvlit /orggproc exch def /orggangle exch def /orggfreq exch def cvlit /orgrproc exch def /orgrangle exch def /orgrfreq exch def currentcolortransfer FrameNegative { 1 1 4 { pop { 1 exch sub } concatprocs 4 1 roll } for 4 copy setcolortransfer } if cvlit /orgxfer exch def cvlit /orgbxfer exch def cvlit /orggxfer exch def cvlit /orgrxfer exch def } { currentscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def currenttransfer FrameNegative { { 1 exch sub } concatprocs dup settransfer } if cvlit /orgxfer exch def } ifelse end } def /pagesave FMLOCAL /orgmatrix FMLOCAL /landscape FMLOCAL /pwid FMLOCAL /FMBEGINPAGE { FrameDict begin /pagesave save def 3.86 setmiterlimit /landscape exch 0 ne def landscape { 90 rotate 0 exch dup /pwid exch def neg translate pop }{ pop /pwid exch def } ifelse edown { [-1 0 0 1 pwid 0] concat } if 0 0 moveto paperwidth 0 lineto paperwidth paperheight lineto 0 paperheight lineto 0 0 lineto 1 setgray fill xscale yscale scale /orgmatrix matrix def gsave } def /FMENDPAGE { grestore pagesave restore end showpage } def /FMFONTDEFINE { FrameDict begin findfont ReEncode 1 index exch definefont FMfonts 3 1 roll put end } def /FMFILLS { FrameDict begin dup array /fillvals exch def dict /patCache exch def end } def /FMFILL { FrameDict begin fillvals 3 1 roll put end } def /FMNORMALIZEGRAPHICS { newpath 0.0 0.0 moveto 1 setlinewidth 0 setlinecap 0 0 0 sethsbcolor 0 setgray } bind def /fx FMLOCAL /fy FMLOCAL /fh FMLOCAL /fw FMLOCAL /llx FMLOCAL /lly FMLOCAL /urx FMLOCAL /ury FMLOCAL /FMBEGINEPSF { end /FMEPSF save def /showpage {} def % See Adobe's "PostScript Language Reference Manual, 2nd Edition", page 714. % "...the following operators MUST NOT be used in an EPS file:" (emphasis ours) /banddevice {(banddevice) FMBADEPSF} def /clear {(clear) FMBADEPSF} def /cleardictstack {(cleardictstack) FMBADEPSF} def /copypage {(copypage) FMBADEPSF} def /erasepage {(erasepage) FMBADEPSF} def /exitserver {(exitserver) FMBADEPSF} def /framedevice {(framedevice) FMBADEPSF} def /grestoreall {(grestoreall) FMBADEPSF} def /initclip {(initclip) FMBADEPSF} def /initgraphics {(initgraphics) FMBADEPSF} def /initmatrix {(initmatrix) FMBADEPSF} def /quit {(quit) FMBADEPSF} def /renderbands {(renderbands) FMBADEPSF} def /setglobal {(setglobal) FMBADEPSF} def /setpagedevice {(setpagedevice) FMBADEPSF} def /setshared {(setshared) FMBADEPSF} def /startjob {(startjob) FMBADEPSF} def /lettertray {(lettertray) FMBADEPSF} def /letter {(letter) FMBADEPSF} def /lettersmall {(lettersmall) FMBADEPSF} def /11x17tray {(11x17tray) FMBADEPSF} def /11x17 {(11x17) FMBADEPSF} def /ledgertray {(ledgertray) FMBADEPSF} def /ledger {(ledger) FMBADEPSF} def /legaltray {(legaltray) FMBADEPSF} def /legal {(legal) FMBADEPSF} def /statementtray {(statementtray) FMBADEPSF} def /statement {(statement) FMBADEPSF} def /executivetray {(executivetray) FMBADEPSF} def /executive {(executive) FMBADEPSF} def /a3tray {(a3tray) FMBADEPSF} def /a3 {(a3) FMBADEPSF} def /a4tray {(a4tray) FMBADEPSF} def /a4 {(a4) FMBADEPSF} def /a4small {(a4small) FMBADEPSF} def /b4tray {(b4tray) FMBADEPSF} def /b4 {(b4) FMBADEPSF} def /b5tray {(b5tray) FMBADEPSF} def /b5 {(b5) FMBADEPSF} def FMNORMALIZEGRAPHICS [/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall fx fw 2 div add fy fh 2 div add translate rotate fw 2 div neg fh 2 div neg translate fw urx llx sub div fh ury lly sub div scale llx neg lly neg translate /FMdicttop countdictstack 1 add def /FMoptop count def } bind def /FMENDEPSF { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMEPSF restore FrameDict begin } bind def FrameDict begin /setmanualfeed { %%BeginFeature *ManualFeed True statusdict /manualfeed true put %%EndFeature } bind def /max {2 copy lt {exch} if pop} bind def /min {2 copy gt {exch} if pop} bind def /inch {72 mul} def /pagedimen { paperheight sub abs 16 lt exch paperwidth sub abs 16 lt and {/papername exch def} {pop} ifelse } bind def /papersizedict FMLOCAL /setpapername { /papersizedict 14 dict def papersizedict begin /papername /unknown def /Letter 8.5 inch 11.0 inch pagedimen /LetterSmall 7.68 inch 10.16 inch pagedimen /Tabloid 11.0 inch 17.0 inch pagedimen /Ledger 17.0 inch 11.0 inch pagedimen /Legal 8.5 inch 14.0 inch pagedimen /Statement 5.5 inch 8.5 inch pagedimen /Executive 7.5 inch 10.0 inch pagedimen /A3 11.69 inch 16.5 inch pagedimen /A4 8.26 inch 11.69 inch pagedimen /A4Small 7.47 inch 10.85 inch pagedimen /B4 10.125 inch 14.33 inch pagedimen /B5 7.16 inch 10.125 inch pagedimen end } bind def /papersize { papersizedict begin /Letter {lettertray letter} def /LetterSmall {lettertray lettersmall} def /Tabloid {11x17tray 11x17} def /Ledger {ledgertray ledger} def /Legal {legaltray legal} def /Statement {statementtray statement} def /Executive {executivetray executive} def /A3 {a3tray a3} def /A4 {a4tray a4} def /A4Small {a4tray a4small} def /B4 {b4tray b4} def /B5 {b5tray b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end statusdict begin stopped end } bind def /manualpapersize { papersizedict begin /Letter {letter} def /LetterSmall {lettersmall} def /Tabloid {11x17} def /Ledger {ledger} def /Legal {legal} def /Statement {statement} def /Executive {executive} def /A3 {a3} def /A4 {a4} def /A4Small {a4small} def /B4 {b4} def /B5 {b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end stopped } bind def /desperatepapersize { statusdict /setpageparams known { paperwidth paperheight 0 1 statusdict begin {setpageparams} stopped end } {true} ifelse } bind def /DiacriticEncoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute /Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis /atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis /iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex /udieresis /dagger /.notdef /cent /sterling /section /bullet /paragraph /germandbls /registered /copyright /trademark /acute /dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef /yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown /exclamdown /logicalnot /.notdef /florin /.notdef /.notdef /guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde /Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright /quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis /fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl /periodcentered /quotesinglbase /quotedblbase /perthousand /Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron ] def /ReEncode { dup length dict begin { 1 index /FID ne {def} {pop pop} ifelse } forall 0 eq {/Encoding DiacriticEncoding def} if currentdict end } bind def FMPColor { /BEGINBITMAPCOLOR { BITMAPCOLOR} def /BEGINBITMAPCOLORc { BITMAPCOLORc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUECOLOR } def /BEGINBITMAPTRUECOLORc { BITMAPTRUECOLORc } def } { /BEGINBITMAPCOLOR { BITMAPGRAY} def /BEGINBITMAPCOLORc { BITMAPGRAYc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUEGRAY } def /BEGINBITMAPTRUECOLORc { BITMAPTRUEGRAYc } def } ifelse /K { FMPrintAllColorsAsBlack { dup 1 eq 2 index 1 eq and 3 index 1 eq and not {7 {pop} repeat 0 0 0 1 0 0 0} if } if FrameCurColors astore pop combineColor } bind def /graymode true def /bwidth FMLOCAL /bpside FMLOCAL /bstring FMLOCAL /onbits FMLOCAL /offbits FMLOCAL /xindex FMLOCAL /yindex FMLOCAL /x FMLOCAL /y FMLOCAL /setPatternMode { FMLevel1 { /bwidth exch def /bpside exch def /bstring exch def /onbits 0 def /offbits 0 def freq sangle landscape {90 add} if {/y exch def /x exch def /xindex x 1 add 2 div bpside mul cvi def /yindex y 1 add 2 div bpside mul cvi def bstring yindex bwidth mul xindex 8 idiv add get 1 7 xindex 8 mod sub bitshift and 0 ne FrameNegative {not} if {/onbits onbits 1 add def 1} {/offbits offbits 1 add def 0} ifelse } setscreen offbits offbits onbits add div FrameNegative {1.0 exch sub} if /FrameCurGray exch def } { pop pop dup patCache exch known { patCache exch get } { dup patDict /bstring 3 -1 roll put patDict 9 PatFreq screenIndex get div dup matrix scale makepattern dup patCache 4 -1 roll 3 -1 roll put } ifelse /FrameCurGray 0 def /FrameCurPat exch def } ifelse /graymode false def combineColor } bind def /setGrayScaleMode { graymode not { /graymode true def FMLevel1 { setCurrentScreen } if } if /FrameCurGray exch def combineColor } bind def /normalize { transform round exch round exch itransform } bind def /dnormalize { dtransform round exch round exch idtransform } bind def /lnormalize { 0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop } bind def /H { lnormalize setlinewidth } bind def /Z { setlinecap } bind def /PFill { graymode FMLevel1 or not { gsave 1 setgray eofill grestore } if } bind def /PStroke { graymode FMLevel1 or not { gsave 1 setgray stroke grestore } if stroke } bind def /fillvals FMLOCAL /X { fillvals exch get dup type /stringtype eq {8 1 setPatternMode} {setGrayScaleMode} ifelse } bind def /V { PFill gsave eofill grestore } bind def /Vclip { clip } bind def /Vstrk { currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /N { PStroke } bind def /Nclip { strokepath clip newpath } bind def /Nstrk { currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /M {newpath moveto} bind def /E {lineto} bind def /D {curveto} bind def /O {closepath} bind def /n FMLOCAL /L { /n exch def newpath normalize moveto 2 1 n {pop normalize lineto} for } bind def /Y { L closepath } bind def /x1 FMLOCAL /x2 FMLOCAL /y1 FMLOCAL /y2 FMLOCAL /R { /y2 exch def /x2 exch def /y1 exch def /x1 exch def x1 y1 x2 y1 x2 y2 x1 y2 4 Y } bind def /rad FMLOCAL /rarc {rad arcto } bind def /RR { /rad exch def normalize /y2 exch def /x2 exch def normalize /y1 exch def /x1 exch def mark newpath { x1 y1 rad add moveto x1 y2 x2 y2 rarc x2 y2 x2 y1 rarc x2 y1 x1 y1 rarc x1 y1 x1 y2 rarc closepath } stopped {x1 y1 x2 y2 R} if cleartomark } bind def /RRR { /rad exch def normalize /y4 exch def /x4 exch def normalize /y3 exch def /x3 exch def normalize /y2 exch def /x2 exch def normalize /y1 exch def /x1 exch def newpath normalize moveto mark { x2 y2 x3 y3 rarc x3 y3 x4 y4 rarc x4 y4 x1 y1 rarc x1 y1 x2 y2 rarc closepath } stopped {x1 y1 x2 y2 x3 y3 x4 y4 newpath moveto lineto lineto lineto closepath} if cleartomark } bind def /C { grestore gsave R clip setCurrentScreen } bind def /CP { grestore gsave Y clip setCurrentScreen } bind def /FMpointsize FMLOCAL /F { FMfonts exch get FMpointsize scalefont setfont } bind def /Q { /FMpointsize exch def F } bind def /T { moveto show } bind def /RF { rotate 0 ne {-1 1 scale} if } bind def /TF { gsave moveto RF show grestore } bind def /P { moveto 0 32 3 2 roll widthshow } bind def /PF { gsave moveto RF 0 32 3 2 roll widthshow grestore } bind def /S { moveto 0 exch ashow } bind def /SF { gsave moveto RF 0 exch ashow grestore } bind def /B { moveto 0 32 4 2 roll 0 exch awidthshow } bind def /BF { gsave moveto RF 0 32 4 2 roll 0 exch awidthshow grestore } bind def /G { gsave newpath normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath PFill fill grestore } bind def /Gstrk { savematrix newpath 2 index 2 div add exch 3 index 2 div sub exch normalize 2 index 2 div sub exch 3 index 2 div add exch translate scale 0.0 0.0 1.0 5 3 roll arc restorematrix currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /Gclip { newpath savematrix normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath clip newpath restorematrix } bind def /GG { gsave newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath PFill fill grestore } bind def /GGclip { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath clip newpath restorematrix } bind def /GGstrk { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath restorematrix currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /A { gsave savematrix newpath 2 index 2 div add exch 3 index 2 div sub exch normalize 2 index 2 div sub exch 3 index 2 div add exch translate scale 0.0 0.0 1.0 5 3 roll arc restorematrix PStroke grestore } bind def /Aclip { newpath savematrix normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath strokepath clip newpath restorematrix } bind def /Astrk { Gstrk } bind def /AA { gsave savematrix newpath 3 index 2 div add exch 4 index 2 div sub exch normalize 3 index 2 div sub exch 4 index 2 div add exch translate rotate scale 0.0 0.0 1.0 5 3 roll arc restorematrix PStroke grestore } bind def /AAclip { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath strokepath clip newpath restorematrix } bind def /AAstrk { GGstrk } bind def /x FMLOCAL /y FMLOCAL /w FMLOCAL /h FMLOCAL /xx FMLOCAL /yy FMLOCAL /ww FMLOCAL /hh FMLOCAL /FMsaveobject FMLOCAL /FMoptop FMLOCAL /FMdicttop FMLOCAL /BEGINPRINTCODE { /FMdicttop countdictstack 1 add def /FMoptop count 7 sub def /FMsaveobject save def userdict begin /showpage {} def FMNORMALIZEGRAPHICS 3 index neg 3 index neg translate } bind def /ENDPRINTCODE { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMsaveobject restore } bind def /gn { 0 { 46 mul cf read pop 32 sub dup 46 lt {exit} if 46 sub add } loop add } bind def /str FMLOCAL /cfs { /str sl string def 0 1 sl 1 sub {str exch val put} for str def } bind def /ic [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx} {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx} {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh} {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh} {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl} {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl} {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl} {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl} ] def /sl FMLOCAL /val FMLOCAL /ws FMLOCAL /im FMLOCAL /bs FMLOCAL /cs FMLOCAL /len FMLOCAL /pos FMLOCAL /ms { /sl exch def /val 255 def /ws cfs /im cfs /val 0 def /bs cfs /cs cfs } bind def 400 ms /ip { is 0 cf cs readline pop { ic exch get exec add } forall pop } bind def /rip { bis ris copy pop is 0 cf cs readline pop { ic exch get exec add } forall pop pop ris gis copy pop dup is exch cf cs readline pop { ic exch get exec add } forall pop pop gis bis copy pop dup add is exch cf cs readline pop { ic exch get exec add } forall pop } bind def /wh { /len exch def /pos exch def ws 0 len getinterval im pos len getinterval copy pop pos len } bind def /bl { /len exch def /pos exch def bs 0 len getinterval im pos len getinterval copy pop pos len } bind def /s1 1 string def /fl { /len exch def /pos exch def /val cf s1 readhexstring pop 0 get def pos 1 pos len add 1 sub {im exch val put} for pos len } bind def /hx { 3 copy getinterval cf exch readhexstring pop pop } bind def /h FMLOCAL /w FMLOCAL /d FMLOCAL /lb FMLOCAL /bitmapsave FMLOCAL /is FMLOCAL /cf FMLOCAL /wbytes { dup dup 24 eq { pop pop 3 mul } { 8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse } ifelse } bind def /BEGINBITMAPBWc { 1 {} COMMONBITMAPc } bind def /BEGINBITMAPGRAYc { 8 {} COMMONBITMAPc } bind def /BEGINBITMAP2BITc { 2 {} COMMONBITMAPc } bind def /COMMONBITMAPc { /r exch def /d exch def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def r /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h d [w 0 0 h neg 0 h] {ip} image bitmapsave restore grestore } bind def /BEGINBITMAPBW { 1 {} COMMONBITMAP } bind def /BEGINBITMAPGRAY { 8 {} COMMONBITMAP } bind def /BEGINBITMAP2BIT { 2 {} COMMONBITMAP } bind def /COMMONBITMAP { /r exch def /d exch def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /bitmapsave save def r /is w d wbytes string def /cf currentfile def w h d [w 0 0 h neg 0 h] {cf is readhexstring pop} image bitmapsave restore grestore } bind def /ngrayt 256 array def /nredt 256 array def /nbluet 256 array def /ngreent 256 array def /gryt FMLOCAL /blut FMLOCAL /grnt FMLOCAL /redt FMLOCAL /indx FMLOCAL /cynu FMLOCAL /magu FMLOCAL /yelu FMLOCAL /k FMLOCAL /u FMLOCAL FMLevel1 { /colorsetup { currentcolortransfer /gryt exch def /blut exch def /grnt exch def /redt exch def 0 1 255 { /indx exch def /cynu 1 red indx get 255 div sub def /magu 1 green indx get 255 div sub def /yelu 1 blue indx get 255 div sub def /k cynu magu min yelu min def /u k currentundercolorremoval exec def % /u 0 def nredt indx 1 0 cynu u sub max sub redt exec put ngreent indx 1 0 magu u sub max sub grnt exec put nbluet indx 1 0 yelu u sub max sub blut exec put ngrayt indx 1 k currentblackgeneration exec sub gryt exec put } for {255 mul cvi nredt exch get} {255 mul cvi ngreent exch get} {255 mul cvi nbluet exch get} {255 mul cvi ngrayt exch get} setcolortransfer {pop 0} setundercolorremoval {} setblackgeneration } bind def } { /colorSetup2 { [ /Indexed /DeviceRGB 255 {dup red exch get 255 div exch dup green exch get 255 div exch blue exch get 255 div} ] setcolorspace } bind def } ifelse /tran FMLOCAL /fakecolorsetup { /tran 256 string def 0 1 255 {/indx exch def tran indx red indx get 77 mul green indx get 151 mul blue indx get 28 mul add add 256 idiv put} for currenttransfer {255 mul cvi tran exch get 255.0 div} exch concatprocs settransfer } bind def /BITMAPCOLOR { /d 8 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /bitmapsave save def FMLevel1 { colorsetup /is w d wbytes string def /cf currentfile def w h d [w 0 0 h neg 0 h] {cf is readhexstring pop} {is} {is} true 3 colorimage } { colorSetup2 /is w d wbytes string def /cf currentfile def 7 dict dup begin /ImageType 1 def /Width w def /Height h def /ImageMatrix [w 0 0 h neg 0 h] def /DataSource {cf is readhexstring pop} bind def /BitsPerComponent d def /Decode [0 255] def end image } ifelse bitmapsave restore grestore } bind def /BITMAPCOLORc { /d 8 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def FMLevel1 { colorsetup /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h d [w 0 0 h neg 0 h] {ip} {is} {is} true 3 colorimage } { colorSetup2 /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def 7 dict dup begin /ImageType 1 def /Width w def /Height h def /ImageMatrix [w 0 0 h neg 0 h] def /DataSource {ip} bind def /BitsPerComponent d def /Decode [0 255] def end image } ifelse bitmapsave restore grestore } bind def /BITMAPTRUECOLORc { /d 24 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /ris im 0 w getinterval def /gis im w w getinterval def /bis im w 2 mul w getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h 8 [w 0 0 h neg 0 h] {w rip pop ris} {gis} {bis} true 3 colorimage bitmapsave restore grestore } bind def /BITMAPTRUECOLOR { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /bitmapsave save def /is w string def /gis w string def /bis w string def /cf currentfile def w h 8 [w 0 0 h neg 0 h] { cf is readhexstring pop } { cf gis readhexstring pop } { cf bis readhexstring pop } true 3 colorimage bitmapsave restore grestore } bind def /BITMAPTRUEGRAYc { /d 24 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /ris im 0 w getinterval def /gis im w w getinterval def /bis im w 2 mul w getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h 8 [w 0 0 h neg 0 h] {w rip pop ris gis bis w gray} image bitmapsave restore grestore } bind def /ww FMLOCAL /r FMLOCAL /g FMLOCAL /b FMLOCAL /i FMLOCAL /gray { /ww exch def /b exch def /g exch def /r exch def 0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul b i get .114 mul add add r i 3 -1 roll floor cvi put } for r } bind def /BITMAPTRUEGRAY { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /h exch def /w exch def /bitmapsave save def /is w string def /gis w string def /bis w string def /cf currentfile def w h 8 [w 0 0 h neg 0 h] { cf is readhexstring pop cf gis readhexstring pop cf bis readhexstring pop w gray} image bitmapsave restore grestore } bind def /BITMAPGRAY { 8 {fakecolorsetup} COMMONBITMAP } bind def /BITMAPGRAYc { 8 {fakecolorsetup} COMMONBITMAPc } bind def /ENDBITMAP { } bind def end /ALDsave FMLOCAL /ALDmatrix matrix def ALDmatrix currentmatrix pop /StartALD { /ALDsave save def savematrix ALDmatrix setmatrix } bind def /InALD { restorematrix } bind def /DoneALD { ALDsave restore } bind def /I { setdash } bind def /J { [] 0 setdash } bind def %%EndProlog %%BeginSetup (4.0) FMVERSION 1 1 0 0 612 792 0 1 12 FMDOCUMENT 0 0 /Times-Roman FMFONTDEFINE 1 0 /Times-Bold FMFONTDEFINE 2 0 /Times-Italic FMFONTDEFINE 3 1 /Symbol FMFONTDEFINE 4 0 /Courier FMFONTDEFINE 32 FMFILLS 0 0 FMFILL 1 0.1 FMFILL 2 0.3 FMFILL 3 0.5 FMFILL 4 0.7 FMFILL 5 0.9 FMFILL 6 0.97 FMFILL 7 1 FMFILL 8 <0f1e3c78f0e1c387> FMFILL 9 <0f87c3e1f0783c1e> FMFILL 10 FMFILL 11 FMFILL 12 <8142241818244281> FMFILL 13 <03060c183060c081> FMFILL 14 <8040201008040201> FMFILL 16 1 FMFILL 17 0.9 FMFILL 18 0.7 FMFILL 19 0.5 FMFILL 20 0.3 FMFILL 21 0.1 FMFILL 22 0.03 FMFILL 23 0 FMFILL 24 FMFILL 25 FMFILL 26 <3333333333333333> FMFILL 27 <0000ffff0000ffff> FMFILL 28 <7ebddbe7e7dbbd7e> FMFILL 29 FMFILL 30 <7fbfdfeff7fbfdfe> FMFILL %%EndSetup %%Page: "1" 1 %%BeginPaperSize: Letter %%EndPaperSize 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 0 0 0 1 1 1] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 8 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K J 0 0 0 1 0 0 0 K 72 49.5 540 58.5 R 7 X 0 0 0 1 0 0 0 K V 0 10 Q 0 X (1) 303.5 51.68 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 14 Q (Supporting Mobility in MosquitoNet) 196.51 692.67 T 0 12 Q (Mary G. Baker) 155.93 666 T (, Xinhua Zhao, Stuart Cheshire, Jonathan Stone) 227.76 666 T 2 F (Stanfor) 259.06 650 T (d University) 293.95 650 T 1 F ( Abstract) 156.17 604 T 0 10 Q 2.14 (The goal of the MosquitoNet project is to provide) 72 583.33 P 4.09 (continuous Internet connectivity to mobile hosts.) 72 571.33 P 1.44 (Mobile hosts must be able to take advantage of the) 72 559.33 P 1.61 (best network connectivity available in any location,) 72 547.33 P 1.61 (whether wired or wireless. W) 72 535.33 P 1.61 (e have implemented a) 195.68 535.33 P 2.2 (mobile IP system that supports seamless switching) 72 523.33 P 6.28 (between dif) 72 511.33 P 6.28 (ferent networks and communication) 125.03 511.33 P 0.47 (devices. In contrast to previous approaches to mobile) 72 499.33 P 1.69 (IP) 72 487.33 P 1.69 (, we believe mobile hosts should not assume any) 79.78 487.33 P -0.1 (explicit mobility support from the networks they visit,) 72 475.33 P 1.16 (aside from basic Internet connectivity) 72 463.33 P 1.16 (. This decision) 227.07 463.33 P -0.13 (places extra responsibilities on the mobile hosts them-) 72 451.33 P 3.03 (selves. In this paper) 72 439.33 P 3.03 (, we describe the design and) 160.11 439.33 P 1.1 (implications of such a system. Measurements of our) 72 427.33 P 2.12 (implementation show that the inherent overhead to) 72 415.33 P 1.47 (switch networks \050below 10ms\051 is insigni\336cant com-) 72 403.33 P 0.44 (pared to the time required to bring up a new commu-) 72 391.33 P (nication device.) 72 379.33 T 1 12 Q (1. Intr) 72 348 T (oduction) 104.45 348 T 0 10 Q -0.16 (W) 72 327.33 P -0.16 (e envision that ubiquitous network connectivity will) 80.64 327.33 P -0.11 (someday be a reality) 72 315.33 P -0.11 (. In the future, the Internet will be) 153.51 315.33 P -0.16 (a collection of dif) 72 303.33 P -0.16 (ferent services, both wired and wire-) 142.17 303.33 P 4.99 (less, often with overlapping areas of coverage.) 72 291.33 P 0.13 (Through the combination of these services, especially) 72 279.33 P 1.97 (with the rapid growth of wireless networks, it will) 72 267.33 P 0.08 (almost always be possible for a mobile host to remain) 72 255.33 P 2.67 (connected to the Internet, or at least to reconnect) 72 243.33 P (when so desired.) 72 231.33 T -0.19 (Based on our vision of this future global internetwork,) 72 211.33 P 1.85 (the MosquitoNet project has been working on sup-) 72 199.33 P -0.18 (porting continuous \050or seemingly continuous\051 connec-) 72 187.33 P 2.27 (tivity) 72 175.33 P 2.27 (. By continuous connectivity) 92.47 175.33 P 2.27 (, we mean that a) 213.64 175.33 P 0.2 (mobile host can send and receive packets whenever it) 72 163.33 P 1.26 (wishes, though the available quality of network ser-) 72 151.33 P (vice may vary widely) 72 139.33 T (.) 157.72 139.33 T 0.54 (W) 72 119.33 P 0.54 (e believe continuous connectivity is not only feasi-) 80.64 119.33 P 0.77 (ble but also crucial to make the most out of portable) 72 107.33 P 1.52 (computers. More personal computer users are using) 72 95.33 P 0.78 (their computers mainly for communication. It is also) 72 83.33 P 2.71 (clear that consumers want continuous connectivity) 324 605.33 P -0.05 (available to them, as shown by the recent introduction) 324 593.33 P 0.19 (of two-way pagers and \322500 number\323 phone numbers) 324 581.33 P 0.19 (that allow consumers to receive telephone calls wher-) 324 569.33 P 0.17 (ever they go, without informing callers of any change) 324 557.33 P (in phone number) 324 545.33 T (.) 391.22 545.33 T 1.28 (While the physical infrastructure for ubiquitous net-) 324 525.33 P 0.63 (work connectivity will be available, there are several) 324 513.33 P 1.53 (problems mobile hosts must overcome to make full) 324 501.33 P 0.21 (use of it. This paper addresses two of these problems.) 324 489.33 P 1.04 (The \336rst is that mobile hosts must be able to switch) 324 477.33 P 6.08 (seamlessly between dif) 324 465.33 P 6.08 (ferent types of network) 428.74 465.33 P 0.85 (devices, and the second is that mobile hosts must be) 324 453.33 P 0.39 (able to visit foreign networks that do not provide any) 324 441.33 P (support for mobility) 324 429.33 T (.) 403.91 429.33 T 0.18 (W) 324 409.33 P 0.18 (e must be able to switch seamlessly between dif) 332.64 409.33 P 0.18 (fer-) 525.57 409.33 P 1.94 (ent network devices to take advantage of whatever) 324 397.33 P 0.82 (connectivity is available. For example, we may need) 324 385.33 P 2.84 (to switch from an Ethernet connection to a radio) 324 373.33 P 0.33 (modem as we leave our of) 324 361.33 P 0.33 (\336ces, taking our computers) 430.7 361.33 P 0.71 (with us. If we arrive at a site where there is a higher) 324 349.33 P 0.51 (speed connection, we may want to switch once again) 324 337.33 P 0.47 (to take advantage of it, even if the wireless service is) 324 325.33 P (still available.) 324 313.33 T 0.46 (When switching between these networks, it is impor-) 324 293.33 P 2.44 (tant to maintain all current network conversations.) 324 281.33 P -0.13 (Restarting all applications every time we change loca-) 324 269.33 P -0.01 (tions is unacceptably annoying. This is especially true) 324 257.33 P 0.55 (for applications that run for extended periods of time) 324 245.33 P 1.55 (and build up nontrivial state, such as remote logins) 324 233.33 P 1.38 (with active processes. As another example, we may) 324 221.33 P 0.64 (have selected a long thread of postings from a news-) 324 209.33 P 0.73 (group and wish to read them after we move to a dif-) 324 197.33 P 1.62 (ferent location. W) 324 185.33 P 1.62 (e do not want to restart the news) 398.93 185.33 P -0.14 (reader and mark the thread again. If we do not support) 324 173.33 P 0.5 (this seamless switching between networks, we would) 324 161.33 P 2.77 (need to rewrite all these applications to save and) 324 149.33 P 2.01 (restore their own states. In MosquitoNet, we make) 324 137.33 P 2.92 (this seamless switching possible without requiring) 324 125.33 P -0.08 (changes to existing applications on mobile hosts or on) 324 113.33 P (the hosts corresponding with them.) 324 101.33 T 72 738 540 756 R 7 X V 0 X (This paper appears in the Proceedings of the 1996 USENIX T) 72 749.33 T (echnical Conference, San Diego, CA, January 1996.) 319.03 749.33 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "1" 1 %%Page: "2" 2 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 0 0 0 1 1 1] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 8 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 72 49.5 540 58.5 R 7 X 0 0 0 1 0 0 0 K V 0 10 Q 0 X (2) 303.5 51.68 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1.38 (The second problem we address is how to maintain) 72 713.33 P 1.56 (connectivity when visiting foreign networks that do) 72 701.33 P 0.62 (not explicitly support mobility for visitors. A foreign) 72 689.33 P 2.89 (network is one operated by authorities other than) 72 677.33 P 1.81 (those operating a mobile host\325) 72 665.33 P 1.81 (s home network. For) 199.8 665.33 P 1.58 (the foreseeable future, the global network will con-) 72 653.33 P 0.59 (tinue to be a functioning anarchy) 72 641.33 P 0.59 (, i.e., a collection of) 206.21 641.33 P 0.37 (services under dif) 72 629.33 P 0.37 (ferent authorities. For many or) 143.66 629.33 P 0.37 (gani-) 267.45 629.33 P 2.92 (zations, there is little motivation to expend much) 72 617.33 P 0.44 (ef) 72 605.33 P 0.44 (fort solely on the behalf of mobile visitors. For this) 79.59 605.33 P 0.79 (reason, our mobile hosts do not require any mobility) 72 593.33 P 0.02 (support from the networks they visit. It is this issue of) 72 581.33 P 3.87 (mobility support in foreign networks that distin-) 72 569.33 P -0.01 (guishes the emphasis of our work from previous work) 72 557.33 P (on providing host mobility) 72 545.33 T (.) 178.31 545.33 T 2.41 (Even if future networks adopt a standard mobility) 72 525.33 P 0.7 (protocol, our system provides mobility in the current) 72 513.33 P 0.24 (network. It took ten years for IP multicast to reach its) 72 501.33 P 0.7 (current stage of deployment. W) 72 489.33 P 0.7 (e do not want to wait) 200.35 489.33 P 0.75 (another ten years for mobile IP support that assumes) 72 477.33 P 0.06 (the existence of \322agents\323 operating on a mobile host\325) 72 465.33 P 0.06 (s) 284.11 465.33 P 0.14 (behalf in every network it visits. MosquitoNet mobile) 72 453.33 P 0.33 (hosts do not require such changes or additions to net-) 72 441.33 P (work infrastructures outside their home domain.) 72 429.33 T 1.96 (T) 72 409.33 P 1.96 (o solve these problems and gain more experience) 77.41 409.33 P 1.11 (with mobility) 72 397.33 P 1.11 (, we have designed and implemented a) 126.64 397.33 P 0.13 (system that requires support only in the home domain) 72 385.33 P -0.2 (of the mobile host and on the mobile host itself. While) 72 373.33 P 1.2 (our approach simpli\336es the system in some ways, it) 72 361.33 P 2.57 (raises design issues for the mobile host\325) 72 349.33 P 2.57 (s network) 246.27 349.33 P 0.7 (software. Our software must now support the mobile) 72 337.33 P -0.08 (host\325) 72 325.33 P -0.08 (s interactions with foreign networks as well as its) 91.45 325.33 P 4.31 (interactions with its home network. Determining) 72 313.33 P 0.75 (where we can or should keep mobility transparent to) 72 301.33 P 1.06 (the mobile host\325) 72 289.33 P 1.06 (s networking software is more com-) 138.57 289.33 P 0.95 (plex in our system than in systems with foreign net-) 72 277.33 P (work support.) 72 265.33 T 2.13 (This paper presents our protocol, our resolution of) 72 245.33 P 2.12 (these design issues, and our system\325) 72 233.33 P 2.12 (s performance.) 226.46 233.33 P 4.48 (Our measurements show that switching between) 72 221.33 P 0.54 (available networks causes little disruption to applica-) 72 209.33 P 1.07 (tions running on mobile hosts or on the hosts corre-) 72 197.33 P (sponding with them.) 72 185.33 T 2.15 (The next section describes the dif) 72 165.33 P 2.15 (ferences between) 216.72 165.33 P -0.04 (our approach and the previous related work. Section 3) 72 153.18 P 0.58 (presents our mobile IP system design and implemen-) 72 141.18 P 0.87 (tation. Section 4 provides some performance evalua-) 72 129.03 P 0.55 (tion of the system. Section 5 describes what we have) 72 116.87 P 3.64 (learned as a result of implementing this system,) 72 104.87 P -0.1 (including the advantages and disadvantages of operat-) 72 92.87 P 0.54 (ing without agents in foreign networks, and transpar-) 72 80.87 P 0.46 (ency issues for mobile IP implementations. Section 6) 324 713.18 P 0.58 (describes some future work for our project. The \336nal) 324 701.18 P 0.12 (sections give some concluding remarks, together with) 324 689.18 P (release information for our software.) 324 677.18 T 1 12 Q (2. Comparison with Pr) 324 645.85 T (evious W) 440.45 645.85 T (ork) 486.79 645.85 T 0 10 Q 4.34 (Several systems have been proposed \050and some) 324 625.18 P 0.66 (implemented\051 that provide host mobility in the Inter-) 324 613.18 P 0.3 (net. Existing Internet routing protocols are used in all) 324 601.18 P 0.61 (these systems. As illustrated in Figure 1, the systems) 324 589.03 P 4.3 (share several components with our approach. A) 324 577.03 P 2 F 3.29 (mobile host) 324 565.03 P 0 F 3.29 (\050MH\051 is a host that can be reached) 379.48 565.03 P 0.87 (through a constant) 324 553.03 P 2 F 0.87 (home IP addr) 402.99 553.03 P 0.87 (ess) 459.35 553.03 P 0 F 0.87 ( regardless of its) 471.57 553.03 P 0.51 (current location. A correspondent host \050CH\051 is a host) 324 541.03 P -0.25 (that communicates with a mobile host. The correspon-) 324 529.03 P 0.78 (dent host could itself be mobile. Another component) 324 517.03 P 0.98 (in common is a stationary host, called a) 324 505.03 P 2 F 0.98 (home agent) 492.64 505.03 P 0 F 0.39 (\050HA\051. The home agent takes packets from correspon-) 324 493.03 P 3.04 (dent hosts addressed to a mobile host\325) 324 481.03 P 3.04 (s home IP) 493.92 481.03 P 1.1 (address and forwards them to the mobile host\325) 324 469.03 P 1.1 (s cur-) 516.41 469.03 P 0.88 (rent point-of-attachment. This point-of-attachment in) 324 457.03 P 1.93 (a foreign network is often called the mobile host\325) 324 445.03 P 1.93 (s) 536.11 445.03 P 2 F 1.55 (car) 324 433.03 P 1.55 (e-of addr) 336.96 433.03 P 1.55 (ess) 375.08 433.03 P 0 F 1.55 (. The home agent typically forwards) 387.3 433.03 P 1.69 (packets to the mobile host by) 324 421.03 P 2 F 1.69 (tunneling) 453.57 421.03 P 0 F 1.69 ( them. This) 491.35 421.03 P 324 72 540 720 C 324 72 540 411.98 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 396 186.98 513 227.48 18 RR 7 X 0 0 0 1 0 0 0 K V 0.5 H 2 Z 0 X N 324 74.48 540 178.48 R 7 X V 1 9 Q 0 X 0.18 (Figur) 337.74 172.48 P 0.18 (e 1. Basic mobile host scenario:) 359.08 172.48 P 0 F 0.18 (The top half) 481.9 172.48 P 7.17 (of the \336gure shows a correspondent host) 337.74 163.48 P 0.19 (communicating with a mobile host that is still on its) 337.74 154.48 P 0.41 (home network. The bottom half of the \336gure shows) 337.74 145.48 P -0.14 (the path packets take when the mobile host moves to) 337.74 136.48 P -0.2 (a foreign network. The correspondent host continues) 337.74 127.48 P 3.68 (sending packets to the mobile host\325) 337.74 118.48 P 3.68 (s home IP) 482.89 118.48 P 0.54 (address. An agent in that network \050the home agent\051) 337.74 109.48 P 0.76 (takes responsibility for forwarding these packets to) 337.74 100.48 P 3.68 (the mobile host\325) 337.74 91.48 P 3.68 (s new location on the foreign) 403.11 91.48 P (network.) 337.74 82.48 T 468 377.12 504 395.12 R 7 X V 0 X N 0 10 Q (CH) 477 382.52 T 333 294.98 454.5 339.98 R 7 X V 0 X (HA = Home Agent) 333 333.32 T (MH = Mobile Host) 333 318.32 T (CH = Correspondent Host) 333 303.32 T J J 333 348.98 450 389.48 18 RR 7 X V 0 X N 387 353.48 423 371.48 R 7 X V 0 X N (MH) 396 358.88 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (Home network) 351 378.15 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 432.81 379.13 423 371.48 427.27 383.17 430.04 381.15 4 Y V 90 147.52 45 18 468 371.48 A 337.5 236.48 454.5 276.98 18 RR 7 X V 0 X N 391.5 240.98 427.5 258.98 R 7 X V 0 X N (HA) 400.5 246.38 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (Home network) 355.5 265.65 T 472.5 272.48 508.5 290.48 R 7 X V 0 X N (CH) 481.5 277.88 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 435.97 268.13 427.5 258.99 429.84 271.23 432.91 269.68 4 Y V 90 151.62 45 22.5 472.5 258.98 A 436.5 204.98 472.5 222.98 R 7 X V 0 X N (MH) 445.5 210.38 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (Foreign network) 410.62 193.66 T 429.76 228.41 436.5 218.48 425.52 223.33 427.64 225.87 4 Y V 409.5 240.98 427.64 225.87 2 L N 324 294.98 535.5 294.98 2 L 1 H N 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 324 72 540 720 C 0 0 612 792 C 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "2" 2 %%Page: "3" 3 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 0 0 0 1 1 1] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 8 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 72 49.5 540 58.5 R 7 X 0 0 0 1 0 0 0 K V 0 10 Q 0 X (3) 303.5 51.68 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.59 (means the home agent encapsulates each packet with) 72 713.33 P -0.17 (an extra IP header that directs the packet to the mobile) 72 701.33 P 2.77 (host\325) 72 689.33 P 2.77 (s current care-of address. Once received, this) 91.45 689.33 P 1.26 (packet must be) 72 677.33 P 2 F 1.26 (decapsulated) 138.27 677.33 P 0 F 1.26 ( to strip of) 191.04 677.33 P 1.26 (f the outside) 236.04 677.33 P -0.08 (header before delivery to an application on the mobile) 72 665.33 P -0.01 (host. In this way the application receives a packet that) 72 653.33 P 0.7 (looks like a normal packet it would receive while on) 72 641.33 P (its home network.) 72 629.33 T 0.82 (The main point that distinguishes our approach from) 72 609.33 P -0.08 (these other systems is how much support is demanded) 72 597.33 P 0.23 (from the foreign networks a mobile host visits. Previ-) 72 585.33 P 1.08 (ous work usually assumes the existence of a) 72 573.33 P 2 F 1.08 (for) 259.48 573.33 P 1.08 (eign) 270.78 573.33 P -0.24 (agent) 72 561.33 P 0 F -0.24 ( \050F) 94.22 561.33 P -0.24 (A\051 in each network the mobile host visits. The) 104.63 561.33 P 1.47 (foreign agent serves as a temporary point-of-attach-) 72 549.33 P 1.13 (ment for any mobile hosts visiting its network. This) 72 537.33 P 3.12 (means that the mobile host\325) 72 525.33 P 3.12 (s home agent tunnels) 194.48 525.33 P 0.47 (packets to the foreign agent, which then decapsulates) 72 513.33 P 1.79 (them and hands the original packets directly to the) 72 501.33 P 0.19 (mobile host on its network. The IP address of the for-) 72 489.33 P -0.01 (eign agent becomes the care-of address for the mobile) 72 477.33 P (host.) 72 465.33 T -0.19 (In contrast, our approach only requires of the host net-) 72 445.33 P 2.58 (work its ability to provide a dynamically-assigned) 72 433.33 P 3.13 (temporary IP care-of address for the mobile host) 72 421.33 P 0.39 (itself. This IP address could be assigned by hand, but) 72 409.33 P 1.84 (this functionality is more easily provided automati-) 72 397.33 P -0.22 (cally by DHCP [4] or other link-level address negotia-) 72 385.18 P 1.28 (tions such as those used by PPP and SLIP services.) 72 373.18 P 1.24 (W) 72 361.18 P 1.24 (ithout a foreign agent, networking software in the) 81.04 361.18 P 3.09 (mobile host decapsulates the tunneled packets. In) 72 349.18 P 0.95 (ef) 72 337.18 P 0.95 (fect, we have collocated a simple foreign agent on) 79.59 337.18 P 1.58 (the mobile host itself. The dif) 72 325.18 P 1.58 (ference in the assign-) 198.02 325.18 P 2.33 (ment of care-of addresses between our design and) 72 313.18 P 0.2 (designs that use foreign agents is further illustrated in) 72 301.18 P 1.22 (Figure 2. W) 72 289.03 P 1.22 (e describe the advantages and disadvan-) 121.68 289.03 P -0.12 (tages of leaving out the foreign agent in more detail in) 72 277.03 P (Section 5.1.) 72 264.87 T 0.34 (Below we compare some previous mobile IP systems) 72 244.87 P (to our work.) 72 232.87 T 0.27 (The Columbia system [6] takes the so-called \324embed-) 72 212.72 P 0.47 (ded network\325 approach. The approach requires a spe-) 72 200.72 P 1.43 (cial kind of router) 72 188.72 P 1.43 (, called a Mobile Support Router) 147.81 188.72 P 1.43 (.) 285.5 188.72 P 0.26 (The Mobile Support Routers work closely together to) 72 176.72 P 0.82 (make the partitioned physical networks \050called cells\051) 72 164.72 P 1.47 (appear as a single subnet. While it is optimized for) 72 152.72 P -0.06 (localized mobility) 72 140.72 P -0.06 (, it is hard to scale beyond the scope) 143.79 140.72 P (of a single or) 72 128.72 T (ganization such as a university) 124.31 128.72 T (.) 246.42 128.72 T 1.06 (The IMHP \050Internet Mobile Host Protocol\051 [13] and) 72 108.57 P 0.65 (the Harvard system [2] are roughly the same, though) 72 96.41 P 0.61 (they were developed independently) 72 84.41 P 0.61 (. The strong point) 215.07 84.41 P 0.08 (of the proposals is that they can provide host mobility) 324 263.33 P 1.77 (over a wide area and conver) 324 251.33 P 1.77 (ge to an optimal route) 445.14 251.33 P 1.73 (ef) 324 239.33 P 1.73 (\336ciently) 331.59 239.33 P 1.73 (. But to obtain optimal routing, the MH\325) 363.72 239.33 P 1.73 (s) 536.11 239.33 P 1.03 (previous F) 324 227.33 P 1.03 (A, its CHs, and the routers along the way) 366.79 227.33 P 1.45 (\050called cache agents\051 are used to cache the location) 324 215.33 P 0.96 (binding for the MH. The problem with this is that it) 324 203.33 P 0.68 (requires adding this extra support to many entities in) 324 191.33 P (the Internet.) 324 179.33 T 0.27 (VIP [16] places even more requirements on the exist-) 324 159.18 P 1.47 (ing infrastructure of the Internet. Its key point is to) 324 147.18 P 1.65 (separate logical identi\336ers from physical identi\336ers.) 324 135.18 P 1.93 (The network layer is divided into two sublayers: a) 324 123.18 P 2.49 (V) 324 111.18 P 2.49 (irtual Network Sublayer and a Physical Network) 330.62 111.18 P -0.25 (Sublayer) 324 99.18 P -0.25 (. The virtual to physical mapping information) 359 99.18 P 2.8 (of migrating hosts is cached in Address Mapping) 324 87.18 P 324 72 540 720 C 324 270 538.62 720 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 436.5 648 558 711 R 7 X 0 0 0 1 0 0 0 K V 0 10 Q 0 X (HA = Home Agent) 436.5 704.33 T (MH = Mobile Host) 436.5 689.33 T (F) 436.5 674.33 T (A = Foreign Agent) 441.32 674.33 T (R) 436.5 659.33 T (T = Router) 442.57 659.33 T J J 395.3 615.95 476.3 615.95 2 L 3 H 2 Z N 333 675 405 675 2 L N 404.3 633.95 440.3 651.95 R 7 X V 0.5 H 0 X N 422.3 633.95 422.3 615.95 2 L 1 H N (R) 413.3 639.35 T (T) 419.37 639.35 T 351 693 387 711 R 7 X V 0.5 H 0 X N 369 693 369 675 2 L 1 H N (HA) 360 698.4 T 431.3 579.95 467.3 597.95 R 7 X V 0.5 H 0 X N (MH) 440.3 585.35 T 449.3 615.95 449.3 597.95 2 L 1 H N 417.96 664.52 415.29 651.95 410.89 664.02 414.42 664.27 4 Y V 0.5 H 14.25 90 28.3 50.05 387 651.95 A 419.9 593.61 431.46 590.46 419.98 587.01 419.94 590.31 4 Y V 404.3 642.95 M 383.25 645.54 359.78 625.89 372.67 604.62 D 382.83 587.87 402.76 589.52 419.95 590.3 D N 331.5 526.5 403.5 526.5 2 L 3 H N 403.5 486.05 439.5 504.05 R 7 X V 0.5 H 0 X N 421.5 486.05 421.5 468.05 2 L 1 H N (R) 412.5 491.45 T (T) 418.57 491.45 T 349.5 544.5 385.5 562.5 R 7 X V 0.5 H 0 X N 367.5 544.5 367.5 526.5 2 L 1 H N (HA) 358.5 549.9 T 430.5 432.05 466.5 450.05 R 7 X V 0.5 H 0 X N (MH) 439.5 437.45 T 448.5 468.05 448.5 450.05 2 L 1 H N 423.87 516.45 421.5 504.05 416.94 515.83 420.41 516.14 4 Y V 0.5 H 14.15 90 36 49.45 385.5 504.05 A 472.5 486.05 508.5 504.05 R 7 X V 0 X N (F) 481.5 491.45 T (A) 486.32 491.45 T 481.5 486.05 481.5 468.05 2 L 1 H N 460.96 498.36 472.5 495.05 460.96 491.74 460.96 495.05 4 Y V 439.5 495.05 460.96 495.05 2 L 0.5 H N 478.52 439.48 466.5 441.05 477.53 446.09 478.03 442.78 4 Y V 285.93 360 42 45 466.5 486.05 A 407.5 468.05 488.5 468.05 2 L 3 H N 319.5 274.5 535.5 423 R 7 X V 1 9 Q 0 X 0.53 (Figur) 333.24 417 P 0.53 (e 2. Car) 354.58 417 P 0.53 (e-of addr) 385.73 417 P 0.53 (esses:) 421.35 417 P 0 F 0.53 (The top of the \336gure) 445.62 417 P 1.5 (shows the home agent forwarding a packet to the) 333.24 408 P 1.1 (mobile host on a network without a foreign agent.) 333.24 399 P 0.9 (The destination address, or care-of address, for the) 333.24 390 P 2.38 (packet is a temporary IP address on the foreign) 333.24 381 P 0.6 (network. The router contains a map entry from this) 333.24 372 P 1.69 (IP address to the hardware address of the mobile) 333.24 363 P 1.28 (host\325) 333.24 354 P 1.28 (s interface. The bottom of the \336gure shows a) 350.75 354 P 0.14 (home agent forwarding a packet to a mobile host on) 333.24 345 P 0.31 (a foreign network with a foreign agent. In this case,) 333.24 336 P -0.08 (the mobile host\325) 333.24 327 P -0.08 (s care-of address is the IP address of) 391.09 327 P 0.06 (the foreign agent. The router hands the packet to the) 333.24 318 P 1.1 (foreign agent, which then delivers it to the mobile) 333.24 309 P 0.75 (host. In this case, the foreign agent contains a map) 333.24 300 P 0.25 (entry that translates from the mobile host\325) 333.24 291 P 0.25 (s home IP) 485.24 291 P (address to its hardware address.) 333.24 282 T 319.5 571.5 535.5 571.5 2 L 1 H N 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 324 72 540 720 C 0 0 612 792 C 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "3" 3 %%Page: "4" 4 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 0 0 0 1 1 1] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 8 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 72 49.5 540 58.5 R 7 X 0 0 0 1 0 0 0 K V 0 10 Q 0 X (4) 303.5 51.68 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 2.59 (T) 72 713.33 P 2.59 (ables on source hosts or intermediate routers for) 77.41 713.33 P 0.31 (address resolution. Entries in these tables are updated) 72 701.33 P 0.23 (\050created or invalidated\051 by control packets. This tech-) 72 689.33 P 2.94 (nique can be applied to other identi\336ers, such as) 72 677.33 P 0.54 (group identi\336ers for multicast communications, mak-) 72 665.33 P 0.65 (ing this a general mechanism. But this approach also) 72 653.33 P -0.22 (has the problem of requiring many changes to existing) 72 641.33 P (routers.) 72 629.33 T 2.38 (The current draft of the IETF Mobile IP W) 72 609.33 P 2.38 (orking) 261.89 609.33 P 1.38 (Group [10] is similar to the IMHP and the Harvard) 72 597.18 P 1.48 (system, but it dif) 72 585.18 P 1.48 (fers from them in that it treats the) 143.49 585.18 P 1.97 (support for optimal routing as an extension. In the) 72 573.18 P 1.42 (proposal, the home agent has primary responsibility) 72 561.18 P 3.09 (for processing and coordinating mobility services,) 72 549.18 P 0.82 (while the foreign agent only has a passive and mini-) 72 537.18 P 0.42 (mal role. Although a full foreign agent is expected to) 72 525.18 P -0.19 (do more, the protocol only requires it to relay registra-) 72 513.18 P 1.65 (tion requests \050change-of-location noti\336cations\051 from) 72 501.18 P 2.14 (the mobile host to its home agent and decapsulate) 72 489.18 P 0.72 (packets for delivery to the mobile host. The protocol) 72 477.18 P 0.15 (does not require any extra code on systems other than) 72 465.18 P (the mobile hosts, home agents and foreign agents.) 72 453.18 T 1.89 (W) 72 433.18 P 1.89 (e chose to base our implementation on the IETF) 80.64 433.18 P 0.77 (speci\336cation, because it entails the fewest unrealistic) 72 421.18 P 2.49 (expectations about the amount of support required) 72 409.18 P 0.11 (from other hosts and routers in the Internet. However) 72 397.18 P 0.11 (,) 285.5 397.18 P 1.38 (we have reduced these expectations even further by) 72 385.18 P 1.62 (leaving the foreign agent out of our basic protocol.) 72 373.18 P 0.55 (While the most recent draft of the IETF speci\336cation) 72 361.18 P 0.13 (suggests that the mobile host could use a dynamically) 72 349.18 P 0.33 (acquired IP address instead of the foreign agent as its) 72 337.18 P 0.86 (care-of address, it does not discuss the design impli-) 72 325.18 P 1.69 (cations of this approach, and it still encourages the) 72 313.18 P (use of full foreign agents.) 72 301.18 T 0.27 (Several of the above systems include security mecha-) 72 281.18 P 0.33 (nisms. W) 72 269.18 P 0.33 (e believe that strong security is as necessary) 109.31 269.18 P -0.16 (for mobile IP as it is for all networking software, but a) 72 257.18 P 0.47 (full discussion of mobile IP security issues is beyond) 72 245.18 P 0.38 (the scope of this paper) 72 233.18 P 0.38 (. W) 162.94 233.18 P 0.38 (e do not yet implement any) 176.96 233.18 P 2.53 (special security measures in our system. Although) 72 221.18 P 0.19 (many people worry that mobile computing poses spe-) 72 209.18 P 0.17 (cial security risks, the majority of the perceived prob-) 72 197.18 P 0.82 (lems are existing problems of the entire Internet that) 72 185.18 P 1.79 (are simply brought into much sharper focus by the) 72 173.18 P (advent of mobile hosts.) 72 161.18 T 1 12 Q (3. MosquitoNet Mobile IP Design) 72 129.85 T 0 10 Q 1.01 (In this section we describe the current design of our) 72 109.18 P 0.51 (mobile IP system. W) 72 97.18 P 0.51 (e start by describing the roles of) 156.62 97.18 P 0.54 (the mobile host, home agent and correspondent hosts) 72 85.18 P 1.17 (and how they implement our basic mobile IP proto-) 324 713.33 P 1.09 (col. W) 324 701.33 P 1.09 (e then list possible optimizations to this basic) 350.95 701.33 P 3.24 (protocol, including a simple one we have imple-) 324 689.33 P 0.21 (mented. Finally) 324 677.33 P 0.21 (, we describe the structure of our soft-) 386.34 677.33 P 1.74 (ware. The software must correctly handle the basic) 324 665.33 P 1.06 (protocol without precluding the use of the optimiza-) 324 653.33 P 0.68 (tions. W) 324 641.33 P 0.68 (e have implemented this design in the Linux) 357.77 641.33 P (operating system, version 1.2.13.) 324 629.33 T 1 12 Q (3.1 System Components) 324 601 T 0 10 Q -0.15 (Of the three basic entities in our mobile IP system, the) 324 580.33 P 2.25 (mobile host, home agent, and correspondent hosts,) 324 568.33 P 0.13 (only the mobile host and home agent require mobility) 324 556.33 P 2.53 (support. The mobile hosts require somewhat more) 324 544.33 P 1.45 (support in our system than in implementations with) 324 532.33 P 0.11 (foreign agents, since our mobile hosts must be able to) 324 520.33 P -0.05 (encapsulate and decapsulate packets on their own. W) 324 508.33 P -0.05 (e) 535.56 508.33 P 2.82 (consider this reasonable, because we have control) 324 496.33 P (over the software on mobile hosts.) 324 484.33 T 0.21 (The mobile host must be able to receive packets from) 324 464.33 P 2.37 (correspondent hosts wherever it moves. T) 324 452.33 P 2.37 (o remain) 502.36 452.33 P -0.07 (reachable, it must receive packets addressed to it at its) 324 440.33 P 2.33 (home network. When at home, it directly receives) 324 428.33 P 0.17 (these packets. When it leaves and connects to another) 324 416.33 P 1.75 (network, these packets must be forwarded to it. T) 324 404.33 P 1.75 (o) 535 404.33 P 1.55 (accomplish this, the mobile host needs to acquire a) 324 392.33 P 1.3 (temporary care-of IP address from the new network) 324 380.33 P 0.04 (\050perhaps dynamically via DHCP\051. Since our approach) 324 368.33 P 1.45 (does not assume the existence of a separate foreign) 324 356.33 P -0.2 (agent in the new network, the mobile host serves as its) 324 344.33 P -0.01 (own foreign agent and sends a registration message to) 324 332.33 P 0.24 (its home agent to notify it of the new care-of address.) 324 320.33 P 0.1 (At this point the home agent is prepared to tunnel any) 324 308.33 P -0.21 (packets it receives from a mobile host\325) 324 296.33 P -0.21 (s correspondent) 477.17 296.33 P 0.86 (hosts to the mobile host\325) 324 284.33 P 0.86 (s current care-of address, as) 425.23 284.33 P (previously illustrated in Figure 1.) 324 272.18 T 0.49 (The mobile host must also be able to send packets as) 324 252.18 P 0.16 (well as receive them. At home, it sends packets in the) 324 240.18 P 0.55 (normal fashion. While away from home, in our basic) 324 228.18 P 1.26 (protocol, outgoing packets from the mobile host are) 324 216.18 P 1.8 (also tunneled through the home agent to the corre-) 324 204.18 P 0.7 (spondent hosts. W) 324 192.18 P 0.7 (ith no foreign agent on the foreign) 398.61 192.18 P 0.54 (network, the mobile host must encapsulate these out-) 324 180.18 P 0.9 (going packets itself. W) 324 168.18 P 0.9 (e can sometimes optimize the) 418.1 168.18 P -0.15 (route for outgoing packets by sending them directly to) 324 156.18 P (the correspondent hosts, as described in Section 3.2.) 324 144.03 T 1.35 (The basic role of a home agent is two-fold. It must) 324 124.03 P 2.57 (decapsulate packets sent from the mobile host for) 324 112.03 P 0.46 (delivery to correspondent hosts, and it must encapsu-) 324 100.03 P 0.9 (late packets sent from correspondent hosts for deliv-) 324 88.03 P 6.2 (ery to the mobile host\325) 324 76.03 P 6.2 (s care-of address. T) 438.8 76.03 P 6.2 (o) 535 76.03 P 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "4" 4 %%Page: "5" 5 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 0 0 0 1 1 1] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 8 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 72 49.5 540 58.5 R 7 X 0 0 0 1 0 0 0 K V 0 10 Q 0 X (5) 303.5 51.68 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.23 (encapsulate packets sent to the mobile host, the home) 72 713.33 P 0.15 (agent must be able to intercept them when they arrive) 72 701.33 P 0.98 (in the home network. T) 72 689.33 P 0.98 (o intercept these packets, the) 168.82 689.33 P 1.07 (home agent must function as the ARP proxy for the) 72 677.33 P 2.16 (mobile host upon receiving its registration request.) 72 665.33 P 1.82 (This is done by adding an ARP entry in the home) 72 653.33 P 1.21 (agent\325) 72 641.33 P 1.21 (s own ARP cache. The home agent must then) 96.44 641.33 P 1.31 (broadcast a gratuitous ARP on behalf of the mobile) 72 629.33 P 0.88 (host to void any stale ARP cache entries on hosts in) 72 617.33 P 0.05 (the same subnet as the mobile host\325) 72 605.33 P 0.05 (s home. The home) 213.97 605.33 P 0.95 (agent also adds an entry to its route table specifying) 72 593.33 P 0.27 (that all packets for the mobile host\325) 72 581.33 P 0.27 (s home IP address) 214.71 581.33 P 0.11 (must be encapsulated. It adds a) 72 569.33 P 2 F 0.11 (mobility binding) 199.6 569.33 P 0 F 0.11 ( to an) 265.55 569.33 P 3.36 (internal table to record the mobile host\325) 72 557.33 P 3.36 (s care-of) 249.94 557.33 P 0.69 (address and other information such as the lifetime of) 72 545.33 P (the registration and any authentication information.) 72 533.33 T 1.89 (When the mobile host returns home, it de-registers) 72 513.33 P 0.65 (with the home agent, which then removes the mobil-) 72 501.33 P -0.25 (ity binding and the special route table entry) 72 489.33 P -0.25 (. The home) 243.22 489.33 P 0.68 (agent should also stop functioning as the ARP proxy) 72 477.33 P (for the mobile host.) 72 465.33 T 1 12 Q (3.2 Routing Optimizations) 72 437 T 0 10 Q 0.64 (Our basic mobile IP protocol uses a simple model of) 72 416.33 P 1.28 (mobile networking in which outgoing and incoming) 72 404.33 P 1.42 (packets are delivered indirectly via the home agent,) 72 392.33 P 2.21 (using an encapsulating tunnel, to make the mobile) 72 380.33 P 1.63 (host appear as if it were still on its home network.) 72 368.33 P 0.09 (While this basic protocol is simple and always works,) 72 356.33 P 0.21 (the extra path through the home agent adds latency to) 72 344.33 P -0.16 (packet delivery) 72 332.33 P -0.16 (. This section lists some desirable rout-) 132.56 332.33 P 4.15 (ing optimizations for outgoing packets from the) 72 320.33 P 0.11 (mobile host, showing how they can be performed in a) 72 308.33 P 1.45 (system without foreign agents. \050W) 72 296.33 P 1.45 (e do not consider) 215.05 296.33 P 0.21 (routing optimizations for the reverse path) 72 284.33 P 3 F 0.21 (-) 241.55 284.33 P 0 F 0.21 ( from cor-) 247.04 284.33 P 0.09 (respondents to the mobile host) 72 272.33 P 3 F 0.09 (-) 197.18 272.33 P 0 F 0.09 ( as they are necessar-) 202.67 272.33 P 1.4 (ily more dif) 72 260.33 P 1.4 (\336cult and we have not yet implemented) 121.84 260.33 P 1.5 (any of them. These optimizations require the corre-) 72 248.33 P 0.88 (spondent host to be able to locate the mobile host at) 72 236.33 P (its care-of address.\051) 72 224.33 T -0.11 (Optimizations for packets originating from the mobile) 72 204.33 P 0.64 (host can be evaluated based on at least three criteria:) 72 192.33 P 3.72 (First, does the optimization improve the route a) 72 180.33 P 2.53 (packet takes, or does it eliminate the overhead of) 72 168.33 P 0.54 (encapsulation? \050Encapsulation adds 20 bytes or more) 72 156.33 P 1.74 (to the packet length and requires extra processing.\051) 72 144.33 P 2.07 (Second, does the optimization require some under-) 72 132.33 P 3.5 (standing of mobility on the correspondent hosts?) 72 120.33 P 0.35 (Some correspondent hosts may be mobile themselves) 72 108.33 P 2.81 (or may run mobile-aware software. W) 72 96.33 P 2.81 (e call these) 237.96 96.33 P 2 F 3.06 (smart) 72 84.33 P 3.06 (corr) 100.34 84.33 P 3.06 (espondent hosts) 117.19 84.33 P 0 F 3.06 (, and we\325d like to take) 183.85 84.33 P 0.44 (advantage of them when possible. A third criterion is) 324 713.33 P 0.39 (whether routers or \336rewalls are likely to object to the) 324 701.33 P (way a packet is addressed or sent.) 324 689.33 T -0.16 (T) 324 669.33 P -0.16 (o improve both the path packets take as well as elim-) 329.41 669.33 P 0.55 (inate encapsulation overhead, a mobile host can send) 324 657.33 P 0.54 (packets directly to its correspondent host. This forms) 324 645.33 P 1.79 (a) 324 633.18 P 2 F 1.79 (triangle r) 332.73 633.18 P 1.79 (oute) 372.2 633.18 P 0 F 1.79 (, as illustrated in Figure 3. For this) 389.42 633.18 P 1 (simple optimization, we set the source IP address of) 324 621.18 P 0.45 (the packets from the mobile host to the mobile host\325) 324 609.18 P 0.45 (s) 536.11 609.18 P 4.4 (home IP address rather than its current care-of) 324 597.18 P 2.07 (address. In this way) 324 585.18 P 2.07 (, the mobile host can move as) 408.99 585.18 P 1.93 (many times as it desires without the correspondent) 324 573.18 P -0.08 (host noticing. As far as the correspondent host knows,) 324 561.18 P 0.96 (the mobile host is always at its home address. If the) 324 549.18 P 2.57 (source address were allowed to re\337ect the current) 324 537.18 P 0.71 (care-of address, then packets with a changed address) 324 525.18 P 0.89 (would not be recognized as coming from the mobile) 324 513.18 P -0.11 (host without modi\336cations to the correspondent host\325) 324 501.18 P -0.11 (s) 536.11 501.18 P (software.) 324 489.18 T 0.39 (The problem with this optimization is that it does not) 324 258.33 P -0.01 (work with some security-conscious routers that forbid) 324 246.33 P 1.8 (transit traf) 324 234.33 P 1.8 (\336c. T) 367 234.33 P 1.8 (ransit traf) 389.57 234.33 P 1.8 (\336c is traf) 429.79 234.33 P 1.8 (\336c with a source) 468.77 234.33 P 0.4 (address not local to the network, as is the case with a) 324 222.33 P 1.93 (packet using the mobile host\325) 324 210.33 P 1.93 (s home IP address as) 448.95 210.33 P 0.12 (source address. If the foreign network has been set up) 324 198.33 P 0.32 (to forbid transit traf) 324 186.33 P 0.32 (\336c, then the routers will drop out-) 403.38 186.33 P 1.31 (going packets from a mobile host using the triangle) 324 174.33 P 0.38 (route optimization. This problem does not occur with) 324 162.33 P 0.72 (the unoptimized route, which is why we have imple-) 324 150.33 P -0.09 (mented both options. If we \336nd that we cannot use the) 324 138.33 P 0.38 (optimization, through failed attempts to \322ping\323 a cor-) 324 126.33 P -0.07 (respondent host, then we can revert to using the unop-) 324 114.33 P 3.2 (timized route. W) 324 102.33 P 3.2 (e can cache this information for) 397.09 102.33 P 1.61 (further use in the Mobile Policy T) 324 90.33 P 1.61 (able described in) 469.03 90.33 P (Section 3.3.) 324 78.18 T 324 72 540 720 C 324 275 540 485.85 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 391.5 377.85 508.5 418.35 18 RR 7 X 0 0 0 1 0 0 0 K V 0.5 H 2 Z 0 X N 324 283.35 540 364.35 R 7 X V 1 9 Q 0 X 0.29 (Figur) 337.74 358.35 P 0.29 (e 3. T) 359.08 358.35 P 0.29 (riangle r) 380.25 358.35 P 0.29 (oute optimization:) 413.63 358.35 P 0 F 0.29 (This \336gure) 486.71 358.35 P 0.75 (shows a simple route optimization called a triangle) 337.74 349.35 P 1.57 (route. The optimization allows the mobile host to) 337.74 340.35 P 2.47 (send a packet to the correspondent host without) 337.74 331.35 P 1.66 (tunneling it through the home agent. This path is) 337.74 322.35 P 0.23 (shown with a dotted line. The path for packets from) 337.74 313.35 P 1.32 (the correspondent host to the mobile host remains) 337.74 304.35 P (unoptimized and passes through the home agent.) 337.74 295.35 T 333 436.35 450 476.85 18 RR 7 X V 0 X N 391.5 445.14 427.5 458.85 R 7 X V 0 X N 0 10 Q (HA) 400.5 448.7 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (Home network) 351 464.36 T 468 455.36 504 473.36 R 7 X V 0 X N (CH) 477 460.76 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 436.5 395.85 472.5 413.85 R 7 X V 0 X N (MH) 445.5 401.25 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (Foreign network) 419.62 384.53 T 439.5 443.2 427.5 442.99 437.57 449.52 438.53 446.36 4 Y V 468 455.36 438.53 446.36 2 L N 449.08 424.56 454.5 413.85 444.23 420.06 446.66 422.31 4 Y V 427.5 442.99 446.66 422.31 2 L N J 461.28 445.41 468 455.36 467.57 443.36 464.43 444.39 4 Y V J 454.5 413.85 464.43 444.39 2 L J 454.5 413.85 455.66 417.41 2 L N [9.005 7.804] 9.005 I 455.66 417.41 463.27 440.82 2 L N J 463.27 440.82 464.43 444.39 2 L N 0 0 0 1 0 0 0 K J 0 0 0 1 0 0 0 K 324 72 540 720 C 0 0 612 792 C 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "5" 5 %%Page: "6" 6 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 0 0 0 1 1 1] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 8 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 72 49.5 540 58.5 R 7 X 0 0 0 1 0 0 0 K V 0 10 Q 0 X (6) 303.5 51.68 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1.1 (A variant of the triangle route optimization, suitable) 72 713.33 P 2.34 (for use on networks that forbid transit traf) 72 701.33 P 2.34 (\336c, still) 255.65 701.33 P -0.15 (sends the packet directly to the correspondent host but) 72 689.33 P 0.74 (encapsulates the packet using the mobile host\325) 72 677.33 P 0.74 (s local) 261.43 677.33 P 4.12 (source IP address. Now the packet will not be) 72 665.33 P 1.46 (dropped by the \336lters in the local router) 72 653.33 P 1.46 (, because it) 240.38 653.33 P 2.05 (has a valid local source address. This optimization) 72 641.33 P 0.26 (eliminates the sub-optimal routing for outgoing pack-) 72 629.33 P 0.37 (ets but not the encapsulation overhead. It is appropri-) 72 617.33 P 1.1 (ate when the mobile host knows that the destination) 72 605.33 P 0.48 (host has transparent IP-in-IP decapsulation capability) 72 593.33 P (such as is found in recent Linux development kernels.) 72 581.33 T 0.43 (Finally) 72 561.33 P 0.43 (, there are times when a mobile host wishes to) 99.69 561.33 P 0.3 (talk directly with other hosts, without any attempts to) 72 549.33 P 2.38 (hide its current physical location. This is the case) 72 537.33 P 0.12 (when answering foreign-network management probes) 72 525.33 P 2.52 (\050such as ICMP ping and SNMP\051. This could also) 72 513.33 P 1.22 (occur if the mobile host contacts correspondents for) 72 501.33 P -0.01 (short periods knowing it will not accumulate any con-) 72 489.33 P 0.13 (nection state with them. For example, the mobile host) 72 477.33 P 1.11 (may request a web page directly from a web server) 72 465.33 P 1.11 (.) 285.5 465.33 P 0.21 (The web server simply responds and does not need to) 72 453.33 P -0.2 (track the mobile host further) 72 441.33 P -0.2 (. If the mobile host moves) 184.54 441.33 P 1.21 (before receiving the response, the user can retry the) 72 429.33 P 0.06 (operation. For this optimization the mobile host sends) 72 417.33 P 2.35 (packets directly to the correspondent host, without) 72 405.33 P 4.52 (encapsulation and without setting the source IP) 72 393.33 P 0.76 (address to its home IP address. This is the most ef) 72 381.33 P 0.76 (\336-) 279.11 381.33 P 0.26 (cient mechanism, but it provides no mobility support.) 72 369.33 P 0.19 (Unless the correspondent host has extra mobility sup-) 72 357.33 P -0.01 (port itself, it will not be able to continue communicat-) 72 345.33 P (ing with the mobile host if it moves again.) 72 333.33 T 0.94 (Given these optimizations, a mobile host must make) 72 313.33 P 0.15 (three decisions about how to send a packet: 1\051 wheth-) 72 301.33 P 1.38 (er to send a packet directly or tunnel it through the) 72 289.33 P 0.14 (home agent, 2\051 if sending the packet directly) 72 277.33 P 0.14 (, whether) 250.65 277.33 P 1.19 (to encapsulate it, and 3\051 whether to use its home IP) 72 265.33 P 0.95 (address or local address as the source address of the) 72 253.33 P 1.42 (packet. While we only implement the triangle route) 72 241.33 P 1.26 (optimization, it is important that our software struc-) 72 229.33 P 5.31 (ture not preclude these other optimizations, as) 72 217.33 P (described in the following section.) 72 205.33 T 1 12 Q (3.3 Softwar) 72 177 T (e on the Mobile Host) 133.44 177 T 0 10 Q 0.48 (Practicality dictates that we write our mobile IP code) 72 156.33 P 0.04 (in such a way as to minimize the impact on the rest of) 72 144.33 P 3.12 (the existing Linux kernel code. In fact, our only) 72 132.33 P 2.15 (changes to the kernel network software are to add) 72 120.33 P 0.39 (mobility support to IP by 1\051 altering the route lookup) 72 108.33 P 0.27 (function) 72 96.33 P 4 F 0.65 (ip_rt_route\050\051) 108.1 96.33 P 0 F 0.27 (, 2\051 adding a Mobile Pol-) 186.1 96.33 P 0.36 (icy T) 72 84.33 P 0.36 (able, and 3\051 adding a virtual link-level interface,) 92.49 84.33 P 0.18 (called VIF) 324 713.33 P 0.18 (, to encapsulate packets. In this way we are) 365.86 713.33 P 0.93 (able to implement both our basic protocol, allow for) 324 701.33 P 1.2 (the previously described optimizations, and function) 324 689.33 P (without foreign agents.) 324 677.33 T 1.48 (Figure 4 illustrates the or) 324 657.18 P 1.48 (ganization of our software) 430.3 657.18 P 0.36 (when sending out a packet from the mobile host. The) 324 645.18 P 0.37 (transport level protocols deliver a packet to IP) 324 633.18 P 0.37 (, which) 510.19 633.18 P 0.66 (we have extended for mobility support; our modi\336ed) 324 621.18 P 4 F -0.52 (ip_rt_route\050\051) 324 609.18 P 0 F -0.22 (uses its Mobile Policy table com-) 407.48 609.18 P -0.15 (bined with the usual routing table lookup to determine) 324 597.18 P -0.07 (how the packet should be treated. The source and des-) 324 585.18 P 2.73 (tination addresses of the packet are parameters to) 324 573.18 P 2.7 (these table and function lookups. As a result, the) 324 561.18 P (packet may be treated as one of two basic types:) 324 549.18 T (\245) 324 531.18 T -0.41 (Outside the scope of mobile IP - Some applications) 337.74 531.18 P 0.01 (and services set the source address of a packet to a) 337.74 519.18 P -0.07 (speci\336c outgoing network interface, and we do not) 337.74 507.18 P 2.79 (interfere with their intentions. For instance, an) 337.74 495.18 P 1.13 (application may use the local-loopback interface,) 337.74 483.18 P -0.33 (and there is no reason to send such packets through) 337.74 471.18 P 1.01 (the home agent. Other mobile-aware applications) 337.74 459.18 P 0.05 (will have their own reasons for specifying particu-) 337.74 447.18 P 0.26 (lar network interfaces. If the source address of the) 337.74 435.18 P 1.86 (packet is already set, IP sends it directly to the) 337.74 423.18 P 1.91 (appropriate interface, as would be done without) 337.74 411.18 P (mobile IP) 337.74 399.18 T (.) 375.8 399.18 T (\245) 324 382.18 T 0.47 (Requiring mobile IP - If the source address of the) 337.74 382.18 P -0.44 (packet is unspeci\336ed, then we must assume that the) 337.74 370.18 P 1.08 (application that generated it is not mobile-aware.) 337.74 358.18 P -0.42 (In this case we set its source address to the home IP) 337.74 346.18 P 3.27 (address. If the application has already set the) 337.74 334.18 P 1.92 (source address to the home IP address, this too) 337.74 322.18 P (means the packet is subject to mobile IP) 337.74 310.18 T (.) 497.45 310.18 T -0.04 (If we decide the packet should use mobile IP) 324 290.18 P -0.04 (, our next) 502.02 290.18 P 0.46 (decision is whether we should use any optimizations.) 324 278.18 P 2.01 (The decision is based upon the destination address) 324 266.18 P 0.53 (and information stored in the Mobile Policy T) 324 254.18 P 0.53 (able. If) 511.15 254.18 P 0.27 (we determine a correspondent host has extra mobility) 324 242.18 P 0.09 (support or that a route optimization is appropriate, we) 324 230.18 P 2.39 (cache that information in the table. In our current) 324 218.18 P 0.17 (implementation, though, the only choices are whether) 324 206.18 P 3.29 (to use the triangle route or to tunnel the packet) 324 194.18 P 1.01 (through the home agent. Also, we do not yet update) 324 182.18 P 2.03 (the table dynamically) 324 170.18 P 2.03 (. Using the triangle route, we) 413.5 170.18 P 0.47 (send the packet directly out the appropriate interface.) 324 158.18 P 0.24 (If the packet requires encapsulation, we send it to our) 324 146.18 P (new virtual interface, VIF) 324 134.18 T (, for encapsulation.) 427.06 134.18 T -0.13 (Upon receiving a packet, VIF adds the extra IP header) 324 114.18 P 4.89 (and sets the appropriate source and destination) 324 102.18 P 2.05 (address in the outer \050encapsulating\051 header) 324 90.18 P 2.05 (. It then) 505.06 90.18 P 0.33 (hands the packet back to IP for delivery to the appro-) 324 78.18 P 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "6" 6 %%Page: "7" 7 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 0 0 0 1 1 1] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 8 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 72 49.5 540 58.5 R 7 X 0 0 0 1 0 0 0 K V 0 10 Q 0 X (7) 303.5 51.68 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.58 (priate physical interface. IP again looks at the packet) 72 326.33 P 3.7 (addresses and makes its decisions, as above. T) 72 314.33 P 3.7 (o) 283 314.33 P 0.1 (ensure the packet doesn\325) 72 302.33 P 0.1 (t get encapsulated again, VIF) 170.69 302.33 P 0.96 (must set the source address in the outer \050encapsulat-) 72 290.33 P 2.11 (ing\051 header to a speci\336c physical interface. In this) 72 278.33 P 1.97 (sense, we can consider IP-within-IP \050IPIP\051 to have) 72 266.33 P 0.73 (delivered a new packet to IP) 72 254.33 P 0.73 (, which treats the packet) 188.14 254.33 P (based on the same set of rules as before.) 72 242.33 T 1.91 (T) 72 222.33 P 1.91 (o keep the implementation simple, we have sepa-) 77.41 222.33 P 2.34 (rated out routing decisions and mobility decisions.) 72 210.33 P 0.82 (This allows us to leave the routing tables unchanged) 72 198.33 P 0.44 (and merely add our Mobile Policy T) 72 186.33 P 0.44 (able for IP\325) 219.47 186.33 P 0.44 (s use.) 265.34 186.33 P 1.42 (In this way) 72 174.33 P 1.42 (, we are able to make these policy deci-) 118.63 174.33 P 0.21 (sions by altering only a single kernel routine: the ker-) 72 162.33 P 2.21 (nel\325) 72 150.33 P 2.21 (s IP route lookup function,) 87 150.33 P 4 F 5.31 (ip_rt_route\050\051) 207.5 150.33 P 0 F 2.21 (.) 285.5 150.33 P 4.57 (This function returns, for any given destination) 72 138.33 P 2.21 (address, both the recommended interface to use to) 72 126.33 P 1.84 (reach that destination and the recommended source) 72 114.33 P 0.08 (address to use. By overriding this routine, we are able) 72 102.33 P 2.49 (to give appropriate responses to IP) 72 90.33 P 2.49 (, TCP) 221.92 90.33 P 2.49 (, and any) 246.64 90.33 P 5.19 (other current or future software that may call) 72 78.33 P 72 72 288 720 C 72 333 288 720 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K [4.049 10.123] 2.025 I 4 H 2 Z 1 X 0 0 0 1 0 0 0 K 270 360 36 85.5 243 622 A [3.8 9.501] 1.9 I 90 180 27 40.5 216 631 A J 186 570 186 502 2 L J 186 570 186 568 2 L N [3.879 9.697] 3.879 I 186 568 186 504 2 L N J 186 504 186 502 2 L N [4.368 10.921] 2.184 I 0 90 27 49.5 252 622 A J 91.04 703.87 216 550 2 L J 91.04 703.87 92.3 702.31 2 L N [4.046 10.115] 4.046 I 92.3 702.31 214.74 551.55 2 L N J 214.74 551.55 216 550 2 L N J 81 658 126 685 R 7 X V 0.5 H 0 X N 1 10 Q (TCP) 93 667.96 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 144 658 189 685 R 7 X V 0 X N (UDP) 153 667 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 207 658 252 685 R 5 X V 0 X N (IPIP) 216 667 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 90 570 257 631 R 7 X V 0 X N 153 631 153 570 2 L N 0 18 Q (IP) 108 593.81 T 0 10 Q (New Route Lookup) 159.1 618.99 T (Mobile) 161.79 599.81 T (Policy) 161.79 587.81 T (T) 161.79 575.81 T (able) 167.2 575.81 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (Route) 215.79 598.99 T (T) 215.79 586.99 T (able) 221.2 586.99 T 158.1 572 200.1 611.99 R N 212.43 580.99 249.27 608.99 R N 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 81 523 108 550 R 7 X V 0 X N 1 F (lo) 91.8 532 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 171 523 198 550 R 7 X V 0 X N (eth) 176.4 532 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 126 523 153 550 R 7 X V 0 X N (strip) 130.5 532 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 216 523 243 550 R 5 X V 0 X N (vif) 223.56 532 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 94.62 699.61 90.34 711.38 2 L 3 H N 94.25 699.48 80.97 704.86 2 L N 89.89 704.55 85.6 716.32 2 L N 89.51 704.42 76.24 709.8 2 L N 192.66 501.19 180 501.19 186.33 486 3 Y 1 X V 1 H 0 X N 72 338.5 288 479 R 7 X V 1 9 Q 0 X 0.24 (Figur) 85.75 473 P 0.24 (e 4. Outgoing packet on a mobile host:) 107.08 473 P 0 F 0.24 (This) 258.25 473 P 0.54 (\336gure shows the link, network, and transport layers) 85.75 464 P 0.53 (of our protocols. The bottom \050link\051 layer shows the) 85.75 455 P 1.01 (device interfaces, with vif being a virtual interface) 85.75 446 P 8.63 (that accepts packets requiring IP-within-IP) 85.75 437 P 0.13 (encapsulation. This layer also includes the loopback) 85.75 428 P 1.48 (interface \050lo\051, the ethernet interface \050eth\051, and our) 85.75 419 P 1.63 (wireless radio interface \050strip\051. The network layer) 85.75 410 P 2.06 (uses the IP protocol. Besides TCP and UDP) 85.75 401 P 2.06 (, we) 257.19 401 P 3.46 (have added the IP-within-IP processing module) 85.75 392 P 3 (\050IPIP\051 to the transport layer) 85.75 383 P 3 (. The shaded boxes) 196.25 383 P 4.26 (indicate that vif and IP-within-IP are actually) 85.75 374 P -0.1 (implemented as one module for ef) 85.75 365 P -0.1 (\336ciency) 208.3 365 P -0.1 (. The wide) 236.21 365 P 0.31 (dashed line shows the path an outgoing TCP packet) 85.75 356 P (might take in the basic mobile IP protocol.) 85.75 347 T 72 72 288 720 C 0 0 612 792 C 4 10 Q 0 X 0 0 0 1 0 0 0 K 1.32 (ip_rt_route\050\051) 324 713.33 P 0 F 0.55 (. If a policy decision indicates the) 402 713.33 P 0.52 (packet should have the home IP address as its source) 324 701.33 P 0.38 (address, we merely return this address from the func-) 324 689.33 P 0.3 (tion call. If a policy decision indicates that we should) 324 677.33 P 1.8 (encapsulate the packet, we return the encapsulating) 324 665.33 P 5.04 (interface as the recommended interface to use.) 324 653.33 P 1.1 (Linux\325) 324 641.33 P 1.1 (s existing) 350.67 641.33 P 4 F 2.64 (ip_rt_route\050\051) 393.43 641.33 P 0 F 1.1 ( routine uses the) 471.43 641.33 P 1.85 (kernel\325) 324 629.33 P 1.85 (s routing tables to determine its answer; our) 351.77 629.33 P 3.15 (enhanced routine additionally consults the Mobile) 324 617.33 P 0.47 (Policy table and uses information from both tables to) 324 605.33 P (determine its response.) 324 593.33 T -0.22 (So far we have described the mechanism for sending a) 324 573.33 P -0.18 (packet, but the mobile host must also process received) 324 561.33 P -0.17 (packets. This is simpler than sending packets; because) 324 549.33 P 1.1 (there are no policy or routing decisions to make, all) 324 537.33 P 2.58 (necessary information for processing the packet is) 324 525.33 P -0.13 (contained in its headers. The packet arrives at a physi-) 324 513.33 P 0.4 (cal interface and is delivered to IP) 324 501.33 P 0.4 (. If the packet is an) 461.91 501.33 P 1.1 (IP-within-IP packet, it will be decapsulated and will) 324 489.33 P (take the reverse of the dotted path shown in Figure 4.) 324 477.18 T 1 12 Q (3.4 Softwar) 324 448.85 T (e on the Home Agent) 385.44 448.85 T 0 10 Q 0.39 (The home agent shares with the mobile host the need) 324 428.18 P 3.96 (for a virtual interface for encapsulation. This is) 324 416.18 P 2.86 (because the home agent must encapsulate packets) 324 404.18 P 1.38 (destined for the mobile host and tunnel them to the) 324 392.18 P -0.25 (mobile host\325) 324 380.18 P -0.25 (s current care-of address. For each mobile) 373.48 380.18 P 1.38 (host away from home that has registered its current) 324 368.18 P 1.35 (location with the home agent, there is an entry in a) 324 356.18 P 1.93 (mobility binding list on the home agent that keeps) 324 344.18 P 0.05 (track of information about the mobile host, such as its) 324 332.18 P 0.06 (care-of address and the lifetime of its current registra-) 324 320.18 P 0.02 (tion. The home agent also adds an entry in the routing) 324 308.18 P 1.73 (table to indicate that all subsequent packets for the) 324 296.18 P 0.06 (mobile host\325) 324 284.18 P 0.06 (s home IP address should be sent through) 373.79 284.18 P 1.15 (the VIF) 324 272.18 P 1.15 (. When the packets are sent to the VIF) 355.18 272.18 P 1.15 (, they) 516.63 272.18 P 1.78 (get encapsulated within another IP packet and then) 324 260.18 P (tunneled to the mobile host\325) 324 248.18 T (s current care-of address.) 435.67 248.18 T 2.77 (Another function of the home agent is to receive) 324 228.18 P 1.62 (encapsulated packets from the mobile host and for-) 324 216.18 P 3.88 (ward them to the correspondent host. This only) 324 204.18 P -0.06 (involves decapsulation and IP forwarding. The decap-) 324 192.18 P 1.87 (sulation software is the same as that in the mobile) 324 180.18 P 2.4 (host, and we simply turn on IP forwarding in the) 324 168.18 P 1.22 (Linux kernel. In fact, more recent development ver-) 324 156.18 P 2.03 (sions of the Linux kernel \0501.3 and later\051 include a) 324 144.18 P 0.9 (decapsulation module. In these versions, we will not) 324 132.18 P (need to include our own.) 324 120.18 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "7" 7 %%Page: "8" 8 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 0 0 0 1 1 1] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 8 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 72 49.5 540 58.5 R 7 X 0 0 0 1 0 0 0 K V 0 10 Q 0 X (8) 303.5 51.68 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 12 Q (4. Performance) 72 712 T 0 10 Q 0.9 (This section describes our test-bed and contains per-) 72 691.33 P 3.07 (formance data on the cost of a hand-of) 72 679.33 P 3.07 (f when a) 247.43 679.33 P -0.03 (mobile host switches between dif) 72 667.33 P -0.03 (ferent networks. Our) 205.03 667.33 P 0.03 (test-bed contains both wired and wireless networks so) 72 655.33 P 0.71 (that we can test switching between dif) 72 643.33 P 0.71 (ferent types of) 228.82 643.33 P -0.25 (device interfaces. The goal is that our wireless devices) 72 631.33 P 1.47 (will provide a constantly available network connec-) 72 619.33 P 2.25 (tion, while the wired devices will provide a faster) 72 607.33 P (connection where available.) 72 595.33 T 1.47 (Our mobile hosts are Gateway 2000 Handbook486s) 72 575.33 P 1 (running Linux [8]. The Handbooks are 40 Mhz sub-) 72 563.18 P 0.96 (notebooks that weigh less than three pounds and are) 72 551.18 P 1.74 (thus very comfortable to carry around. Each Hand-) 72 539.18 P -0.23 (book has a PCMCIA card slot that we use for Ethernet) 72 527.18 P 4.01 (connectivity with a Linksys Ethernet card. Each) 72 515.18 P 2.1 (Handbook also has a 1) 72 503.18 P 2.1 (15.2 Kbit/second serial port) 170.59 503.18 P (that we use to connect to our wireless devices.) 72 491.18 T 2.77 (Our wireless devices are Metricom radio modems) 72 471.18 P 0.03 ([14]. While these devices are commonly used to emu-) 72 459.03 P 1.61 (late a Hayes modem for point-to-point connections,) 72 447.03 P 2.6 (Metricom also provides a connectionless datagram) 72 435.03 P 0.2 (mode, called \322Starmode,\323 that enables a radio to send) 72 423.03 P 1.75 (packets to any number of other radios individually) 72 411.03 P 1.75 (.) 285.5 411.03 P 1.06 (W) 72 399.03 P 1.06 (e have written a Linux driver \050STRIP\051 that allows) 80.64 399.03 P -0.17 (us to run IP over the radios\325 Starmode. In theory) 72 387.03 P -0.17 (, Met-) 263.73 387.03 P 1.14 (ricom radios can send 100 Kbits/second through the) 72 375.03 P 0.71 (air) 72 363.03 P 0.71 (, but in practice 30-40 Kbits/second is the best we) 82.15 363.03 P (achieve [3].) 72 350.87 T 1.1 (W) 72 330.87 P 1.1 (e use a Pentium 90 as the router to the home net-) 80.64 330.87 P -0.11 (work of our mobile hosts. It is also usually used as the) 72 318.87 P -0.1 (home agent for the mobile hosts. However) 72 306.87 P -0.1 (, our imple-) 241.26 306.87 P 0.58 (mentation does not require the home agent to be col-) 72 294.87 P 1.88 (located with the router; rather) 72 282.87 P 1.88 (, we only require the) 197.99 282.87 P 1.23 (home agent to be one of the hosts on the same net-) 72 270.87 P (work.) 72 258.87 T 0.11 (Figure 5 shows the setup of our test environment. Net) 72 238.72 P 1.21 (36.135 is a wired \050Ethernet\051 subnet for our research) 72 226.72 P 1.69 (group, serving as the home network for the mobile) 72 214.72 P 0.06 (hosts. Net 36.8 is a wired \050Ethernet\051 subnet belonging) 72 202.72 P 1.28 (to the Computer Science Department and connected) 72 190.72 P 0.05 (to the Internet. Net 36.134 is a wireless subnet for our) 72 178.72 P 0.63 (Metricom radio devices. The results we report below) 72 166.72 P 0.89 (are for a correspondent host located on net 36.8, but) 72 154.72 P 1.38 (we received similar results for a correspondent host) 72 142.72 P (located on a campus network outside the department.) 72 130.72 T 2.41 (W) 72 110.72 P 2.41 (e performed two types of experiments. The \336rst) 80.64 110.72 P 0.03 (measures the disruption to the system when switching) 72 98.72 P -0.01 (the care-of IP address of the mobile host to another IP) 72 86.72 P 1.38 (address on the same wired subnet. W) 324 355.98 P 1.38 (e measure this) 480.04 355.98 P 2 (disruption in terms of lost packets due to software) 324 343.98 P 0.1 (overhead and address registration. Switching between) 324 331.98 P 2 (addresses on the same subnet is not something we) 324 319.98 P 0.69 (usually do in practice, but it is a measurement of the) 324 307.98 P 1.7 (minimal essential software overhead of our system.) 324 295.98 P 2.81 (For these tests, a correspondent host continuously) 324 283.98 P -0.06 (sends a UDP packet to the mobile host every 10 milli-) 324 271.98 P 0.48 (seconds, and the mobile host echoes the packet back.) 324 259.98 P -0.01 (W) 324 247.98 P -0.01 (e then measure the number of packets that were lost) 332.64 247.98 P 0.47 (during the interval in which the mobile host switches) 324 235.98 P 1.1 (addresses. This interval occurs between the time the) 324 223.98 P 1.32 (mobile host can no longer accept packets at the old) 324 211.98 P 0.27 (care-of address and the time it registers the new care-) 324 199.98 P 0.61 (of address with its home agent. Packets in \337ight dur-) 324 187.98 P -0.21 (ing this time will be lost by arriving at the old address.) 324 175.98 P 0.29 (No matter how small this interval is, it is always pos-) 324 163.98 P 1.69 (sible for some packet in \337ight to arrive during this) 324 151.98 P 0.41 (time; however) 324 139.98 P 0.41 (, the lar) 381.5 139.98 P 0.41 (ger the interval, the more pack-) 412.42 139.98 P (ets we lose.) 324 127.98 T 1.34 (Out of the twenty iterations of this experiment, six-) 324 107.98 P 1.16 (teen tests showed no packet loss, and the other four) 324 95.98 P 2.73 (tests lost one packet each. This indicates that the) 324 83.98 P 324 72 540 720 C 324 362.64 540 720 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 436.64 615.86 474.62 639 R 6 X 0 0 0 1 0 0 0 K V 1 H 0 Z 0 X N 0 10 Q (MH) 445.88 623.17 T 0 0 0 1 0 0 0 K J 0 0 0 1 0 0 0 K J 448.05 645.5 445.72 633.43 441.3 644.9 444.67 645.2 4 Y V [6.724 6.724] 3.362 I 2 Z 12.29 90 45.58 55.29 400.13 633.43 A J 362.71 660 445.71 671 R 7 X V 0 X (W) 365.55 662.19 T (ired Subnet 36.8) 374.59 662.19 T 362.15 677.15 400.13 700.29 R 0 Z N 427.38 487.61 465.36 510.75 R 6 X V 0 X N (MH) 436.61 494.92 T J 369.38 618.59 411.53 636.59 R N 447.4 707.39 M 444.52 712.59 435.25 714.59 432.36 707.39 D 430.42 702.53 442.05 700.2 437.8 699.07 D 434.69 698.24 434.01 692.11 437.5 689.66 D 442.32 686.27 450.66 693.83 452.5 691.72 D 457.78 685.65 465.1 684.89 470.5 691.72 D 470.96 692.3 473.07 688.41 475.3 687.78 D 480.71 686.24 490.05 689.37 489.84 696.73 D 489.66 702.59 475.66 699.82 482.5 700.41 D 489.3 701.01 490.47 709.44 487.06 714.28 D 483.82 718.88 477.72 715.21 475.79 711.77 D 472.91 706.67 474.11 712.91 473.53 713.97 D 471.1 718.48 464.99 718.79 461.2 715.38 D 460.45 714.71 458.35 708.98 456.8 714.28 D 455.97 717.14 450.88 719.02 447.59 715.53 D 445.77 713.6 442.73 709.61 446.2 707.39 D 2 Z N (HA) 383.35 623.92 T J (Home Network 36.135) 0 -270 334.53 553.44 TF 533.57 655.57 365.35 654.59 2 L 4 H N 342.86 710.57 342.86 543.43 2 L N 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 383.45 636.59 383.45 654.59 2 L 1 H N 369.38 627.59 344.29 627.59 2 L N 462.64 656.02 462.64 686.92 2 L N 7 X 90 450 62.27 15.86 413.58 547.72 G 0 X 90 450 62.27 15.86 413.58 547.72 A (W) 364.45 543.24 T (ireless Subnet 36.134) 373.49 543.24 T 384.11 489.18 414.36 517.18 14 RR 7 X V 0.5 H 0 X N 389.86 494.18 408.36 512.18 9 RR 7 X V 0 X N 396.36 500.18 401.36 506.18 2.5 RR 7 X V 0 X N 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 399.02 502.45 399.02 532.16 2 L 1 H N 324 370.22 540 481.29 R 7 X V 1 9 Q 0 X 5.54 (Figur) 337.74 475.29 P 5.54 (e 5. MosquitoNet test-bed:) 359.08 475.29 P 0 F 5.54 (The home) 484.47 475.29 P 0.31 (network for the mobile host \050MH\051 is net 36.135. As) 337.74 466.29 P 0.66 (shown by the dashed arrows, the mobile host visits) 337.74 457.29 P 2.75 (either network 36.8, which it accesses using its) 337.74 448.29 P 0.79 (Ethernet interface, or net 36.134, which it accesses) 337.74 439.29 P 4.22 (using its wireless interface. The cloud is our) 337.74 430.29 P 0.86 (artistically-challenged method for denoting the rest) 337.74 421.29 P 0.41 (of the Internet. The correspondent host \050CH\051 in this) 337.74 412.29 P 0.48 (example is on net 36.8 or elsewhere in the Internet.) 337.74 403.29 P 0.59 (In this \336gure the home agent \050HA\051 is collocated on) 337.74 394.29 P 2.43 (the router connecting our networks, but it could) 337.74 385.29 P (instead be on some other host in the home network.) 337.74 376.29 T 383.5 579.5 413.75 607.5 14 RR 7 X V 0.5 H 0 X N 389.25 584.5 407.75 602.5 9 RR 7 X V 0 X N 395.75 590.5 400.75 596.5 2.5 RR 7 X V 0 X N 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 10 Q (MH) 371.39 684.46 T J 361.71 688.43 342.86 688.43 2 L 1 H N 455.63 639 455.72 654.59 2 L N J 471.08 495.33 458.92 495.61 469.38 501.81 470.23 498.57 4 Y V [6.957 6.957] 3.478 I 284.67 360 44.65 90.68 458.93 586.28 A [6.85 6.85] 3.425 I 0 90 102.01 107.57 401.56 586.29 A J 399.29 584.57 399.29 618.59 2 L N 399.29 584.57 399.29 563.1 2 L N 399.02 502.45 427.14 502.45 2 L N 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (CH) 507.67 701.75 T J 498.44 694.43 536.42 717.57 R 0 Z N 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (CH) 502.1 673.75 T J 492.87 666.43 530.85 689.57 R N 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 488.57 712 498.57 712 2 L 2 Z N 511.43 666.29 511.43 656.29 2 L N (wireless) 417.93 597.1 T (link) 417.93 587.1 T (wireless) 346.5 506.18 T (link) 364.5 497.17 T 324 72 540 720 C 0 0 612 792 C 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "8" 8 %%Page: "9" 9 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 0 0 0 1 1 1] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 8 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 72 49.5 540 58.5 R 7 X 0 0 0 1 0 0 0 K V 0 10 Q 0 X (9) 303.5 51.68 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.58 (interval during which packets can be lost is under 10) 72 713.33 P 0.32 (ms. W) 72 701.33 P 0.32 (e could not run the tests with a smaller interval) 97.63 701.33 P 1.11 (due to the accuracy available from our current mea-) 72 689.33 P (surement tools.) 72 677.33 T 0.17 (The second experiment measures the disruption when) 72 657.33 P 1.73 (switching between two types of devices, both from) 72 645.33 P 0.27 (wired to wireless and from wireless to wired. W) 72 633.33 P 0.27 (e fur-) 265.8 633.33 P 2.48 (ther subdivide this latter experiment to distinguish) 72 621.33 P 2.29 (between) 72 609.33 P 2 F 2.29 (cold switching) 110.11 609.33 P 0 F 2.29 ( and) 170.45 609.33 P 2 F 2.29 (hot switching) 194.47 609.33 P 0 F 2.29 (. In cold) 250.38 609.33 P 0.23 (switching, we shut down one interface before starting) 72 597.33 P 0.57 (up the other) 72 585.33 P 0.57 (. The mobile host deletes the route to the) 120.37 585.33 P 1.62 (\336rst interface, brings the interface down, brings the) 72 573.33 P 0.89 (new interface up, adds its route, and \336nally registers) 72 561.33 P 0.79 (the new IP address with its home agent. Bringing an) 72 549.33 P 0.66 (interface up or down usually just involves con\336gura-) 72 537.33 P 1.27 (tion in software, but some devices may also require) 72 525.33 P 2.17 (hardware interaction. In hot switching, both of the) 72 513.33 P -0.22 (interfaces are available and we just switch from one to) 72 501.33 P 1.41 (the other) 72 489.33 P 1.41 (. The mobile host merely changes its route) 108.13 489.33 P -0.13 (and registers the new address with its home agent. For) 72 477.33 P -0.08 (these tests the correspondent host sends a UDP packet) 72 465.33 P 0.42 (every 250 milliseconds. W) 72 453.33 P 0.42 (e chose the 250ms interval) 179.67 453.33 P 72 72 288 720 C 72 72 288 444.49 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 100.5 333.35 172.5 423.35 R 0.5 H 2 Z 3 X 0 0 0 1 0 0 0 K N 100.5 351.56 172.5 351.56 2 L N 100.5 369.35 172.5 369.35 2 L N 100.5 342.35 172.5 342.35 2 L N 100.5 387.35 172.5 387.35 2 L N 100.5 405.35 172.5 405.35 2 L N 100.5 360.35 172.5 360.35 2 L N 100.5 378.35 172.5 378.35 2 L N 100.5 396.35 172.5 396.35 2 L N 100.5 414.35 172.5 414.35 2 L N 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 10 Q 0 X (packets lost) 105 311.67 T (ether) 100.5 299.96 T 3 F (\256) 122.99 299.96 T 0 F ( radio) 132.86 299.96 T 72 70.99 292.5 138.49 R 7 X V 1 9 Q 0 X 1.66 (Figur) 85.75 132.49 P 1.66 (e 6. Device switching overhead:) 107.08 132.49 P 0 F 1.66 (This \336gure) 237.84 132.49 P 1.92 (shows the results from our experiments measuring) 85.75 123.49 P 1.18 (packet loss when the mobile host switches between) 85.75 114.49 P 5.09 (dif) 85.75 105.49 P 5.09 (ferent network interfaces. W) 95.58 105.49 P 5.09 (e repeated each) 213.1 105.49 P 1.16 (experiment ten times. The height of the bars shows) 85.75 96.49 P -0.19 (the number of iterations in which the given number of) 85.75 87.49 P (packets were lost.) 85.75 78.49 T 105 334.17 109.5 351.56 R 1 X V 0 X N 118.5 333.35 123 378.35 R 1 X V 0 X N 132 333.35 136.5 351.56 R 1 X V 0 X N 0 10 Q (2) 132 322.46 T 0 12 Q (4) 159 322.46 T 0 10 Q (0) 103.5 322.46 T 159 333.35 163.5 349.35 R 1 X V 0 X N (1) 118.5 322.46 T (3) 145.5 322.46 T (4) 94.5 365.67 T (8) 94.5 403.46 T (10) 88.5 419.67 T (6) 94.5 383.67 T (2) 94.5 349.46 T (0) 94.5 329.67 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 198 333.35 270 423.35 R 3 X N 198 351.56 270 351.56 2 L N 198 369.35 270 369.35 2 L N 198 342.35 270 342.35 2 L N 198 387.35 270 387.35 2 L N 198 405.35 270 405.35 2 L N 198 360.35 270 360.35 2 L N 198 378.35 270 378.35 2 L N 198 396.35 270 396.35 2 L N 198 414.35 270 414.35 2 L N 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 X (packets lost) 202.5 311.67 T (radio) 198 299.96 T 3 F (\256) 221.05 299.96 T 0 F ( ether) 230.92 299.96 T 202.5 334.17 207 396.35 R 1 X V 0 X N 216 333.35 220.5 360.35 R 1 X V 0 X N (2) 229.5 322.46 T (4) 256.5 322.46 T (0) 201 322.46 T (1) 216 322.46 T (3) 243 322.46 T (4) 192 365.67 T (8) 192 403.46 T (10) 186 419.67 T (6) 192 383.67 T (2) 192 349.46 T (0) 192 329.67 T (number of trials) 0 -270 86.18 333.35 TF (cold switching) 144 429.09 T 100.5 184.21 172.5 274.21 R 3 X N 100.5 202.42 172.5 202.42 2 L N 100.5 220.21 172.5 220.21 2 L N 100.5 193.21 172.5 193.21 2 L N 100.5 238.21 172.5 238.21 2 L N 100.5 256.21 172.5 256.21 2 L N 100.5 211.21 172.5 211.21 2 L N 100.5 229.21 172.5 229.21 2 L N 100.5 247.21 172.5 247.21 2 L N 100.5 265.21 172.5 265.21 2 L N 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 X (packets lost) 105 162.53 T (ether) 100.5 150.82 T 3 F (\256) 122.99 150.82 T 0 F ( radio) 132.86 150.82 T 105 184.21 109.5 265.21 R 1 X V 0 X N 118.5 184.21 123 193.21 R 1 X V 0 X N (2) 132 173.32 T (4) 159 173.32 T (0) 103.5 173.32 T (1) 118.5 173.32 T (3) 145.5 173.32 T (4) 94.5 216.53 T (8) 94.5 254.32 T (10) 88.5 270.53 T (6) 94.5 234.53 T (2) 94.5 200.32 T (0) 94.5 180.53 T 198 184.21 270 274.21 R 3 X N 198 202.42 270 202.42 2 L N 198 220.21 270 220.21 2 L N 198 193.21 270 193.21 2 L N 198 238.21 270 238.21 2 L N 198 256.21 270 256.21 2 L N 198 211.21 270 211.21 2 L N 198 229.21 270 229.21 2 L N 198 247.21 270 247.21 2 L N 198 265.21 270 265.21 2 L N 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 X (packets lost) 202.5 162.53 T (radio) 198 150.82 T 3 F (\256) 221.05 150.82 T 0 F ( ether) 230.92 150.82 T 202.5 184.21 207 274.21 R 1 X V 0 X N (2) 229.5 173.32 T (4) 256.5 173.32 T (0) 201 173.32 T (1) 216 173.32 T (3) 243 173.32 T (4) 192 216.53 T (8) 192 254.32 T (10) 186 270.53 T (6) 192 234.53 T (2) 192 200.32 T (0) 192 180.53 T (number of trials) 0 -270 86.18 184.21 TF (hot switching) 144.71 281.1 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 72 72 288 720 C 0 0 612 792 C 0 10 Q 0 X 0 0 0 1 0 0 0 K 0.98 (because the round-trip time between the home agent) 324 713.33 P 2.42 (and the mobile host through the radio interface is) 324 701.33 P 1.08 (200~250ms. Figure 6 shows our results for this sec-) 324 689.18 P -0.01 (ond set of experiments, after running each experiment) 324 677.18 P (10 times.) 324 665.18 T 6.63 (When doing cold switching between dif) 324 645.18 P 6.63 (ferent) 516.68 645.18 P 0.86 (devices, the period of time during which packets are) 324 633.18 P 1.59 (lost is generally less than 1.25 seconds. The longer) 324 621.18 P 0.67 (time interval is due to bringing up the new interface.) 324 609.18 P 0.74 (This seems acceptable when compared with the time) 324 597.18 P 4.32 (spent physically switching between two devices.) 324 585.18 P 0.72 (When doing hot switching, we usually see no packet) 324 573.18 P 0.58 (loss. \050The only lost packet we observed was dropped) 324 561.18 P 0.88 (by the radio itself and was not a result of the device) 324 549.18 P -0.04 (switch.\051 This is what we would expect, since no pack-) 324 537.18 P (ets should be lost if both interfaces are available.) 324 525.18 T 0.64 (The results for hot switching show that being able to) 324 505.18 P 0.85 (bring up one interface before turning of) 324 493.18 P 0.85 (f the other is) 487.19 493.18 P 2.72 (advantageous. Whether this is possible in practice) 324 481.18 P 0.48 (depends on whether the user or the network monitor-) 324 469.18 P -0.16 (ing software on the mobile host have any warning that) 324 457.18 P 0.23 (connectivity is about to change. W) 324 445.18 P 0.23 (ith suf) 463.62 445.18 P 0.23 (\336cient warn-) 488.95 445.18 P -0.01 (ing, for instance, the user or the mobile host can bring) 324 433.18 P 0.34 (up a newly available wireless interface before the old) 324 421.18 P (interface is disabled.) 324 409.18 T 0.02 (W) 324 389.18 P 0.02 (e have also collected data to break down the time in) 332.64 389.18 P -0.01 (each step of the mobile host\325) 324 377.18 P -0.01 (s switch to a new address) 438.67 377.18 P 0.23 (and its registration with the home agent, as illustrated) 324 365.18 P 0.93 (in Figure 7. The measurement is performed with the) 324 353.03 P 0.39 (mobile host registering a new IP address on the same) 324 341.03 P 1.35 (Ethernet subnet. The data re\337ects the average of 10) 324 329.03 P 1.19 (tests. The total time from start to end, including the) 324 317.03 P 1.52 (time used to con\336gure the interface and change the) 324 305.03 P 2.77 (routing table, is 7.39ms. The latency between the) 324 293.03 P 324 72 540 720 C 324 72 540 279 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 321.5 75.33 542 151 R 7 X 0 0 0 1 0 0 0 K V 1 9 Q 0 X 0.99 (Figur) 335.24 145 P 0.99 (e 7. Registration time-line:) 356.58 145 P 0 F 0.99 (The graph shows) 464.78 145 P 0.95 (the time the mobile host spends on each step of the) 335.24 136 P 0.72 (registration process. The total time from start to end) 335.24 127 P 1.36 (of the address switch includes the time used in the) 335.24 118 P -0.14 (pre-registration process \050con\336guring the interface and) 335.24 109 P 2.26 (changing the route table\051 and the post-registration) 335.24 100 P 0.12 (process. The data re\337ects the average of 10 tests with) 335.24 91 P (standard deviations in parentheses.) 335.24 82 T J J 453.31 254.7 450 243.17 446.69 254.7 450 254.7 4 Y V 450 265.5 450 254.7 2 L 1 H 2 Z N 453.31 232.03 450 220.5 446.69 232.03 450 232.03 4 Y V 450 243.17 450 232.03 2 L N 489.31 209.53 486 198 482.69 209.53 486 209.53 4 Y V 486 220.5 486 209.53 2 L N 453.31 182.53 450 171 446.69 182.53 450 182.53 4 Y V 450 198 450 182.53 2 L N 453.31 169.03 450 157.5 446.69 169.03 450 169.03 4 Y V 450 171 450 169.03 2 L N 450 157.5 360 157.5 2 L 0.5 H N 360 265.5 360 157.5 2 L N 450 243.17 402 243.17 2 L N 450 171 402 171 2 L N J 468 277.37 468 159.37 2 L J 468 277.37 468 273.62 2 L N [7.931 6.873] 7.931 I 468 273.62 468 163.12 2 L N J 468 163.12 468 159.37 2 L N 1 10 Q (home agent) 481.5 267.8 T 0 F (request received) 472.5 222.67 T (reply sent) 473.84 191.17 T (1.48ms \050.03\051) 488.5 209.17 T J 486 220.5 450 220.5 2 L N 486 198 450 198 2 L N (start) 338.28 263.17 T (end) 342 159.67 T 337.33 209.37 404.67 224.7 R 7 X V 0 X (7.39ms \050.04\051) 344.33 215.48 T 402 243.17 402 170.74 2 L N 1 F (mobile host) 373.5 267.8 T 0 F (send request) 396 245.17 T 393.33 200.04 446 215.37 R 7 X V 0 X (4.79ms \050.03\051) 397.33 206.04 T 373.5 171.83 441 180 R 7 X V 0 X (receive reply) 394.25 173.18 T 360 265.5 450 265.5 2 L N 324 72 540 720 C 0 0 612 792 C 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "9" 9 %%Page: "10" 10 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 0 0 0 1 1 1] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 8 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 72 49.5 540 58.5 R 7 X 0 0 0 1 0 0 0 K V 0 10 Q 0 X (10) 301 51.68 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 2.41 (mobile host sending out a registration request and) 72 713.33 P 3.68 (receiving the reply is 4.79ms. The average time) 72 701.33 P 2.77 (between the home agent receiving the registration) 72 689.33 P 0.64 (request and sending out its reply is 1.48ms. The data) 72 677.33 P 1.38 (shows that the software overhead in the registration) 72 665.33 P -0.09 (process is small, and the home agent should be able to) 72 653.33 P 2.16 (deal with a lar) 72 641.33 P 2.16 (ge number of mobile hosts simulta-) 135.24 641.33 P (neously) 72 629.33 T (.) 102.46 629.33 T 1 12 Q (5. Designing for Mobility) 72 598 T 0 10 Q -0.07 (Over the course of this project, we\325ve dealt with some) 72 577.33 P 2.61 (issues in the design of a mobile network that we) 72 565.33 P 0.27 (believe are likely to arise in other implementations of) 72 553.33 P 3.09 (mobility) 72 541.33 P 3.09 (, especially those that do not use foreign) 105.25 541.33 P -0.16 (agents. In this section we examine two of these issues.) 72 529.33 P 1.34 (W) 72 517.33 P 1.34 (e \336rst list the general rami\336cations of leaving out) 80.64 517.33 P 1.1 (foreign agents. Next, we examine in more detail the) 72 505.33 P 1.03 (degree to which we can hide mobility from network) 72 493.33 P 0.15 (software running on the mobile host in the absence of) 72 481.33 P 1.32 (foreign agents. While complete transparency sounds) 72 469.33 P (ideal, it is not entirely practical.) 72 457.33 T 1 12 Q (5.1 Leaving out the For) 72 429 T (eign Agent) 194.45 429 T 0 10 Q 0.76 (Our decision to leave out foreign agents in our basic) 72 408.33 P -0.05 (mobile IP protocol has both advantages and disadvan-) 72 396.33 P -0.01 (tages. Most of the advantages are related to the result-) 72 384.33 P 1.74 (ing reduced dependence on the foreign network. In) 72 372.33 P 3.84 (return, though, we must acquire a temporary IP) 72 360.33 P 0.3 (address in the foreign network, since we cannot use a) 72 348.33 P 1.9 (foreign agent\325) 72 336.33 P 1.9 (s address as our care-of address. The) 129.72 336.33 P 0.02 (disadvantages of our decision are related to our use of) 72 324.33 P (this temporary IP address.) 72 312.33 T (Advantages:) 72 292.33 T (+) 72 274.33 T 1.4 (Main advantage: Our mobile hosts can visit net-) 85.75 274.33 P (works that do not have a foreign agent.) 85.75 262.33 T (+) 72 245.33 T 1.19 (Fault tolerance: The foreign agent is no longer a) 85.75 245.33 P 0.14 (single point of failure for our mobile hosts\325 ability) 85.75 233.33 P -0.32 (to continue communicating with the outside world.) 85.75 221.33 P 0.12 (While we may be able to \336x or restart failed home) 85.75 209.33 P 0.11 (agents, we probably do not have such control over) 85.75 197.33 P (resources in a foreign network.) 85.75 185.33 T (+) 72 168.33 T -0.37 (Scaling issues: W) 85.75 168.33 P -0.37 (e do not need a foreign agent run-) 155.32 168.33 P 0.21 (ning in every network. W) 85.75 156.33 P 0.21 (e only need home agents) 188.28 156.33 P (running in those networks with mobile clients.) 85.75 144.33 T (+) 72 127.33 T 0.84 (Simpler protocol: Leaving out a full implementa-) 85.75 127.33 P 0.28 (tion of a foreign agent simpli\336es the essential part) 85.75 115.33 P 1.61 (of the protocol. However) 85.75 103.33 P 1.61 (, we must implement a) 190.72 103.33 P 0.16 (subset of the foreign agent on the mobile hosts for) 337.74 713.33 P 3.51 (decapsulating packets and registering with the) 337.74 701.33 P (home agent.) 337.74 689.33 T (+) 324 672.33 T -0.17 (Compatibility with IPv6: Although mobility speci-) 337.74 672.33 P 3.9 (\336cations for IPv6 have not been \336nalized, it) 337.74 660.33 P 1.88 (appears our approach is likely to be compatible) 337.74 648.33 P 0.03 (with this protocol. There will be a lar) 337.74 636.33 P 0.03 (ge IP address) 486.62 636.33 P 1.44 (space, resulting in less resistance to handing out) 337.74 624.33 P -0.19 (temporary addresses. Also, it appears there may be) 337.74 612.33 P 3.53 (support for bindings in routers between static) 337.74 600.33 P 1.13 (addresses and care-of addresses, further reducing) 337.74 588.33 P (the role of a foreign agent [12].) 337.74 576.18 T (Disadvantages:) 324 556.18 T (\321) 324 538.18 T 3.43 (Main disadvantage: The mobile host needs to) 337.74 538.18 P 0.5 (acquire a temporary IP address in the foreign net-) 337.74 526.18 P -0.46 (work. There may be networks that refuse to do this.) 337.74 514.18 P 0.85 (\050These same networks may also refuse to expend) 337.74 502.18 P 0.98 (any other resources on visitors, including foreign) 337.74 490.18 P (agents.\051) 337.74 478.18 T (\321) 324 461.18 T 1.27 (Security: If packets for a mobile host arrive at a) 337.74 461.18 P -0.1 (foreign network the mobile host has just left, those) 337.74 449.18 P 0.13 (packets might be erroneously delivered to a newly) 337.74 437.18 P 0.56 (arrived host that has been assigned the same tem-) 337.74 425.18 P 2.47 (porary address the recently departed host used.) 337.74 413.18 P 0.84 (This kind of accidental eavesdropping should not) 337.74 401.18 P 1.22 (happen in practice because a well-written DHCP) 337.74 389.18 P 4.73 (server would avoid reassigning the same IP) 337.74 377.18 P (address for as long as possible.) 337.74 365.18 T 4.74 (Anyone concerned about deliberate malicious) 337.74 350.18 P -0.04 (eavesdropping should be using end-to-end encryp-) 337.74 338.18 P 1.03 (tion rather than worrying about address reassign-) 337.74 326.18 P 5.89 (ment problems. Packets on an Ethernet or) 337.74 314.18 P 1.96 (elsewhere on the public Internet can already be) 337.74 302.18 P 0.04 (easily read by a packet-snif) 337.74 290.18 P 0.04 (\336ng program. The only) 447.12 290.18 P 2.35 (security problem that is truly unique to mobile) 337.74 278.18 P 1.4 (hosts is the registration of the temporary care-of) 337.74 266.18 P 0.01 (address with the home agent and with smart corre-) 337.74 254.18 P 4.23 (spondent hosts. These registrations should be) 337.74 242.18 P 0.44 (authenticated with S-key) 337.74 230.18 P 0.44 (, Kerberos, PGP) 437.41 230.18 P 0.44 (, or some) 502.17 230.18 P 1.29 (other similar strong authentication mechanism to) 337.74 218.18 P 3.63 (protect against denial-of-service attacks in the) 337.74 206.18 P (form of malicious fraudulent registrations.) 337.74 194.18 T (\321) 324 177.18 T 0.2 (Packet loss: Foreign agents may somewhat reduce) 337.74 177.18 P 0.08 (packet loss. When a mobile host leaves a network,) 337.74 165.18 P 1.27 (it must inform its home agent of its new care-of) 337.74 153.18 P 0.19 (address. However) 337.74 141.18 P 0.19 (, any packets already sent by the) 409.17 141.18 P 0.37 (home agent before it receives the new registration) 337.74 129.18 P 0.78 (will arrive at the old network and will be lost. If,) 337.74 117.18 P 3.96 (however) 337.74 105.18 P 3.96 (, a foreign agent in the old network) 371.77 105.18 P 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "10" 10 %%Page: "11" 11 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 0 0 0 1 1 1] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 8 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 72 49.5 540 58.5 R 7 X 0 0 0 1 0 0 0 K V 0 10 Q 0 X (1) 301.18 51.68 T (1) 305.82 51.68 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 2.05 (receives the new registration before the packets) 85.75 713.33 P 1.92 (arrive, it can forward the packets to the mobile) 85.75 701.33 P (host\325) 85.75 689.33 T (s new care-of address.) 105.19 689.33 T 2.51 (The important question, though, is whether the) 85.75 674.33 P 1.22 (bene\336t is worth the cost. An important lesson of) 85.75 662.33 P 1.89 (the Internet is that while it is relatively easy to) 85.75 650.33 P -0.41 (deliver almost all packets, attempting absolute reli-) 85.75 638.33 P 0.28 (ability makes the cost of the system grow towards) 85.75 626.33 P 0.05 (in\336nity) 85.75 614.33 P 0.05 (. Many of the components that make up the) 114 614.33 P 0.77 (Internet exercise the option to drop packets occa-) 85.75 602.33 P -0.48 (sionally when the cost of doing otherwise would be) 85.75 590.33 P 2.79 (unreasonable. Internet protocols do not naively) 85.75 578.33 P -0.39 (assume perfect delivery) 85.75 566.33 P -0.39 (, but instead use end-to-end) 179.29 566.33 P -0.03 (mechanisms to achieve a level of reliability appro-) 85.75 554.33 P 0.17 (priate to their particular needs [15]. Unless further) 85.75 542.18 P -0.27 (experience with our system dictates that our poten-) 85.75 530.18 P 0.95 (tially higher packet loss is a severe handicap, we) 85.75 518.18 P (will stick to our simple implementation.) 85.75 506.18 T (\321) 72 489.18 T 1.72 (More complex mobile host: The lack of foreign) 85.75 489.18 P 2.42 (agents somewhat complicates the design of the) 85.75 477.18 P 2.86 (mobile host. This is because our mobile hosts) 85.75 465.18 P 0.37 (ef) 85.75 453.18 P 0.37 (fectively contain a simpli\336ed foreign agent. The) 93.33 453.18 P 3.62 (result is that some networking software on a) 85.75 441.18 P 1.26 (mobile host must be aware of its actual physical) 85.75 429.18 P 3.62 (network connectivity and must handle routing) 85.75 417.18 P 2.14 (operations and changes to the physical network) 85.75 405.18 P 1.63 (interfaces. This gives us increased \337exibility for) 85.75 393.18 P 0.66 (routing optimizations but presents a new problem) 85.75 381.18 P -0.35 (for our design: we must understand where mobility) 85.75 369.18 P 1.19 (can be transparent to the software and where we) 85.75 357.18 P -0.2 (should expose the physical network. However) 85.75 345.18 P -0.2 (, this) 268.75 345.18 P 2.42 (minor increase in complexity is an engineering) 85.75 333.18 P 3.35 (challenge that is solvable, whereas convincing) 85.75 321.18 P -0.03 (every independent authority on the Internet to pro-) 85.75 309.18 P 1.88 (vide foreign agent services would be a political) 85.75 297.18 P (task without end.) 85.75 285.18 T 1.59 (Other issues we\325ve found that appear to be distinc-) 72 265.18 P 0.03 (tions between a foreign agent implementation and our) 72 253.18 P 1.14 (protocol do not seem signi\336cant. For instance, route) 72 241.18 P 0.35 (optimizations handled by foreign agents are also pos-) 72 229.18 P 1.79 (sible in our scheme when handled by mobile hosts) 72 217.18 P (and home agents, as shown previously) 72 205.18 T (.) 225.22 205.18 T 0.62 (Despite our desire to make our basic protocol simple) 72 185.18 P 1.42 (and self-contained, there is nothing that prevents us) 72 173.18 P 3.48 (from implementing or using foreign agents. If it) 72 161.18 P 1.98 (becomes appropriate, we can provide extensions to) 72 149.18 P 1.53 (our system to implement foreign agents for visiting) 72 137.18 P 2.81 (mobile hosts that require them. Likewise, we can) 72 125.18 P 0.58 (extend our protocol on mobile hosts so they can take) 72 113.18 P 0.96 (advantage of any foreign agents that happen to exist) 72 101.18 P (in networks they visit.) 72 89.18 T 1 12 Q (5.2 Design Alternatives) 324 712 T 0 10 Q 0.78 (One of the most dif) 324 691.33 P 0.78 (\336cult issues we\325ve tackled in our) 404.72 691.33 P 4.15 (implementation of mobile IP is how transparent) 324 679.33 P 3.32 (mobility should be to users and software on the) 324 667.33 P 0.55 (mobile host itself. What we\325ve learned through itera-) 324 655.33 P 0.13 (tive designs is that complete transparency is not \337exi-) 324 643.33 P 0.65 (ble enough and is not entirely practical. Our solution) 324 631.33 P 1.87 (is to allow the routing tables to expose the mobile) 324 619.33 P 0.9 (host\325) 324 607.33 P 0.9 (s physical connectivity to its current network to) 343.45 607.33 P 0.75 (any software or services that require this. Otherwise,) 324 595.33 P 0.14 (we ensure that all applications on the mobile host and) 324 583.33 P 2.12 (correspondent hosts need not know anything about) 324 571.33 P (mobility) 324 559.33 T (.) 357.25 559.33 T 2.25 (If mobility were entirely transparent to the mobile) 324 539.33 P 0.4 (host, all of its software would have the view that it is) 324 527.33 P 2.45 (always attached to its home network. This sounds) 324 515.33 P -0.1 (ideal but turns out to have unpleasant implications. T) 324 503.33 P -0.1 (o) 535 503.33 P 2.67 (hide fully whether the mobile host is at home or) 324 491.33 P 0.09 (abroad, its routing table should always show only one) 324 479.33 P 1.58 (unchanging interface bound to its home IP address.) 324 467.33 P -0.04 (Even while at home this interface could not be associ-) 324 455.33 P 0.72 (ated with any physical network, such as the Ethernet) 324 443.33 P 0.51 (device, since away from home the mobile host might) 324 431.33 P 0.7 (switch to some other device for communication. The) 324 419.33 P 0.13 (home IP address would thus be permanently bound to) 324 407.33 P 1.82 (a virtual interface. The virtual interface would per-) 324 395.33 P -0.05 (form encapsulation while away from home and would) 324 383.33 P (be similar to our VIF) 324 371.33 T (.) 407.64 371.33 T -0.23 (The main problem with this approach is that the actual) 324 351.33 P 1.28 (understanding of the physical interfaces would need) 324 339.33 P 0.21 (to be hidden within VIF) 324 327.33 P 0.21 (. This has at least three impli-) 420.15 327.33 P 1.65 (cations. First, VIF would need to construct its own) 324 315.33 P 0.75 (real routing table showing the state of these physical) 324 303.33 P 1.24 (interfaces. Any routing optimizations would need to) 324 291.33 P 3.2 (be handled entirely within VIF) 324 279.33 P 3.2 (, and this requires) 459.31 279.33 P 3.41 (exposing information in the socket data structure) 324 267.33 P 2.49 (within the interface since this information is ordi-) 324 255.33 P -0.1 (narily accessed before the packet is passed to an inter-) 324 243.33 P 0.89 (face. Second, applications would not be able to bind) 324 231.33 P 3.66 (source addresses to particular physical interfaces,) 324 219.33 P 0.73 (because they would not be able to see the interfaces.) 324 207.33 P 0.79 (For this same reason, applications would not be able) 324 195.33 P 0.51 (to use two dif) 324 183.33 P 0.51 (ferent network services at once, even if) 380.06 183.33 P 0.5 (they wished to take advantage of their dif) 324 171.33 P 0.5 (ferent char-) 493.14 171.33 P 2.61 (acteristics for dif) 324 159.33 P 2.61 (ferent purposes. Third, we would) 396.8 159.33 P -0.01 (need to handle ICMP routing redirects dif) 324 147.33 P -0.01 (ferently) 490.97 147.33 P -0.01 (. If a) 521.42 147.33 P 0.54 (mobile host communicates with a correspondent host) 324 135.33 P 2.21 (on the network it is visiting, the mobile host may) 324 123.33 P 1.93 (receive routing redirects for the correspondent host) 324 111.33 P (that would ordinarily override any default route.) 324 99.33 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "11" 11 %%Page: "12" 12 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 0 0 0 1 1 1] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 8 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 72 49.5 540 58.5 R 7 X 0 0 0 1 0 0 0 K V 0 10 Q 0 X (12) 301 51.68 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.73 (Our experience indicates that an implementation that) 72 713.33 P 2.29 (gives up some transparency is appropriate. This is) 72 701.33 P 3.12 (because a mobile host visiting a foreign network) 72 689.33 P 1.69 (really has two distinct roles to play) 72 677.33 P 1.69 (. The \336rst is its) 221.5 677.33 P 2 F 0.72 (home) 72 665.33 P 0 F 0.72 ( role, in which it appears virtually connected to) 93.66 665.33 P 0.82 (its home network and sends packets using mobile IP) 72 653.33 P 2.07 (features to provide transparency) 72 641.33 P 2.07 (. Packets sent by a) 206.13 641.33 P 1.93 (MH in its home role should be sent with a source) 72 629.33 P 1.74 (address of the MH\325) 72 617.33 P 1.74 (s permanent home address, per-) 154.14 617.33 P (haps with encapsulation through the virtual interface.) 72 605.33 T 2.09 (The second role is the mobile host\325) 72 585.33 P 2.09 (s) 224.52 585.33 P 2 F 2.09 (local) 232.99 585.33 P 0 F 2.09 ( role, in) 252.99 585.33 P -0.16 (which it participates as a host connected to the foreign) 72 573.33 P 5.12 (network. Examples of this second role include) 72 561.33 P 0.12 (answering foreign-network management probes \050such) 72 549.33 P 1.48 (as ICMP ping and SNMP\051, and the lease-refresh of) 72 537.33 P 1.88 (the DHCP-assigned temporary care-of address. The) 72 525.33 P 1.03 (mobile host might also join multicast groups via the) 72 513.33 P -0.15 (foreign network, rather than via the home network. Or) 72 501.33 P -0.05 (it might correspond directly with another host entirely) 72 489.33 P 2.11 (ignoring mobile IP) 72 477.33 P 2.11 (. This is especially useful if the) 150.66 477.33 P (home agent is not reachable or has crashed.) 72 465.33 T 1.58 (Our belief is that a mobile IP implementation must) 72 445.33 P 1.18 (support both roles. Foreign networks are unlikely to) 72 433.33 P 1.24 (let visiting mobile hosts connect if the mobile hosts) 72 421.33 P 1.57 (do not respond to local network management tools.) 72 409.33 P 0.27 (Applications that wish to take advantage of particular) 72 397.33 P -0.25 (network interfaces, or that use more than one interface) 72 385.33 P 0.38 (at a time, are necessarily mobile-aware. In this sense,) 72 373.33 P 1.72 (the packets they send are a part of a mobile host\325) 72 361.33 P 1.72 (s) 284.11 361.33 P 0.46 (local role. Our solution provides \337exibility by expos-) 72 349.33 P 1.58 (ing the mobile host\325) 72 337.33 P 1.58 (s local role through the routing) 156.48 337.33 P 3.28 (tables while ensuring that all applications on the) 72 325.33 P 1.22 (mobile host and correspondent hosts need not know) 72 313.33 P (about the local role.) 72 301.33 T 0.98 (Part of the need for the mobile host to play its local) 72 281.33 P 0.38 (role is a result of our decision to leave foreign agents) 72 269.33 P 0.57 (out of our basic protocol. When a mobile host uses a) 72 257.33 P 1.48 (distinct foreign agent, the foreign agent is a default) 72 245.33 P -0.23 (router for the mobile host and is essentially the mobile) 72 233.33 P 0.7 (host\325) 72 221.33 P 0.7 (s only connection to the network. Because there) 91.45 221.33 P 1.26 (are two separate routing tables) 72 209.33 P 3 F 1.26 (-) 203.01 209.33 P 0 F 1.26 ( one on the mobile) 208.5 209.33 P 1.59 (host, which always points to the foreign agent, and) 72 197.33 P 2.21 (one on the foreign agent, containing true topology) 72 185.33 P 1.66 (information) 72 173.33 P 3 F 1.66 (-) 123.38 173.33 P 0 F 1.66 ( the con\337ict between mobility routing) 128.87 173.33 P 2.13 (and \322real\323 routing disappears, and a simple imple-) 72 161.33 P (mentation using a VIF is suf) 72 149.33 T (\336cient but less \337exible.) 185.43 149.33 T 1 12 Q (6.) 72 118 T (Futur) 84 118 T (e W) 113.78 118 T (ork) 133.45 118 T 0 10 Q 1.45 (Although we believe our work shows we can make) 72 97.33 P 0.27 (changes in network interfaces and routing transparent) 72 85.33 P 2.2 (to higher) 324 713.33 P 2.2 (-level software, we may not wish to hide) 361.83 713.33 P 0.27 (changes in the underlying network performance char-) 324 701.33 P 1.49 (acteristics. Bandwidth, latency) 324 689.33 P 1.49 (, bit error rates, secu-) 449.08 689.33 P 0.08 (rity) 324 677.33 P 0.08 (, and cost can all dif) 337.24 677.33 P 0.08 (fer signi\336cantly from one type) 418.02 677.33 P 0.45 (of network to another) 324 665.33 P 0.45 (. W) 411.18 665.33 P 0.45 (e believe it may be advanta-) 425.27 665.33 P 2.06 (geous to inform upper) 324 653.33 P 2.06 (-layer network protocols and) 418.58 653.33 P 0.2 (some applications of these changes so they can adjust) 324 641.33 P 0.11 (their behaviors accordingly) 324 629.33 P 0.11 (. Part of our future work is) 432.98 629.33 P 0.35 (to investigate what common functionalities should be) 324 617.33 P 0.7 (built into the kernel to cope with these varying qual-) 324 605.33 P 1.66 (ity-of-service parameters, and what application pro-) 324 593.33 P 5.04 (gramming interface best enables applications to) 324 581.33 P 0.9 (specify their interests and receive noti\336cation of any) 324 569.33 P 1.24 (relevant network changes. Developing a clean inter-) 324 557.33 P (face for this is a major goal of our further work.) 324 545.33 T 0.74 (As for further work on mobile IP) 324 525.33 P 0.74 (, we plan to experi-) 459.55 525.33 P 0.34 (ment with techniques for determining when to switch) 324 513.33 P 2.11 (between networks, and we plan to test some addi-) 324 501.33 P (tional routing optimizations described in this paper) 324 489.33 T (.) 527.33 489.33 T 1 12 Q (7. Conclusions) 324 458 T 0 10 Q 2.54 (W) 324 437.33 P 2.54 (e have implemented a self-contained mechanism) 332.64 437.33 P 2.28 (that enables hosts to switch between dif) 324 425.33 P 2.28 (ferent net-) 496.35 425.33 P 0.36 (works and network devices without losing connectiv-) 324 413.33 P 2.74 (ity) 324 401.33 P 2.74 (. Our system does not assume the existence of) 333.91 401.33 P 0.62 (separate foreign agents, allowing our mobile hosts to) 324 389.33 P 0.45 (visit networks that do not support any mobile IP pro-) 324 377.33 P 0.93 (tocols. This enables host mobility over a wide range) 324 365.33 P 2.42 (of networks controlled by dif) 324 353.33 P 2.42 (ferent authorities and) 450.17 353.33 P -0.24 (brings us closer to our goal of ubiquitous connectivity) 324 341.33 P -0.24 (.) 537.5 341.33 P 1.75 (The performance of our implementation shows that) 324 329.33 P 0.2 (we can switch between devices and IP addresses with) 324 317.33 P (minimal disruption to the higher levels of software.) 324 305.33 T 1 12 Q (8. Sour) 324 274 T (ce Code A) 360.46 274 T (vailability) 411.55 274 T 0 10 Q 1.03 (The software for mobile hosts and home agents will) 324 253.33 P 0.12 (be freely available via the Internet. Please use the fol-) 324 241.33 P 1.52 (lowing URL for details of our project and software) 324 229.33 P 2.96 (release:) 324 217.33 P 4 F 7.1 (http://plastique.stanford.edu/) 360 217.33 P 0.56 (mosquito.html) 324 205.33 P 0 F 0.23 (. W) 402 205.33 P 0.23 (e also hope to release our code) 415.87 205.33 P 0.11 (for DHCP and an extended version of DNS on Linux.) 324 193.33 P 0.23 (A) 324 181.33 P 0.23 (vailability of any of this code will also be posted on) 330.48 181.33 P (our web site.) 324 169.33 T 1 12 Q (9. Acknowledgments) 324 138 T 0 10 Q 0.86 (W) 324 117.33 P 0.86 (e gratefully acknowledge our many discussions on) 332.64 117.33 P 0.46 (mobile computing with Bart Miller) 324 105.33 P 0.46 (. His thoughts and) 465.84 105.33 P 2.58 (advice were enormously useful. W) 324 93.33 P 2.58 (e also bene\336ted) 472.64 93.33 P 2.07 (greatly from discussions with Steve Deering, Mike) 324 81.33 P 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "12" 12 %%Page: "13" 13 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 0 0 0 1 1 1] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 8 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 72 49.5 540 58.5 R 7 X 0 0 0 1 0 0 0 K V 0 10 Q 0 X (13) 301 51.68 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 2.48 (Spreitzer) 72 713.33 P 2.48 (, Marvin Theimer) 107.7 713.33 P 2.48 (, and Lixia Zhang. John) 183.08 713.33 P 4.26 (Chapin, Stacey Doerr) 72 701.33 P 4.26 (, Bart Miller) 166.49 701.33 P 4.26 (, Elliot Poger) 224.32 701.33 P 4.26 (,) 285.5 701.33 P 1.31 (Mema Roussopoulos, Diane T) 72 689.33 P 1.31 (ang, and Marvin The-) 196.88 689.33 P 3.96 (imer provided their thoughtful comments on the) 72 677.33 P 2.88 (paper) 72 665.33 P 2.88 (. W) 93.66 665.33 P 2.88 (e thank Metricom for their generosity in) 110.18 665.33 P -0.05 (loaning us radios and answering many technical ques-) 72 653.33 P 0.87 (tions. W) 72 641.33 P 0.87 (e thank Xerox P) 105.96 641.33 P 0.87 (ARC for providing \336nancial) 172.35 641.33 P 2.32 (support for Xinhua. This work has also been sup-) 72 629.33 P -0.2 (ported by Stanford\325) 72 617.33 P -0.2 (s T) 149.37 617.33 P -0.2 (elecom Center and an NSF Fac-) 160.97 617.33 P (ulty Career A) 72 605.33 T (ward \050contract CCR-9501799\051.) 125.51 605.33 T 1 12 Q (10. Refer) 72 574 T (ences) 118.43 574 T 0 10 Q (1.) 72 553.33 T 1.69 (Mary Baker) 93.6 553.33 P 1.69 (, \322Changing Communication Envi-) 142.93 553.33 P 1.51 (ronments in MosquitoNet.\323) 93.6 541.33 P 2 F 1.51 (Pr) 210.36 541.33 P 1.51 (oceedings of the) 219.99 541.33 P 0.61 (IEEE W) 93.6 529.33 P 0.61 (orkshop on Mobile and Computing Sys-) 125.78 529.33 P -0.25 (tems and Applications,) 93.6 517.33 P 0 F -0.25 ( December 1994.) 184.49 517.33 P (2.) 72 501.33 T -0.22 (T) 93.6 501.33 P -0.22 (revor Blackwell et al., \322Secure Short-Cut Rout-) 99.36 501.33 P 0.12 (ing for Mobile IP) 93.6 489.33 P 0.12 (.\323) 162.56 489.33 P 2 F 0.12 (1994 Summer USENIX,) 172.11 489.33 P 0 F 0.12 (June) 269.67 489.33 P (1994.) 93.6 477.33 T (3.) 72 461.33 T 1.41 (Stuart Cheshire and Mary Baker) 93.6 461.33 P 1.41 (, \322Experiences) 228.28 461.33 P 0.36 (with a W) 93.6 449.33 P 0.36 (ireless Network in MosquitoNet.\323) 130.57 449.33 P 2 F 0.36 (Pr) 270.04 449.33 P 0.36 (o-) 279.67 449.33 P 0.17 (ceedings of the IEEE Hot Inter) 93.6 437.33 P 0.17 (connects III Sym-) 217.68 437.33 P 4.18 (posium on High Performance Inter) 93.6 425.33 P 4.18 (connects) 250.51 425.33 P 0 F 4.18 (,) 285.5 425.33 P 1.21 (August 1995. A version of this paper will also) 93.6 413.33 P -0.25 (appear in) 93.6 401.33 P 2 F -0.25 (IEEE Micr) 132.53 401.33 P -0.25 (o) 175.51 401.33 P 0 F -0.25 (.) 180.51 401.33 P (4.) 72 385.33 T 0.49 (R. Droms, \322Dynamic Host Con\336guration Proto-) 93.6 385.33 P -0.25 (col.\323) 93.6 373.33 P 2 F -0.25 (RFC 1541) 115.01 373.33 P 0 F -0.25 (, October 1993.) 156.15 373.33 P (5.) 72 357.33 T -0.23 (Joe Hung, Bart Miller and Mary Baker) 93.6 357.33 P -0.23 (, CS 244B) 247.06 357.33 P 2.14 (Course Project, Stanford University Computer) 93.6 345.33 P -0.25 (Science Department, Spring 1995.) 93.6 333.33 P (6.) 72 317.33 T 0.55 (John Ioannidis and Gerald Q. Maguire Jr) 93.6 317.33 P 0.55 (., \322The) 259.96 317.33 P -0.47 (Design and Implementation of a Mobile Internet-) 93.6 305.33 P 2.63 (working Architecture.\323) 93.6 293.33 P 2 F 2.63 (1993 W) 194.12 293.33 P 2.63 (inter USENIX,) 227.04 293.33 P 0 F -0.25 (Jan. 1993.) 93.6 281.33 P (7.) 72 265.33 T 0.78 (David B. Johnson, and Charles Perkins, \322Route) 93.6 265.33 P 2.06 (Optimization in Mobile IP) 93.6 253.33 P 2.06 (.\323) 204.52 253.33 P 2 F 2.06 (Network W) 216.03 253.33 P 2.06 (orking) 261.89 253.33 P -0.01 (Gr) 93.6 241.33 P -0.01 (oup, Internet Draft \050work in pr) 104.34 241.33 P -0.01 (ogr) 227.27 241.33 P -0.01 (ess\051,) 240.79 241.33 P 0 F -0.01 ( July 7,) 258.84 241.33 P (1995.) 93.6 229.33 T (8.) 72 213.33 T 2.91 (The Linux Journal, P) 93.6 213.33 P 2.91 (.O. Box 85867, Seattle,) 185.66 213.33 P 2.37 (W) 93.6 201.33 P 2.37 (ashington, 98145. Editor Phil Hughes, pub-) 102.24 201.33 P -0.25 (lisher Robert F) 93.6 189.33 P -0.25 (. Y) 152.3 189.33 P -0.25 (oung, 1 \0501\051, March 1994.) 163.27 189.33 P (9.) 72 173.33 T 0.09 (P) 93.6 173.33 P 0.09 (. Mockapetris, \322Domain Names - Concepts and) 98.05 173.33 P -0.25 (Facilities.\323) 93.6 161.33 P 2 F -0.25 (RFC 1034) 139.46 161.33 P 0 F -0.25 (, November 1987.) 180.6 161.33 P (10.) 72 145.33 T -0.52 (C. Perkins, \322IP Mobility Support.\323) 93.6 145.33 P 2 F -0.52 (Internet Engi-) 232.14 145.33 P 3.4 (neering T) 93.6 133.33 P 3.4 (ask For) 134.7 133.33 P 3.4 (ce, Internet Draft \050work in) 168.56 133.33 P -0.25 (pr) 93.6 121.33 P -0.25 (ogr) 102.12 121.33 P -0.25 (ess\051,) 115.64 121.33 P 0 F -0.25 ( July 8, 1995.) 133.69 121.33 P (1) 72 105.33 T (1.) 76.63 105.33 T 3.19 (Charles E. Perkins and T) 93.6 105.33 P 3.19 (angirala Jagannadh,) 205.39 105.33 P 1.77 (\322DHCP for Mobile Networking with TCP/IP) 93.6 93.33 P 1.77 (.\323) 281.06 93.33 P 2 F -0.25 (IEEE ISCC\32595) 93.6 81.33 P 0 F -0.25 (, Alexandria, June 1995.) 152.51 81.33 P (12.) 324 713.33 T 0.13 (Charles Perkins, and David B. Johnson, \322Mobil-) 345.6 713.33 P -0.34 (ity Support in IPv6.\323) 345.6 701.33 P 2 F -0.34 (IPv6 W) 430.1 701.33 P -0.34 (orking Gr) 458.55 701.33 P -0.34 (oup,) 497.57 701.33 P -0.34 (Inter-) 517.23 701.33 P -0.25 (net Draft \050work in pr) 345.6 689.33 P -0.25 (ogr) 428.12 689.33 P -0.25 (ess\051) 441.64 689.33 P 0 F -0.25 (, July 8, 1995.) 457.19 689.33 P (13.) 324 673.33 T -0.36 (Charles E. Perkins, Andrew Myles, and David B.) 345.6 673.33 P 2.77 (Johnson, \322The Internet Mobile Host Protocol) 345.6 661.33 P -0.25 (\050IMHP\051.\323) 345.6 649.33 P 2 F -0.25 (Pr) 386.45 649.33 P -0.25 (oceedings of INET\325 94,) 396.08 649.33 P 0 F -0.25 ( June 1994.) 488.1 649.33 P (14.) 324 633.33 T 3.72 (M. Pettus, \322Unlicensed Radio Using Spread) 345.6 633.33 P 3.37 (Spectrum: A T) 345.6 621.33 P 3.37 (echnical Overview) 411.08 621.33 P 3.37 (.\323 A) 489.05 621.33 P 3.37 (vailable) 508.34 621.33 P -0.25 (from Metricom, Inc., Sept. 27, 1993.) 345.6 609.33 P (15.) 324 593.33 T 0.12 (J. H. Saltzer) 345.6 593.33 P 0.12 (, D. P) 394.32 593.33 P 0.12 (. Reed, and D. D. Clark, \322End-) 416.24 593.33 P 3.92 (to-End ar) 345.6 581.33 P 3.92 (guments in System Design.\323) 386.83 581.33 P 2 F 3.92 (ACM) 518.89 581.33 P 5.38 (T) 345.6 569.33 P 5.38 (ransactions on Computer Systems) 350.61 569.33 P 0 F 5.38 (, 2 \0504\051,) 502.58 569.33 P -0.25 (November 1984.) 345.6 557.33 P (16.) 324 541.33 T 1.31 (Fumio T) 345.6 541.33 P 1.31 (eraoka, Keisuke Uehara, Hideki Suna-) 380.94 541.33 P -0.28 (hara, and Jun Murai, \322VIP: A Protocol Providing) 345.6 529.33 P 2.06 (Host Mobility) 345.6 517.33 P 2.06 (.\323) 403.41 517.33 P 2 F 2.06 (Communications of the ACM,) 414.92 517.33 P 0 F -0.25 (Aug. 1994.) 345.6 505.33 P (17.) 324 489.33 T 0.81 (Mark W) 345.6 489.33 P 0.81 (eiser) 379.21 489.33 P 0.81 (, \322The Computer for the 21st Cen-) 397.69 489.33 P -0.25 (tury) 345.6 477.33 P -0.25 (.\323) 361.06 477.33 P 2 F -0.25 (Scienti\336c American) 370.25 477.33 P 0 F -0.25 (, September 1991.) 448.04 477.33 P 1 12 Q (1) 324 446 T (1. Biographical Information) 329.34 446 T 1 10 Q 1.03 (Mary Baker) 324 423.33 P 0 F 1.03 ( is an assistant professor in the Depart-) 377.52 423.33 P 0.92 (ments of Computer Science and Electrical Engineer-) 324 411.33 P 4.12 (ing at Stanford University) 324 399.33 P 4.12 (. Her interests include) 439.88 399.33 P 1.15 (operating systems, distributed systems, and software) 324 387.33 P 1.58 (fault tolerance. She received her Ph.D. in computer) 324 375.33 P (science in 1994 from U. C. Berkeley) 324 363.33 T (.) 469.99 363.33 T 1 F 0.33 (Xinhua Zhao) 324 343.33 P 0 F 0.33 ( is a Ph.D. candidate in the Department) 380.74 343.33 P 3.66 (of Computer Science at Stanford University) 324 331.33 P 3.66 (. His) 517.45 331.33 P 0.17 (interests include operating systems and computer net-) 324 319.33 P -0.1 (works. Before coming to Stanford, he was a student at) 324 307.33 P (the University of Science and T) 324 295.33 T (echnology in China.) 450.22 295.33 T 1 F 0.99 (Stuart Cheshir) 324 275.33 P 0.99 (e) 388.42 275.33 P 0 F 0.99 ( is a Ph.D. candidate in the Depart-) 392.86 275.33 P -0.08 (ment of Computer Science at Stanford University) 324 263.33 P -0.08 (. His) 521.19 263.33 P 3.54 (interests include networks and operating systems.) 324 251.33 P 0.59 (Cheshire received his \336rst class honours degree from) 324 239.33 P (Sidney Sussex College, Cambridge in 1989.) 324 227.33 T 1 F 1.17 (Jonathan Stone) 324 207.33 P 0 F 1.17 ( is a Ph.D. candidate in the Depart-) 391.57 207.33 P -0.08 (ment of Computer Science at Stanford University) 324 195.33 P -0.08 (. His) 521.19 195.33 P 0.26 (interests include networking, distributed systems, and) 324 183.33 P 0.62 (operating systems. He received an M.S. with distinc-) 324 171.33 P 0.97 (tion in computer science in 1991 from V) 324 159.33 P 0.97 (ictoria Uni-) 492.65 159.33 P (versity of W) 324 147.33 T (ellington, New Zealand.) 373.19 147.33 T (The authors\325 email addresses are) 324 127.33 T ({mgbaker) 324 115.33 T (,cheshire,jonathan,zhao}@cs.stanford.edu.) 363.39 115.33 T (Their postal address is Computer Science Depart-) 324 95.33 T (ment, Stanford University) 324 83.33 T (, Stanford, CA 94305.) 427.51 83.33 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "13" 13 %%Trailer %%BoundingBox: 0 0 612 792 %%PageOrder: Ascend %%Pages: 13 %%DocumentFonts: Times-Roman %%+ Times-Bold %%+ Times-Italic %%+ Symbol %%+ Courier %%EOF