throbber
United States Patent [19]
`United States Patent [191
`Vu
`Vu
`
`[i i] Patent Number:
`[11] Patent Number:
`[45] Date of Patent:
`[45] Date of Patent:
`
`5,056,085
`5,056,085
`Oct. 8, 1991
`Oct. 8, 1991
`
`[56]
`[56]
`
`[54] FLOOD-AND-FORWARD ROUTING FOR
`[54] FLOOD-AND-FORWARD ROUTING FOR
`BROADCAST PACKETS IN PACKET
`BROADCAST PACKETS IN PACKET
`SWITCHING NETWORKS
`SWITCHING NETWORKS
`[75] Inventor:
`Inventor: Thu V. Vu, West Melbourne, Fla.
`[75]
`Thu V. Vu, West Melbourne, Fla.
`[73] Assignee:
`[73] Assignee: Harris Corporation, Melbourne, Fla.
`Harris Corporation, Melbourne, Fla.
`[21] Appl. No.: 391,197
`[21] Appl. No.: 391,197
`[22] Filed:
`Aug. 9, 1989
`[22] Filed:
`Aug. 9, 1989
`H04Q 11/04
`[51] Int. CI.5
`[51] Int. c1.5 ........................................... .. 11040 11/04
`[52] U.S. CI.
`370/60; 370/94.1
`[52] 05.0. .................................... .. 370/60; 370/941
`[58] Field of Search
`370/60, 60.1, 94.1,
`[58] Field of Search ..................... .. 370/60, 60.1, 94.1,
`370/94.2, 94.3, 85.13, 85.14
`370/942, 94.3, 85.13, 85.14
`References Cited
`References Cited
`U.S. PATENT DOCUMENTS
`U.S. PATENT DOCUMENTS
`al.
`4,399.531 8/1983 Grande et
`.. 370/60
`4,399.53l 8/1983 Grande et al. ...................... .. 370/60
`370/94.1
`4,905,233 2/1990 Cain et al
`4,905,233 2/1990 Cain et al. ........................ .. 370/94.1
`OTHER PUBLICATIONS
`OTHER PUBLICATIONS
`Computer Networks, by Andrew S. Tananbaum, Pren­
`Computer Networks, by Andrew S. Tananbaum, Pren
`tice Hall, Englewood Cliffs, N.J., 1981.
`tice Hall, Englewood Cliffs, N.J., 1981.
`"Reverse Path Forwarding of Broadcast Packets," Y.
`“Reverse Path Forwarding of Broadcast Packets,” Y.
`K. Dalai and R. M. Metcalf, Communications of the
`K. Dalal and R. M. Metcalf, Communications of the
`ACM, vol. 21, pp. 1040-1048, Dec. 1978.
`ACM vol. 21, pp. 1040-1048, Dec. 1978.
`Primary Examiner-Douglas W. Olms
`Primary Examiner—Douglas W. Olms
`Assistant Examiner—Wellington Chin
`Assistant Examiner-Wellington Chin
`Attorney, Agent, or Firm—Antonelli, Terry,
`Stout
`Attorney, Agent, or Firm-Antonelli, Terry, Stout &
`Kraus
`Kraus
`_
`[57]
`ABSTRACT
`[57]
`ABSTRACT
`A routing algorithm for broadcast packets in packet
`A routing algorithm for broadcast packets in packet
`
`switching networks, utilizing a "flood-and-forward"
`switching networks, utilizing a “?ood-and-forward"
`technique. In such networks, data
`are
`
`often transmitted
`technique. In such networks, data are often transmitted
`in grat quantities from a sensor node to all other nodes
`in grat quantities from a sensor node to all other nodes
`in the network, or
`
`in a subnetwork, over
`point-to-point
`in the network, or in a subnetwork, over point-to-point
`links. Existing broadcast routing algorithms, including
`links. Existing broadcast routing algorithms, including
`multidestination addressing,
`
`constrained flooding, mini­
`multidestination addressing, constrained ?ooding, mini
`mum spanning tree forwarding, and reverse path for­
`mum spanning tree forwarding, and reverse path for
`warding, suffer from an excessive use of bandwidth, a
`warding, suffer from an excessive use of bandwidth, a
`poor choice of routes, or a costly need for memory or
`poor choice of routes, or a costly need for memory or
`computing power. In flood-and-forward routing, peri­
`computing power. In ?ood-and-forward routing, peri
`odically a data packet is designated as a Scout packet
`odically a data packet is designated as a Scout packet
`and is transmitted in a constrained flood broadcast
`and is transmitted in a constrained flood broadcast
`transmission. The
`Scout
`packet
`
`is identified by a Source
`transmission. The Scout packet is identi?ed by a Source
`Id and a Scout Label. Each receiving node
`sends
`Id and a Scout Label. Each receiving node sends a Ack
`Scout packet to the node
`from which it first receives a
`Scout packet to the node from which it ?rst receives a
`particular Scout packet, acknowledging receipt of that
`particular Scout packet, acknowledging receipt of that
`packet. Each relaying node keeps a log of nodes from
`packet. Each relaying node keeps a log of nodes from
`which it has received Ack Scout packets and sends
`which it has received Ack Scout packets and sends
`subsequent, non-scout packets
`
`to same nodes. This those
`
`subsequent, non-scout packets to those same nodes. This
`flood-and-forward broadcast routing algorithm thus
`?ood-and-forward broadcast routing algorithm thus
`offers the best selection of routes, as in constrained
`offers the best selection of routes, as in constrained
`flooding, and
`the least consumption of bandwidth, as
`?ooding, and the least consumption of bandwidth, as in
`minimum spanning tree forwarding, while keeping the
`minimum spanning tree forwarding, while keeping the
`to
`overhead cost of storage and processing
`overhead cost of storage and processing to a low level.
`With the support of a reliable link service,
`the algorithm
`With the support of a reliable link service, the algorithm
`performs well
`in delivering
`
`
`data critical all reachable
`performs well in delivering critical data to all reachable
`destinations despite to-be-expected losses of packets,
`destinations despite to-be-expected losses of packets,
`&
`links, or nodes.
`links, or nodes.
`
`in
`
`a
`
`a
`
`Ack
`
`low
`
`to
`
`3 Claims, 10 Drawing Sheets
`3 Claims, 10 Drawing Sheets
`
`TRANSMITTING NODE
`TRANSMITTING NODE
`
`RECEIVING NODE
`RECEIVING NODE
`
`DESIGNATE A
`SCOUT PACKET WITH
`/
`DESIGNATE A SCOUT PACKET WITH
`/
`SOURCE IDENTIFICATION AND SCOUT X
`SOURCE IDENTIFICATION AND SCOUT /
`LABLE
`LABLE
`I
`I
`f?
`£*
`TRANSMIT SCOUT PACKET IN C0N-
`TRANSMIT SCOUT PACKET IN CON- ___ ___.
`STRA1NED FLOOD
`STRAIN
`FLOOD
`
`/0
`/0\ mscarw
`DISCARD *
`J
`3'\
`DETERMINE WHETHER THIS SCOUT
`DETERMINE WHETHER THIS SCOUT
`PACKET HAS BEEN RECEIVED
`PACKET HAS BEEN RECEIVED
`PREVIOUSLY
`PREVIOUSLY
`
`YES
`YES
`
`NO
`NO
`b~
`y-
`
`LOG IN CONSTRAINT TABLE
`LOG IN CONSTRAINT TABLE
`
`SEND ACKNOWLEDGEMENT
`SEND ACKNOWLEDGEMENT
`
`RECORD IN RECEIVED FROM
`RECORD IN RECEIVED FROM
`COLUMN OF BROADCAST
`ROUTING
`COLUMN OF BROADCAST ROUTING
`TABLE
`TABLE
`
`TRANSMIT TO
`ALL NODES EXCEPT
`TRANSMIT TO ALL NODES EXCEPT
`THE NODE FROM WHICH RECEIVED
`THE NODE FROM WHICH RECEIVED
`
`9 C - 4
`f9
`PASS TO NEXT HIGHER LAYER
`4\L PASS TO NEXT HIGHER LAYER
`5
`
`r//
`
`X
`SET ACKNOWLEDGEMENT TIMER
`SET ACKNOWLEDGEMENT TIMER
`I
`t
`INHIBIT
`INHIBIT
`RECORD IN
`SEND TO COLUMN OF
`RECORD IN SEND E COLUMN 0F 4- - — _ ‘
`4 '
`BROADCAST ROUTING TABLE
`BROADCAST ROUTING TABLE

`TRANSMIT REGULAR BROADCAST
`TRANSMIT REGULAR BROADCAST
`PACKETS TO NODES RECORDED IN
`PACKETS TO NODES RECORDED IN
`SEND TO COLUMN OF BROADCAST
`SEND TO COLUMN OF BROADCAST
`ROUTING TABLE
`— ROUTING TABLE
`
`7
`
`8
`
`BUNGIE - EXHIBIT 1030
`
`

`

