throbber

`
`
`
`[19]
`United States Patent
`
`
`5,822,523
`[11] Patent Number:
`
`
`
`[45] Date of Patent: Oct. 13, 1998
`Rothschild et al.
`
`
`
`
`
`
`
`
`
`
`
`||||||||||||l||||||||||||||||||||||||l|||||||||||||||||||||||||||l|||||||||
`
`
`
`
`
`
`
`
`
`
`
`
`U5005822523A
`
`
`SERVER-GROUP MESSAGING SYSTEM FOR
`
`
`
`INTERACTIVE APPLICATIONS
`
`
`
`
`
`
`Inventors: Jeffrey J. Rothschild; Marc P.
`
`
`
`
`
`
`Kwiatkowski, both of Los Gatos;
`
`
`
`
`
`Daniel J. Samuel, Sunnyvale, all of
`
`
`
`
`
`Calif.
`
`
`
`
`Assignee: Mpath Interactive, Inc., Mountain
`
`
`
`
`View, Calif.
`
`
`
`
`
`Appl. No.: 595,323
`
`
`
`Filed:
`Feb. 1, 1996
`
`
`
`
`
`
`Int. Cl.6 ..
`........................ H04H 1/02
`
`
`
`
`US. Cl.
`.. 395/200.17; 395/2001;
`
`
`
`
`
`395/200.09
`Field of Search ............................ 395/2001, 200.01,
`
`
`
`
`
`395/20009, 200.17, 200.05, 793; 370/8513,
`
`
`
`
`60
`
`
`
`
`
`
`
`
`[54]
`
`
`[75]
`
`
`
`[73]
`
`[21]
`
`[22]
`
`[51]
`[52]
`
`[58]
`
`
`
`
`
`
`
`
`
`
`
`
`[56]
`
`
`Primary ExamineriWilliam M. Treat
`
`
`
`Assistant Examiner—Zuni Maung
`
`
`
`Attorney, Agent, or Firm—II.
`(3. Chan; Wison Sonsini
`
`
`
`
`
`
`
`Goodrich & Rosati
`
`
`
`
`
`
`
`
`
`
`
`
`[57]
`
`ABSTRACT
`
`
`
`A method for deploying interactive applications over a
`
`
`
`
`
`
`
`network containing host computers and group messaging
`
`
`
`
`
`
`servers is disclosed. The method operates in a conventional
`
`
`
`
`
`
`
`
`unicast network architecture comprised of conventional net-
`
`
`
`
`
`
`work links and unicast gateways and routers. The hosts send
`
`
`
`
`
`
`
`
`
`
`messages containing destination group addresses by unicast
`
`
`
`
`
`
`
`to the group messaging servers. The group addresses select
`
`
`
`
`
`
`
`
`
`message groups maintained by the group messaging servers,
`
`
`
`
`
`
`
`
`For each message group, the group messaging servers also
`
`
`
`
`
`
`
`
`
`maintain a list of all of the hosts that are members of the
`
`
`
`
`
`
`
`
`
`
`
`
`
`particular group.
`In its most simple implementation, the
`
`
`
`
`
`
`
`
`method consists of the group server receiving a message
`
`
`
`
`
`
`
`
`
`from a host containing a destination group address. Using
`
`
`
`
`
`
`
`
`
`the group address, the group messaging server then selects
`
`
`
`
`
`
`
`
`
`a message group which lists all of the host members of the
`
`
`
`
`
`
`
`
`
`
`
`
`group which are the targets of messages to the group. The
`
`
`
`
`
`
`
`
`
`
`
`group messaging server then forwards the message to each
`
`
`
`
`
`
`
`
`
`of the target hosts.
`In an interactive application, many
`
`
`
`
`
`
`
`
`
`messages will be arriving at the group server close to one
`
`
`
`
`
`
`
`
`
`
`
`another in time. Rather than simply forward each message to
`
`
`
`
`
`
`
`
`
`
`its targeted hosts, the group messaging server aggregates the
`
`
`
`
`
`
`
`
`
`contents of each of messages received during a specified
`
`
`
`
`
`
`
`
`
`time period and then sends an aggregated message to the
`
`
`
`
`
`
`
`
`
`
`targeted hosts. The time period can be defined in a number
`
`
`
`
`
`
`
`
`
`
`
`of ways. This method reduces the message traffic between
`
`
`
`
`
`
`
`
`
`hosts in a networked interactive application and contributes
`
`
`
`
`
`
`
`
`to reducing the latency in the communications between the
`
`
`
`
`
`
`
`
`
`hosts.
`
`
`6 Claims, 11 Drawing Sheets
`
`
`
`
`
`
`
`References Cited
`
`
`US. PATENT DOCUMENTS
`
`
`
`. 370/60
`4,470,954
`9/1984 Cotton et a1.
`
`
`
`
`
`
`
`370/943
`5,079,767
`1/1992 Perlmali
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`395/200.01
`5,150,464
`9/1992 Sidhu et a1.
`
`
`
`
`
`
`
`
`. 370/60
`5,309,433
`5/1994 Cidon et at.
`
`
`
`
`
`
`
`5,309,437
`. 370/8513
`5/1994 Perlman et al.
`
`
`
`
`
`
`
`5,329,619
`395/20001
`7/1994 Pagé et al.
`
`
`
`
`
`
`
`5,361,256
`......... 370/60
`11/1994 Docringei‘ et a1.
`
`
`
`
`
`
`
`
`
`
`5,475,819
`395/200.01
`12/1995 Miller et al.
`
`
`
`
`
`
`
`5,517,494
`370/60
`5/1996 Green
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`FOREIGN PATENT DOCUMENTS
`
`
`European Pat. Off.
`.
`1/1995
`
`
`
`
`4/1995 WIPO .
`
`
`4/1995 WIPO .
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`0637142
`WO 95/10908
`
`WO 95/10911
`
`
`
`
`
`
`95 \
`
`/
`
`100
`
`
`
`
`
`HostASends
`s
`e
`
`
`
`
`
`
`
`
`
`
`Host A Receives
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Host B Sends Host B Receives
`
`101
`S
`G
`B
`P2
`s
`B
`I
`P1
`P3
`P4
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`102
`
`
`Host C Sends
`Host C Receives
`
`
`
`
`
`
`
`s G|P3J
`s|c J
`P11P2|P4|
`c
`
`
`
`
`
`
`
`
`
`
`103
`Host D Sends
`
`Host D Receives
`S
`G
`D
`P4
`S
`D
`K
`P1
`P2
`P3
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`I
`97 x
`
`98
`
`
`S9
`
`
`1 DO
`
`
`
`101
`
`
`
`1
`
`103
`
`
`
`
`
`
`
`
`A
`H
`P
`5
`P4
`
`
`
`
`
`
`Group Server Sends
`
`2
`P3
`
`
`
`
`
`
`
`F1
`|
`P3
`P4
`
`
`
`
`
`
`
`
`
`
`[P1
`J
`P2
`P4
`
`
`
`K 1 P1
`P2
`P3
`
`
`
`
`
`
`
`
`
`
`
`
`1
`s
`
`
`1 3
`
`1 s
`
`
`
`G E]
`
`
`
`
`P3 1
`<3
`
`
`G 1 P41
`
`
`
`
`
`5
`s
`s
`
`E
`
`
`1 c |
`
`| D 1
`
`
`
`
` 102?}I
`13
`TL]
`J1 c
`
`
`98f D
`
`Petitioner Valve - Ex. 1001, Page 1
`
`Petitioner Riot Games, Inc. - Ex. 1001, p. 1
`
`Petitioner Riot Games, Inc. - Ex. 1001, p. 1
`
`Petitioner Valve - Ex. 1001, Page 1
`
`

`

