`US 6,546,425 B1
`(10) Patent N0.:
`Hanson et al.
`
`(45) Date of Patent: Apr. 8, 2003
`
`U5006546425B1
`
`(54) METHOD AN I) APPARATUS FOR
`PROVIDING MOBILE AND OTHER
`INTERMITTENT CONNECTIVITY IN A
`COMPUTING ENVIRONMENT
`
`(75)
`
`Inventors: Aaron D. Hanson, Seattle, WA (US);
`Emil A. Sturniolo, Medina, OH (US);
`Anatoly Menn, Seattle, WA (US); Erik
`D. Olson, Seattle, WA (US), Joseph T.
`Savarese, Edmonds, WA (US)
`
`(73) Assignee: Netmotion Wireless, Inc., Seattle, WA
`(US)
`
`( * ) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(21) Appl. N0.: 09/330,310
`
`(22)
`
`Filed:
`
`Jun. 11, 1999
`
`Related US. Application Data
`Provisional application No. 60/103,598, filed on Oct. 9,
`1998.
`
`(60)
`
`Int. Cl.7 ................................................ G06F 15/16
`(51)
`[1.8. C].
`iiiiiiiiiiiiiiiiiiiiiiii 709/227; 709/228; 709/330
`(52)
`(58) Field of Search ................................. 709/245, 250,
`709/330, 229, 228, 227, 230, 203, 220,
`221, 202
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`4,837,800 A
`4,912,756 A
`5,159,592 A
`5181200 A
`5,212,806 A
`5,224,098 A
`5,276,680 A
`5.307.490 A
`5,325,361 A *
`5,349,678 A
`5,410,543 A
`
`6/1989 Freeburg et al.
`3/1990 Hop
`10/1992 Perkins
`1/1993 Harrison
`5/1993 Natarajan
`6/1993 Bird et al.
`1/1994 Messenger
`4/1994 Davidson et al.
`6/1994 Lederel' et a1.
`9/1994 Morris et al.
`4/1995 Scitz ct al.
`
`............. 370/401
`
`OTHER PUBLICATIONS
`
`Montenegro, 0., Sun Microsystems, Inc., Internet Draft,
`“Reverse Tunneling for Mobile IP,” Jan. 12, 1997.
`Bakre, A.; Badrinath, B,R,, “liTCP:
`Indirect TCP for
`Mobile llosts,” Department of Computer Science, Rutgers
`University, Piscataway, NJ 08855, DCS—TR—314, Oct.
`1994.
`
`Internet Draft Piscitello, D., Phiier, L. Core Competence,
`Wang, Y., llovey, R. Bellcore: “Mobile Network Computing
`Protocol (MNCP),” Sep. 3, 1997.
`Maltz, David A. Bhagwat, Pravin, “MSOCKS: An Archi-
`tecture
`for Transport Layer Mobility,”
`1998
`IEEL’,
`0—7803—4386—7/98.
`
`(List continued on next page.)
`Primary Examiner—Mehmet B. Geckil
`(74) Attorney. Agent, or Firm—Nixon & Vanderhye RC.
`(57)
`ABSTRACT
`
`A seamless solution transparently addresses the character-
`istics of nomadic systems, and enables existing network
`applications to run reliably in mobile environments. The
`solution extends the enterprise network,
`letting network
`managers provide mobile users with easy access to the same
`applications as stationary users without sacrificing reliability
`or centralized management. The solution combines advan-
`tages of existing wire-line network standards with emerging
`mobile standards to create a solution that works with exist-
`ing network applications. A Mobility Management Server
`coupled to the mobile network maintains the state of each of
`any number of Mobile End Systems and handles the com—
`plex session management required to maintain persistent
`connections to the network and to other peer processes. If a
`Mobile End System becomes unreachable, suspends, or
`changes network address (e.g., due to roaming from one
`network interconnect to another), the Mobility Management
`Server maintains the connection to the associated peer
`task—allowing the Mobile End System to maintain a con-
`tinuous connection even though it may temporarily lose
`contact with its network medium. In one example, Mobility
`Management Server communicates with Mobile End Sys-
`tems using Remote Procedure Call and Internet Mobility
`Protocols.
`
`(I .ist continued on next page.)
`
`76 Claims, 32 Drawing Sheets
`
`10!.
`
`101
`
`Mobile Managemznl Sysllm {WAS}
`23;
`224
`: 234]
`110'
`_H‘Conlml, User Intrrfnce
`
`Print Services
`W99
`Nahum File and
`”'0‘! 3M4» “3‘9“?"
`
`‘1!!de NT
`\
`Daiuhuse
`User/Security
`2”
`23E
`
`
`
`
`
`
`
`
`Fizsdeind Systems (ES)
`Network
`Applications
`File/Friat
`
`
`
`
`
`Mobile End Sysle'n (MES)
`Control. User Inlednce
`
`
`
`
`
`
`
`
`
`
`
`205’
`
`Appllailnns
`
`
`
` Neng'k
`
`
`Mdnss Translullnn
`
`220/ [Intermediate Dr'mr)
`
`
`
`
`
`
`
`
`TCP. UDP Transmit: II
`
`
`
`
`
`110
`
`Microsoft Corporation
`Exhibit 1016-00001
`
`Microsoft Corporation
`
`
`
`6/1995 Derby et all,
`5.426.637 A
`8/1995 Wrabetz et al.
`5,442,791 A
`8/1995 Gleeson et al.
`5,446,736 A
`12/1995 Miller ct al.
`5,475,819 A
`1/1996 Hershey
`5,481,535 A
`2/1996 Baker et al.
`5,490,139 A
`2/1996 Goldsmith et al.
`5,491,800 A
`3/1996 Pcttus
`5,499,343 A
`5/1996 Pettus et al.
`5,515,508 A
`8/1996 Pettus
`5,548,723 A
`9/1996 Mousseau et al.
`5.559.800 A
`10/1996 W'ant et al.
`5.564.070 A
`5.566.225 A * 10/1996 Haas .......................... 455/423
`5,568,645 A
`10/1996 Morris et al.
`5,572,528 A
`11/1996 Shuen
`5,574,774 A
`11/1996 Alhbcrg et al.
`5,602,916 A
`2/1997 Grube et al.
`5,610,595 A
`3/1997 Garrabrant et al.
`5,623,601 A
`4/1997 Vu
`5,633,868 A
`5/1997 Baldwin ct al.
`5,657,390 A
`8/1997 Elgamal et al.
`5,664,007 A
`9/1997 Samadi et al.
`5,673,322 A
`9/1997 Pepe et al.
`5,682,534 A
`10/1997 Kapoor et al.
`5,717,737 A
`2/‘1998 Doviak et al.
`5,721,818 A
`2/1998 Ilanif el al.
`5.724.346 A
`3/1998 Kobuyushi et al.
`5,732,074 A
`3/1998 Spaur et al.
`5,748,897 A
`5/1998 Katiyar
`5,752,185 A
`5/1998 Ahuja
`5,754,774 A
`5/1998 Bittinger et al.
`5,758,186 A
`5/1998 Hamilton et al.
`5,768,525 A
`6/1998 Kralowetz et al.
`5,771,459 A
`6/1998 Demery et al.
`5.784.643 A
`7/1998 Shields
`5,796,727 A
`8/1998 Harrison et al.
`5,848,064 A
`12"1998 Cowan
`5.856.974 A
`1/1999 Gervuis et al.
`5.889.816 A
`3/1999 Agrawal et al.
`5,909,431 A *
`6/1999 Kuthyar et al.
`5,935,212 A
`8/1999 Kalajan et al.
`5,968,176 A
`10/1999 Nessctt ct al.
`6,006,090 A
`12/1999 Coleman et al,
`6,091,951 A
`7/2000 Sturniolo et 6.1.
`6,112,085 A *
`8/2000 Garner et al.
`............... 455/428
`6,147,986 A
`11/2000 Orsic
`6,154,461 A
`11/2000 Sturniolo et. al.
`6,161,123 A
`12/2000 Renouard et al.
`6,167,513 A
`12/2000 lnoue et al.
`6.170.057 B1
`1/2001 Inoue et al.
`............... 709/215
`6.336.135 B1 *
`1/2001 Niblett et al.
`6,201,962 B1 *
`3/2001 Sturniolo et al.
`455/432
`6,230,004 B1
`5/2001 Hall et al.
`*
`6,233,617 Bl
`5/2001 Rothwein ct al.
`*
`6,233,619 Bl
`5/2001 Narisi et a1,
`*
`6,236,652 Bl
`5/2001 Preston et al.
`6,243,753 B1 *
`6/2001 Machin et al.
`6,249,818 B1
`6/2001 Sharma
`6,256,739 B1 *
`7/2001 Skopp et al.
`6,308,281 B1
`10/2001 Hall, Jr. et al.
`
`709/227
`709/227
`
`370/349
`..
`.............. 709/227
`
`............... 709/229
`
`............. 370/260
`
`OTHER PUBLICATIONS
`
`Teknique, Data Sheet, TransNet II Wireless Gateway, Wire-
`less—A Wide Area Viewpoint, Shaumburg, IL, 3 pages.
`Teknique, Data Sheet, TransRMail, Schaumburg,
`IL, 2
`pages.
`
`Teknique, Data Sheet, TX5000 High Performance Commu-
`nication Processor, Schaumburg, IL, 2 pages (1994).
`
`US 6,546,425 B1
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`Teknique, Data Sheet, Optimized TCP/IP over Wireless,
`Schaumburg, IL, 5 pages.
`'l'eknique, Data Sheet, '1‘X1000 High Performance Commu-
`nication Processor, Schaumburg, IL, 2 pages (1994).
`Teknique, Data Sheet, TX2000 High Performance Commu-
`nication Processor, Schaumburg, IL, 2 pages.
`Teknique, Data Sheet, TransNet 11 Wireless Gateway Ser-
`vices, Schaumburg, IL, 2 pages.
`IBM, Leading the Way for wireless data communication,
`ARTour, Research Triangle Park, NC 4 pages (Sep. 1995).
`M3i RadioLink, Overview, Management
`through instant
`interactive information, 7 pages (Jun. 1995).
`Web site information, WRQ AtGuard, wwv.atguard,com
`(copyright 1999),
`Press release, “WRQ Licenses AtGuard to Symantee and
`ASCII Network Technology” (copyright 1999).
`Datability Software Systems Inc., New York, NY “Proposal
`Presented to Digital Equipment Corporation Large System
`Group, Marlboro, Massachusetts” (Jul, 7, 1983).
`Datability Software Systems Inc, New York, NY, Con—
`trol—PC, Information Management System, System Builder
`Manual, Dral't Version (Apr. 1986).
`Datability Software Systems Inc., New York, NY, “Remote
`Access Facility, User’s Guide” (copyright 1985, 1986, 1987,
`1988).
`NetMotion Wireless Product Documentation on CD; with 2
`page printout of contents,
`Kojo, M., Raatikainen, K., Alanko, T: Connecting Mobile
`Workstations to the Internet over a Digital Cellular Tele-
`phone Network. University of Helsinki, Department of
`Computer Science, Series
`of Publications C, No.
`C—l994—39. Sep. 1994. Published also in Proceedings of the
`Mobidata Workshop, Rutgers University, NJ, Nov. 1994.
`Alanko, 'l'., Kojo, M., Laamanen, ll., Liljeberg, M, Moil—
`anen, M., Raatikainen, K: Measured Performance of Data
`Transmission Over Cellular Telephone Networks. Computer
`Communications Review, 24(1994)5. Published also as
`Technical Report: University of Helsinki, Department of
`Computer Science, Series
`of Publications C, No.
`C—l994—53.
`
`Kojo, M., Alanko, T., Liljeberg, M., Raatikainen, K:
`Enhanced Communication Services for Mobile TCP/IP Net-
`working. University ol' Helsinki, Department 01' Computer
`Science, Series of Publications C, No, C—1995—15. Apr.
`1995.
`
`Liljeberg, M., Alanko, T., Kojo, M., Laamanen, H., Raati-
`kainen, K: Optimizing World4Wide Web for Weakly Con-
`nected Mobile Workstations: An Indirect Approach. In Proc.
`2nd International Workshop on Services in Distributed and
`Networked Environments (SDNE’95) .Iun. 5th—6th, 1995,
`Whistler, Canada.
`Laamanen, H: An Experiment of Dependability and Perfor—
`mance of GSM Access to Fixed Data Network, University of
`Helsinki, Department of Computer Science, Series of Pub-
`lications C, No. C4199544l. Sep. 1995.
`Kiiskinen J., Kojo, M., Liljeberg, M., Raatikainen, K: Data
`Channel Service for Wireless Telephone Links. University
`of Helsinki, Department of Computer Science, Series of
`Publications C, No. C—1996—1. Jan. 1996. Published also in
`Proceedings of the 2nd International Mobile Computing
`Conference, Hsinchu, Taiwan, ROC, Mar. 25—27, 1996,
`
`Microsoft Corporation
`Exhibit 1016-00002
`
`Microsoft Corporation
`
`
`
`US 6,546,425 131
`
`Page 3
`
`Iiljeberg, M., Helin, H., Kojo, M., Raatikainen, K:
`Enhanced Service for World—Wide Web in Mobile WAN
`Environment. University of Helsinki, Department of Com-
`puter Science, Series of Publications C, No. C—1996—28.
`Apr. 1996. (Revised version published in Proceedings of the
`IEEE Global Internet 1996 Conference, London, England,
`Nov. 20—21, 1996.)
`Alanko T., Kojo M., Iriljeberg M., Raatikainen K.: Mowgli:
`Improvements for Internet Applications Using Slow Wire-
`less Links. Proc. 8th IEEE International Symposium on
`Personal, Indoor and Mobile Radio Communications, Hel-
`sinki, Finland, Sep. 1997.
`Kojo M., Raatikainen K., Iiljeberg M., Kiiskinen J., Alanko
`'11: An Eflicient Transport Service for Slow Wireless Tele-
`phone Links. IEEE Journal on Selected Areas in Commu-
`nications, vol. 15, No. 7, Sep. 1997.
`“MOWGLI, Mobile Oifice Workstations using GSM Links,”
`University of Helsinki Dept. of Computer Science, Helsinki,
`Finland (Feb. 2000).
`Information Sciences Institute, “Transmission Control Pro-
`tocoliDARPA Internet Program Protocol Specification,”
`Sep.
`1981;
`http:/,fwww.csl.sony.co.jp/cgi7hin/
`hyperrfc?rfc793.txt.
`'l‘ransfer Protocol—H'I‘TP/
`Berners—Lee et al., “Hypertext
`1.0”, May 1996; http:,r'fwwwcisohio—state.edu/htbin/rfc/
`rfc1945.html.
`Microsoft Support Online Knowledge Base Search Results,
`“DHCP (Dynamic Host Configuration Protocol) Basics,”
`Article ID: Q120829, (Revision Date Sep. 24, 1996).
`O’Reilly Online Catalog, “Windows NT TCP/IP Network
`Administration,” Chapter 6, 25 pages( undated).
`WRQ White Paper, “TCPXIP: The Best Protocol for Remote
`Computing," 13 pages (Nov. 14, 1.9.96).
`WRQ White Paper, “Reducing the Cost of PC Connectiv-
`ity," 7 pages (Nov. 25, 1996).
`
`WRQ White Paper, “TCP Kernel Architecture—The Silent
`'I‘CPJIP Issue,” 4 pages (Nov. 14, 1996).
`WRQ White Paper, “Ilow WRQ’s '1‘CPx'1P Reduces Costs
`and Improves Reliability in Remote and Mobile Comput-
`ing,” 5 pages (Nov. 14, 1996).
`Zenel, Bruce,
`'lhesis Proposal, “A Proxy Based Filtering
`Mechanism for The Mobile Environment,” Dept. of Com-
`puter Science, Columbia University, New York, NY, 52
`pages (undated).
`Badrinath, B.R., et al., “Handling Mobile Clients: ACase for
`Indirect Inteaction,” Department of Computer Science, Rut-
`gers University, 7 pages (Oct. 1.993).
`Brown, Kevin, et al., “M—UDP: UDP for Mobile Cellular
`Networks,” Department of Computer Science, University of
`South Carolina, 19 pages (Sep. 4, 1996).
`Brown, Kevin, et al., “M—TCP:
`'I‘CP for Mobile Cellular
`Networks,” Department of Computer Science, University of
`South Carolina, 25 pages (Jul. 29, 1997).
`Zenel, Bruce et al., “A General Purpose Proxy Filtering
`Mechanism Applied to the Mobile Environment,” 12 pages
`(undated),
`Piscitello, D., Internet Draft, "Mobile Network Computing
`Protocol (MNCP)," 55 pages (Aug. 28, 1997).
`Bakre, Ajay et al., “M—RPC: A Remote Procedure Call
`Service for Mobile Clients,” ACM Presents MobiCom "95,
`Proceedings of The First Annual ll'zternational Con erence
`on Mobile Computing and Networking, pp. 97—110 (Nov.
`13—15, 1995).
`Droms, R., Network Working Group, Request for Com-
`ments memo, “Dynamic Host Configuration Protocol,”
`Bucknell University, 39 pages (Oct. 1993).
`
`* cited by examiner
`
`Microsoft Corporation
`Exhibit 1016-00003
`
`Microsoft Corporation
`
`
`
`US. Patent
`
`2
`
`U
`
`1B
`
`BNS0:,0,..__1E996
`
`EmEommcME3:592L;mmaH:Mm.u.
`
`
`
`
`Inn.N:EMMA80:"NM“...Sl
`
`
`
`550m
`
`_.
`
`
`xmouz,0O0OOI3wowmI.........Ia?MEm?.I
`.oh8.E996\.\\uIII.II\InI\sfl/HI».....\.\,\II
`
`
`
`
`
`
`,,4X.Emam.m.9m9522IllxA!!!Em950A,JIIIIInIII.r.évvEmwmamA,or..
`
`Em2502.,.r
`
`«6.Emma
`A,Ucm0:9926.,.I
`
`
`
`”3,m6,SF,.so_.0E
`
`
`
`Microsoft Corporation
`Exhibit 1016-00004
`
`Microsoft Corporation
`
`
`
`
`
`
`US. Patent
`
`1B
`
`
`
`mam.
`
`2522w.mom%bwmmummmm:€829:as:an:#8A5589:35525roams;
`
`
`0..mcmwwflcafiooE96gm{952:2Evom2232391
`pmT35sofioeagvown
`
`
`
`r...M189:25am:._2Eoo3:8:x8302btauom\x_ozuz
`
`m...an“8:220:32%...5335.5
`
`
`
`
`32Eagoaca:on.8“as;.ot.w._#23.9%:$22
`8.,..E29332323;35%:
`«3.5E3932%En.SNsogaming?E“3.08
`iozuz““tones:Etc52.;.25_GP:ExamEwing”:
`
`onEN2.ch
`
`E}:nms
`226%.:_1IIIIIIIVlllllllllllllllllllll
`
`538:5E:85:25.35E523
`
`£552%E252.
`
`3:382%EoEomSo:23°:
`
`
`
`«outfisan:._§=8
`
`NEX:
`
`
`
`2555:.05:dB._
`
`.g...3%No:m.aItI:v:_zm6,
`5I
`
`Microsoft Corporation
`Exhi
`it 1016-00005
`
`Microsoft Corporation
`
`
`
`
`
`
`
`US. Patent
`
`Apr. 8, 2003
`
`Sheet 3 of 32
`
`US 6,546,425 B1
`
`
`
`Call
`to TDl Via Sockets
`or directly is intercepted
`
`
`
`250
`
`
`
`Mobile Interceptor packages
`TDI cell
`in an RPC
`
`datagram and sends to
`Mobile Management Server
`
` 252
`
`
`
`
` Mobile Management Server
`
` 254
`unpackages RPC datagram
`
`
`
`FIG. 2A
`
`Mobile Management Server
`provides requested service
`
`
`
`255
`
`Applications
`
`Configuration API
`
`Socket API
`
`RPC Protocol Engine 240
`
`
`
`Internet Mobility
`(interceptor Virtual Circuit)
`Protocol
`
`Engine 244
`
`'t‘r'é'riébe'r'i' were;
`
`208
`
`206
`
`204
`
`212
`
`202
`
`200
`
`FIG. 3
`
`Microsoft Corporation
`
`Exhibit 1016-00006
`
`Microsoft Corporation
`
`
`
`US. Patent
`
`Apr. 8,2003
`
`Sheet 4 of 32
`
`US 6,546,425 B1
`
`RCV TDI CALL
`
`Post RPC call
`to IMP queue
`
`Delay for
`coalesce time
`
`302
`
`304
`
`Y
`
`
`
`Flush queue, coalesce the RFC
`calls into single fragment
`and foward to Server
`
` 308
`
`END
`
`FIG. 3A
`
`Microsoft Corporation.
`Exhibit 1016-00007
`
`Microsoft Corporation
`
`
`
`US. Patent
`
`mm
`
`5
`
`69%
`
`w333m«inflow
`
`
`
` uzoao2no;859082@330686mx..wmn
`
`azmumm0mmflogmcoommAEmn__2_
`
`
`
`
`flcmEmu:W.9:umM,
`ymmsummBW#musumm«.28010am$3318me
`
`“woacom{oz
`
`«mm
`
`.LEVN
`
`mmu5:I.atm6,Mhmsm6.,mm:mwwmm..M
`
`mM.mmr0xmm0
`
`Microsoft Corporation
`
`
`
`
`
`US. Patent
`
`Apr. 8,2003
`
`Sheet 6 of 32
`
`US 6,546,425 B1
`
`Control Block
`
`362
`
`Determine Association
`and Get Association
`
` 370
`364
`
`
`
`Start Association
`
`Create New Association
`
`
`Procesg
`Control Block
`Association
`
`Work
`
`
`
`Connect
`Indication
`
`3
`
`74
`
`Iisconnect
`Indication
`
`No
`
`378
`
`Stop Association
`Destroy Association
`Control Block
`
`
`
`
`
`Local
`Terminate
`
`
`Associatio
`
`
`
`
`No
`
`380
`
`
`
`to Run Again
`
`382
`
`R
`tartar
`
`Ye
`
`No
`
`384
`
`
`Ping Inactivity
`
`
`
`Timeout
`
`
`
`Shut Down
`
`Ping Association
`
`.
`
`
`“6
`State?
`
`Aésacmtifm
`chedu e
`
`Again
`
`
`368
`
`Schedule Association
`
`FIG. 4
`
`Microsoft Corporation.
`Exhibit 1016-00009
`
`Microsoft Corporation
`
`
`
`US. Patent
`
`Apr. 8,2003
`
`Sheet 7 of 32
`
`US 6,546,425 B1
`
`
`De—Queue
`Work Request
`
`390
`
`364
`
`Receive
`
`Start
`Receiving
`
`
`
`392
`394
`
`RPC
`
`Receive
`Request
`
`
` Pending
`
`
`
`
`
`
`
`Scheduling
`Weight
`Complete
`
`
`
`
`Pending
`
`Connect
`
`
`Issue TCP
`Connect
`
`
`
`No
`
`
`
`Process Dispatch
`Queues
`
`4-08
`
`
`Association
`
`Work Queue have
`
`More Work Or Dispatch
`Queues Marked
`
`
`
`410
`
`
`
`
`Set State To Association
`Scheduled again
`
`
`
`
`Eligible
`
`FIG. 5 Process Association Work
`
`Microsoft Corporation
`Exhibit 1016-00010
`
`Microsoft Corporation
`
`
`
`US. Patent
`
`Apr. 8, 2003
`
`Sheet 8 0132
`
`US 6,546,425 B1
`
`f 3”
`
`allocate and association control block
`
`372A
`
`initialize system wide resources with defaults
`
`3728
`
`get configuration overrides
`
`initialize the coalesce timer
`
`3729
`
`insert association control block into session tob|e
`
`372H
`
`END
`
`FIG. 5A
`
`Microsoft Corporation.
`Exhibit 1016-00011
`
`Microsoft Corporation
`
`
`
`US. Patent
`
`Apr. 8,2003
`
`Sheet 9 of 32
`
`US 6,546,425 B1
`
`START
`
`375\\
`
`mark the association as deleted to prevent any further
`processing of work that may be outstanding
`
`close all associated association objects including
`process, connection and address objects
`
`376A
`
`3768
`
`free all elements on work queue
`
`376C
`
`stop coalesce timer if
`
`running
`
`3750
`
`decrement association control block reference count
`
`N @ 375F
`
`
`
`destroy association specific work queue
`
`
`
`destroy object hash table
`
`
`
`\o 376E
`
`376G
`
`destroy coalesce timer
`
`remove association control block
`
`from association table
`
`free control block
`
`
`END
`
`FIG. 58
`
`Microsoft Corporation
`Exhibit 1016-00012
`
`Microsoft Corporation
`
`
`
`US. Patent
`
`Apr. 8,2003
`
`Sheet 10 of 32
`
`US 6,546,425 B1
`
`CredithT
`=0
`
`mark association as "low mark pending" by setting the
`RPC_LMPQ_SEND_FLAG.
`
`379A
`
`discard all received datagrams
`
`_
`
`3798
`
`received stream events by
`throttle all
`refusing to accept
`the data
`
`37%
`
`refuse all
`
`received connect events for passive connections
`
`3790
`
`END
`
`FIG. SC
`
`Microsoft Corporation
`Exhibit 1016-00013
`
`Microsoft Corporation
`
`
`
`US. Patent
`
`Apr. 8, 2003
`
`Sheet 11 of 32
`
`US 6,546,425 B1
`
`E80
`
`338
`
`638
`
`6N8
`
`ANNE\0%
`
`Emacs“.{ozvacuum0%
`
`
`
`EmEmoi£22
`
`9::
`
`EmEmoE
`obeozq
`
`ncoomm
`
`EmEmofi
`
`38m,
`
` xerox,§5m8mofiyxoza“3“”:qu
`
`30933
`
`{0;
`
`mom
`
`F0mm
`
`N0mm
`
`m0mm
`
`m.OE
`
`Microsoft Corporation
`Exhibit 1016-00014
`
`Microsoft Corporation
`
`
`
`
`
`
`
`
`US. Patent
`
`Apr. 8, 2003
`
`Sheet 12 of 32
`
`US 6,546,425 B1
`
`mam
`
`$295a£25
`
`oQBEN€252$55
`
`Essa
`
`¢mn
`
`ezmomm0%
`
`wmoaumm{0;
`
`028mg
`
`xotm>o
`
`com
`
`
`
`EEEacmmmflc5:828:30
`
`$222$8
`
`30350$30;.=8283
`
`
`
`50.303222:80
`
`
`
`28.30538500:80
`
`
`
`3053.32082
`
`“8:50
`
`>omEombm
`
`ucmmEombm
`
`5mEEmBoo
`
`ucmmEEmSoo
`
`023mm
`
`Eofifim
`
`205520
`
`33885
`
`
`
`$2223203829
`
`E30$062$05
`
`
`
`Sofie8:03:00086
`
`N.O_n_
`
`Microsoft Corporation
`Exhi
`it 1016-00015
`
`Microsoft Corporation
`
`
`
`US. Patent
`
`Apr. 8,2003
`
`Sheet 13 of 32
`
`US 6,546,425 B1
`
`
`
`queue:
`PRIORITY_H|GH
`
`408
`
`/ 406
`
`Weight=queue
`Weight
`
`
`
`Fig. 8
`Process Priority
`Dispatch Queues
`
`Microsoft Corporation
`Exhibit 1016-00016
`
`Microsoft Corporation
`
`
`
`US. Patent
`
`Apr. 8, 2003
`
`Sheet 14 of 32
`
`US 6,546,425 B1
`
`3.96:858.5m.6:
`
`2600%
`
`.wmm
`
`.83023:05
`326Nbrat;
`
`93.05$.05
`
`
`
`Hmmscmmncmmas:
`
`as:
`
`:N
`
`£9:
`
`biota
`
`2mmsuom
`
`eznmzom
`
`biog
`
`:9:
`
`
`
`:65E8938$283.
`
`
`
`Emfi#85385
`
`
`
`mmcoqmmmmzmumm
`
`
`
`Emfi62:8
`
`Microsoft Corporation
`Exhibit 1016-00017
`
`Microsoft Corporation
`
`
`
`
`
`
`
`
`
`US. Patent
`
`Apr. 8,2003
`
`Sheet 15 of 32
`
`US 6,546,425 B1
`
`601 602
`
`Connect
`request?
`Yes
`
`
`
`" Error“
`Out of resources
`
`
`
` cIi‘imififign
`
`resources?
`
`
`Yes
`
`
`
`Queue connect or send request and signal global event — return to calling application
`
`
`State Configure
`
`6038
`
`Dispatch connect or send request
`from IMP global request queue
`
`
`
`
`
`Any
`work pending
`
`Wait for application to
`queue work for
`connection. Go to step 625
`
`Go to step 615
`
`607
`
`
`
`
`
`
`
`
`
`
`Wait for peer address.
`Continue queuing work.
`Go to step 625
`
`Wait for security context.
`Continue queuing work.
`Go to step 625
`
`608
`
`
`
`
`Internet Mobility Protocol
`Connection Decision Tree.
`FIG. 10A Connect and Send request
`
`logic
`
`Microsoft Corporation.
`Exhibit 1016-00018
`
`Microsoft Corporation
`
`
`
`US. Patent
`
`Apr. 8, 2003
`
`Sheet 16 of 32
`
`US 6,546,425 B1
`
`609
`
`610
`
`State Pending
`
`6088
`
`Send IMP Sync Frame
`
`
`
`Start
`
`611
`
`IMP retransmit
`
`timer
`
`
`
`
`_
`Has _
`_
`No
`
`
`
`Want
`Established
`Retransmlt
`
`
`
`
`timer - Go to
`frarne
`
`
`
`
`
`recewed°
`expwed?
`step 525
`
`
`
`
`
`
`
`611A
`
`Yes
`
`State Estabfished
`
`
`
`616
`
`615
`
`
`
`Hafi.
`
`
`connec Ion
`Wa‘t
`been
`Go to
`step 525 mmhenticoted
`
`
`
`Yes
`
`
`617
`
`
`Did
`authentication
`
`
`succeed?
`
`
`Yes
`
`No
`
`
`
`
`HOS
`Total
`
`
`Retransmit
`thne expked
`
`
`?
`
`YES
`
`614A
`
`Abort Connection
`Go to step #999
`
`FIG. 108
`
`Microsoft Corporation.
`Exhibit 1016-00019
`
`Microsoft Corporation
`
`
`
`US. Patent
`
`Apr. 8,2003
`
`Sheet 17 of 32
`
`US 6,546,425 B1
`
`
`
`618
`
`
`ls
`
`Wait for
`
`peer .transmit
`acknowledgement.
`
`
`window
`Go to step 625
`
`
`
`620
`
`621
`
`Create tMP data frame
`
`Send IMP data frame
`
`full?
`
`
`
`
`622
`
`
`ls
`IMF?
`Start
`retransmit
`
`
`
`retransmit
`timer
`
`timer
`started?
`
`
`
`625
`
`
`
`Sleep waiting for more work.
`Return to global dispatcher
`
`FIG. 100
`
`Microsoft Corporation.
`Exhibit 1016-00020
`
`Microsoft Corporation
`
`
`
`US. Patent
`
`Apr. 8,2003
`
`Sheet 18 of 32
`
`US 6,546,425 Bl
`
`626
`
`
`
`Terminate Connection
`
`
`
`
`
`627
`
`to global work queue
`Queue request
`and return to calling application
`
`
`
`IMP process global work queue
`
`Dispatched terminate request from
`
`B26A
`
`628
`
`629
`
`AbOF'E
`
`Abort Connection
`Go to step #999
`
`Graceful
`
`628A
`
`State Closing
`
`630
`
`Send IMP Mortis Frame
`
`State Mortis
`
`Start retransmit
`
`timer
`
`632
`
`
`iMP
`.
`Has
`
` Wait
`Post Mortem
`retransmit
`
`
`
`Go to
`timer
`
`frame
`
`step 637
`received?
`
`
`
`
`
`
`
`
`
`
`
`
`631
`
`632A
`
`636
`
`637
`
`State Post Mortem
`
`Release connection Resources
`
`
`
`Steep waiting for more work.
`Return to global dispatcher
`
`FIG. 11
`
`Terminate Connection request
`
`logic
`
`retransmit
`time
`expired?
`
`
`
`Yes
`
`535A
`
`Abort Connection
`
`Go to step #999
`
`Microsoft Corporation
`Exhibit 1016-00021
`
`Microsoft Corporation
`
`
`
`US. Patent
`
`Apr. 8,2003
`
`Sheet 19 of 32
`
`US 6,546,425 B1
`
`650
`
`
`"Event—
`Retransmit
`
`
`expired!
`
`
`timer
`
`
`
`651
`
`N" Any
`
`outstanding
`
`
`frames
`
`652
`
`
`
`entire retransmit
`penod
`
`
`expired?
`
`654
`
`Steep for difference
`in time
`
`
`
`
`
`
`
`
`
`Total retransmit
`period
`
`exphed?
`
`State
`Dormant
`
`657
`
`65
`
`8
`
`659
`
`No
`
`No
`
`656B
`
`Reprocess frame to remove
`any expired data
`
`Abort Connection
`Go to step #999
`
`Retransmit Frame
`
`Restart retransmit
`
`timer
`
`660
`
`Fig. 12
`
`Retransmit Event Logic
`
`Microsoft Corporation.
`Exhibit 1016-00022
`
`Microsoft Corporation
`
`
`
`US. Patent
`
`2whS
`
`1B524,6
`
`r.M3mNnbaxm_Mm:_:Eo
`
`commubaxm8mmubaxm
`a“:EQDE338
`
`Sam
`
`m<N_.OEm1........J380
`
`0com
`
`em26:0fogE2.
`flmom”-3wDom—Cvmom
`
`
`onanogum
`
`as:
`
`
`
`4.:am_—W238Eam—5fi,mNF0_H_0*23mm"32%.”.Ste“.15:£no;Avwom
`S_.Uxxx88:33onficaooEmaT238SumxuzaooSumancaoo3mm.
`
`
`:58:“QDomEcon
`
`Microsoft Corporation
`Exhibit 1016-00023
`
`Microsoft Corporation
`
`
`
`
`
`
`US. Patent
`
`Apr. 8, 2003
`
`Sheet 21 of 32
`
`US 6,546,425 B1
`
`
`
`Om_..OE
`
`non
`
`oom
`
`a2_
`
`Levon:
`
`x¥mocmzuom
`
`E38$28can338%N¥30m
`
`0th305%
`
`quaoobfim
`
`1*Don
`
`xnycgouSum
`
`c*as;
`
`men:as.hoco_mm_Em:o:mm
`N§DanI:mum;2Sum
`onEzoo90m
`
`cmam;2Sum
`
`.mon
`
`
`
`hovum:a2_
`
`xwmocmzumm
`
`.oom
`
`
`
`booingmEomn=2_
`
`Microsoft Corporation
`
`Exhibit 1016-00024
`
`Microsoft Corporation
`
`
`
`
`
`
`
`
`
`
`
`
`US. Patent
`
`Apr. 8,2003
`
`Sheet 22 of 32
`
`US 6,546,425 B1
`
` —Event—
`
`Receive IMP frame
`
`
`event from network!
`
`
`670
`
`Pre—validate IMP Frame
`
`671
`
`
`
`Yes
`
`Yes
`
`673
`
`
`
`
`Connection
`associated with
`
`
`frame?
`
`
`
`No
`
`674
`
`672
`
`Discard @frame
`
`67
`
`7
`
`Place on connection receive queue
`
`Place on global
`
`receive queue
`
`578
`
`675
`
`Mark connection eligible to receive
`
`Place receive queue on global work queue
`
`675
`
`Place connection on global work queue
`
`57g
`
`Signal global work event
`
`FIG. 13A
`
`Receive Event Logic
`
`Microsoft Corporation
`Exhibit 1016-00025
`
`Microsoft Corporation
`
`
`
`US. Patent
`
`Apr. 8, 2003
`
`Sheet 23 of 32
`
`US 6,546,425 B1
`
`Dispatch receive eligible
`from global work queue
`
`Dequeue frame from receive queue
`
`
`
`682
`
`681
` Frame
`dequeued
`
`?
`
`
`
`
`N0
`
`Sleep waiting
`for more work.
`(30 to step #1012
`
`Validate IMP received frame
`
`685
`
`Discord Frame
`
`84
`
`686
`
`IMP
`frame ok?
`
`No
`
`Yes
`
` Connection
`
`assomoted
`
`Yes
`
`688
`
`689
`
`Process Passive Connection
`request. Go to step #720
`
`
`
`690
`
`Yes
`
`Parse lMP frame
`
`691
`
`
`
`on IMP abort
`
`
`No
`
`Yes
`
`
`
`691A
`
`Abort Connection
`Go to step #999
`
`0
`
`Fig. 133
`
`Microsoft Corporation.
`Exhibit 1016-00026
`
`Microsoft Corporation
`
`
`
`US. Patent
`
`Apr. 8,2003
`
`Sheet 24 0f 32
`
`US 6,546,425 B1
`
`592
`
`info and release
`Process acknowledgement
`any outstanding send frames
`
`FIG. 13C
`
`Post frame to security subsystem
`for possible decryption
`
`694
`
`Process any control data
`
`695
`
`
`
`Any
`application
`
`
`data?
`
`
`596
`
`
`
`_ueuedata to-pplicationlayer
`
`697A
`
`697
`
`
`
`
`
`Change state
`back to
`Established
`
`698
`
`
`Yes
`
`699
`
`IndIcate dIsconnect
`to
`
`
`applIcatIon layer
`
`
`699A
`
`State Mortis
`
`
`
`
`
`
`N0
`
`700
`
`703
`
`
`
`Possibly
`Yes
`
`
`Post Mortum
`frame?
`
`
`
`700A
`
`State Post Mortum
`
`701
`
`
`
`Send IMP Post Morturn Frame
`
`
`
`
`
`_elease-esourcesconnection
`
`
`
`
`Sleep waiting for more work
`Return to global work dispatcher
`
`No
`
`702
`
`704’
`
`\ Go to step 680
`
`
`
`Microsoft Corporation.
`Exhibit 1016-00027
`
`Microsoft Corporation
`
`
`
`US. Patent
`
`Apr. 8, 2003
`
`Sheet 25 of 32
`
`US 6,546,425 B1
`
`720
`
`
`
`
`
`Is
`
`
`there another
`Is_ _
`the initial
`it
`connection for this
`
`
`
`connechon
`
`
`device?
`
`Abort Connection
`Coll step #999
`
`
`
`
`
`
`No
`
`723
`
`
` Do
`
`sequence and
`connection ID
`
`
`match?
`
`
`Yes
`
`Duplicate frame
`Discord
`
`724
`
`725
`
`726
`
`Go to step 680
`
`
`
`
`—Errorw—
`Allocate
`Out of resources
`connection
`resources?
`
`
`No
`
`7 7
`2
`
`726A
`
`730
`
`731
`
`
`
`Abort connection request
`
`729
`
`
`
`
`
`Did
`security
`
`
`succeed?
`
`
`Yes
`
`FIG. 14A
`
`0 Passive Connection request
`
`logic
`
`Microsoft Corporation
`Exhibit 1016-00028
`
`Microsoft Corporation
`
`
`
`US. Patent
`
`Apr. 8, 2003
`
`Sheet 26 of 32
`
`US 6,546,425 B1
`
`7.32
`
`Send IMP establish Frame
`
`State Established
`
`732A
`
`733
`
`Start retransmitter
`
`734
`
`
`Wait
`For authentication process to
`
`conclude. Return-to global dispatcher
`
`
`
`
`
`
`735
`
`
`
`authenticated?
`
`Device
`and user
`
`No
`
`
`
`Yes
`
`736
`
`Abort Connection
`Go to step #999
`
`737
`
`738
`
`Indicate connection to
`listening application
`
`t‘
`f'
`G t
`e CO“ Iguro l0"
`
`739
`
`
` Did
`configuration
`
`and connect
`indication
`succeed?
`
`
`
`741
`
`Yes
`
`740
`
`No
`
`Abort Connection
`Go to step #999
`
`Sleep waiting for more work
`Return to global dispatcher
`
`F lG. 148
`
`Microsoft Corporation.
`Exhibit 1016-00029
`
`Microsoft Corporation
`
`
`
`US. Patent
`
`Apr. 8, 2003
`
`Sheet 27 of 32
`
`US 6,546,425 B1
`
`999
`
`1000
`
`_
`Abart Connection request
`
`Dispatched
`Abort Connection request
`
`No
`
`Yes
`
`Save original state
`
`1001
`
`Connecfion
`associated
`
`with
`request?
`
`
`
`
`
`
`Connection
`indicated to listen
`
`application
`
`1)
`
`
`State Abort
`
`1002A
`
`1 004
`
`Yes
`
`Indicate disconnection to
`listening application
`
`
`
`State Post Mortem
`
`
`
`Release connection resources
`
`
`
`
`Original
`state>
`State Pending
`
`?
`
`Yes
`
`1007
`
`No
`
`Go to step #1012
`
`0
`
`FIG. 15A
`Abort Connection request
`
`logic
`
`Microsoft Corporation.
`Exhibit 1016-00030
`
`Microsoft Corporation
`
`
`
`US. Patent
`
`Apr. 8,2003
`
`Sheet 28 of 32
`
`US 6,546,425 B1
`
`
`
`Yes
`
`Abort
`
`Frame
`
`
`
`1 008
`
`
`Is
`IMP
`it on IMP
`
`
`Frame
`
`assocmted?
`
`
`1011
`
` Discord Frame
`
`Send IMP Abort Frame
`
`
`
`Return to coliing routine
`
`1012
`
`FIG. 158
`
`Microsoft Corporation,
`Exhibit 1016—00031
`
`Microsoft Corporation
`
`
`
`US. Patent
`
`Apr. 8, 2003
`
`Sheet 29 0f 32
`
`US 6,546,425 B1
`
`mom
`
`Ennis:Qco.cuomc§593$
`
`$33.3Exn§§90>me
`
`Loxoom
`
`
`
`
`toBEE3c8ES39.Solmfic500E:
`
`
`Baum.as5.;23.68%$28.3Emma3mmABESana
`
`
`
`gmhmm92.3a\onaught—x$9528
`
`vow
`
`
`
`33mm:6:on$qu:8:
`
`:mEmm
`
`
`
`
`
`mogayonbmOtuo.chym:QOIQ9.0E
`
`
`
`3.5K:338wemca
`
`Microsoft Corporation,
`Exhibit 1016-00032
`
`Microsoft Corporation
`
`
`
`
`
`US. Patent
`
`Apr. 8, 2003
`
`Sheet 30 of 32
`
`US 6,546,425 B1
`
`m8EuaBeamEm5
`
`wow
`
`a\mom
`
`
`
`
`
`::
`
`
`
`Egon..E2_u._azugmE8;atommzmumm
`
`t.5
`
`x8535=3
`
`m2as:am
`
`0mmof
`
`....
`
`2%-mequN33203.3m
`
`mcaALmfiomi
`
`saw
`
`ECoxEDI:
`
`Km
`
`ESEzozcmfiimxua
`
`098:52
`
`some:
`
`€535=8
`
`
`
`.EOEEEXAIESmEm
`
`
`
`$335moreucmm
`
`a98:52
`
`on:
`
`:39:
`
`23%
`
`fl
`
`>
`
`hB3E:3m
`
`ms09.085.685E08E5
`
`
`29363aEEE
`mg2,"?an
`
`Eiléuom
`
` 4m:552$
`
`68%;“;qu
`
`ESE
`
`suaaADeamm
`
`mac:5:EmmaR=
`
`:35.:0L2
`
`0.
`
`Wm:E932mm
`
`
`
`.23atom€<
`
`..;m:_.Albammgm
`
`cm:EE:32:3
`
`mcaAmeuomumcaALmamm
`
`Microsoft Corporation
`Exhi
`it 1016-00033
`
`Microsoft Corporation
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`US. Patent
`
`Apr. 8, 2003
`
`Sheet 31 of 32
`
`US 6,546,425 B1
`
`
`
`,cE..OE
`
`mnmmom
`
`58m$88$3:
`
`63%Eoomgmcpgmg
`
`scam
`
`mucomLoSo
`
`mom8m
`
`2
`
`m.
`
`mocanSo
`
`flaw;
`
`mvw9%
`
`EoomficnnwacaALmamm
`
`“um-mcaALvfiom
`
`mflEmmmmEBA
`
`m
`
`+5
`
`3w
`
`m¢w
`
`BEESEEEmm
`
`mafiggzesMum
`
`a:.6as«a
`
`Baum£3Emm8
`
`mumEm
`
`53%ozm5EEK
`BagmmozaAIESm
`.a2.95m02
`
`m.
`
`mmm
`
`Em
`
`vac—HESS
`
`“.95
`
`Em
`
`A.‘
`
`.93A$938
`
`SaALuzmm
`
`$50VEDA
`
`Microsoft Corporation
`Exhi
`it 1016-00034
`
`Microsoft Corporation
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`US. Patent
`
`Apr. 8,2003
`
`Sheet 32 of 32
`
`US 6,546,425 B1
`
`mum
`
`New
`
`.95555%:
`
`3.55$5580:358
`
`omw
`
`28%:__a085
`
`Nmm
`
`mo.0235
`
`
`
`09.2580:35
`
`cofiursoz
`
`Em55$:«85
`
`m3:93So
`
`OhmEEEoEBmooanew
`
`m.
`
`maceE105
`
`
`
`VBflcefioo.__u2«E3.35
`
`.28$923“.2mo:8
`
`“82"BE3:8
`
`0mm
`
`$3226ESEE2Sum
`
`
`
`5385320.55
`
`82.358£25mnm
`
`nag3:as83225
`
`EELS".yoi:so2mo:8«mm
`
`535__o8223m:320
`
`3E25”.=_59:;8$3225
`
`
`
` oh:555.2Eu”mounts;585s:
`
`
`
`:522.3__u5223m::30I/Immm
`
`Ea$2.2#5?sz
`
`35:29:3E82__Em_m
`
`8m
`
`
`
`
`
`492555.28ozi<om9.0E
`
`Swimnew23o:
`
`Microsoft Corporation
`EXhi
`it 1016-00035
`
`Microsoft Corporation
`
`
`
`
`
`
`
`
`
`
`
`US 6,546,425 B1
`
`1
`METHOD AND APPARATUS FOR
`PROVIDING MOBILE AND OTHER
`IN'I‘ERIVII’ITICN’I‘ CONNECTIVI'I‘Y IN A
`COMPUTING ENVIRONMENT
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`
`This application claims priority from provisional appli—
`cation No. 60/103,598 filed Oct. 9, 1998 entitled “Method
`and Apparatus For Providing Wireless Connectivity In A
`Computing Environment” (which provisional application is
`incorporated by reference herein in its entirety).
`FIELD OI-‘ THE INVENTION
`
`10
`
`invention relates to connectivity between
`The present
`networked computing devices. More particularly,
`the
`present invention relates to methods and systems that trans-
`parently address the characteristics of nomadic systems, and
`enable existing network applications to run reliably in the
`associated mobile environments. Still more particularly, the
`invention relates to techniques and systems for providing a
`continuous data stream connection between intermittently—
`connected devices such as handheld data units and personal
`computing devices.
`BACKGROUND AND SUMMARY OF THE
`INVENTION
`
`Increasingly, companies are seeing rapid access to key
`information as the way to maintaining a competitive advan-
`tage. To provide immediate access to this information,
`mobile and other
`intermittently-connected computing
`devices are quietly and swiftly becoming an essential part of
`corporate networks—especially with the proliferation of
`inexpensive laptops and hand-held computing devices.
`However, integrating these nomadic devices into existing
`network infrastructures has created a challenge for
`the
`information manager,
`Many problems in mobile networking parallel the diffi-
`culties in early local area networks (LANs) before the
`adoption of Ethernet. There are a variety of mobile protocols
`and interfaces, and because standards are just developing,
`there is little interoperability between systems. In addition,
`performance over
`these network technologies has been
`typically slow and bandwidth limited. Implementation costs
`to date have been high due the specialized nature of
`deployed systems.
`Along with these issues, mobile technologies present a
`category of problems unto their own. Interconnects back
`into the main network may travel over and through a public
`network infrastructure, thus allowing sensitive information
`to possibly be tapped into. Furthermore,
`if any of the
`intermediary interconnects are via a wireless interface, the
`information is actually broadcast, and anyone with a similar
`interface can eavesdrop without much difficulty.
`But, perhaps even more significantly, mobile networking
`has generally in the past been limited to mostly message-
`oriented or state-less applications—and thus has not been
`readily adaptable for existing or new corporate applications
`that use client/server, host-terminal, web-based or shared file
`systems models. This is because such commonly used
`applications need stateful sessions that employ a continuous
`stream of data—not just a stateless packet exchange—to
`work effectively and reliably.
`To this end, many or most popular olf-the-shelf network-
`ing applications require TCP/IP sessions, or private virtual
`
`40
`
`60
`
`0(1|
`
`2
`circuits. These sessions cannot continue to function if they
`encounter network interruptions,