throbber
IIU/it/LII
`
`Please type a plus Sign (+) inside this box
`UTILITY
`PATENT APPLICATION
`TRANSMITTAL
`h
`" I
`r
`r
`de37CFR 1.530
`'orr
`( n y ornonprovrsrona app rca Ions an
`r

`( ))
`0
`APPLICATION ELEMENTS
`See MPEP chapter 600 concerning utility patent application contents.
`
`' {\lf;
`030048002US
`
`PTO/SB/OS (4/98) I4
`0
`95
`P
`E.
`’U
`V?- _
`JOINING A BROADCAST CHANNEL
`07/31/00
`'
`-
`a:
`EL404935398US
`
`Box Patent Application
`(0 I:
`ASS .'
`Assistant Commissioner for Paten'g
`
`Washington, DC. 20231
`
`
`
`5_ El Microfiche Computer Program (Appendix)
`6. Nucleotide and/or Amino Acid Sequence Submission
`Ofapplicable, all necessary)
`
`a I: CommterReadable Copy
`'
`.
`_
`
`b.
`|:) Paper COPY (Identlcal to computer Copy)
`C. E] Statement verifying identity of above copies
`
`Authorization for Extensions & Fee Transmittal
`
`(Submit an original and a duplicate for fee processing)
`2 - Specification
`[Total Pages]
`'
`X {preferred arrangement setforth below)
`
`- Descriptive Title of the Invention
`- Cross References to Related Applications
`
`- Statement Regarding Fed sponsored R & D
`- Reference to Microfiche Appendix
`- Background of the Invention
`
`
`
`
`- Brief Summary of the Invention
`
`- Brief Description of the Drawings (if filed)
`- Detailed Description
`- Claim(s)
`- Abstract of the Disclosure
`
`
`
`9"
`
`4.
`
`
`
`
`
`
`
` 16.
`If a CONTINUING APPLICATION, check appropriate box and supply the requrszte mformanon below and m a prelzmmary amendment
`|:| Continuation I: Divisional
`l:l Continuation—In-Part(ClP)
`otpriorApplication No.:
`
`
`
`
`
`Prior application information: Examiner
`
`For CONTINUATION or DIVISIONAL a
`s on] : The entire disclosure of the prior application, from which an oath or declaration is supplied under Box 4b,
`is conSIdered a part of the disclosure of the accompanying continuation or divisional application and is hereby incorporated by reference.
`The
`incorporation can only be relied upon when a portion has been inadvertently omitted from the submitted application parts.
`I: Claims the benefit of Provisional Application No.
`17. CORRESPONDENCE ADDRESS
`
`Group / Art Unit
`
`
`
`Customer Number 25096 / Barcode
`
`I
`
`IIIIIIIII III
`
`III III
`
`25096
`PATENT .TRADEMARK OFFICE
`
`Respectfully submltted,
`
`TYPED or PRINTED
`t
`I
`
`I
`
`i
`
`SIGNATURE
`
`E
`
`kmA Q =
`
`)
`
`cm
`
`Date
`
`
`Maurice
`'
`‘
`REGISTRATION NO. 33 273
`,\
`’a
`
`v
`I
`_
`
`K’s-s
`
`‘
`
`~
`
`I Om
`E -IEXHIBIT 1002 Pan 1 of 5
`0001
`
`
`
`
`
`
`
`
`
`ACCOMPANYING APPLICATION PARTS
`
`DDEDDDDD
`
`10.
`
`11.
`
`12.
`
`12
`
`’
`_K :5
`
`_\ .U‘
`
`ASSIgnment Papers (cover sheet & document(s))
`
`37 CFR 3.73(b) Statement
`.
`.
`(when there IS an assrgnee)
`
`Power of Attorney
`
`English Translation Document (if applicable)
`
`Information Disclosure
`Statement (IDS)/PTO-1449
`Preliminary Amendment
`
`Return Receipt Postcard
`
`Copies of IDS
`.
`.
`Citations
`
`Small
`Entity
`Statemenfis)
`
`Statement
`filed in prior. application,
`Status 5"” pmper and des're‘I
`
`Certified Copy of Priority Document(s)
`(if foreign priority is claimed)
`9 2‘ co fl
`
`
`
`
`
`
`E
`
`
`
`
`
`application,
`
`Drawing(s) (35usc113)
`
`[Total Sheets]
`
`Oath or Declaration
`
`[Total Pages]
`
`'
`
`a, El Newly executed (original or copy)
`b
`Copy from a prior application (37 CFR 1.63(d))
`(for continuation/divisional with Box 16 completed)
`.
`DELETION OF INVENTOR(S)
`1' I:I Signed statement attached deleting
`inventor(s)
`named
`in
`the
`prior
`see 37 CFR 1.63m” and 1330))
`*NOTE FOR ITEMS 1 & 13.’
`IN ORDER TO BE ENTITLED TO
`
`PAY SMALL ENTITY FEES, A SMALL ENTITY STATEMENT IS
`REQUIRED (37 CFR. § 1.27), EXCEPT IF ONE FILED IN A
`PRIOR APPLICATION IS RELIED UPON 37 CFR. ~ 1.28
`
`
`0001
`
`BUNGIE - EXHIBIT 1002 Part 1 of 5
`
`

`