`
`US. Patent
`
`
`
`Oct. 13, 1998
`
`
`
`
`
`Sheet 1 0f 11
`
`
`
`
`
`
`5,822,523
`
`
`
`
`
`0
`
`14
`
`
`
`w
`
`3
`
`
`
`
`
`Figure 1
`
`
`Prior Art
`
`Petitioner Valve - Ex. 1001, Page 2
`
`Petitioner Riot Games, Inc. - Ex. 1001, p. 2
`
`Petitioner Riot Games, Inc. - Ex. 1001, p. 2
`
`Petitioner Valve - Ex. 1001, Page 2
`
`

`

`
`US. Patent
`
`
`
`Oct. 13, 1998
`
`
`
`
`
`Sheet 2 of 11
`
`
`
`
`
`
`5,822,523
`
`
`
`20
`
`21
`
`22
`
`
`
`
`
`
`
`
`
`
`
`Host A Sends
`
`
`
`
`
`
`
`
`
`"I!
`
`
`
`23
`
`29
`
`
`
`Host A Receives
`
`
`
`
`
`26 an
`
`
`
`
`
`
`
`
`In-
`
`
`23
`
`
`
`
`
`
`
`
`
`20
`
`
`
`
`
`
`
`Host B Receives
`Host B Sends
`
`
`
`
`
`
`
`
`
`
`
`
`
`25 m 30 "I!
`
`
`
`
`
`
`“-3-
`“II-
`
`
`
`
`
`
`
`
`
`21
`26
`Host C Receives
`Host C Sends
`
`
`
`
`
`
`27 n 24 n
`
`
`
`
`
`
`
`
`
`
`28 "I! 31 m
`
`
`
`
`
`
`
`
`"I!
`I”
`
`
`
`
`29
`
`Host D Sends
`
`
`
`
`
`22
`
`Host D Receives
`
`
`
`
`
`
`
`
`
`
`
`30 n 25 u
`
`
`
`
`
`
`
`
`
`31 “II-
`28 II“-
`
`
`
`
`
`
`
`
`um "I!
`
`
`
`
`Figure 2
`
`Prior Art
`
`
`
`Petitioner Valve - Ex. 1001, Page 3
`
`Petitioner Riot Games, Inc. — EX. 1001, p. 3
`
`Petitioner Riot Games, Inc. - Ex. 1001, p. 3
`
`Petitioner Valve - Ex. 1001, Page 3
`
`

`

`
`US. Patent
`
`
`
`Oct. 13, 1998
`
`
`
`
`
`Sheet 3 0f11
`
`
`
`
`
`
`5,822,523
`
`
`
`35
`
`
`
`:e
`
`
`
`@
`
`51
`
`
`
`@38
`
`
`
`Figure 3
`
`
`Prior Art
`
`Petitioner Valve - Ex. 1001, Page 4
`
`Petitioner Riot Games, Inc. - Ex. 1001, p. 4
`
`Petitioner Riot Games, Inc. - Ex. 1001, p. 4
`
`Petitioner Valve - Ex. 1001, Page 4
`
`

`

`
`U.S. Patent
`
`
`
`Oct. 13, 1998
`
`
`
`
`
`Sheet 4 of 11
`
`
`
`
`
`
`5,822,523
`
`
`
`
`
`
`
`
`
`Host A Sends
`
`
`
`
`55a
`
`57,
`
`
`
`
`
`Host A Receives
`
`
`
`
`,6, a“
`
`
`
`
`
`
`
`
`
`
`
`I"
`
`54
`
`55
`
`
`
`
`
`Host 8 Sends
`54b
`
`
`
`
`m 56b
`
`57b
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Host B Receives
`
`
`
`
`
`
`
`um
`
`56
`
`
`
`
`
`
`
`Host C Sends
`
`
`
`
`
`
`
`54C
`
`55,
`
`
`
`
`
`Host C Receives
`
`
`
`
`
`
`
`
`570 I“
`
`
`
`
`I“-
`
`57
`
`Host D Sends
`
`
`
`
`
`54d
`
`Host D Receives
`
`
`
`
`
`
`
`
`
`
`
`“-- 5,,
`
`
`
`
`sad I"
`
`
`
`
`
`
`
`
`
`
`
`
`Figure 4
`
`
`Prior Art
`
`Petitioner Valve - Ex. 1001, Page 5
`
`Petitioner Riot Games, Inc. — EX. 1001, p. 5
`
`Petitioner Riot Games, Inc. - Ex. 1001, p. 5
`
`Petitioner Valve - Ex. 1001, Page 5
`
`

`

`
`US. Patent
`
`
`
`Oct. 13, 1998
`
`
`
`
`
`Sheet 5 0f 11
`
`
`
`
`
`
`5,822,523
`
`
`
`58
`
`ea.
`
`69
`
`71
`
`67
`
`
`
`@
`
`75
`
`63
`
`64
`
`72
`
`7O
`
`74
`
`68 .
`
`76
`
`. 77
`
`61
`
`62
`
`m
`
`
`Figure 5
`
`
`
`Petitioner Valve - Ex. 1001, Page 6
`
`Petitioner Riot Games, Inc. — EX. 1001, p. 6
`
`Petitioner Riot Games, Inc. - Ex. 1001, p. 6
`
`Petitioner Valve - Ex. 1001, Page 6
`
`

`

`
`US. Patent
`
`
`
`Oct. 13, 1998
`
`
`
`
`
`Sheet 6 0f 11
`
`
`
`
`
`
`5,822,523
`
`
`
`I II
`
`Host A Receives
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Host A Sends
`
`
`
`
`
`
`
`84
`
`95
`
`99
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Host B Receives
`Host B Sends
`87
`
`
`
`
`
`
`
`
`
`
`
`I“- 99 -“II
`
`
`
`
`
`
`99 -I"—
`
`
`
`
`-I"ll
`
`
`
`Host C Sends
`
`
`
`
`
`
`
`
`
`
`
`
`90
`
`91
`
`92
`
`93
`
`
`
`
`
`
`
`
`Host C Receives
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Host D Receives
`Host D Sends
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`n--- 94 mm:
`
`
`
`
`
`95 -Im
`
`
`
`
`--:--
`
`
`80
`Group Server Receives
`91
`
`
`
`
`
`
`
`
`
`
`
`
`IIII IIIIIII
`IIIII
`
`80
`
`81
`
`82
`
`83
`
`84
`
`95
`
`99
`
`97
`
`91
`
`92
`
`99
`
`
`
`Group Server Sends
`
`
`
`
`
`
`
`
`
`
`99 -I“II
`
`
`
`99 -I“—
`
`
`
`99 -“II
`
`
`
`
`
`
`
`
`94 ml!
`
`
`
`
`
`
`95 m“
`
`--“
`
`
`
`
`I III
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`92 I“-
`
`
`
`
`
`99
`
`
`
`
`
`
`
`
`
`Im-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Figure 6
`
`
`
`Petitioner Valve - Ex. 1001, Page 7
`
`Petitioner Riot Games, Inc. — EX. 1001, p. 7
`
`Petitioner Riot Games, Inc. - Ex. 1001, p. 7
`
`Petitioner Valve - Ex. 1001, Page 7
`
`

`

`US. Patent
`
`Oct. 13, 1998
`
`Sheet 7 of 11
`
`5,822,523
`
`96
`
`97
`
`98
`
`99
`
`100
`
`
` Host A Sends
`
`
`
`
`
`
`Host 8 Sends
`
`
`Host C Sends
`
`
`
`100
`
`101
`
`102
`
`103
`
`
`
` -----III
`
`Host A Receives
`
`
`Host B Receives
`
`
`
`Host C Receives
`
`
`
`Host D Sends
`Host D Receives
`
`"m
`
`96
`
`Group Server Sends
`
`,0,_P2
`-fl—1
`“mm
`“’2 "m 98
`
`9,
`
`Group Server Receives
`
`I"-
`
`nun:
`
`103 /
`
`99
`
`Figure 7
`
`Petitioner Valve - Ex. 1001, Page 8
`Petitioner Riot Games, Inc. - Ex. 1001, p. 8
`
`Petitioner Valve - Ex. 1001, Page 8
`
`

`

`US. Patent
`
`0a. 13, 1998
`
`Sheet 8 0f 11
`
`5,822,523
`
`
`
`Figure 8
`Prior Art
`
`Petitioner Valve - Ex. 1001, Page 9
`Petitioner Riot Games, Inc. - Ex. 1001, p. 9
`
`Petitioner Valve - Ex. 1001, Page 9
`
`

`

`US. Patent
`
`0m. 13. 1998
`
`Sheet 9 of 11
`
`5,822,523
`
`123
`
`124
`
`125
`
`126
`
`127
`
`128
`
`129
`
`
`
`Destination Pa I
`Transport ULP Msg. DesL ULP Address Destination
`Header
`Type
`Address
`Count
`Address 1 """ Address N
`V °a
`
`
`
`d
`
`116
`
`117
`J
`
`118
`
`119
`
`120
`
`121
`
`122
`
`
`
`Message Source ULP
`Count
`Address 1
`
`Data
`Length 1
`
`Data 1
`
`
`
`Source ULP
`""" Address N
`
`Length N
`
`Data
`
`
`
`
`
`131130 132
`
`
`
`
`
`Figure 9
`
`Petitioner Valve - Ex. 1001, Page 10
`Petitioner Riot Games, Inc. - BX. 100], p. 10
`
`Petitioner Valve - Ex. 1001, Page 10
`
`

`

`
`U.S. Patent
`
`
`
`Oct. 13, 1998
`
`
`
`
`
`Sheet 10 of 11
`
`
`
`
`
`5,822,523
`
`
`
`
`
`1 35
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Implicit ULP Group Address m
`
`
`
`
`
`
`
`
`Network Interface
`
`
`
`
`
`
`
`
`
`
`Group Sewer Control
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Host ULP Address 0 Host TLP Address 0
`
`
`
`
`
`
`
`
`
`
`
`
`Implicit ULP Group Address 0
`
`Application
`
`
`
`Specific State
`
`
`
`
`
`
`
`
`
`Storage and
`
`
`Host ULP Address n Host TLP Address n
`
`Processing
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ULP Server Process m
`
`
`
`
`
`
`
`
`Host ULP Address 3
`
`
`
`
`
`
`
`
`
`
`
`
`
`Host ULP Address n
`
`
`
`
`ULP Server Process 0
`
`
`
`
`
`
`Host ULP Address a
`
`
`
`
`
`
`
`
`
`
`
`
`Host ULP Address n
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Host ULP Address a
`
`
`
`
`
`Logical ULP Address 0
`
`
`
`
`
`
`
`
`
`
`Host ULP Address n
`
`
`
`
`
`
`
`
`
`
`
`Logical ULP Address m
`Host ULP Address a
`
`
`
`
`
`
`Host ULP Address n
`
`
`
`
`
`
`
`Figure 10
`
`
`
`Petitioner Valve - Ex. 1001, Page 11
`
`Petitioner Riot Games, Inc. - Ex. 1001, p. 11
`
`Petitioner Riot Games, Inc. - Ex. 1001, p. 11
`
`Petitioner Valve - Ex. 1001, Page 11
`
`

`

`
`U.S. Patent
`
`
`
`Oct. 13, 1998
`
`
`
`
`
`Sheet 11 0f 11
`
`
`
`
`
`
`5,822,523
`
`
`
`
`
`
`
`
`
`
`
`
`
`Host Interface for Upper Level Protocol
`
`
`
`
`
`
`
`
`
`
`ULP Address n
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`150
`
`
`
`
`Interactive Application
`
`
`
`
`
`
`
`
`152
`
`
`
`ULP Address 0
`
`
`
`
`TLP Address 0
`
`
`
`
`
`TLP Address n
`
`
`
`
`
`
`
`
`
`
`Host Interface for Transport Level Protocol
`
`
`
`Network Communications Stack
`
`
`
`
`
`Network Interface
`
`
`
`
`153
`
`154
`
`155
`
`
`Figure 1 1
`
`
`
`Petitioner Valve - Ex. 1001, Page 12
`
`Petitioner Riot Games, Inc. - Ex. 1001, p. 12
`
`Petitioner Riot Games, Inc. - Ex. 1001, p. 12
`
`Petitioner Valve - Ex. 1001, Page 12
`
`

`

`1
`
`SERVER-GROUP MESSAGING SYSTEM FOR
`
`
`
`INTERACTIVE APPLICATIONS
`
`
`
`
`
`
`
`
`
`
`
`FIELD OF TIIE INVENTION
`
`
`
`
`invention relates to computer network
`The present
`
`
`
`
`
`
`systems, and particularly to server group messaging systems
`
`
`
`
`
`
`
`and methods for reducing message rate and latency.
`
`
`
`
`
`
`
`
`BACKGROUND OF THE INVENTION
`
`
`
`
`There are a wide range of interactive applications irnple—
`
`
`
`
`
`
`
`
`mented on computer systems today. All are characterized by
`
`
`
`
`
`
`
`
`
`dynamic response to the user. The user provides input to the
`
`
`
`
`
`
`
`
`
`
`
`computer and the application responds quickly. One popular
`
`
`
`
`
`
`
`
`example of interactive applications on personal computers
`
`
`
`
`
`
`
`(PCs) are games. In this case, rapid response to the user may
`
`
`
`
`
`
`
`
`
`
`
`
`mean redrawing the screen with a new picture in between 30
`
`
`
`
`
`
`
`
`
`
`ms and 100 ms. Interactive applications such as games
`
`
`
`
`
`
`
`
`
`control the speed of their interaction with the user through
`
`
`
`
`
`
`
`
`
`
`an internal time base. The application uses this time base to
`
`
`
`
`
`
`
`
`
`
`
`derive rates at which the user input is sampled, the screen is
`
`
`
`
`
`
`
`
`
`
`
`
`redrawn and sound is played.
`
`
`
`
`
`As computers have become more powerful and common,
`
`
`
`
`
`
`
`it has become important to connect them together in net-
`
`
`
`
`
`
`
`
`
`works. A network is comprised of nodes and links. The
`
`
`
`
`
`
`
`
`
`
`nodes are connected in such a way that there exists a path
`
`
`
`
`
`
`
`
`
`
`
`
`from each node over the links and through the other nodes
`
`
`
`
`
`
`
`
`
`
`
`to each of the other nodes in the network. Each node may be
`
`
`
`
`
`
`
`
`
`
`
`
`
`connected to the network with one or more links. Nodes are
`
`
`
`
`
`
`
`
`
`
`
`further categorized into hosts, gateways and routers. Hosts
`
`
`
`
`
`
`
`
`are computer systems that are connected to the network by
`
`
`
`
`
`
`
`
`
`
`one link. They communicate with the other nodes on the
`
`
`
`
`
`
`
`
`
`
`network by sending messages and receiving messages. Gate-
`
`
`
`
`
`
`
`ways are computer systems connected to the network by
`
`
`
`
`
`
`
`
`
`more than one link. They not only communicate with the
`
`
`
`
`
`
`
`
`
`
`other nodes as do hosts, but they also forward messages on
`
`
`
`
`
`
`
`
`
`
`
`one of their network links to other nodes on their other
`
`
`
`
`
`
`
`
`
`
`
`network links. This processing of forwarding messages is
`
`
`
`
`
`
`
`
`called routing. In addition to sending and receiving mes-
`
`
`
`
`
`
`
`
`sages and their routing functions, gateways may perform
`
`
`
`
`
`
`
`
`other functions in a network. Routers are nodes that are
`
`
`
`
`
`
`
`
`
`
`connected to the network by more than one link and whose
`
`
`
`
`
`
`
`
`
`
`
`sole function is the forwarding of messages on one network
`
`
`
`
`
`
`
`
`
`
`link to the other network links to which it is connected. A
`
`
`
`
`
`
`
`
`
`
`
`
`network consisting of many network links can be thought of
`
`
`
`
`
`
`
`
`
`
`as a network of sub—networks with gateways and/or routers
`
`
`
`
`
`
`
`
`
`connecting the sub—networks together into what is called an
`
`
`
`
`
`
`
`
`
`internet. Today the widely known example of a world wide
`
`
`
`
`
`
`
`
`
`internet is the so called “Internet” which in 1995 has over 10
`
`
`
`
`
`
`
`
`
`
`
`
`million computers connected full time world-wide.
`
`
`
`
`
`
`With so many computers on a single world —wide network,
`
`
`
`
`
`
`
`it is desirable to create interactive networked applications
`
`
`
`
`
`
`
`that bring together many people in a shared, networked,
`
`
`
`
`
`
`
`
`interactive application. Unfortunately, creating such shared
`
`
`
`
`
`networked, interactive applications runs into the limitations
`
`
`
`
`
`
`of the existing network technology.
`
`
`
`
`
`As an example, consider a garlic designed to be deployed
`
`
`
`
`
`
`
`
`
`
`over a network which is to be played by multiple players
`
`
`
`
`
`
`
`
`
`
`
`simultaneously. The game could be implemented in software
`
`
`
`
`
`
`
`
`on a PC connected to a network. A rate set by its internal
`
`
`
`
`
`
`
`
`
`
`
`
`
`time base, it would sample the inputs of the local user,
`
`
`
`
`
`
`
`
`
`
`
`receive messages from the network from the PCs of the other
`
`
`
`
`
`
`
`
`
`
`
`players and send messages out
`to the PCs of the other
`
`
`
`
`
`
`
`
`
`
`
`players. A typical rate will be ten time per second for a time
`
`
`
`
`
`
`
`
`
`
`
`
`
`period of 100 ms. The messages sent between the PCs would
`
`
`
`
`
`
`
`
`
`
`
`contain information that was needed to keep the game
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`10
`
`
`
`15
`
`
`
`
`
`
`
`30
`
`
`
`35
`
`
`
`4O
`
`
`
`45
`
`
`50
`
`55
`
`
`
`
`
`60
`
`
`
`65
`
`
`5,822,523
`
`
`
`
`
`
`
`2
`
`consistent between all of the PCs. In a game that created the
`
`
`
`
`
`
`
`
`
`
`
`illusion of a spatial environment where each player could
`
`
`
`
`
`
`
`
`
`move, the packets could contain information about the new
`
`
`
`
`
`
`
`
`
`positions of the players as they moved. Today there are many
`
`
`
`
`
`
`
`
`
`
`
`commercial example of PC games that can be played
`
`
`
`
`
`
`
`
`
`between multiple players on Local Area Networks (LANs)
`
`
`
`
`
`
`
`
`or by two players over dial—up phone lines using modems.
`
`
`
`
`
`
`
`
`
`
`The network messages sent by such games contain a wide
`
`
`
`
`
`
`
`
`
`
`variety of information specific to the game. This can include
`
`
`
`
`
`
`
`
`
`
`position and velocity information of the objects in the game
`
`
`
`
`
`
`
`
`
`
`along with special actions taken by a player that effect the
`
`
`
`
`
`
`
`
`
`
`
`other players in the garlic.
`
`
`
`
`
`The case of a two player game played over a modem is
`
`
`
`
`
`
`
`
`
`
`particularly simple. If the message rate is 10 messages per
`
`
`
`
`
`
`
`
`
`second, each PC sends 10 messages per second to the other
`
`
`
`
`
`
`
`
`
`
`PC and receives 10 messages per second. The delay intro-
`
`
`
`
`
`
`
`
`
`duced by the modems and phone line is small and will not
`
`
`
`
`
`
`
`
`
`
`
`
`be noticed in most games. Unfortunately, the case of two
`
`
`
`
`
`
`
`
`
`
`players is uninteresting for networked interactive applica—
`
`
`
`
`
`
`tions. With the same game played with 8 players on a LAN,
`
`
`
`
`
`
`
`
`
`
`
`
`the message rate increases. Each PC must send 7 messages,
`
`
`
`
`
`
`
`
`
`
`one to each of the other 7 players every time period and will
`
`
`
`
`
`
`
`
`
`
`
`
`
`receive 7 messages from the other players in the same time
`
`
`
`
`
`
`
`
`
`
`
`period. If the messaging time period is 100 ms, the total
`
`
`
`
`
`
`
`
`
`
`
`message rate will be 70 messages sent per second and 70
`
`
`
`
`
`
`
`
`
`
`
`messages received per second. As can be seen the message
`
`
`
`
`
`
`
`
`
`
`rate increases linearly with the number of players in the
`
`
`
`
`
`
`
`
`
`
`game. The message rates and data rates supported by popu—
`
`
`
`
`
`
`
`
`
`lar LANs are high enough to support a large number of
`
`
`
`
`
`
`
`
`
`
`
`players at reasonable message sizes. Unfortunately, LANs
`
`
`
`
`
`
`
`are only deployed in commercial applications and cannot be
`
`
`
`
`
`
`
`
`
`considered for deploying a networked interactive applica-
`
`
`
`
`
`
`tion to consumer users.
`
`
`
`
`The wide area networks available today to consumer users
`
`
`
`
`
`
`
`
`
`all must be accessed through dial—up phone lines using
`
`
`
`
`
`
`
`
`
`modems. While modern speeds have increased rapidly, they
`
`
`
`
`
`
`
`
`have now reached a bit rate of 28.8 Kbits/sec which is close
`
`
`
`
`
`
`
`
`
`
`
`to the limit set by the signal-to-noise ratio of conventional
`
`
`
`
`
`
`
`
`
`
`phone lines. Further speed increases are possible with ISDN,
`
`
`
`
`
`
`
`
`
`but this technology is not ready for mass market use. Other
`
`
`
`
`
`
`
`
`
`
`
`new wide area networking technologies are being discussed
`
`
`
`
`
`
`
`
`that would provide much higher bandwidth, but none are
`
`
`
`
`
`
`
`
`
`close to commercial operation. Therefore, in deploying a
`
`
`
`
`
`
`
`
`networked, interactive application to consumers, it is nec-
`
`
`
`
`
`
`
`essary to do so in a way that operates with existing net—
`
`
`
`
`
`
`
`
`
`
`
`working and communications infrastructures.
`
`
`
`
`In the example of the 8 player networked game, consider
`
`
`
`
`
`
`
`
`
`
`a wide area network implementation where the PCs of each
`
`
`
`
`
`
`
`
`
`
`of the players is connected to the network with a 28.8
`
`
`
`
`
`
`
`
`
`
`
`Kbit/sec modem. Assume that
`the network used in this
`
`
`
`
`
`
`
`
`
`example is the Internet so that all of the network protocols
`
`
`
`
`
`
`
`
`
`
`
`and routing behavior is well defined and understood. If the
`
`
`
`
`
`
`
`
`
`
`garlic uses TCP/IP to send its messages between the PCs in
`
`
`
`
`
`
`
`
`
`
`
`the game, the PPP protocol over the dial—up phone lines can
`
`
`
`
`
`
`
`
`
`
`
`be advantageously used to compress the TCP/IP headers.
`
`
`
`
`
`
`
`
`Even so, a typical message will be approximately 25 bytes
`
`
`
`
`
`
`
`
`
`
`in size. Sent
`through the modem,
`this is 250 bits. The
`
`
`
`
`
`
`
`
`
`
`
`messages are sent 10 times per second to each of the other
`
`
`
`
`
`
`
`
`
`
`
`
`PCs in the game and received 10 times per second from the
`
`
`
`
`
`
`
`
`
`
`
`
`other PCs. This is 35.0 KbitS/sec which exceeds the capa-
`
`
`
`
`
`
`
`
`
`bilities of the modem by 20%. If the messages are reduced
`
`
`
`
`
`
`
`
`
`
`
`this
`to 20 bytes, just 8 players can be supported, but
`
`
`
`
`
`
`
`
`
`
`
`approach clearly cannot support networked interactive
`
`
`
`
`
`
`applications with large numbers of participants. There are
`
`
`
`
`
`
`
`
`other problems beyond just the bandwidth of the network
`
`
`
`
`
`
`
`
`
`connection. There is the loading on each PC caused by the
`
`
`
`
`
`
`
`
`
`
`
`high packet rates and there is the latency introduced by the
`
`
`
`
`
`
`
`
`
`
`
`
`Petitioner Valve - Ex. 1001, Page 13
`
`Petitioner Riot Games, Inc. - Ex. 1001, p. 13
`
`Petitioner Riot Games, Inc. - Ex. 1001, p. 13
`
`Petitioner Valve - Ex. 1001, Page 13
`
`

`