`V s - P a t
`
` e n t
`
`US. Patent
`US. Patent
`
`Q c t - 8 » 1 9 9 1
`Oct. 8, 1991
`Oct. 8, 1991
`
` 1 o f
` 1 0
`S h e e t
`Sheet 1 of 10
`Sheet 1 of 10
`
`S > 0 5 6 , 0 8 5
`
`5,056,085
`5,056,085
`
`\
`\
`
`/
`/
`
`\
`\
`
`/
`/
`
`I F
`
`\
`\ y
`
`/
`
`
`
`/
`
`
`
`/
`
`/
`
`/
`
`
`
`\
`\
`
`IG.
`
`C D
`
`c:
`
`

`

`U.S. Patent
`. US. Patent
`
`Oct. 8, 1991
`Oct. 8, 1991
`
`Sheet 2 of 10
`Sheet 2 of 10
`
`5,056,085
`5,056,085
`
`%
`
`.V
`•J-
`<3I_
`
`'T •<+
`
`R
`
`FIG. 2
`

`
`fe
`
`%
`
`>
`•o.
`
`FIG. 3A
`
`\
`
`7
`
`tw
`
`•YV y.
`
`I
`
`• T t
`
`

`

`U.S. Patent
`US. Patent
`
`Oct. 8, 1991
`Oct. 8, 1991
`
`Sheet 3 of 10
`Sheet 3 of 10
`
`5,056,085
`5,056,085
`
`y
`
`i
`r
`t
`r
`i
`
`i
`T t
`
`i
`
`i—i i
`
`I
`
`JTJ
`
`4
`
`J
`
`I
`
`FIG. 3B
`FIG. 3B
`
`

`

`U.S. Patent
`US. Patent
`
`Oct. 8, 1991
`Oct. 8, 1991
`
`Sheet 4 of 10
`Sheet 4 of 10
`
`5,056,085
`5,056,085
`
`PROCEDURE GENERATE.BROADCAST(DATA_UNIT) IS
`PROCEDURE GENERATE_BROADCAST(DATA_UNIT) IS
`BEGIN
`BEGIN
`IF (CURRENT.TIME > SCOUT_LAST_SENT_TIME + NON_FLOOD_PERIOD) THEN
`IF (CURRENT_TIME > SCOUT_LAST_SENT_TIME + NON_FLOOD_PERIOD) THEN
`— IT'S TIME TO SEND A SCOUT PACKET
`-— IT'S TIME TO SEND A SCOUT PACKET
`GENERATE.FLOOD.BROADCAST(SCOUT_LABEL,DATA.UNIT);
`GENERATE_FLOOD_BROADCAST(SCOUT_LABEL,DATA_UNIT) ;
`SCOUT_LAST.SENT_TIME :« CURRENT.TIME;
`SCOUT_LAST_SENT_TIME :8 CURRENT_TIME;
`INCREMENT.SCOUT.UIBEL;
`INCREMENT_SCOUT_LABEL;
`ELSE IF (CURRENT.TIME > ROUTES_LAST_UPDATED_TIME + ROUTES_LIFE) THEN
`ELSE IF (CURRENT_TIME > ROUTES_LAST_UPDATED_TIME 4- ROUTES_LIFE) THEN
`— ROUTES ARE NOT UP TO DATE
`—- ROUTES ARE NOT UP TO DATE
`PUT.PACKETS.ON.HOliD(DATA.UNIT) ;
`PUT_PACKETS_ON_HOLD(DATA_UNIT) i
`ELSE
`ELSE
`— USE BROADCAST ROUTING TABLES
`—- USE BROADCAST ROUTING TABLES
`GENERATE.NON.FLOOD.BROADCAST(CURRENT_ROUTES,DATA.UNIT);
`GENERATE_NON_FLOOD_BROADCAST(CURRENT_ROUTES,DATA_UNIT) ;
`END IF;
`END IF;
`END GENERATE.BROADCAST;
`END GENERATE_BROADCAST;
`
`FIG. 4
`FIG. 4
`
`PROCEDURE PROPAGATE_FLOOD_BROADCAST(SCOUT.PACKET,LINK.ARRIVED.ON) IS
`PROCEDURE PROPAGATE_FLOOD_BROADCAST(SCOUT_PACKET,LINK_ARRIVED_ON) IS
`BEGIN
`BEGIN
`NOT.VET_SEEN :- CHECK.CONSTRAINT.TABLE(SCOUT.PACKET);
`NOT_YET_SEEN :8 CHEC1<_CONSTRAINT_TABLE_(SCOUT_PACKET) ;
`IF (NOT.YET.SEEN) THEN
`IF (NOT_YET_SEEN) THEN
`ACCEPT_AND_LOG_PACKET(SCOUT.PACKET);
`ACCEPT_AND_LOG_PACKET(SCOUT_PACKET) ;
`— FORWARD SCOUT PACKET
`-- FORWARD SCOUT PACKET
`.
`FORWARD.LINKS
`ALL.LINKS - LINK.ARRIVED.ON;
`FORWARD_LINKS :II. ALL_LINKS - LINK_ARRIVED_ON;
`FORWARD_PACKET(SCOUT.PACKET,FORWARD.LINKS);
`FORWARD_PACKET(SCOUT_PACKET,FORWARD_LINKS) ;
`-- SET UP MECHANISM FOR EXTRACTING ROUTES FROM SCOUT PACKET
`-- SET UP MECHANISM FOR EXTRACTING ROUTES FROM SCOUT PACKET
`SOURCE.ID :- SCOUT.PACKET.SOURCE.ID;
`SOURCE_ID :- SCOUT_FACKET.SOURCE_ID;
`SCOUT.LABEL
`SCOUT.PACKET.SCOUT.LABEL;
`SCOUT_LABEL :- SCOUT_PACKET.SCOUT_LABEL;
`ACK_SCOUT_TIMER(SOURCE.ID,SCOUT.LABEL) :» CURRENT.TIME +
`ACK_SCOUT_TIMER(SOURCE_ID,SCOUT_LABEL) :- CURRENT_TIME +
`ACK.SCOUT.PERIOD;
`ACK_SCOUT_PERIOD;
`.
`BROADCAST.ROUTING.TABLE(SOURCE.ID,SCOUT.LABEL).SEND.TO :» NULL;
`BROADCAST_ROUTING_TABLE(SOURCE_ID,SCOUT_LABEL) .SEND_T :8 NULL;
`BROADCAST.ROUTING.TABLE(SOURCE.ID,SCOUT.LABEL).RECEIVED.FROM
`BROADCAST_ROUTING_TABLE(SOURCE_ID,SCOUT_LABEL) .RECEIVED_FROM :'
`LINK.ARRIVED.ON;
`LINK_ARRIVED_ON;
`— SEND ACK SCOUT PACKET
`—- SEND ACK SCOUT PACKET
`PREPARE.ACK.SCOUT.PACKET(SOURCE.ID,SCOUT.LABEL,ACK.SCOUT.PACKET);
`PREPARE_ACK_SCOUT_PACKET(SOURCE_ID,SCOUT_LABEL,ACK_SCOUT_PACKET) ;
`FORWARD.LINKS :- LINK.ARRIVED.ON;
`FORWARD_LINKS :- LINK_ARRIVED_ON;
`FORWARD_PACKET(ACK_SCOUT_PACKET,FORWARD.LINKS);
`FORWARILPACKET(ACK_SCOUT_PACKET,FORWARD_LINKS) ;
`END IF;
`END IF;
`'
`END PROPAGATE.FLOOD.BROADCAST;
`END PROPAGATE_FLOOD_DROADCASTi
`
`'
`
`FIG.5
`FIG.5
`
`

`

`U.S. Patent
`us. Patent
`
`Oct. 8, 1991
`05.51991 '
`
`Sheet 5 of 10
`sheet 5 of 10
`
`5,056,085
`5,056,085
`
`I S
`PROCEDURE GENERATE_rLOOD_BROADCAST(SCOUT.LABEL,DATA.UNIT)
`PROCEDURE GENERATE_FLOOD_BROADCAST(SCOUT_LABEL,DATA;UNIT) IS
`BEGIN
`BEGIN
`OWN.ID;
`SOURCE_ID
`SOURCE_ID :- OWN_ID;
`PREPARE.SCOUT_PACKET(SOURCE.ID,SCOUT.LABEL,DATA.UNIT,SCOUT.PACKET);
`PREPARE_SCOUT_PACKET(SOURCE_ID,SCOUT_LABEL,DATA_UNIT,SCOUT_PACKET) ;
`FORWARD.LINKS :> ALL.LINKS;
`FORWARD_LINKS :8 ALL_LINKS;
`>
`FORWARD.PACKET(SCOUT.PACKET,FORWARD.LINKS);
`FORWARD_PACKET(SCOUT_PACKET,FORWARD_LINKS) ;
`-- SET UP KECHAMZSM FOR EXTRACTING ROUTES FROM SCOUT PACKET
`—- SET UP MECHANISM FOR EXTRACTING ROUTES FROM SCOUT PACKET
`ACK_SCOUT_TIMER(SOURCE.ID,SCOUT.LABEL) :« CURRENT.TIME +
`ACK_SCOUT_TIMER(SOURCE_ID,SCOUT_LABEL) :- CURRENT_TIME +
`ACK.SCOUT.PERIOD;
`ACK_SCOUT_PERIOD;
`NULL;
`BROADCAST.ROUTING.TABLE(SOURCE.ID,SCOUT.LABEL).SEND.TO
`BROADCAST_ROUTING_TABLE(SOURCE_ID,SCOUT_LABEL) .SEND_TO :- NULL;
`TIME.TO.INSTALL.ROUTES
`CURRENT.TIME + ACK.SCOUT.PERIOD;
`TIME_TO_INSTALL_ROUTES :- CURRENT_TIME + ACK_SCOUT_PERIOD;
`SCHEDULE.TIME.TO.INSTALL.ROUTES(SCOUT.LABEL);
`SCHEDULE_TIME_TO_INSTALL_ROUTES(SCOUT_LABEL) ;
`END GENERATE_7L00D_BR0ADCAST;
`END IGENERATE_ILOOD_BROADCAST;
`
`FIG. 6
`FIG.6
`
`PROCEDURE RECEIVE_ACK_SCOUT(ACK.SCOUT.PACKET,LINK.ARRIVED.ON) IS
`raocznunz RECEIVE_ACK_SCOUT(ACK_SCOiJT_PACKET,LINK_ARRIVED_ON) 1s
`BEGIN
`azcnz
`ACK_SCOUT_PACKET.SOURCE_ID;
`SOURCE.ID
`sooner-:31: =- ACK_SCOUT_PACKET.SOURCE_ID;
`SCOUT.LABEL :» ACK.SCOUT.PACKET.SCOUT.LABEL;
`SCOUTJABEL =- ACK_SCOUT_PACKET.SCOUT_LA8EL;
`IF (CURRENT.TIME <» ACK_SCOUT_TIMER(SOURCE.ID,SCOUT.LABEL)) THEN
`1r (emu-r3114: <- ACK_SCOUT_TIMER(SOURCE_ID,SCOU'I‘_LABEL) ) THEN
`BROADCAST_ROUTING_TABLE(SOURCE.ID,SCOUT.LABEL).SEND.TO :>
`BROADCAST_ROUTING_TABLE(SOURCE_ID,SCOUT_LABEL) .smm_ro =
`BROADCAST.ROUTING.TABLE(SOURCE.ID,SCOUT.LABEL).SEND.TO +
`BROADCAST_ROUTING_TABLE(SOURCE_ID,SCOU'1'_LABEL) .s1.=:m>_ro +
`LINK.ARRIVED.ON;
`1.1ux_mnrvzn_on;
`END IF;
`mm IF;
`END RECEIVE.ACK.SCOUT;
`mm RECEIVE_ACK_SCOUT;
`
`FIG.7
`FIG?
`
`PROCEDURE INSTALL_ROUTES_EVENT(SCOUT.LABEL) IS
`pnoczmmn INSTALL_ROUTES_EVBNT(SCOUT_LABEL) 1s
`BEGIN
`amen:
`CURRENT.ROUTES :« SCOUT.LABEL;
`CURRENT_ROUTES :- scan-Luau;
`ROUTES_LAST_UPDATED_TIME :» CURRENT.TIME;
`nourzs_usr_urnuzn_nnz :- CURRENT_TIME;
`— BROADCAST PACKETS WHICH WERE PUT ON HOLD BECAUSE NO ROUTES
`-- BROADCAST nexus waxca van: PUT on new news: no nou'rzs
`— WERE AVAILABLE
`-- wan: AVAILABLE
`WHILE (MORE.PACKETS.ON.HOLD) LOOP
`wan: monz_ncxxrs_on_noz.n) LOOP
`RELEASE.PACKETS.ON.HOLD(DATA.UNIT);
`RELEASE_PACXETS_ON_HOLD(DATA_UNI'1‘) ;
`GENERATE.NON.FLOOD.BROADCAST(CURRENT.ROUTES,DATA.UNIT);
`GENERA'I'E_NON_I'LOOD_BROADCAS‘I'(CURRENT_ROUTES,DATA_UNIT) ;
`END LOOP;
`END LOOP;
`END INSTALL.ROUTES.EVENT;
`mm xns-mm._noms_zvzm-;
`
`-
`
`FIG. 8
`FIGS
`
`

`

`U.S. Patent
`U.S.- Patent
`
`Oct. 8, 1991
`Oct. 8, 1991
`
`Sheet 6 of 10
`Sheet 6 of 10
`
`5,056,085
`5,056,085
`
`PROCEDURE GENERATE_NON_FLOOD_BROADCAST(SCOUT_LABEL,DATA.UNIT)
`IS
`PROCEDURE GENERATE_NON_FLOOD_BROADCAST(SCOUT_LABEL,DATA_UNIT) IS
`BEGIN
`BEGIN
`SOURCE.ID :• OWN.ID J
`SOURCE_ID :II OWN_ID;
`PREPARE_BROADCAST_PACKET(SOURCE.ID,SCOUT.LABEL,DATA.UNIT,PACKET);
`PREPARE_BROADCAST_PACKET(SOURCE_ID,SCOUT_LABEL,DATA_UNIT,PACKET) ;
`TORWARD.LINKS :« BROADCAST.ROUTING.TABLE(SOURCE.ID,
`FORWARD_LINKS :- BROADCAST_ROUTING_TABLE(SOURCE_ID,
`SCOUT.LABEL).SEND.TO;
`SCOUT_LABEL) .SEND_TO;
`FORWARD.PACKET(PACKET,FORWARD.LINKS);
`FORWARD_PACKET(PACKET,FORWARD_LINKS) ;
`END GENERATE.NON.rLOOD.BROADCAST;
`END GENERATE_NON_I'LOOD_BROADCAST;
`
`FIG. 9
`FIG. 9
`
`PROCEDURE PROPAGATE.NON.TLOOD.BROADCAST(PACKET,LINK.ARRIVED.ON) IS
`PROCEDURE PROPAGATE_NON_I'LOOD_BROADCAST(PACKET,LINK_ARRIVED_ON) IS
`BEGIN
`BEGIN
`SOURCE.ID :« PACKET.SOURCE.ID; •
`SOURCE_ID :- PACKET.SOURCE_ID;
`SCOUT.LABEL
`PACKET.SCOUT.LABEL;
`SCOUT_LABEL :- PACKET-SCOUT_LABEL;
`IF (BROADCAST.ROUTING.TABLE(SOURCE_ID,SCOUT_LABEL).RECEIVED.FROM -
`I!‘ (BROADCAS'I'_ROUTING_TABLI(SOURCE_ID,SCOUT_LABEL) .RECEIVED_FROM I
`LINK.ARRIVED.ON) THEN
`LINK_ARRIVED_ON) THEN
`ACCEPT_PACKET{PACKET);
`ACCEPT_PACKET(PACKET) ;
`.
`TORWARD.LINKS :• BROADCAST.ROUTING.TABLE(SOURCE.ID,
`FORWARD_LINKS :8. BROADCAST_ROUTING_TABLE(SOURCE_ID,
`SCOUT.LABEL).SEND.TO;
`SCOUT_LAHEL) -SEND__'1‘O;
`FORWARD.PACKET(PACKET,TORWARD.LINKS);
`FORWARD_PACKET(PACKET,FORWARD_LINKS) ;
`END IT;
`END I1‘;
`END PROPAGATE.NON.TLOOD.BROADCAST;
`END PROPAGATE_NON_I'LOOD_BROADCAST;
`
`FIG. 10
`FIG. IO
`
`

`

`U.S. Patent
`US. Patent
`
`Oct. 8, 1991
`Oct. 8, 1991
`
`Sheet 7 of 10
`Sheet 7 of 10
`
`5,056,085
`5,056,085
`
`5 O 1
`100-
`
`80-
`
`GO
`
`PERCENTAGE OF LINKS
`
`60-
`03 O 1
`Ll_
`o
`UJ
`o
`^40-
`z
`UJ
`o
`520-
`N o l
`
`QL
`
`—FLOOD-AND-FORWARD
`——FLOOD—AND—FORWARD
`—CONSTRAINED FLOODING
`—I—CONSTRAINED FLOODING
`
`I
`/
`/
`/
`
`S y
`
`/
`
`f
`
`J
`
`f
`/
`/
`
`J
`s
`/
`/
`/
`y'
`
`0-K
`T
`I
`T
`T
`T
`T
`T
`T
`T
`I
`.
`no
`0.0 Oil
`o.'2 0T3 0.4 0.5 0:6 0:7 0T8 0T9 |.o
`0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
`BANDWIDTH CONSUMPTION
`BANDWIDTH CONSUMPTION
`FIG. II
`
`100-
`
`— FLOOD-AND-FORWARD
`-—- FLOOD-AND-FORWARD
`— CONSTRAINED FLOODING
`—-CONSTRAINED FLOODING
`
`60-
`m 0 1
`
`PERCENTAGE OF PACKETS
`
`CO
`(D o l
`f- 80-
`UJ
`o
`<1
`Q_
`&
`UJ
`o
`^ 40-
`UJ
`o
`cr
`UJ 20-
`8
`D.
`
`/
`/
`
`/
`/
`/
`/
`/
`/
`/
`
`/
`/
`/
`/
`/
`•
`
`/
`
`0
`!
`I
`o
`0.14
`0.12
`0J2 0.l4
`
`J
`I
`l
`I
`1
`I
`I
`l
`I
`I
`I
`I
`0.26 0.28 0.30
`0.18 0.20 0.22 0.24
`0.16
`0.26 0.28
`0.30
`0.l8
`0.20 0.22 0.24
`0.l6
`END-TO-END DELAY (SEC)
`END-TO- END DELAY (SEC)
`FIG.12
`FIG.|2
`
`

`

`U.S. Patent
`US. Patent
`
`Oct. 8, 1991
`0a. 8,1991
`
`Sheet 8 of 10
`Sheet 8 of 10
`
`5,056,085
`5,056,085
`
`100-
`
`— FLOOD-AND-FORWARD
`---—— FLOOD-AND-FORWARD
`— CONSTRAINED FLOODING
`——- CONSTRAINED FLOODING
`
`/
`/
`
`/
`/
`
`60-
`
`PERCENTAGE OF PACKETS
`
`to
`I- 80-
`UJ
`•XL
`O <
`a.
`u_
`o
`UJ e>
`< 40-
`UJ o
`cr
`CD 20
`Q_
`
`0
`0
`
`/
`/
`/
`/
`/
`/
`/
`/
`/
`/
`/
`/
`
`_
`
`T
`T
`vI
`I
`I
`.03
`.02
`.01
`.03
`.02
`.0|
`END-TO-END QUEUE DELAY (SEC)
`END-TO-END QUEUE DELAY (SEC)
`FIG. 13
`
`T
`I
`.04
`.04
`
`£<3 ANALYTICAL PROJECTION
`- m ANALYTICAL PROJECTION .
`
`/•*
`
`863
`'06.}
`80.8
`80.8
`
`.
`
`-
`
`—
`
`100
`I00
`5^2223
`Q
`5 91:2
`93.2
`UJ
`•c
`5 a0
`0 80
`<
`“<5
`UJ
`cr
`C!
`to
`(D
`z
`O 60-
`5 s0
`2
`<
`E
`to 40-
`a’? 40
`UJ
`LL]
`o
`Q
`Ll. o
`LL
`0
`UJ 20
`us 20
`o
`<9.
`,3
`Z
`UJ
`‘6’
`0
`o 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10
`bk.
`cc.
`33
`0.01
`0.02 0.03 0.04 0.05 0.06 0.07 0.00 0.09 0.10
`UJ
`PACKET ERROR RATE
`Q_
`PACKET ERROR RATE
`FIG. 14
`FIG. I4‘
`
`69.9
`
`64.9
`'M 60.3
`
`56.0
`
`52.0
`
`48.2
`
`75.2
`
`r? •V
`$
`V •v
`
`CL
`
`.
`
`

`

`U.S. Patent
`US. Patent
`
`Oct. 8, 1991
`Oct. 8, 1991
`
`Sheet 9 of 10
`Sheet 9 of 10
`
`5,056,085
`5,056,085
`
`FLOOD-AND-FORWARD
`-<>- FLOOD-AND-FORWARD
`-•-CONSTRAINED FLOODING
`-—'-CONSTRAINED FLOODING
`
`_
`
`""" - •
`
`o-
`
`\ F
`
`T
`0.02
`_ 0 0
`
`_ w
`
`T
`0.10
`
`0.12
`
`_ u C I
`T
`T
`T
`0.08
`0.06
`0.04
`PACKET ERROR RATE
`FIG. 15
`\ mu .m \
`\ E O S \ 8
`\ R 5 + h \
`\ -m m mm x ‘M
`FLOOD-AND-FORWARD
`\ 0. W O \ O
`CONSTRAINED FLOODING
`6
`\ , m m \\
`k :m m m L. \\ 1m
`\ 0 AN“ M \3 O
`3 IR m M a \o I".
`
`\ 6 mun . . _ \ 6
`
`O ‘ x
`
`Inv. R G _ lo. 0 E H \ 0
`4 m \ 4
`
`T k .\
`M m k.‘ M
`x*
`
`o
`
`"O1
`
`-0
`
`""V
`
`N.
`
`\
`X
`
`\
`\
`\
`\
`
`a
`UJ 100.0-
`X o <
`UJ
`^ 99.8-
`co
`z o
`5 99.6-1
`z
`CO
`w 99.4-
`Q
`Sfe
`UJ o 99.2-
`z
`UJ y 99.0
`OC
`UJ
`Q_
`
`T
`0.00
`
`655m £22253 .6 ww?zwuma < < .h: h.
`
`m w w w w w m; 8 8m 5 51 o $352K
`
`AW. 6.0. .r h. .r 0 w w w w w W m
`
`a
`-m. k ‘m
`
`o . 0
`
`[m 1%
`
`£ 100-
`co
`<
`o
`Q 90-<
`o
`OC
`CD
`80-
`o
`UJ U-
`CC 70-
`UJ Q_
`u_
`o 60-
`UJ
`o <
`t= 50-
`z UJ
`o

`
`40-
`
`S
`
`\
`\
`\
`\
`\
`
`T
`0.10
`
`0.12
`
`T
`0.00
`
`T
`0.02
`
`T
`T
`T
`0.08
`0.06
`0.04
`PACKET ERROR RATE
`PACKET ERROR RATE
`FIG.16
`FIG. I6
`
`

`

`U.S. Patent
`US. Patent
`
`Oct. 8, 1991
`Oct. 8, 1991
`
`Sheet 10 of 10
`Sheet 10 of 10
`
`5,056,085
`5,056,085
`
`v
`\t RECEIVER
`RECEIVER
`
`CPU
`CPU
`
`V
`TRANSMITTER j/
`TRANSMITTER
`
`TIMER
`TIMER
`I
`
`MEMORY
`MEMORY
`____-____'_-_____
`BROADCAST
`I CONSTRAINT
`BROADCAST
`CONSTRAINT
`I
`ROUTING
`I
`TABLE
`ROUTING
`TABLE
`I
`TABLE
`I
`TABLE
`i
`FIG. 17
`F I G. I7
`
`TRANSMITTING NODE
`TRANSMITTING NODE
`
`RECEIVING NODE
`RECEIVING NODE
`
`I
`STRAlNES" FLOOD I
`l
`SET ACKNOWLEDGEMENT TIIIIER
`SET ACKNOWLEDGEMENT TIMER
`I
`I
`
`f9 4
`4.
`5
`5
`/_// 6 1
`6
`
`I
`INHIBIT
`INHIBIT
`RECORD IN SEND TO COLUMN OF
`RECORD IN SEND m COLUMN 0F <- —- — — —_
`BROADCAST ROUTING TABLE
`BROADCAST ROUTl/NG TABLE
`
`\
`
`/
`DESIGNATE A SCOUT PACKET WITH
`DESIGNATE A scouT PACKET wITII
`SOURCE IDENTIiIEQE‘IEON AND scouT f/
`SOURCE IDENTIFICATION AND SCOUT /
`LABLE
`I
`[2 .
`TRANSMIT SCOUT PACKET IN CON-
`TRANSMH' SCOUT PACKET m c N_
`STRWFLOQD
`o
`.-
`
`'__ —'_
`
`3\
`DETERMINE WHETHER THIS SCOUT
`DETERMINE WHETHER THIS SCOUT
`PACKET HAS BEEN RECEIVED
`PACKET HAS BEEN RECEIVED "_
`PREVIOUSLY
`PREVIOUSLY
`
`10
`/0\ DISCARD +———
`DISCARD *
`YES
`YES
`
`PASS TO NEXT HIGHER LAYER
`“55 To "EXT “'G'IER LAYER
`
`LOG IN CONSTRAINT TABLE
`LOG IN CONSTRAINT TABLE
`
`"0
`NO
`k-
`b-
`I4
`
`SEND ACKNOWLEDGEMENT
`SEND ACKNOWLEDGEMENT +
`
`.
`
`I -
`TRANSMIT REGULAR BROADCAST
`'TRAIIsIIIT REGULAR BRoAncAsT
`PACKETS TO NODES RECORDED IN
`PACKETS T0 NODES RECORDED IN
`SEND TO COLUMN OF BROADCAST
`SEND To coLumI 0F BRoAocAsT
`ROUTING TABLE
`ROUTING TABLE
`
`7
`7 »\
`RECORD IN RECEIVED FROM
`RECORD IN RECEIVED FROM
`COLUMN OF BROADCAST ROUTING
`COLUMN OF BRoAucAsT ROUTING
`TABLE
`TABLE
`
`I<-—~
`
`8
`
`FIG. 18
`
`TRANSMIT TO ALL NODES EXCEPT
`TRANSMIT TO ALL NODES EXCEPT ‘
`THE NODE FROM WHICH RECEIVED •*
`THE NODE FROM WHICH RECEIVED
`
`

`

`1 .
`
`A
`
`A
`
`4
`
`1
`FLOOD-AND-FORWARD ROUTING FOR
`FLOOD-AND-FORWARD ROUTING FOR
`BROADCAST PACKETS IN PACKET SWITCHING
`BROADCAST PACKETS IN PACKET SWITCHING
`NETWORKS
`NETWORKS
`
`5,056,085
`5,056,085
`2
`2
`rithms is described, for example, in Computer Networks,
`rithms is described, for example, in Computer Networks,
`by A. S. Tanenbaum, Prentice Hall, Englewood Cliffs,
`by A. S. Tanenbaum, Prentice Hall, Englewood Cliffs,
`N.J., 1981, and in "Reverse Path Forwarding of Broad­
`N.J., 1981, and in “Reverse Path Forwarding of Broad
`cast Packets," by Y. K. Dalai and R. M. Metcalfe, Com-
`cast Packets," by Y. K. Dalal and R. M. Metcalfe, Com
`5 munications of the ACM, Vol. 21, pp. 1040-1048, De­
`munications of the ACM, Vol. 21, pp. 1040-1048, De
`This invention was made with United States govern­
`cember 1978.
`•
`This invention was made with United States govern
`cember 1978.
`'
`ment support under contract No. F30602-86-C-0224.
`One such existing algorithm is known as separate
`ment support under contract No. F30602-86-C-O224.
`One such existing algorithm is known as separate
`The United States government has certain rights in this
`The United States government has certain rights in this
`destination addressing. If the network
`is already
`destination addressing. If the network is already
`invention.
`invention.
`equipped with a point-to-point routing algorithm, the
`equipped with a point-to-point routing algorithm, the
`10 obvious approach to broadcast routing is to have the
`obvious approach to broadcast routing is to have the
`BACKGROUND OF THE INVENTION
`BACKGROUND OF THE INVENTION
`source generate a copy of the broadcast packet for each
`source generate a copy of the broadcast packet for each
`Communication between distant stations or nodes,
`Communication between distant stations or nodes,
`destination and then to use point-to-point routing to
`destination and then to use point-to-point routing to
`for example communication between nodes in a satellite
`for example communication between nodes in a satellite
`deliver each copy. This approach makes good use of
`deliver each copy. This approach makes good use of
`network orbiting the earth, presents many requirements
`network orbiting the earth, presents many requirements
`existing hardware; however, since routes to different
`existing hardware; however, since routes to different
`that have not previously been encountered in communi- 15 destinations often overlap, most relaying nodes will
`that have not previously been encountered in communi
`destinations often overlap, most relaying nodes will
`cation or computer networks. Most such communica-
`receive, process and transmit the same packet over and
`cation or computer networks. Most such communica
`receive, process and transmit the same packet over and
`tion networks are expected to be based in space and to
`over again The abundanCe 0f duplicates represents a
`tion networks are expected to be based in space and to
`over again. The abundance of duplicates represents a
`consist of thousands of satellites orbiting the earth at
`consist of thousands of satellites orbiting the earth at
`waste of bandwidth and is likel t0 create a high leveI of
`waste of bandwidth and is likely to create a high level of
`various altitudes and inclinations Such satellites are
`various altitudes and inclinations. Such satellites are
`.
`especially in areas close to the source,
`co
`congestion, especially in areas close to the source.
`constantly moving m and out of line of sight of each 20 Another a ^ to broadcast routing is to carry
`constantly moving in and out of line of sight of each
`20
`Another approach to broadcast routing is to carry
`other and when engaged in a battle, are subject to al
`other and, when engaged in a battle, are subject to all
`multi le destination addresses with each packet. When
`multiple destination addresses with each packet. When
`kinds or threats, ranging from link lamming to total
`kinds of threats, ranging from link jamming to total
`,
`• t
`a broadcast packet is generated or received at a node, it
`u
`J
`*
`i * •
`* J
`•
`J *
`J
`•*
`a broadcast packet is generated or received at a node, it
`,
`destruction. The dynamic and volatile nature of such
`TM.
`J
`•
`j
`r
`t
`A...
`^
`. .
`,. ^
`r ,
`.
`.
`.
`destruction. The dynamic and volatile nature of such
`partitions the remaining list of destinations, grouping
`partitions the remaining list of destinations, grouping
`.
`networks poses a great challenge to network manage-
`i
`* u i i
`. i
`f
`, it_
`'
`.
`f
`networks poses a great challenge to network manage
`i
`•
`together destinations that map to the same outgoing link
`together destinations that map to the same outgoing link
`i. •
`.i
`i
`ment, requiring techniques that adapt to topological 25 . ®
`,
`%
`.
`,
`.
`.
`/, , „
`ment, requiring techniques that adapt to topological
`, 6 , &
`25
`in its point-to-point routing table. For each such group
`changes and that can survive threats
`" lts PO"11"10'?01"1 ^^.ng table. For each such group
`changes and that can survive threats.
`In some situations, it may be desired to transmit a
`the node generates a copy of the broadcast packet,
`the "ode generates a copy of the broadcast packet,
`In some situations, it may be desired to transmit a
`attaches the group’s destination list, and forwards the
`packet of data from one node to one specific other node.
`s destination hst, and forwards the
`Packet on ll!e sfected outgoing link. As the broadcast
`theu
`packet of data from one node to one speci?c other node.
`packet on the selected outgoing link. As the broadcast
`Such transmissions are referred to as "point-to-point".
`Such transmissions are referred to as “point-to-point”.
`In other situations, it may be desired to send data from 30 ProPagates farther away from the source, the destina-
`propagates farther away from the source, the destina
`In other situations, it may be desired to send data from
`30
`a sensor node in the network to all other nodes in the
`tion list gets smaller until there is no destination remain
`tlon llst Sets smaller untl1 there 15 no destination remain-
`a sensor node in the network to all other nodes in the
`network, or to all the nodes in a subnetwork of the
`ing. The packets follow the branches of a spanning tree
`lng' The Packets follow the branches of a spanning tree
`network, or to all the nodes in a subnetwork of the
`network. By way of illustration, in a defensive military
`r00ted at the source'. although information on the span-
`rooted at the source, although information on the span
`network. By way of illustration, in a defensive military
`environment, a subnetwork of sensor nodes may be in
`ning tree is not explicitly stored at each node.
`n'n8 tree 's not explicitly stored at each node,
`environment, a subnetwork of sensor nodes may be in
`high earth orbits, as depicted in FIG. 1, while a subnet- 35
`Forwarding broadcast packets along branches of a
`Forwarding broadcast packets along branches of a
`high earth orbits, as depicted in FIG. 1, while a subnet
`35
`work of weapon nodes may be in low earth orbits, as
`spanning tree has the advantage of generating an opti-
`spanning tree has the advantage of generating an opti
`work of weapon nodes may be in low earth orbits, as
`depicted in FIG. 2. It may be necessary to broadcast a
`mal number of packet copies; this number is exactly
`ma' number of packet copies; this number is exactly
`depicted in FIG. 2. It may be necessary to broadcast a
`packet of data from a sensor node in the high earth orbit
`equal to the number of reachable destinations. How-
`equal to the number of reachable destinations. How
`packet of data from a sensor node in the high earth orbit
`to every weapon node in the low earth orbit. Such a
`ever, the disadvantage of multidestination addressing
`ever, the disadvantage of multidestination addressing
`to every weapon node in the low earth orbit. Such a
`transmission from one node to every node of a subnet- 40 ''es 'n ^e long destination field. A bit map implementa­
`lies in the long destination ?eld. A bit map implementa
`transmission from one node to every node of a subnet
`40
`tion requires as many bits as there are nodes. For net­
`work rather than to a specific one or few of those nodes,
`tion requires as many bits as there are nodes. For net
`work rather than to a speci?c one or few of those nodes,
`works with thousands of nodes, the high ratio of over­
`is referred to as a "broadcast"; i.e., a transmission from
`works with thousands of nodes, the high ratio of over
`is referred to as a “broadcast”; i.e., a transmission from
`head bits to data bits is a drawback that is not easy to
`the one node that is "broadcast" to all those other
`head bits to data bits is a drawback that is not easy to
`the one node that is _“broadcast” to all those other
`overcome. Furthermore, the performance of this algo-
`nodes. In the following description, then, "broadcast" ...
`overcome. Furthermore, the performance of this algo
`...
`nodes. In the following description, then, “broadcast”
`refers to such a transmission from one node intended for 45 rithm is tied to that of the underlying point-to-point
`rithm is tied to that of the underlying point-to-point
`refers to such a transmission from one node intended for
`45
`routing algorithm. If the point-to-point routes are in­
`all of a network or subnetwork of nodes.
`routing algorithm. If the point-to-point routes are in
`all of a network or subnetwork of nodes.
`consistent, unstable or slow to adapt, the same effects
`In a broadcast mode, packets of data can be guided by
`consistent, unstable or slow to adapt, the same effects
`In a broadcast mode, packets of data can be guided by
`will be exhibited in the broadcast routes.
`a broadcast routing algorithm installed at each node to
`will be exhibited in the broadcast routes.
`a broadcast routing algorithm installed at each node to
`Constrained flooding is a technique in which an arriv-
`relay the data packets from node to node over point-to-
`Constrained flooding is a technique in which an arriv
`relay the data packets from node to node over point-to
`point links so as to be received by all nodes that are 50 inS packet that has not been seen before is copied and
`ing packet that has not been seen before is copied and
`point links so as to be received by all nodes that are
`50
`forwarded on all outgoing links except the link on
`reachable from the source node. This mode of broad-
`forwarded on all outgoing links except the link on
`reachable from the source node. This mode of broad
`which it arrived. Packets that have been seen are simply
`casting has been done before in military or commercial
`which it arrived. Packets that have been seen are simply
`casting has been done before in military or commercial
`discarded. To keep track of already seen packets, a
`packet switching networks. However, in some defense
`discarded. To keep track of already seen packets, a
`packet switching networks. However, in some defense
`sequence number is assigned to each packet by the
`scenarios, data generated by all the sensor sources can
`sequence number is assigned to each packet by the
`scenarios, data generated by all the sensor sources can
`total hundreds of thousands of packets per second. As- 55 source node, and a constraint table or bit map is main­
`total hundreds of thousands of packets per second. As
`source node, and a constraint table or hit map is main
`55
`tained at each node to log received packets. The log for
`sured broadcasting of such a quantity of data requires
`tained at each node to log received packets. The log for
`sured broadcasting of such a quantity of data requires
`a particular packet has to remain in the constraint table
`that, in addition to being adaptive and survivable, the
`a particular packet has to remain in the constraint table
`that, in addition to being adaptive and survivable, the
`for some time, at least for the duration of the broadcast,
`broadcast routing algorithm be able to handle a very
`broadcast routing algorithm be able to handle a very
`for some time, at least for the duration of the broadcast,
`before the log can be cleared and reused. The size of the
`high traffic load without exacting a heavy toll from the
`high traf?c load without exacting a heavy toll from the
`before the log can be cleared and reused. The size of the
`60 constraint table is thus proportional to this predefined
`network resources.
`constraint table is thus proportional to this prede?ned
`network resources.
`There are many existing algorithms for routing
`time for packets t

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