`EXPRESS MAIL NO. EL404935398US
`
`JOINING A BROADCAST CHANNEL
`
`CROSS-REFERENCE TO RELATED APPLICATIONS
`
`This application is related to US. Patent Application No.
`
`,
`
`entitled “BROADCASTING NETWORK,” filed on July 31, 2000 (Attorney Docket
`
`5
`
`No. 030048001 US); US. Patent Application No.
`
`, entitled “JOINING A
`
`BROADCAST CHANNEL,” filed on July 31, 2000 (Attorney Docket No. 030048002 US);
`
`US. Patent Application No.
`
`, “LEAVING A BROADCAST CHANNEL,”
`
`filed on July 31, 2000 (Attorney Docket No. 030048003 US); US. Patent Application
`
`
`entitled “BROADCASTING ON A BROADCAST CHANNEL,” filed
`
`No.
`
`on July 31, 2000 (Attorney Docket No. 030048004 US); US. Patent Application
`
`No.
`
`entitled “CONTACTING A BROADCAST CHANNEL,” filed on
`
`July 31, 2000
`
`(Attorney Docket No.
`
`030048005 US); US.
`
`Patent Application
`
`No.
`
`,
`
`entitled
`
`“DISTRIBUTED AUCTION SYSTEM,”
`
`filed
`
`on
`
`July 31,2000
`
`(Attorney Docket No.
`
`030048006 US); US.
`
`Patent Application
`
`No.
`
`, entitled “AN INFORMATION DELIVERY SERVICE,” filed on
`
`July31,2000
`
`(Attorney Docket No.
`
`030048007 US); US.
`
`Patent Application
`
`No.
`
`, entitled “DISTRIBUTED CONFERENCING SYSTEM,” filed on
`
`
`
`and US. Patent Application
`
`July 31,2000 (Attorney Docket No. 030048008 US);
`
`
`No.
`
`entitled “DISTRIBUTED GAME ENVIRONMENT,”
`
`filed on
`
`20
`
`July 31, 2000 (Attorney Docket No. 030048009 US),
`
`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.
`
`25
`
`BACKGROUND
`
`There are a wide variety of computer network communications techniques such
`as point-to-point network protocols,
`client/server middleware, multicasting network
`
`[03004-8002/SL003733.099]
`
`-1-
`
`7/31/00
`
`0002
`
`0002
`
`

`

`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
`
`5
`
`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 computers to communicate via point-to-point connections. The
`
`interconnection of all participants using point-to-point connections, while theoretically
`
`10
`
`possible, does not scale well as a number of participants grows.
`
`For example, each
`
`
`
`participating process would need to manage its direct connections 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 (“RFC”), database servers,
`
`and the common object request broker architecture (“CORBA”). Client/server middleware
`
`systems are not particularly 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
`
`25
`
`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.,
`
`30
`
`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
`
`[03004-8002/81003733099]
`
`-2-
`
`7/31/00
`
`0003
`
`0003
`
`

`

