📄 rfc1144.ps
字号:
13(at)m13(gateways)mt-rom.330 @sf 150 879 p (data.)s17(These)m12(short)m11(packets)m11(mean)m12(little)m11(interference)m12(between)m11(interactive)m11(and)m12(bulk)m11(data)m12(traf)m(\014c)s150 936 p (\(see)s11(sec.)m12(5.2\).)m221 998 p (Another)s14(design)m14(goal)m14(is)m15(that)m14(the)m14(compression)m15(protocol)m14(be)m14(based)m14(solely)m15(on)m14(information)m150 1054 p (guaranteed)s9(to)m9(be)m10(known)m9(to)m9(both)m9(ends)m9(of)m9 r 97 c10(single)m9(serial)m9(link.)m16(Consider)m10(the)m9(topology)m9(shown)m9(in)m150 1111 p (\014g.)s11 r 49 c11(where)m11(communicating)m11(hosts)m11 r 65 c11(and)m10 r 66 c11(are)m11(on)m11(separate)m11(local)m11(area)m11(nets)m11(\(the)m11(heavy)m11(black)m150 1167 p (lines\))s10(and)m10(the)m10(nets)m10(are)m10(connected)m10(by)m10(two)m10(serial)m10(links)m10(\(the)m10(open)m10(lines)m10(between)m11(gateways)m10(C{D)m150 1224 p (and)s15(E{F\).)mt-rom.240 @sf 338 1207 p 53 ct-rom.330 @sf 375 1224 p (One)s16(compression)m15(possibility)m16(would)m15(be)m15(to)m16(convert)m15(each)m16(TCP/IP)m15(conversation)m150 1280 p (into)s13 r 97 c13(semantically)m13(equivalent)m13(conversation)m12(in)m13 r 97 c13(protocol)m13(with)m13(smaller)m13(headers,)m13(e.g.,)m13(to)m13(an)m150 1337 p (X.25)s16(call.)m32(But,)m18(because)m16(of)m16(routing)m17(transients)m16(or)m16(multipathing,)m18(it')m-2 r 115 c16(entirely)m16(possible)m16(that)m150 1393 p (some)s13(of)m13(the)m12(A{B)m13(traf)m(\014c)s12(will)m13(follow)m13(the)m13(A-C-D-B)m12(path)m13(and)m13(some)m13(will)m13(follow)m12(the)m13(A-E-F-B)m150 1450 p (path.)s25(Similarly)m-2 r 44 c14(it')m-2 r 115 c13(possible)m14(that)m14 r 65 ccmsy10.329 @sf 3 r 33 ct-rom.330 @sf 3 r 66 c15(traf)m(\014c)s13(will)m14(\015ow)m14(A-C-D-B)m14(and)m14 r 66 ccmsy10.329 @sf 3 r 33 ct-rom.330 @sf 3 r 65 c14(traf)m(\014c)s13(will)m150 1506 p (\015ow)s9(B-F-E-A.)m9(None)m10(of)m9(the)m9(gateways)m9(can)m9(count)m9(on)m10(seeing)m9(all)m9(the)m9(packets)m9(in)m9 r 97 c10(particular)m9(TCP)m150 1562 p (conversation)s11(and)m10 r 97 c11(compression)m10(algorithm)m11(that)m10(works)m11(for)m11(such)m10 r 97 c11(topology)m10(cannot)m11(be)m10(tied)m11(to)m150 1619 p (the)s11(TCP)m12(connection)m11(syntax.)m221 1681 p 65 c9(physical)m10(link)m9(treated)m10(as)m9(two,)m10(independent,)m10(simplex)m10(links)m9(\(one)m10(each)m10(direction\))m9(imposes)m150 1738 p (the)s11(minimum)m11(requirements)m12(on)m11(topology)m-2 r 44 c10(routing)m11(and)m12(pipelining.)m17(The)m11(ends)m11(of)m11(each)m12(simplex)m150 1794 p (link)s12(only)m13(have)m12(to)m12(agree)m12(on)m13(the)m12(most)m12(recent)m12(packet\(s\))m13(sent)m12(on)m12(that)m13(link.)m19(Thus,)m13(although)m12(any)m150 1851 p (compression)s13(scheme)m13(involves)m12(shared)m13(state,)m13(this)m13(state)m13(is)m13(spatially)m13(and)m13(temporally)m12(local)m13(and)m150 1907 p (adheres)s14(to)m14(Dave)m13(Clark')m-1 r 115 c13(principle)m14(of)mt-ita.330 @sf 13(fate)m14(sharing)mt-rom.330 @sf 91 c52 c(]:)s22(The)m14(two)m14(ends)m13(can)m14(only)m14(disagree)m14(on)m150 1963 p (the)s12(state)m12(if)m11(the)m12(link)m12(connecting)m12(them)m12(is)m11(inoperable,)m12(in)m12(which)m12(case)m12(the)m12(disagreement)m11(doesn')m116 c150 2020 p (matter)s-2 r 46 c150 2327 p 660 2 rut-rom.180 @sf 200 2364 p 53 ct-rom.270 @sf 217 2379 p (Note)s11(that)m10(although)m11(the)m10(TCP)m11(endpoints)m10(are)m11 r 65 c10(and)m10(B,)m11(in)m10(this)m11(example)m10(compression/decompression)m11(must)m10(be)m150 2425 p (done)s10(at)m10(the)m9(gateway)m10(serial)m10(links,)m10(i.e.,)m10(between)m10 r 67 c10(and)m9 r 68 c10(and)m10(between)m10 r 69 c10(and)m10 r 70 c-2 r 46 c8(Since)m10 r 65 c10(and)m10 r 66 c10(are)m10(using)m9(IP)m-3 r 44 c9(they)m150 2471 p (cannot)s12(know)m11(that)m12(their)m12(communication)m11(path)m12(includes)m12 r 97 c11(low)m12(speed)m12(serial)m11(link.)m21(It)m12(is)m12(clearly)m11 r 97 c12(requirement)m12(that)m150 2516 p (compression)s9(not)m9(break)m9(the)m9(IP)m8(model,)m9(i.e.,)m9(that)m9(compression)m9(function)m9(between)m9(intermediate)m9(systems)m9(and)m9(not)m8(just)m150 2562 p (between)s9(end)m10(systems.)mt-rom.300 @sf 150 2724 p (Jacobson)s1357([Page)m11(3])m@eoprestore%%Page: 4 6save/Times-SmallCaps /Times-Roman SmallCapsFont/Times-SmallCaps /t-romsc.300 ReEncodeForTeX /t-romsc.300 /t-romsc.300 41.666629 TeXPSmakefont def/Times-Roman /t-rom.300 ReEncodeForTeX /t-rom.300 /t-rom.300 41.666629 TeXPSmakefont def/Times-Roman /t-rom.330 ReEncodeForTeX /t-rom.330 /t-rom.330 45.833249 TeXPSmakefont def/Helvetica /h-med.330 ReEncodeForTeX /h-med.330 /h-med.330 45.833249 TeXPSmakefont def/Times-Bold /t-bol.420 ReEncodeForTeX /t-bol.420 /t-bol.420 58.333229 TeXPSmakefont def/Times-Bold /t-bol.360 ReEncodeForTeX /t-bol.360 /t-bol.360 49.999929 TeXPSmakefont def/Times-Roman /t-rom.240 ReEncodeForTeX /t-rom.240 /t-rom.240 33.333265 TeXPSmakefont def1 /cmsy10.329 @newfontcmsy10.329 @sf[<FFFFFFC0FFFFFFC000000000000000000000000000000000000000000000000000000000000000 C0000003C000000F0000003C000000F0000003C000000F0000001C00000078000001E000000780 00001E00000078000000E0000000780000001E0000000780000001E0000000780000001C000000 0F00000003C0000000F00000003C0000000F00000003C0000000C0> 32 36 -4 7 35.353] 20 @dc/Times-Italic /t-ita.330 ReEncodeForTeX /t-ita.330 /t-ita.330 45.833249 TeXPSmakefont def/Times-Roman /t-rom.180 ReEncodeForTeX /t-rom.180 /t-rom.180 24.999965 TeXPSmakefont def/Times-Roman /t-rom.270 ReEncodeForTeX /t-rom.270 /t-rom.270 37.499947 TeXPSmakefont def1 /cmsy9.300 @newfontcmsy9.300 @sf[<01800180038003000700060006000E000C001C001800180038003000300070006000E000C000C0 00E00060007000300030003800180018001C000C000E000600060007000300038001800180> 16 38 -3 10 14.932] 104 @dc/Times-Italic /t-ita.270 ReEncodeForTeX /t-ita.270 /t-ita.270 37.499947 TeXPSmakefont def[<C000C000E0006000700030003000380018001C000C000C000E0006000600070003000380018001 80038003000700060006000E000C000C001C00180038003000300070006000E000C000C000> 16 38 -2 10 14.932] 105 @dc4 @bop1t-romsc.300 @sf 150 50 p (rfc)s10 r 49 c(144)st-rom.300 @sf 418(Compressing)m10(TCP/IP)m10(Headers)m330(February)m10(1990)m375 241 p 18945146 16482269 1403190 12498534 33055334 40126873 startTexFig %!PS-Adobe-2.0%%%Creator:Cricket Draw 1.1%%%Title:tcp-ip.header%%%CreationDate: 2/13/89 9:15 PM%%%DocumentFonts: Helvetica%%%+ Helvetica-Bold%%BoundingBox: 21.331 190.0 502.5 610.0%%%Pages:(atend) %%%EndComments/vmstate save def0 780 translate 1 -1 scale/$cricket 210 dict def$cricket begin2 setlinecap/d /def load def/b {bind d}bind d/l {load d}b/e /exch l/x {e d}b/C /closepath l/CP /currentpoint l/SH /show l/g /gsave l/G /grestore l/i /if l/I /ifelse l/v /getinterval l/V /putinterval l/W /stringwidth l/SG /setgray l/N /newpath l/M /moveto l/L /lineto l/R /rlineto l/T /translate l/D /dup l/* /mul l/+ /add l/- /sub l/? /div l/ma {* +}b /h {D * e D ma sqrt}dsystemdict D /setpacking known D {/packstate currentpacking d D setpacking}i /pack? xbegin /settransfer load /setscreen load end /setscreen x /settransfer x/dt [ currenttransfer ] cvx d /ds [ currentscreen D [ e ] cvx /devSpot x ] cvx d /jp {e [ 3 1 roll aload pop counttomark -1 roll aload pop ] cvx}b /settransfer {dt jp settransfer}b /macvec dup where not { 256 array d macvec 0 StandardEncoding0 128 getinterval putintervalmacvec 16#27 /quotesingle putmacvec 16#60 /grave put/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 /degree /cent /sterling /section /bullet /paragraph /germandbls/registersans /copyrightsans /trademarksans /acute /dieresis /notequal /AE /Oslash/infinity /plusminus /lessequal /greaterequal /yen /mu /partialdiff /summation/product /pi /integral /ordfeminine /ordmasculine /Omega /ae /oslash/questiondown /exclamdown /logicalnot /radical /florin /approxequal /Delta /guillemotleft/guillemotright /ellipsis /space /Aacute /Atilde /Otilde /OE /oe/endash /emdash /quotedblleft /quotedblright /quoteleft /quoteright /divide /lozenge/ydieresis /Ydieresis /fraction /currency /guilsinglleft /guilsinglright /fi /fl/daggerdbl /periodcentered /quotesinglbase /quotedblbase /perthousand/Acircumflex /Ecircumflex /Agrave/Edieresis /Egrave /Iacute /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex/apple /Ograve /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde/macron /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caronmacvec 128 128 v astore pop}{pop pop}I/ad {+ d}b /sd {- d}b /td {* d}b /dd {? d}b/c {2 ? e 2 ? e}b /n0 {D 0 eq {pop}}b/m1 matrix d /m2 matrix d /m3 matrix d/ct 0 d /s+ 0 d /po 0 d /ts 40 string d/s1 (|______) dts 0 s1 V/sp ( ) d/SM {/m3 m3 currentmatrix d}b /RM {m3 setmatrix}b /dpi 72 0 matrix defaultmatrix dtransform h d/inch {72 *}b/cm {28.3465 *}b/pi 3.1415923 d/fs 256 string d /sh {m1 m2 copy 2 3 -1 roll sin put m2 concat}b /fc {T n0 {rotate}I scale n0 {sh}I}b /a {/ea x /sa x SM -1 * scale 0 0 1 sa ea 2 copy gt {arcn}{arc}I RM}b /cn {SM T x1 y1 scale 0 0 1 ct 90 * D 90 + arc /ct ct 1 ad RM}b /rr {/y1 x /x1 x /ct 0 d c y1 - /yr x x1 - /xr x N xr yr cn xr neg yr cn xr neg yr neg cn xr yr neg cn C}b /dg {/lc x clip rotate T /dy x /dx x0 eq {N 1 eq {1 10 lc ? 10{log dy * 0 e neg M dx 0 R}for lc 10 gt{dy 0 e neg M dx 0 R}i}{lc 1 eq {0 0 e neg M dx 0 R}{/st dy lc 1 - dd 0 1 lc 1 - {st * 0 e neg M dx 0 R}for}I}Istroke}{1 eq {/st 0 d /inc 10 lc 1 + dd dx dy lt {/rd dx d}{/rd dy d}I1 1 lc {/di st 1 + log 10 log ? rd td N dx di - dy di - 0 360 a C stroke /st st inc ad}for} {dx dy lt {/st dx lc dd}{/st dy lc dd}I lc {N dx dy 0 360 a C stroke /dx dx st sd /dy dy st sd}repeat} I}I}b/sb {/ea x /ia x /sa x /yr x /xr x ea sa lt{/ia ia neg d}i N sa ia ea{D /x1 e cos xr td /y1 e sin yr * neg d x1 y1 M 0 0 L}for}b/bm {/y1 x /x1 x bitgray SG x1 y1 /md where {pop md /invertflag get not}{true}I [x1 0 0 y1 0 0] {currentfile picstring readhexstring pop}imagemask}b/c1 .166667 d /c2 .833333 d /c3 .5 d/p3 {+ c3 *}b /dc{/y2 x /x2 x x0 c1 * x1 c2 ma y0 c1 * y1 c2 ma x1 c2 * x2 c1 ma y1 c2 * y2 c1 ma x1 x2 p3 y1 y2 p3 curveto}b /mp {/x0 x1 d /y0 y1 d /x1 x2 d /y1 y2 d}b/SPOLY_INIT{/SPOLY_SAVE save d /cls x/M {2 copy /y0 x /x0 x moveto /M /moveto load d}d/L {/y1 x /x1 x x0 x1 p3 y0 y1 p3cls {/yy y1 d /xx x1 d /C {mp xx yy dc systemdict /closepath get exec}d M}{lineto}I /L {{dc mp}stopped {/L {pop pop}d /noerr false d}i}d}d}d/SPOLY_END {SPOLY_SAVE restore}b/ah {g 2 copy T 3 -1 roll - 3 1 roll e - atan rotate os 0 M hl hw R 0 hw 2 * neg R C fill G}b/da {g stroke G g currentlinewidth D -10 * D /hl x -2 ? /os x 2 * /hw x /bp x /ep x.2 setlinewidth 0 setlinejoin g flattenpath {}{}{}{} pathforall counttomark 8 eq {8 4 roll}icounttomark 8 gt {count 4 roll mark count 8 - 1 roll cleartomark}icounttomark 6 eq {6 2 roll 2 copy 8 2 roll}icounttomark 4 eq {4 copy}i GN bp {4 2 roll ah}{pop pop pop pop}I ep {ah}{cleartomark mark}I G}b/tp {sm0 transform}b /sfp {} d /op {{tp moveto}{tp lineto}{3{tp 6 2 roll}repeat curveto}{C} pathforall sfp stroke}b /sm0 matrix d /sm1 matrix d/so {SG /eg x /tg x /yt x /xt x xt 0 ne yt 0 ne or {xt abs yt abs gt {/tt xt abs d}{/tt yt abs d}Itt 144 gt {/ct dpi 2 dd /sfp{g eofill G}d}{tt 72 gt {/ct dpi 4 dd /sfp{g eofill G}d}{/ct dpi 4 dd}I}I/ig tg eg - ct ? neg d/x1 xt ct ? neg d /y1 yt ct dd 1 0 0 1 xt yt sm0 astore pop 1 0 0 1 x1 y1 neg sm1 astore popg op G1 1 ct{g ig * tg + SG sm0 D sm1 e concatmatrix pop op G}for}i}b/css {T 0 0 M xsp 0 32 Txt widthshow}b/sc {g /xsp x /tg x /eg x /sg x /y1 x /x1 x /Txt x/sst dpi 4 dd /y2 y1 sst dd /x2 x1 neg sst ddeg sg eq {/sg sg .001 sd}i/ig eg sg - sst ? neg d g tg SG x1 y1 neg css eg ig + ig sg {SG x2 y2 css}for G x2 y2 css G}b /gbb {pathbbox /y1 x /x1 x /y2 x /x2 x /x3 x1 x2 sd /y3 y1 y2 sd}b /radf {/dn dpi 300 ? 8 * 24 ad /ig rg 255 ? dn ddsg 255 ? SG eoclip gbb x2 x3 2 ? + y2 y3 2 ? + T Nx3 y3 h 2 ? D dn ? neg 1 {0 0 3 -1 roll 0 360 arc C fill currentgray ig + SG}for}b/dof {/ff x eoclip 180 - rotate gbbx1 y1 T 180 rotate x3 y3 scale0 1 255 {fs e D 255 ? ff rg * sg + round cvi put}for1 256 8 [1 0 0 256 0 0] fs image}b/gft {radf {{} dof}{{1 e - 9 * 1 + log 1 e -}dof}}b/df {g 2 copy eq {SG cleartomark mark fill}{255 * e 255 * e 1 index - /rg x /sg x /gft load e get exec}I G}b /oc{/tl x /ju x /di 0 d g flattenpath{/y1 x /x1 x}{/y2 x /x2 x /dx x2 x1 sd /dy y2 y1 sd /di dx D * dy D ma sqrt di ad /x1 x2 d /y1 y2 d}{}{/y2 x /x2 x /dx x2 x1 sd /dy y2 y1 sd /di dx D * dy D ma sqrt d}pathforallju 0 eq{/po 0 store}iju 1 eq{/po di tl - 2 ? store}iju 2 eq{/po di tl - store}i G}b/pt {/FM true d /os x /sr x /os os sr 0 1 v W pop 2 ? ad /pd 0 d /sl os d /ct 0 d g flattenpath {mtp}{ltp}{ctp}{cpp}pathforall G}b/mtp {/y1 x /x1 x /x2 x1 d /y2 y1 d /ovr FM {os /FM false d}{0}I d x1 y1 transform /cpy x /cpx x}b/ltp {/x3 x1 d /y3 y1 d /y1 x /x1 x /dx x1 x3 sd /dy y1 y3 sd /di dx D * dy D ma sqrt d /di 0 ne{/dsx dx di ? ovr td /dsy dy di ? ovr td x3 dsx + y3 dsy + transform/cpy x /cpx x /pd pd di ad {sl pd le {ct sr length lt{sch}{exit}I}{/ovr sl pd sd exit}I}loop}i}b/ctp {}b /cpp {x2 y2 ltp x2 y2 mtp}b /sch {/ch sr ct 1 v d /ct ct 1 ad/cw ch W pop 2 dd g cpx cpy itransform T dy dx atan rotate cw neg 0 M ch SHct sr length lt{sr ct 1 v W pop 2 ? 0 rmoveto}iCP transform /cpy x /cpx x G/sl sl cw ad /po po cw 2 ma store ct sr length lt{/sl sl sr ct 1 v W pop 2 ? ad}i}b/cpd {/newslots x D length newslots + dict D 3 1 roll begin {1 index /FID ne {def}i}forall pop pop end}b/of {/ui 0 d /pw 1000 24 dd /nn x /bn x ui 0 eq {/ui bn findfontdup /UniqueID known {/UniqueID get 1 add}{pop 1}ifelsedef} if/bfd bn findfont def /ct bfd maxlength 1 ad bfd /UniqueID known not{/ct ct 1 ad} if/ofd ct dict def bfd{ exch dup /FID ne{exch ofd 3 1 roll put}{pop pop} ifelse}forallofd /FontName nn putofd /PaintType 2 putofd /StrokeWidth pw putofd /UniqueID ui putnn ofd definefont pop}b/uf {20 dict begin/ui x e /BaseFont e findfont dui 0 eq {/ui BaseFont D /UniqueID known {/UniqueID get 1 +}{pop 1}I d}i/FontType 3 d/Upos BaseFont /FontInfo 2 copy known{get /UnderlinePosition 2 copy known{get}{pop pop -100 }I}{ pop pop -100 }I d/Uwid BaseFont /F
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -