`
`United States Patent
`H0lt et al.
`
`(10) Patent N0.:
`(45) Date of Patent:
`
`US 6,732,147 B1
`May 4, 2004
`
`US006732147B1
`
`(54) LEAVING A BROADCAST CHANNEL
`
`OTHER PUBLICATIONS
`
`(75) Inventors: Fred B. Holt, Seattle, WA (US); Virgil
`E_ Bourassa, Bellevue, WA (Us)
`
`(73) Assignee: The Boeing Company, Seattle, WA
`(US)
`
`( * ) Notlce:
`
`SubJeCt_t9 any dlsclalmerg the term of thls
`Patent 15 extended or adlusted under 35
`U-S-C- 154(k)) by 719 days-
`
`(21) Appl. No.: 09/629,577
`-
`_
`l. 31 2000
`22 Fl d.
`Ju
`’
`1 6
`(
`)
`(51) Int. Cl.7 .............................................. .. G06F 15/16
`(52) US. Cl. ...................................... .. 709/204; 709/227
`(58) Field of Search ............................... .. 709/204, 227,
`709/217
`
`(56)
`
`_
`References Clted
`US. PATENT DOCUMENTS
`_
`3/1990 Cain et al.
`4,912,656 A
`5,056,085 A 10/1991 Vu
`5,309,437 A
`5/1994 Perlman et al.
`5,426,637 A
`6/1995 Derby et al.
`2
`$25221
`5’636’371 A
`6/1997 Yu
`'
`56737265 A
`9/1997 Gupta et a1_
`5,696,903 A 12/1997 Mahany
`5,732,074 A
`3/1998 Spaur et al.
`2732212 A
`3/1998 Blumer et a1‘
`’734’86 A
`3/1998 Yu .
`5,737,526 A
`4/1998 Periasamy et al.
`5,754,830 A
`5/1998 Butts et a1‘
`5 761 425 A
`6/1998 Miller
`5,764,756 A
`6/1998 Onweller
`5,790,548 A
`8/1998 SistaniZadeh et al.
`5,790,553 A
`8/1998 Deaton, Jr. et al.
`5,799,016 A
`8/1998 otlw?ller _
`57802285 A
`9/ 1998 Hlrvmleml
`5,864,711 A
`1/1999 Mairs et al.
`
`Bondy 6t a1~ “Graph Theory With Applications” American
`Elsevier Publishing Co. Inc. pp. 47—50 Secion 3.3.*
`Yavatkar et al. “A Reliable Dissemination Protocol for
`Interactive Collaborative Applications” Proc. ACM Multi
`media, 1995 p.333—344 http:/citeseer.nj.nec.com/article/
`yavatkar95reliable.html.*
`Alagar, S. and Venkatesan, S., “Reliable Broadcast in
`Mobile Wireless Networks,” Department of Computer Sci
`ence, University of Texas at Dallas, Military Communica
`tions Conference, 1995, MILCOM ’95 Conference Record,
`IEEE San Diego, California, Nov. 5—8, 1995 (pp. 236—240).
`International Search Report for The Boeing Company Inter
`’
`national Patent Application No. PCT/US01/24240, Jun. 5,
`2002 (7 pages).
`US. patent application Ser. No. 09/629,570, Bourassa et al.,
`?led Jul. 31, 2000.
`US. patent application Ser. No. 09/629,576, Bourassa et al.,
`?led Jul. 31, 2000.
`US. patent application Ser. No. 09/629,575, Bourassa et al.,
`?led Jul- 31, 2000
`US. patent application Ser. No.09/629,572, Bourassa et al.,
`?led Jul 31 2000
`'
`’
`'
`
`-
`-
`(Llst Connnued on next page‘)
`Primary Examiner—Patrice Winder
`Assistant Examiner—David Lazaro
`(74) Attorney, Agent, or Firm—Perkins Coie LLP
`
`ABSTRACT
`(57)
`A method for leaving a multicast computer network is
`disclosed. The method alloWs for the disconnection of a ?rst
`computer from a second computer. When the ?rst computer
`decides to disconnect from the second computer, the ?rst
`computer sends a disconnect message to the second com
`puter. Then, When the second computer receives the discon
`nect message from the ?rst computer, the second computer
`broadcasts a connection port search message to ?nd a third
`computer to Which it can connect.
`
`(List continued on next page.)
`
`16 Claims, 39 Drawing Sheets
`
`A
`
`B
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 1 of 58
`
`
`
`US 6,732,147 B1
`Page 2
`
`US. PATENT DOCUMENTS
`
`2/1999 Schmidt et al.
`5,867,660 A
`2/1999 Butman et al.
`5,867,667 A
`2/1999 Bracho et al.
`5,870,605 A
`2/1999 Mairs et al.
`5,874,960 A
`5/1999 Wilf et al.
`5,899,980 A
`5/1999 Onweller
`5,907,610 A
`7/1999 Morita
`5,928,335 A
`8/1999 Bell et al.
`5,935,215 A
`5,946,316 A * 8/1999 Chen et al. ............... .. 370/408
`5,948,054 A
`9/1999 Nielsen
`5,949,975 A
`9/1999 Batty et al.
`5,956,484 A
`9/1999 Rosenberg et al.
`5,974,043 A 10/1999 Solomon
`5,987,506 A 11/1999 Carter et al.
`6,003,088 A 12/1999 Houston et al.
`6,013,107 A
`1/2000 Blackshear et al.
`6,023,734 A
`2/2000 Ratcliff et al.
`6,029,171 A
`2/2000 Smiga et al.
`6,032,188 A
`2/2000 Mairs et al.
`6,038,602 A
`3/2000 Ishikawa
`6,047,289 A
`4/2000 Thorne et al.
`6,073,177 A * 6/2000 Hebel et al. .............. .. 709/228
`6,094,676 A
`7/2000 Gray et al.
`6,199,116 B1
`3/2001 May et al.
`6,216,177 B1
`4/2001 Mairs et al.
`6,223,212 B1
`4/2001 Batty et al.
`6,243,691 B1
`6/2001 Fisher et al.
`6,252,884 B1 * 6/2001 Hunter ..................... .. 370/443
`6,268,855 B1
`7/2001 Mairs et al.
`6,271,839 B1
`8/2001 Mairs et al.
`6,285,363 B1
`9/2001 Mairs et al.
`6,304,928 B1
`10/2001 Mairs et al.
`6,353,599 B1 * 3/2002 Bi et al. ................... .. 370/328
`6,618,752 B1 * 9/2003 Moore et al. ............. .. 709/217
`
`OTHER PUBLICATIONS
`
`US. patent application Ser. No. 09/629,023, Bourassa et al.,
`?led Jul. 31, 2000.
`US. patent application Ser. No. 09/629,043, Bourassa et al.,
`?led Jul. 31, 2000.
`US. patent application Ser. No. 09/629,024, Bourassa et al.,
`?led Jul. 31, 2000.
`US. patent application Ser. No. 09/629,042, Bourassa et al.,
`?led Jul. 31, 2000.
`Murphy, Patricia, A., “The Next Generation Networking
`Paradigm: Producer/Consumer Model,” Dedicated Systems
`MagaZine—2000 (pp. 26—28).
`
`The Gamer’s Guide, “First—Person Shooters,” Oct. 20, 1998
`(4 pages).
`The O’Reilly Network, “Gnutella: Alive, Well, and Chang
`ing Fast,” Jan. 25, 2001 (5 pages) http://www.open2p.com/
`lpt/ .
`.
`. [Accessed Jan. 29, 2002].
`Oram, Andy, “Gnutella and Freenet Represents True Tech
`nological Innovation,” May 12, 2000 (7 pages) The O’Reilly
`Network http://www.oreillynet.com/1pt .
`.
`. [Accessed Jan.
`29, 2002].
`Internetworking Technologies Handbook, Chapter 43 (pp.
`43—1 —43—16).
`Oram, Andy, “Peer—to—Peer Makes the Internet Interesting
`Again,” Sep. 22, 2000 (7 pages) The O’Reilly Network
`http://linux.oreillynet.com/1pt .
`.
`. [Accessed Jan. 29, 2002].
`Monte, Richard, “The Random Walk for Dummies, ”MIT
`Undergraduate Journal of Mathematics (pp. 143—148).
`Srinivasan, R., “XDR: External Data Representation Stan
`dard,” Sun Microsystems, Aug. 1995 (20 pages) Internet
`RFC/STD/FYI/BCP Archives http://www.faqs.org/rfcs/
`rfc1832.html [Accessed Jan. 29, 2002].
`ADatabeam Corporate White Paper, “A Primer on the T120
`Series Standards,” Copyright 1995 (pp. 1—16).
`Kessler, Gary, C., “An Overview of TCP/IP Protocols and
`the Internet,” Apr. 23, 1999 (23 pages) Hill Associates, Inc.
`http://www.hill.com/library/publications/t .
`.
`. [Accessed
`Jan. 29, 2002].
`Bondy, J .A., and Murty, U.S.R., “Graph Theory with Appli
`cations,” Chapters 1—3 (pp. 1—47), 1976 American Elsevier
`Publishing Co., Inc., New York, New York.
`Cormen, Thomas H. et al., Introduction to Algorithms,
`Chapter 5.3 (pp. 84—91), Chapter 12 (pp. 218—243), Chapter
`13
`245), 1990, The MIT Press, Cambridge, Massachu
`setts, McGraw—Hill Book Company, New York.
`The Common Object Request Broker: Architecture and
`Speci?cation, Revision 2.6, Dec. 2001, Chapter 12 (pp.
`12—1—12—10), Chapter 13 (pp. 13—1—13—56) Chapter 16 (pp.
`16—1 —16—26), Chapter 18 (pp. 18—1 —18—52), Chapter 20
`(pp. 20—1—20—22).
`The University of Warwick, Computer Science Open Days,
`“Demonstration on the Problems of Distributed Systems,”
`http://www.dcs.warwick.ac.u .
`.
`. [Accessed Jan. 29, 2002].
`
`* cited by examiner
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 2 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 1 0f 39
`
`US 6,732,147 B1
`
`F ig. 1
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 3 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 2 0f 39
`
`US 6,732,147 B1
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 4 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 3 0f 39
`
`US 6,732,147 B1
`
`mm .ME w“ .ME
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 5 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 4 0f 39
`
`US 6,732,147 B1
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 6 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 5 0f 39
`
`US 6,732,147 B1
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 7 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 6 0f 39
`
`US 6,732,147 B1
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 8 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 7 0f 39
`
`US 6,732,147 B1
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 9 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 8 0f 39
`
`US 6,732,147 B1
`
`ig. 5B
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 10 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 9 0f 39
`
`US 6,732,147 B1
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 11 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 10 0f 39
`
`US 6,732,147 B1
`
`In
`
`<
`
`a
`min
`‘Q
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 12 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 11 0f 39
`
`US 6,732,147 B1
`
`4% .ME
`
`5 .ME
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 13 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 12 of 39
`
`US 6,732,147 B1
`
`ViHoymmuwmoum
`
`N8
`
`eME
`
`25_o=SEovH§§__&<
`
`
`
`Aoocfimfi._o:SEo
`
`25.8553m:o:mo=an<
`
`
`
`Aooafimfi_o:SEo
`
`|PR2016-00726
`
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1001, p. 14 of 58
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 14 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 13 0f 39
`
`US 6,732,147 B1
`
`con
`
`“2232c .
`
`Now 298m
`
`“on
`
`?E?xm _ wmE m %»m 82:80
`
`Eton
`
`now won
`
`mow
`
`_
`
`
`
`bzu?ammu .
`
`
`
` . 4 we H . 22;:
`
`4 22am
`8:832 a
`
`Z m2: H
`
`mow N 58965 2Bvu<
`
`
`GEES wok QMMM wwamva
`
`.\. .ME
`
`Z wmE m S02v2
`
`no» mow
`
`295E “856D
`
`HEBS m K
`
`
`
`wow 38305
`
`. mob wow
`
`62800
`
`x23 =8
`
`:5
`
`02000“
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 15 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 14 0f 39
`
`US 6,732,147 B1
`
`(Channel Type,
`Channel Instance,
`Connect Aux Info)
`
`Fig. 8
`
`1
`
`Connect
`
`)
`
`Open call in port
`
`801
`
`802
`
`Set connect-time
`
`803
`Seek portal - computer
`(channel type channel
`instance)
`
`804
`
`Return (false)
`
`806
`
`Achieve connection
`
`807
`
`Install external dispatcher
`
`Install external dispatcher
`
`2309
`
`Connect request
`
`4
`
`1
`
`Return (true)
`
`l
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 16 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 15 0f 39
`
`US 6,732,147 B1
`
`Seek portal
`computer
`
`Channel Type
`Channel Instance
`
`902
`
`Select next depth
`
`All depths selected
`
`Return (failure)
`
`Fig. 9
`
`N
`904
`'1
`Select next portal computer
`
`905
`All portal computers
`selected
`
`906
`Dial portal computer
`
`907
`
`Y
`
`908
`
`Contact process
`
`909
`I
`Hang up selected portal
`computer
`
`911
`Check for external
`call
`
`Selected portal
`computer connected
`
`Return (success)
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 17 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 16 0f 39
`
`US 6,732,147 B1
`
`Fig. 10
`
`l Contact process }
`
`1001
`Send external message
`
`1002
`Receive external message
`
`Success
`
`1 005
`Add as connected portal
`computer
`
`Answering process
`connected
`
`1 006
`Add as fellow seeking
`computer
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 18 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 17 0f 39
`
`US 6,732,147 B1
`
`Connect request
`
`Fig. 11
`
`connected portal found
`
`1 103
`Dial call in port of portal
`computer
`
`1 104
`
`1
`
`Return
`
`}
`
`Success/ N
`
`Y
`
`1 105
`Send external message
`
`1106
`Receive external message
`
`Success
`
`1108
`Set expect holes from
`response
`
`1 109
`Set diameter from response
`
`11 1
`Ready to connect
`
`Y
`
`1 1 12
`Add neighbor
`
`N‘
`Hangup
`
`1113
`
`<
`
`Return
`
`1
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 19 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 18 0f 39
`
`US 6,732,147 B1
`
`Fig.
`12
`
`Check for extema
`call
`
`1201
`
`Answer
`
`1202
`
`Y
`
`1203
`Receive external message
`
`ype = = seeking
`connection call
`
`1 205
`Send external message
`
`206
`
`Success
`
`N
`
`Y
`
`1 207
`Add other as fellow seeker
`
`1
`
`Return
`
`)
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 20 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 19 of 39
`
`US 6,732,147 B1
`
`
`
`Achieve connection
`
`
`
`
`
`1 301
`Connection - state = fully
`connected
`
`Fig. 13
`
`
`
`1302
`
`Notify fellow seekers
`
`1 303
`
`Invoke connect call back
`
`
`
`
`
`|PR2016-00726
`
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1001, p. 21 of 58
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 21 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 20 of 39
`
`US 6,732,147 B1
`
`Fig. 14
`
`Pick up and receive
`external message
`
`Handle connection
`request call
`
`Port connect call
`
`Handle port
`
`connection can
`
`I
`
`Handle connected
`
`Condition repair
`statement
`
`Handle condition
`repair statement
`
`|PR2016-00726
`
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1001, p. 22 of 58
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 22 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 21 of 39
`
`US 6,732,147 B1
`
`1 502
`
`Sermessage to indicate
`connected
`
`
`
`
`
`
`connected
`
`Handle seeking
`connectxon call
`
`Fig, 15
`
`Set message to not
`
`1 503
`
`1504
`
`Add other as fellow
`
`seeking process
`
`
`
`1 505
`
`Send external message
`
`
`
`|PR2016-00726
`
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1001, p. 23 of 58
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 23 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 22 of 39
`
`US 6,732,147 B1
`
`andle connection
`request call
`
`1601
`Connected
`
`N
`
`_\ 07 3 CO
`
`Set newcomers
`holes_to_expect
`._I. 0)OA
`Set diameter estimate in
`
`. 0 _
`
`response
`
`Fig. 16
`
`Sent external message
`connect request resp.
`
`.3 O)Q\J
`
`Set newcomer‘s
`holes_to_fill
`
`608
`
`-"
`
`I
`Add neighbor
`- I
`6 O
`
`Newcomer's
`ho1es_to__fi1l --
`
`Holes to fill - = Z
`
` 1615
`
`17
`
`
`
`1616
`ewcomer's
`
`Y
`
`.
`
`
`oles-to-fin> . I F111hole(requestor) I
`
`
`|PR2016-00726
`
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1001, p. 24 of 58
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 24 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 23 of 39
`
`US 6,732,147 B1
`
`Add neighbor
`
`1701
`
`Identifies calling party
`
`Fig 1 7
`
`1702
`Sets neighbor to
`messages pending
`
`.
`.
`Connection_state =
`eeking connectio
`partially connected
`N
`
`Y
`
`1 705
`
`Add as neighbor
`
`1 706
`Install interal dispatcher
`for new neighbor
`
`
`
`
`
`1 707
`
`1 708
`
`W Y
`N
`
`Y II
`
`1 I
`
`
`
`171 1
`
`1 71 2
`
`Y
`
`Purge pending edges
`
`N
`
`|PR2016-00726
`
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1001, p. 25 of 58
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 25 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 24 of 39
`
`US 6,732,147 B1
`
`Forward connection
`
`edge search
`
`requestor
`distance remaining
`
`
`
`# of
`
`hbors
`
`1802 Y
`
`requestor
`
`
`
`All neighbors
`selected
`
`N
`
`|PR2016-00726
`
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1001, p. 26 of 58
`
`Fig. 18
`
`Distance
`
`Y
`
`remaining > 0
`
`N
`
`
`neig
`
`
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 26 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 25 of 39
`
`US 6,732,147 B1
`
`Handle edge
`PT0P05a1 03”
`
`in message
`out message
`
`Fig. 19
`
`
`
`N
`
`1903
`
`create edge (pending)
`
`
`
`
`proposed
`neighbors
`pending
`
`N
`
`1 907
`
`Send external message
`
`1908
`
`N
`
`Y
`
`1 909
`
`1910
`
`I
`
`Add neighbor
`
`I
`
`1 91 1
`
`Send external message
`
`1912
`
`"°‘°”“"
`
`Y
`
`1913
`
`' h 1
`
`N
`
`
`
`|PR2016-00726
`
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1001, p. 27 of 58
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 27 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 26 of 39
`
`US 6,732,147 B1
`
`
`
`
`Handle port
`connection call
`
`
`
`
`Send external message
`(point-connect-resp
`not ok)
`
`
`
`Caller is not
`
`neighbor
`
`Send external message
`(point-connect-resp, ok)
`
`
`
`|
`
`Add neighbor
`
`2006
`
`I
`
`
`
`
`
`
`
`2008
`
`I Connect request I
`
`|PR2016-00726
`
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1001, p. 28 of 58
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 28 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 27 of 39
`
`US 6,732,147 B1
`
`Fill hole
`
`
`
`
`
`2101
`
`Initialize internal
`message
`
` Distribute internal
`ports search edlt
`
`message
`
`Handle connectipn
`
`|PR2016-00726
`
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1001, p. 29 of 58
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 29 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 28 of 39
`
`US 6,732,147 B1
`
`Internal
`
`dispatcher
`
`2201
`
`Fig 22
`
`2202
`
`Assess diameter
`
`
`This
`process = =
`
`originatin ;
`
`Insert message into
`pending connection buffer
`
`= = broadcast
`
`
`statement
`
`Handle broadcast I
`
`message
`
` 2005
`
`
`
`
`
`Type
`
`
`Handtletshutdtown |
`Y
`= = shutdown
`
`statement ‘ S a emen
`
`Type
`
`2205
`
`N
`
`2007
`
`I
`
`Receive response ( )
`
`
`
`message queue
`
`
`Y
`
`Y
`
`Pending
`
`onbuffer
`N
`
`|PR2016-00726
`
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1001, p. 30 of 58
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 30 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 29 of 39
`
`US 6,732,147 B1
`
`Fig. 23
`
`
`
`
`
`Handle broadcast
`message
`
`
`2301
`
`Origin
`from neighbor
`message
`
`Process out of order
`
`message
`
`
`
`2302
`
`message
`
`Distribute broadcast
`
`
`
`2304
`
`Clear out of order info
`
`
`
`
`
`|PR2016-00726
`
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1001, p. 31 of 58
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 31 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 30 of 39
`
`US 6,732,147 B1
`
`.
`
`Flg.
`
`
`
`
`Distribute
`
`message
`
`from neighbor
`
`
`
`2401
`
`Select next neighbor
`
`
`
`402
` All neighbor
`
`selected
`
`2403
`
`Send internal
`
`message
`
`|PR2016-00726
`
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1001, p. 32 of 58
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 32 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 31 of 39
`
`US 6,732,147 B1
`
`Handle connection
`for search
`
`from neighbor
`mggsage
`
`2601
`
`Distribute internal
`
`_M26
`
`2604
`
`602
`
`N
`
`Y
`
`
`
`603
`
` Is requestor
`
`a neighbor
`
`605
`
`enerate
`
`condition check
`
`messa e w/nei hbors
`
`2607
`
`Send internal message
`to requester
`
`lPR2016-00726
`
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1001, p. 33 of 58
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 33 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 32 of 39
`
`US 6,732,147 B1
`
`Prospect
`
`Fig. 27
`
`701
`
`Is prospect
`a neighbor
`
`N
`
`
`
`
`2702
`
`
`
`Dial prospect
`
`Send and receive
`external message
`
`Add neighbor
`
`
`
`N
`
`2706
`
`Hang up prospect
`
`
`
`
`
`
`I
`
`|PR2016-00726
`
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1001, p. 34 of 58
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 34 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 33 of 39
`
`US 6,732,147 B1
`
`edge search call
`Fig. 28
`801
`
` Not
`my message 11
`
`
`holes >= Z
`
`message
`
`
`
`Forward
`
` Remaining
`connection second
`
`distance > O
`edge (requestor
`
`
`remaining dist -1)
`
`
`
`
`
`
`
`
`Forward
`
`.
`R°q”e5t°r
`connection edge
`
`
`
`IS neighbor or edge
`Search (requestor,
`
`reserved
`
`0)
`
`
`N
`2806
`
`‘V
`
`2807
`
`Send and receive
`external message
`
`
`
`Reserve edge of from
`neighbor
`
`2810
`
`2812
`
`'
`
`281 3
`
`
`
`
`Message
`
`N
`from this pt. &&
`holes = =
`
`
`2814
`
`
`
`
`Y
`
`
`I
`
`D
`
`Fill hole (self)
`
`N
`
`en mtem
`
`2815
`
`message (from
`nei bor, ack
`
`V§V
`
`|PR2016-00726
`
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1001, p. 35 of 58
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 35 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 34 of 39
`
`US 6,732,147 B1
`
`origin
`from neighbor
`
`message
`
`Handle edge search
`resp.
`
`2901
`
`Note connection edge
`search response
`
`
`
`Y
`
`2908
`
`Fig. 29
`
`|PR2016-00726
`
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1001, p. 36 of 58
`
`|
`
`I
`
`Fill hole (self)
`
`
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 36 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 35 of 39
`
`US 6,732,147 B1
`
`message
`
`
`
`
`
`
`Generate internal
`
`message
`
`3003
`
`Set message sequence
`number
`
`3004
`
`Distribute internal
`
`message
`
`Fig. 30
`
`
`
`
`
`|PR2016-00726
`
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1001, p. 37 of 58
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 37 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 36 of 39
`
`US 6,732,147 B1
`
`
`
`Acquire message
`
`message
`
`
`
`Fig. 31
`
`3101
`
`Pop message queue
`
`
`
`
`Message
`retrieved
`
`Return false
`
`|PR2016-00726
`
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1001, p. 38 of 58
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 38 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 37 of 39
`
`US 6,732,147 B1
`
`andle condition check
`
`
`
` Same set of
`
`neighbors
`
`Set up message with list
`of neighbors
`
`
`
`
`
`g
`
`3205
`e ect a neig or
`of sending process
`not m neihbor
`
`3206
`
`Ste::eT::::ga[11g?ge;§:§e
`
`3207
`
`
`I
`Add neighbor
`N
`
`
`
`Send internal message
`
`|PR2016-00726
`
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1001, p. 39 of 58
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 39 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 38 of 39
`
`US 6,732,147 B1
`
`Handle condition
`repair statement
`
`
`
`Select a neighbor not
`involved in condition
`
` Fig. 33
`
`
`
`
`Remove selected
`neighbor
`
`3304
`
`I
`
`Add neighbor
`
`I
`
`|PR2016-00726
`
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1001, p. 40 of 58
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 40 of 58
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 39 of 39
`
`US 6,732,147 B1
`
`Same set of
`
`neighbors
`
`N
`
`3404
`
`_
`Reset diameter to 1
`
`3405
`
`Send internal message
`
`
` N
`
`
`
`
`
`3407
`Send internal message
`to-from neighbor
`
`|PR2016-00726
`
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1001, p. 41 of 58
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 41 of 58
`
`
`
`US 6,732,147 B1
`
`1
`LEAVING A BROADCAST CHANNEL
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`
`This application is related to U.S. patent application Ser.
`No. 09/629,576, entitled “BROADCASTING
`NETWORK,” filed on Jul. 31, 2000; U.S. patent application
`Ser. No. 09/629,570, entitled “JOINING A BROADCAST
`CHANNEL,” filed on Jul. 31, 2000; U.S. patent application
`Ser. No. 09/629,577, “LEAVING A BROADCAST
`CHANNEL,” filed on Jul. 31, 2000; U.S. patent application
`Ser. No. 09/629,575, entitled “BROADCASTING ON A
`BROADCAST CHANNEL,” filed on Jul. 31, 2000; U.S.
`patent application Ser. No. 09/629,572, entitled “CON-
`TACTING A BROADCAST CHANNEL,” filed on Jul. 31,
`2000; U.S. patent application Ser. No. 09/629,023, entitled
`“DISTRIBUTED AUCTION SYSTEM,” filed on Jul. 31,
`2000; U.S. patent application Ser. No. 09/629,043, entitled
`“AN INFORMATION DELIVERY SERVICE,” filed on Jul.
`31, 2000; U.S. patent application Ser. No. 09/629,024,
`entitled “DISTRIBUTED CONFERENCING SYSTEM,”
`filed on Jul. 31, 2000; and U.S. patent application Ser. No.
`09/629,042, entitled “DISTRIBUTED GAME
`ENVIRONMENT,” filed on Jul. 31, 2000, the disclosures of
`which are incorporated herein by reference.
`
`TECHNICAL FIELD
`
`The described technology relates generally to a computer
`network and more particularly, to a broadcast channel for a
`subset of a computers of an underlying network.
`
`BACKGROUND
`
`There are a wide variety of computer network communi-
`cations techniques such as point-to-point network protocols,
`client/server middleware, multicasting network protocols,
`and peer-to-peer middleware. Each of these communications
`techniques have their advantages and disadvantages, but
`none is particularly well suited to the simultaneous sharing
`of information among computers that are widely distributed.
`For example, collaborative processing applications, such as
`a network meeting programs, have a need to distribute
`information in a timely manner to all participants who may
`be geographically distributed.
`The point-to-point network protocols, such as UNIX
`pipes, TCP/IP, and UDP, allow processes on different com-
`puters to communicate via point-to-point connections. The
`interconnection of all participants using point-to-point
`connections, while theoretically possible, does not scale well
`as a number of participants grows. For example, each
`participating process would need to manage its direct con-
`nections to all other participating processes. Programmers,
`however, find it very difficult to manage single connections,
`and management of multiple connections is much more
`complex. In addition, participating processes may be limited
`to the number of direct connections that they can support.
`This limits the number of possible participants in the sharing
`of information.
`
`The client/server middleware systems provide a server
`that coordinates the communications between the various
`
`clients who are sharing the information. The server functions
`as a central authority for controlling access to shared
`resources. Examples of client/server middleware systems
`include remote procedure calls (“RPC”), database servers,
`and the common object request broker architecture
`(“CORBA”). Client/server middleware systems are not par-
`|PR2016-00726
`
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1001, p. 42 of 58
`
`2
`ticularly well suited to sharing of information among many
`participants. In particular, when a client stores information
`to be shared at the server, each other client would need to
`poll the server to determine that new information is being
`shared. Such polling places a very high overhead on the
`communications network. Alternatively, each client may
`register a callback with the server, which the server then
`invokes when new information is available to be shared.
`
`Such a callback technique presents a performance bottleneck
`because a single server needs to call back to each client
`whenever new information is to be shared. In addition, the
`reliability of the entire sharing of information depends upon
`the reliability of the single server. Thus, a failure at a single
`computer (i.e., the server) would prevent communications
`between any of the clients.
`The multicasting network protocols allow the sending of
`broadcast messages to multiple recipients of a network. The
`current implementations of such multicasting network pro-
`tocols tend to place an unacceptable overhead on the under-
`lying network. For example, UDP multicasting would
`swamp the Internet when trying to locate all possible par-
`ticipants. IP multicasting has other problems that include
`needing special-purpose infrastructure (e.g., routers) to sup-
`port the sharing of information efficiently.
`The peer-to-peer middleware communications systems
`rely on a multicasting network protocol or a graph of
`point-to-point network protocols. Such peer-to-peer middle-
`ware is provided by the T.120 Internet standard, which is
`used in such products as Data Connection’s D.C.-share and
`Microsoft’s NetMeeting. These peer-to-peer middleware
`systems rely upon a user to assemble a point-to-point graph
`of the connections used for sharing the information. Thus, it
`is neither suitable nor desirable to use peer-to-peer middle-
`ware systems when more than a small number of partici-
`pants is desired. In addition, the underlying architecture of
`the T.120 Internet standard is a tree structure, which relies on
`the root node of the tree for reliability of the entire network.
`That is, each message must pass through the root node in
`order to be received by all participants.
`It would be desirable to have a reliable communications
`
`network that is suitable for the simultaneous sharing of
`information among a large number of the processes that are
`widely distributed.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 illustrates a graph that is 4-regular and 4-connected
`which represents a broadcast channel.
`FIG. 2 illustrates a graph representing 20 computers
`connected to a broadcast channel.
`
`FIGS. 3A and 3B illustrate the process of connecting a
`new computer Z to the broadcast channel.
`FIG. 4A illustrates the broadcast channel of FIG. 1 with
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`an added computer.
`FIG. 4B illustrates the broadcast channel of FIG. 4A with
`
`an added computer.
`FIG. 4C also illustrates the broadcast channel of FIG. 4A
`
`with an added computer.
`FIG. 5A illustrates the disconnecting of a computer from
`the broadcast channel in a planned manner.
`FIG. 5B illustrates the disconnecting of a computer from
`the broadcast channel in an unplanned manner.
`FIG. 5C illustrates the neighbors with empty ports con-
`dition.
`
`60
`
`65
`
`FIG. 5D illustrates two computers that are not neighbors
`who now have empty ports.
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
` 2K, ROCKSTAR
`Ex. 1001, p. 42 of 58
`
`
`
`US 6,732,147 B1
`
`3
`FIG. 5E illustrates the neighbors with empty ports con-
`dition in the small regime.
`FIG. 5F illustrates the situation of FIG. 5E when in the
`
`large regime.
`FIG. 6 is a block diagram illustrating components of a
`computer that is connected to a broadcast channel.
`FIG. 7 is a block diagram illustrating the sub-components
`of the broadcaster component in one embodiment.
`FIG. 8 is a flow diagram illustrating the processing of the
`connect routine in one embodiment.
`
`FIG. 9 is a flow diagram illustrating the processing of the
`seek portal computer routine in one embodiment.
`FIG. 10 is a flow diagram illustrating the processing of the
`contact process routine in one embodiment.
`FIG. 11 is a flow diagram illustrating the processing of the
`connect request routine in one embodiment.
`FIG. 12 is a flow diagram of the processing of the check
`for external call routine in one embodiment.
`
`FIG. 13 is a flow diagram of the processing of the achieve
`connection routine in one embodiment.
`
`FIG. 14 is a flow diagram illustrating the processing of the
`external dispatcher routine in one embodiment.
`FIG. 15 is a flow diagram illustrating the processing of the
`handle seeking connection call routine in one embodiment.
`FIG. 16 is a flow diagram illustrating processing of the
`handle connection request call routine in one embodiment.
`FIG. 17 is a flow diagram illustrating the processing of the
`add neighbor routine in one embodiment.
`FIG. 18 is a flow diagram illustrating the processing of the
`forward connection edge search routine in one embodiment.
`FIG. 19 is a flow diagram illustrating the processing of the
`handle edge proposal call routine.
`FIG. 20 is a flow diagram illustrating the processing of the
`handle port connection call routine in one embodiment.
`FIG. 21 is a flow diagram illustrating the processing of the
`fill hole routine in one embodiment.
`
`FIG. 22 is a flow diagram illustrating the processing of the
`internal dispatcher routine in one embodiment.
`FIG. 23 is a flow diagram illustrating the processing of the
`handle broadcast message routine in one embodiment.
`FIG. 24 is a flow diagram illustrating the processing of the
`distribute broadcast message routine in one embodiment.
`FIG. 26 is a flow diagram illustrating the processing of the
`handle connection port search statement routine in one
`embodiment.
`
`FIG. 27 is a flow diagram illustrating the processing of the
`court neighbor routine in one embodiment.
`FIG. 28 is a flow diagram illustrating the processing of the
`handle connection edge search call routine in one embodi-
`ment.
`
`FIG. 29 is a flow diagram illustrating the processing of the
`handle connection edge search response routine in one
`embodiment.
`
`FIG. 30 is a flow diagram illustrating the processing of the
`broadcast routine in one embodiment.
`
`FIG. 31 is a flow diagram illustrating the processing of the
`acquire message routine in one embodiment.
`FIG. 32 is a flow diagram illustrating processing of the
`handle condition check message in one embodiment.
`FIG. 33 is a flow diagram illustrating processing of the
`handle condition repair statement routine in one embodi-
`ment.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`FIG. 34 is a flow diagram illustrating the processing of the
`handle condition double check routine.
`
`DETAILED DESCRIPTION
`
`technique in which a broadcast channel
`A broadcast
`overlays a point-to-point communications network is pro-
`vided. The broadcasting of a message over the broadcast
`channel is effectively a multicast to those computers of the
`network that are currently connected to the broadcast chan-
`nel. In one embodiment, the broadcast technique provides a
`logical broadcast channel to which host computers through
`their executing processes can be connected. Each computer
`that is connected to the broadcast channel can broadcast
`
`messages onto and receive messages off of the broadcast
`channel. Each computer that is connected to the broadcast
`channel receives all messages that are broadcast while it is
`connected. The logical broadcast channel is implemented
`using an underlying network system (e.g., the Internet) that
`allows each computer connected to the underlying network
`system to send messages to each other connected computer
`using each computer’s address. Thus, the broadcast tech-
`nique effectively provides a broadcast channel using an
`underlying network system that sends messages on a point-
`to-point basis.
`The broadcast technique overlays the underlying network
`system with a graph of point-to-point conne