`protocols tend to place an unacceptable overhead on the underlying network. For example,
`
`UDP multicasting would swamp the Internet when trying to locate all possible participants.
`
`IP multicasting has other problems that include needing special-purpose infrastructure (e. g.,
`
`routers) to support the sharing of information efficiently.
`
`5
`
`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
`
`middleware 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
`
`10
`
`sharing the information.
`
`Thus,
`
`it is neither suitable nor desirable to use peer-to-peer
`
`middleware systems when more than a small number of participants 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
`
` suitable for the simultaneous sharing of information among a large number of the processes
`
`through the root node in order to be received by all participants.
`
`It would be desirable to have a reliable communications network that
`
`is
`
`that are widely distributed.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`
`
`Figure 1 illustrates a graph that is 4-regular and 4-connected which represents a
`
`20
`
`broadcast channel.
`
`Figure 2 illustrates a graph representing 20 computers connected to a broadcast
`
`channel.
`
`Figures 3A and 3B illustrate the process of connecting a new computer Z to the
`
`broadcast channel.
`
`25
`
`Figure 4A illustrates the broadcast channel of Figurel with an added
`
`computer.
`
`computer.
`
`30
`
`computer.
`
`Figure 4B illustrates the broadcast channel of Figure 4A with an added
`
`Figure 4C also illustrates the broadcast channel of Figure 4A with an added
`
`[03004-8002/SL003733 .099]
`
`-3 -
`
`7/31/00
`
`0004
`
`0004
`
`

`

`Figure 5A illustrates the disconnecting of a computer from the broadcast
`
`charmel in a planned manner.
`
`Figure 5B illustrates the disconnecting of a computer from the broadcast
`
`channel in an unplanned manner.
`
`Figure SC illustrates the neighbors with empty ports condition.
`
`Figure 5D illustrates two computers that are not neighbors who now have
`
`empty ports.
`
`regime.
`
`Figure 5E illustrates the neighbors with empty ports condition in the small
`
`Figure 5F illustrates the situation of Figure 5E when in the large regime.
`
`Figure 6 is a block diagram illustrating components of a computer that is
`
`connected to a broadcast channel.
`
`Figure 7 is a block diagram illustrating the sub-components of the broadcaster
`
`component in one embodiment.
`
`Figure 8 is a flow diagram illustrating the processing of the connect routine in
`
`one embodiment.
`
`Figure 9 is a flow diagram illustrating the processing of the seek portal
`
`computer routine in one embodiment.
`
`Figure 10 is a flow diagram illustrating the processing of the contact process
`
`5
`
`10
`
`
`
`20
`
`routine in one embodiment.
`
`Figure 11 is a flow diagram illustrating the processing of the connect request
`
`routine in one embodiment.
`
`Figure 12 is a flow diagram of the processing of the check for external call
`
`routine in one embodiment.
`
`Figure 13 is a flow diagram of the processing of the achieve connection routine
`
`in one embodiment.
`
`Figure 14 is a flow diagram illustrating the processing of the external
`
`dispatcher routine in one embodiment.
`
`Figure 15 is a flow diagram illustrating the processing of the handle seeking
`
`connection call routine in one embodiment.
`
`Figure 16 is a flow diagram illustrating processing of the handle connection
`
`25
`
`30
`
`request call routine in one embodiment.
`
`[03004-8002/SL003733.099]
`
`-4-
`
`7/31/00
`
`0005
`
`0005
`
`

`

`Figure 17 is a flow diagram illustrating the processing of the add neighbor
`
`routine in one embodiment.
`
`Figure 18 is a flow diagram illustrating the processing of the forward
`
`connection edge search routine in one embodiment.
`
`5
`
`Figure 19 is a flow diagram illustrating the processing of the handle edge
`
`proposal call routine.
`
`Figure 20 is a flow diagram illustrating the processing of the handle port
`
`connection call routine in one embodiment.
`
`Figure 21 is a flow diagram illustrating the processing of the fill hole routine in
`
`10
`
`one embodiment.
`
`Figure 22 is a flow diagram illustrating the processing of the internal dispatcher
`
`routine in one embodiment.
`
`Figure 23 is a flow diagram illustrating the processing of the handle broadcast
`
` broadcast message routine in one embodiment.
`
`message routine in one embodiment.
`
`Figure 24 is a flow diagram illustrating the processing of the distribute
`
`
`
`Figure 26 is a flow diagram illustrating the processing of the handle connection
`port search statement routine in one embodiment.
`
`Figure 27 is a flow diagram illustrating the processing of the court neighbor
`
`20
`
`routine in one embodiment.
`
`Figure 28 is a flow diagram illustrating the processing of the handle connection
`
`edge search call routine in one embodiment.
`
`Figure 29 is a flow diagram illustrating the processing of the handle connection
`
`edge search response routine in one embodiment.
`
`25
`
`Figure 30 is a flow diagram illustrating the processing of the broadcast routine
`
`in one embodiment.
`
`Figure 31 is a flow diagram illustrating the processing of the acquire message
`
`routine in one embodiment.
`
`Figure 32 is a flow diagram illustrating processing of the handle condition
`
`30
`
`check message in one embodiment.
`
`Figure 33 is a flow diagram illustrating processing of the handle condition
`
`repair statement routine in one embodiment.
`
`[03004-8002/SL003733.099]
`
`-5-
`
`7/31/00
`
`0006
`
`0006
`
`

`

`Figure 34 is a flow diagram illustrating the processing of the handle condition
`
`double check routine.
`
`DETAILED DESCRIPTION
`
`A broadcast technique in which a broadcast channel overlays a point—to—point
`
`5
`
`communications network is provided. 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 charmel.
`
`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
`
`10 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 technique 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 connections (i. e., edges) between host computers (1'. 6., nodes) through
`
`which the broadcast channel
`
`is implemented.
`
`In one embodiment, each computer is
`
`20
`
`connected to four other computers, referred to as neighbors.
`
`(Actually, a process executing
`
`on a computer is connected to four other processes executing on this or four other
`
`computers.) To broadcast a message, the originating computer sends the message to each of
`
`its neighbors using its point-to-point connections. Each computer that receives the message
`
`then sends the message to its three other neighbors using the point-to-point connections.
`
`In
`
`25
`
`this way, the message is propagated to each computer using the underlying network to effect
`
`the broadcasting of the message to each computer over a logical broadcast charmel. A graph
`
`in which each node is connected to four other nodes is referred to as a 4-regular graph. The
`
`use of a 4-regular graph means that a computer would become disconnected from the
`
`broadcast channel only if all four of the connections to its neighbors fail. The graph used by
`
`30
`
`the broadcast technique also has the property that it would take a failure of four computers to
`
`
`
`[03004-8002/SL003733.099]
`
`-6-
`
`7/31/00
`
`0007
`
`0007
`
`

`

`divide the graph into disjoint sub-graphs, that is two separate broadcast channels. This
`
`property is referred to as being 4-connected. Thus, the graph is both 4-regular and 4-
`
`connected.
`
`Figure 1 illustrates a graph that is 4-regular and 4-connected which represents
`
`5
`
`the broadcast channel. Each of the nine nodes A-I represents a computer that is connected to
`
`the broadcast channel, and each of the edges represents an “edge” connection between two
`
`computers of the broadcast channel. The time it takes to broadcast a message to each
`
`computer on the broadcast channel depends on the speed of the connections between the
`
`computers and the number of connections between the originating computer and each other
`
`10
`
`computer on the broadcast channel. The minimum number of connections that a message
`
`would need to traverse between each pair of computers is the “distance” between the
`
`computers (i.e., the shortest path between the two nodes of the graph). For example, the
`
`distance between computers A and F is one because computerA is directly connected to
`
`computer F. The distance between computers A and B is two because there is no direct
`
`connection between computers A and B, but computer F is directly connected to computer B.
`
`Thus, a message originating at computer A would be sent directly to computer F, and then
`
`sent from computer F to computer B. The maximum of the distances between the computers
`
`is the “diameter” of broadcast channel. The diameter of the broadcast channel represented
`
`by Figure 1 is two. That is, a message sent by any computer would traverse no more than
`
`
`
`20
`
`two connections to reach every other computer. Figure 2 illustrates a graph representing 20
`
`computers connected to a broadcast channel. The diameter of this broadcast channel is 4. In
`
`particular, the shortest path between computers 1 and 3 contains four connections (1-12, 12-
`
`15, 15-18, and 18-3).
`
`The broadcast technique includes (1) the connecting of computers to the
`
`25
`
`broadcast channel (i. e., composing the graph), (2) the broadcasting of messages over the
`
`broadcast channel (i.e., broadcasting through the graph), and (3) the disconnecting of
`
`computers from the broadcast charmel (1'. e., decomposing the graph) composing the graph.
`
`Composing the Graph
`
`To connect to the broadcast channel, the computer seeking the connection first
`
`30
`
`locates a computer that is currently fully connected to the broadcast channel and then
`
`[03004-8002/SL003733 .099]
`
`-7-
`
`7/31/00
`
`0008
`
`0008
`
`

`

`establishes a connection with four of the computers that are already connected to the
`
`broadcast channel.
`
`(This assumes that there are at least four computers already connected to
`
`the broadcast channel. When there are fewer than five computers connected, the broadcast
`
`channel cannot be a 4-regu1ar graph.
`
`In such a case, the broadcast channel is considered to
`
`5
`
`be in a “small regime.” The broadcast technique for the small regime is described below in
`
`detail. When five or more computers are connected, the broadcast channel is considered to
`
`be in the “large regime.” This description assumes that the broadcast channel is in the large
`
`regime, unless specified otherwise.) Thus,
`
`the process of connecting to the broadcast
`
`channel includes locating the broadcast channel, identifying the neighbors for the connecting
`
`10
`
`computer, and then connecting to each identified neighbor. Each computer is aware of one
`
`or more “portal computers” through which that computer may locate the broadcast charmel.
`
`A seeking computer locates the broadcast channel by contacting the portal computers until it
`
`finds one that is currently fully connected to the broadcast channel. The found portal
`
`computer then directs the identifying of four computers (i.e., to be the seeking computer’s
`
`neighbors) to which the seeking computer is to connect. Each of these four computers then
`
`cooperates with the seeking computer to effect the connecting of the seeking computer to the
`
`broadcast channel. A computer that has started the process of locating a portal computer, but
`
`does not yet have a neighbor, is in the “seeking connection state.” A computer that is
`
`connected to at least one neighbor, but not yet four neighbors, is in the “partially connected
`
`state.” A computer that is currently, or has been, previously connected to four neighbors is
`
`
`
`in the “fully connected state.”
`
`Since the broadcast channel
`
`is a 4-regular graph, each of the identified
`
`computers is already connected to four computers.
`
`Thus, some connections between
`
`computers need to be broken so that the seeking computer can connect to four computers. In
`
`25
`
`one embodiment, the broadcast technique identifies two pairs of computers that are currently
`
`connected to each other. Each of these pairs of computers breaks the connection between
`
`them, and then each of the four computers (two from each pair) connects to the seeking
`
`computer. Figures 3A and 3B illustrate the process of a new computer Z connecting to the
`
`broadcast channel.
`
`Figure 3A illustrates the broadcast channel before computer Z is
`
`30
`
`connected. The pairs of computers B and E and computers C and D are the two pairs that are
`
`identified as the neighbors for the new computer Z. The connections between each of these
`
`pairs is broken, and a connection between computer Z and each of computers B, C, D, and E
`
`[03004-8002/SL003733.099]
`
`-8-
`
`7/31/00
`
`0009
`
`0009
`
`

`

`is established as indicated by Figure 3B. The process of breaking the connection between
`
`two neighbors and reconnecting each of the former neighbors to another computer is referred
`
`to as “edge pinning” as the edge between two nodes may be considered to be stretched and
`
`pinned to a new node.
`
`5
`
`Each
`
`computer
`
`connected to
`
`the
`
`broadcast
`
`channel
`
`allocates
`
`five
`
`communications ports for communicating with other computers. Four of the ports are
`
`referred to as “interna ” ports because they are the ports through which the messages of the
`
`broadcast channels are sent. The connections between internal ports of neighbors are
`
`referred to as “internal” connections. Thus, the internal connections of the broadcast channel
`
`10
`
`form the 4-regular and 4-c0nnected graph. The fifth port is referred to as an “external” port
`
`because it is used for sending non-broadcast messages between two computers. Neighbors
`
`can send non-broadcast messages either through their internal ports of their connection or
`
` computer.
`
`through their external ports. A seeking computer uses external ports when locating a portal
`
`
`
`In one embodiment,
`
`the broadcast
`
`technique establishes
`
`the computer
`
`connections using the TCP/IP communications protocol, which is a point-to-point protocol,
`
`as the underlying network. The TCP/IP protocol provides for reliable and ordered delivery
`
`of messages between computers. The TCP/IP protocol provides each computer with a “port
`
`space” that is shared among all the processes that may execute on that computer. The ports
`
`are identified by numbers from 0 to 65,535. The first 2056 ports are reserved for specific
`
`applications (e. g, port 80 for HTTP messages). The remainder of the ports are user ports
`
`that are available to any process.
`
`In one embodiment, a set of port numbers can be reserved
`
`for use by the computer connected to the broadcast channel.
`
`In an alternative embodiment,
`
`the port numbers used are dynamically identified by each computer.
`
`Each computer
`
`25
`
`dynamically identifies an available port to be used as its call-in port. This call-in port is used
`
`to establish connections with the external port and the internal ports. Each computer that is
`
`connected to the broadcast channel can receive non-broadcast messages through its external
`
`port. A seeking computer tries “dialing” the port numbers of the portal computers until a
`
`portal computer “answers,” a call on its call-in port. A portal computer answers when it is
`
`30
`
`connected to or attempting to connect to the broadcast channel and its call-in port is dialed.
`
`(In this description, a telephone metaphor is used to describe the connections.) When a
`
`computer receives a call on its call-in port, it transfers the call to another port. Thus, the
`
`[03004-8002/SL003733.099]
`
`-9-
`
`7/31/00
`
`0010
`
`0010
`
`

`

`seeking computer actually communicates through that transfer-to port, which is the external
`
`port. The call is transferred so that other computers can place calls to that computer via the
`
`call-in port. The seeking computer then communicates via that external port to request the
`
`portal computer to assist in connecting the seeking computer to the broadcast channel. The
`
`5
`
`seeking computer could identify the call-in port number of a portal computer by successively
`
`dialing each port in port number order. As discussed below in detail, the broadcast technique
`
`uses a hashing algorithm to select the port number order, which may result in improved
`
`performance.
`
`A seeking computer could connect to the broadcast channel by connecting to
`
`10
`
`computers either directly connected to the found portal computer or directly connected to one
`
`
`
`of its neighbors. A possible problem with such a scheme for identifying the neighbors for
`
`the seeking computer is that the diameter of the broadcast channel may increase when each
`
`seeking computer uses the same found portal computer and establishes a connection to the
`
`broadcast channel directly through that found portal computer. Conceptually,
`
`the graph
`
`becomes elongated in the direction of where the new nodes are added. Figures 4A—4C
`
`illustrate that possible problem. Figure 4A illustrates the broadcast channel of Figure 1 with
`
`an added computer. Computer J was connected to the broadcast channel by edge pinning
`
`edges OD and E-H to computer J. The diameter of this broadcast channel is still two.
`
`Figure 4B illustrates the broadcast channel of Figure 4A with an added computer.
`
`Computer K was connected to the broadcast channel by edge pinning edges E-J and B-C to
`
`computer K. The diameter of this broadcast channel is three, because the shortest path from
`
`computer G to computer K is through edges G—A, A-E, and E-K. Figure 4C also illustrates
`
`the broadcast channel of Figure 4A with an added computer. Computer K was connected to
`
`the broadcast channel by edge pinning edges D-G and E-J to computer K. The diameter of
`
`25
`
`this broadcast channel is, however, still two. Thus, the selection of neighbors impacts the
`
`diameter of the broadcast channel. To help minimize the diameter, the broadcast technique
`
`uses a random selection technique to identify the four neighbors of a computer in the seeking
`
`connection state. The random selection technique tends to distribute the connections to new
`
`seeking computers throughout the computers of the broadcast channel which may result in
`
`30
`
`smaller overall diameters.
`
`[03004-8002/SL003733.099]
`
`—10-
`
`7/31/00
`
`0011
`
`0011
`
`

`

`Broadcasting Throqu the Graph
`
`As described above, each computer that is connected to the broadcast channel
`
`can broadcast messages onto the broadcast channel and does receive all messages that are
`
`broadcast on the broadcast channel. The computer that originates a message to be broadcast
`
`5
`
`sends that message to each of its four neighbors using the internal connections. When a
`
`computer receives a broadcast message from a neighbor, it sends the message to its three
`
`other neighbors. Each computer on the broadcast channel, except the originating computer,
`
`will thus receive a copy of each broadcast message from each of its four neighbors. Each
`
`computer, however, only sends the first copy of the message that it receives to its neighbors
`
`10
`
`and disregards subsequently received copies. Thus, the total number of copies of a message
`
`that is sent between the computers is 3N+1, where N is the number of computers connected
`
`to the broadcast channel. Each computer sends three copies of the message, except for the
`
`
`
`originating computer, which sends four copies of the message.
`
`The redundancy of the message sending helps to ensure the overall reliability
`
`of the broadcast channel.
`
`Since each computer has four connections to the broadcast
`
`channel, if one computer fails during the broadcast of a message, its neighbors have three
`
`other connections through which they will receive copies of the broadcast message. Also, if
`
`the internal connection between two computers is slow, each computer has three other
`
`connections through which it may receive a copy of each message sooner.
`
`Each computer
`
`that originates a message numbers
`
`its own messages
`
`sequentially. Because of the dynamic nature of the broadcast channel and because there are
`
`many possible connection paths between computers, the messages may be received out of
`
`order. For example, the distance between an originating computer and a certain receiving
`
`computer may be four. After sending the first message,
`
`the originating computer and
`
`25
`
`receiving computer may become neighbors and thus the distance between them changes to
`
`one. The first message may have to travel a distance of four to reach the receiving computer.
`
`The second message only has to travel a distance of one. Thus, it is possible for the second
`
`message to reach the receiving computer before the first message.
`
`When the broadcast channel is in a steady state (i. e., no computers connecting
`
`30
`
`or disconnecting from the broadcast channel), out-of-order messages are not a problem
`
`because each computer will eventually receive both messages and can queue messages until
`
`all earlier ordered messages are received.
`
`If, however, the broadcast channel is not in a
`
`[03004-8002/SL003733.099]
`
`-1 1-
`
`7/31/00
`
`0012
`
`0012
`
`

`

`steady state,
`
`then problems can occur.
`
`In particular, a computer may connect to the
`
`broadcast channel after the second message has already been received and forwarded on by
`
`its new neighbors. When a new neighbor eventually receives the first message, it sends the
`
`message to the newly connected computer. Thus, the newly connected computer will receive
`
`5
`
`the first message, but will not receive the second message. If the newly connected computer
`
`needs to process the messages in order, it would wait indefinitely for the second message.
`
`One solution to this problem is to have each computer queue all the messages
`
`that it receives until it can send them in their proper order to its neighbors. This solution,
`
`however, may tend to slow down the propagation of messages through the computers of the
`
`10
`
`broadcast charmel. Another solution that may have less impact on the propagation speed is
`
`
`
`to queue messages only at computers who are neighbors of the newly connected computers.
`
`Each already connected neighbor would forward messages as it receives them to its other
`
`neighbors who are not newly connected, but not to the newly connected neighbor. The
`
`already connected neighbor would only forward messages from each originating computer to
`
`the newly connected computer when it can ensure that no gaps in the messages from that
`
`originating computer will occur.
`
`In one embodiment, the already connected neighbor may
`
`track the highest sequence number of the messages already received and forwarded on from
`
`each originating computer. The already connected computer will send only higher numbered
`
`messages from the originating computers to the newly connected computer. Once all lower
`
`numbered messages have been received from all originating computers, then the already
`
`connected computer can treat the newly connected computer as its other neighbors and
`
`simply forward each message as it is received.
`
`In another embodiment, each computer may
`
`queue messages and only forwards to the newly connected computer those messages as the
`
`gaps are filled in. For example, a computer might receive messages 4 and 5 and then receive
`
`25 message 3. In such a case, the already connected computer would forward queue messages 4
`
`and 5. When message 3 is finally received,
`
`the already connected computer will send
`
`messages 3, 4, and 5 to the newly connected computer. If messages 4 and 5 were sent to the
`
`newly connected computer before message 3, then the newly connected compu

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