`
`
`5,822,523
`
`3
`
`time needed to send all of the outbound packets. Each packet
`
`
`
`
`
`
`
`
`
`
`
`sent or received by a PC will require some amount of
`
`
`
`
`
`
`
`
`
`
`
`processing time. As the packet
`rate increases with the
`
`
`
`
`
`
`
`
`
`number of players in the game, less and less of the processor
`
`
`
`
`
`
`
`
`
`
`
`
`will be available for running the game software itself
`
`
`
`
`
`
`
`
`
`Latency is important in an interactive application because it
`
`
`
`
`
`
`
`
`
`defines the responsiveness of the system. When a player
`
`
`
`
`
`
`
`
`
`provides a new input on their system, it is desirable for that
`
`
`
`
`
`
`
`
`
`
`
`
`input to immediately affect the game on all of the other
`
`
`
`
`
`
`
`
`
`
`
`players systems. This is particularly important in any game
`
`
`
`
`
`
`
`
`
`where the game outcome depends on players shooting at
`
`
`
`
`
`
`
`
`
`targets that are moved by the actions of the other players.
`
`
`
`
`
`
`
`
`
`
`
`Latency in this case will be the time from when a player acts
`
`
`
`
`
`
`
`
`
`
`
`
`to move a target to the time that the target has moved on the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`screens of the other players in the game. A major portion of
`
`
`
`
`
`
`
`
`
`
`
`
`this latency will come from the time needed to send the
`
`
`
`
`
`
`
`
`
`
`
`messages to the other seven players in the game. In this
`
`
`
`
`
`
`
`
`
`
`
`example the time to send the messages to the other 7 players
`
`
`
`
`
`
`
`
`
`
`
`will be approximately 50 ms. While the first player of the
`
`
`
`
`
`
`
`
`
`
`
`seven will receive the message quickly, it will not be until
`
`
`
`
`
`
`
`
`
`
`
`50 ms have passed that the last player of the seven will have
`
`
`
`
`
`
`
`
`
`
`
`
`
`received the message.
`
`
`
`Internet Protocol Multicasting
`
`
`
`As mentioned before,
`the Internet is a widely known
`
`
`
`
`
`
`
`
`
`example of a wide area network. The Internet is based on a
`
`
`
`
`
`
`
`
`
`
`
`protocol appropriately called the Internet Protocol (IP). In
`
`
`
`
`
`
`
`
`the OSI reference model for layers of network protocols, IP
`
`
`
`
`
`
`
`
`
`
`corresponds to a
`layer 3 or Network layer protocol.
`It
`
`
`
`
`
`
`
`
`
`
`provides services for transmission and routing of packets
`
`
`
`
`
`
`
`
`between two nodes in an internet. The addressing model
`
`
`
`
`
`
`
`
`
`provides a 32 bit address for all nodes in the network and all
`
`
`
`
`
`
`
`
`
`
`
`
`packets carry source and destination addresses.
`IP also
`
`
`
`
`
`
`
`
`defines the routing of packets between network links in an
`
`
`
`
`
`
`
`
`
`
`inter-network. Gateways and routers maintain tables that are
`
`
`
`
`
`
`
`
`used to lookup routing information based on the destination
`
`
`
`
`
`
`
`
`
`addresses of the packets they receive. The routing informa-
`
`
`
`
`
`
`
`
`tion tells the gateway/router whether the destination of the
`
`
`
`
`
`
`
`
`packet is directly reachable on a local network link con—
`
`
`
`
`
`
`
`
`
`nected to the gateway/router or if not, the address of another
`
`
`
`
`
`
`
`
`
`
`
`
`gateway/router on one of the local network links to which
`
`
`
`
`
`
`
`
`
`
`the packet should be forwarded. On top of IP are the layer
`
`
`
`
`
`
`
`
`
`
`
`
`4 transport protocols TCP and UDP. UDP provides datagram
`
`
`
`
`
`
`
`
`
`delivery services to applications that does not guarantee
`
`
`
`
`
`
`
`
`reliable or in-order delivery of the datagrams. TCP is a
`
`
`
`
`
`
`
`
`
`
`connection oriented service to applications that does provide
`
`
`
`
`
`
`
`
`reliable delivery of a data stream. It handles division of the
`
`
`
`
`
`
`
`
`
`
`stream into packets and ensures reliable, in—order delivery.
`
`
`
`
`
`
`
`
`See the Internet Society RFCs: RFC—791 “Internet
`
`
`
`
`
`
`
`Protocol”, RFC—793 “Transmission Control Protocol” and
`
`
`
`
`
`
`RFC-1180 “A 'l‘Cl’/ll’ Tutorial".
`11’, TCP and UDP are
`
`
`
`
`
`
`
`
`
`unicast protocols: packets, streams or datagrams are trans-
`
`
`
`
`
`
`
`mitted from a source to a single destination.
`
`
`
`
`
`
`
`
`As an example, consider FIGS. 1 and 2. FIG. 1 shows a
`
`
`
`
`
`
`
`
`
`
`
`
`conventional unicast network with hosts 1, 2, 3 and 4 and
`
`
`
`
`
`
`
`
`
`
`
`network links 11, 12, 13, 14, 15,16,17, 18 and 19 and routers
`
`
`
`
`
`
`
`
`
`
`
`
`5, 6, 7, 8, 9 and 10. In this example, each host wants to send
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`a data payload to each of the other hosts. Host 1 has network
`
`
`
`
`
`
`
`
`
`
`
`
`
`address A, host 2 has network address C, host 3 has network
`
`
`
`
`
`
`
`
`
`
`address B and host 4 has network address D. Existing
`
`
`
`
`
`
`
`
`
`
`network protocols are typically based on packet formats that
`
`
`
`
`
`
`
`
`
`contain a source address, destination address and a payload.
`
`
`
`
`
`
`
`This is representative of commonly used wide area network
`
`
`
`
`
`
`
`
`
`protocols such as IP. There are other components in an actual
`
`
`
`
`
`
`
`
`
`
`
`IP packet, but for sake of this example, only these items will
`
`
`
`
`
`
`
`
`
`
`
`
`be considered. FIG. 2 shows the example packets that are
`
`
`
`
`
`
`
`
`
`
`sent by the hosts to one another using a conventional unicast
`
`
`
`
`
`
`
`
`
`
`network protocol such as IP. Host 1 send packets 20, to host
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`5
`
`
`
`10
`
`
`
`15
`
`
`
`
`
`
`
`30
`
`
`
`35
`
`4O
`
`
`
`
`
`45
`
`
`50
`
`
`
`55
`
`
`
`60
`
`
`
`65
`
`
`
`
`
`
`
`
`
`4
`
`3, packet 21 to host 2 and packet 22 to host 4. Host 1 wants
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`to send the same data P1 to each of the other three hosts,
`
`
`
`
`
`
`
`
`
`
`
`
`
`therefore the payload in all three packets is the same. Packet
`
`
`
`
`
`
`
`
`
`
`
`20 travels over network links 11, 12, 15 and 18 and through
`
`
`
`
`
`
`
`
`
`
`
`
`routers 5, 6, and 8 to reach host 3. In a similar fashion host
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`3 sends packets 23 to host 1, packet 24 to host 2 and packet
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`25 to host 4. Host 2 and host 4 send packets 26, 27, 28 and
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`29, 30, 31 respectively to the other three hosts. All of these
`
`
`
`
`
`
`
`
`
`
`
`
`packets are carried by the unicast network individually from
`
`
`
`
`
`
`
`
`
`the source host to the destination host. So in this example
`
`
`
`
`
`
`
`
`
`
`
`each host must send three packets and receive three packets
`
`
`
`
`
`
`
`
`
`
`in order for each host to send its payload to the other three
`
`
`
`
`
`
`
`
`
`
`
`
`
`hosts.
`
`As can be seen, each host must send a packet to every
`
`
`
`
`
`
`
`
`
`
`
`other host that it wishes to communicate with in an inter-
`
`
`
`
`
`
`
`
`
`
`active application. Further, it receives a packet from every
`
`
`
`
`
`
`
`
`other host that wishes to communicate with it. In an inter—
`
`
`
`
`
`
`
`
`
`
`active application, this will happen at a regular and high rate.
`
`
`
`
`
`
`
`
`
`
`All of the hosts that wish to communicate with one another
`
`
`
`
`
`
`
`
`
`
`
`will need to send packets to each other eight to ten times per
`
`
`
`
`
`
`
`
`
`
`
`
`
`second. With four hosts communicating with one another as
`
`
`
`
`
`
`
`
`
`in this example, each host will send three messages and
`
`
`
`
`
`
`
`
`
`
`receive three messages eight to ten times per second. As the
`
`
`
`
`
`
`
`
`
`
`
`number of hosts in the application that need to communicate
`
`
`
`
`
`
`
`
`
`
`with one another grows, the message rate will reach a rate
`
`
`
`
`
`
`
`
`
`
`
`that cannot be supported by conventional dial-up lines. This
`
`
`
`
`
`
`
`
`
`makes unicast transport protocols unsuitable for delivering
`
`
`
`
`
`
`
`interactive applications for multiple participants since their
`
`
`
`
`
`
`
`use will result in the problem of high packet rates that grow
`
`
`
`
`
`
`
`
`
`
`
`
`with the number of participants.
`
`
`
`
`
`Work has been done to attempt to extend the IP protocol
`
`
`
`
`
`
`
`
`
`
`
`to support multicasting. See RFC—1112 “Host Extensions for
`
`
`
`
`
`
`
`
`IP Multicasting”. This document describes a set of exteri—
`
`
`
`
`
`
`
`
`sions to the IP protocol
`that enable IP multicasting. IP
`
`
`
`
`
`
`
`
`
`multicasting supports the transmission of a ll’ datagram to a
`
`
`
`
`
`
`
`
`host group by addressing the datagram to a single destina-
`
`
`
`
`
`
`
`
`
`tion address. Multicast addresses are a subset of the IP
`
`
`
`
`
`
`
`
`
`
`address space and identified by class DIP addressesithese
`
`
`
`
`
`
`
`
`are IP addresses with “1110” in the high order 4 bits. The
`
`
`
`
`
`
`
`
`
`
`
`
`host group contains zero or more 11’ hosts and the 11’
`
`
`
`
`
`
`
`
`
`
`
`multicasting protocol transmits a multicast datagram to all
`
`
`
`
`
`
`
`
`members of the group to which it is addressed. Hosts may
`
`
`
`
`
`
`
`
`
`
`
`join and leave groups dynamically and the routing of mul—
`
`
`
`
`
`
`
`
`
`ticast datagrams is supported by multicast routers and gate-
`
`
`
`
`
`
`
`
`ways.
`is proper to describe this general approach to
`lt
`
`
`
`
`
`
`
`
`
`
`multicast messaging as “distributed multicast messaging”. It
`
`
`
`
`
`
`
`is a distributed technique because the job of message deliv—
`
`
`
`
`
`
`
`
`
`ery and duplication is distributed throughout the network to
`
`
`
`
`
`
`
`
`
`all of the multicast routers. For distributed multicast mes—
`
`
`
`
`
`
`
`
`saging to work in a wide area network, all of the routers
`
`
`
`
`
`
`
`
`
`
`
`
`handling datagrams for multicast hosts must support the
`
`
`
`
`
`
`
`
`routing of multicast datagrams. Such multicast routers must
`
`
`
`
`
`
`
`
`be aware of the multicast group membership of all of the
`
`
`
`
`
`
`
`
`
`
`
`hosts locally connected to the router in order to deliver
`
`
`
`
`
`
`
`
`
`
`multicast datagrams to local hosts. Multicast routers must
`
`
`
`
`
`
`
`
`also be able to forward multicast packets to routers on their
`
`
`
`
`
`
`
`
`
`
`
`local network links. Multicast routers must also decide to
`
`
`
`
`
`
`
`
`
`which if any local routers they must forward multicast
`
`
`
`
`
`
`
`
`
`datagrams. When a multicast datagram is received, by a
`
`
`
`
`
`
`
`
`
`multicast router, its group address is compared to a list for
`
`
`
`
`
`
`
`
`
`
`
`each local multicast router of group addresses. When there
`
`
`
`
`
`
`
`
`
`is a match, the datagram is then forwarded to that local
`
`
`
`
`
`
`
`
`
`
`
`multicast router. Therefore,
`the multicast routers in the
`
`
`
`
`
`
`
`
`network must maintain an accurate and up to date list of
`
`
`
`
`
`
`
`
`
`
`
`group addresses for which they are to forward datagrams to.
`
`
`
`
`
`
`
`
`
`
`These lists are updated when hosts join or leave multicast
`
`
`
`
`
`
`
`
`
`
`groups. Hosts do this by sending messages using Internet
`
`
`
`
`
`
`
`
`
`
`Petitioner Valve - Ex. 1001, Page 14
`
`Petitioner Riot Games, Inc. - Ex. 1001, p. 14
`
`Petitioner Riot Games, Inc. - Ex. 1001, p. 14
`
`Petitioner Valve - Ex. 1001, Page 14
`
`

`

`
`
`5,822,523
`
`5
`
`Group Management Protocol (IGMP) to their immediately—
`
`
`
`
`
`
`neighboring multicast routers. A further attribute of distrib—
`
`
`
`
`
`
`
`uted multicast messaging is that the routers must propagate
`
`
`
`
`
`
`
`
`
`the group membership information for a particular group
`
`
`
`
`
`
`
`
`throughout the network to all of the other routers that will be
`
`
`
`
`
`
`
`
`
`
`
`
`forwarding traffic for
`that group. RFC—l l l 2 does not
`
`
`
`
`
`
`
`
`describ

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket