throbber
United States Patent (19)
`Callon et al.
`
`IIII
`
`SOO5251205A
`Patent Number:
`(11)
`(45) Date of Patent:
`
`5,251,205
`Oct. 5, 1993
`
`(54) MULTIPLE PROTOCOL ROUTING
`75) Inventors:
`Ross W. Callon, Bedford; Radia J.
`Perlman, Acton; Eric C. Rosen,
`Arlington, all of Mass.; John Harper,
`Reading, England
`(73) Assignee: Digital Equipment Corporation,
`Maynard, Mass.
`(21) Appl. No.: 577,437
`(22
`Filed:
`Sep. 4, 1990
`51) Int. Cl.......................... H04J 3/26; H04L 12/56
`52 U.S. Cl. ..................................... 370/60; 370/94.1;
`370/54; 370/79; 370/85.13
`58) Field of Search ................ 370/94.1, 85.13, 85.14,
`370/60, 79, 54
`
`56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`4,706,081 1/1987 Hart et al. ............................. 370/61
`4,831,620, 5/1989 Conway et al...
`... 340/825.05
`4,893,307 1/1990 McKay et al. ..................... 370/94.1
`5,018, 133 5/1991 Tsukakoshi et al. .
`... 370/85.13
`5,031,174 7/1991 Natsume ........................... 370/85.14
`OTHER PUBLICATIONS
`John M. McQuillan et al.; "The New Routing Algo
`rithm for the ARPANET'; IEEE vol. Com-28, No. 5;
`May 1980.
`E. W. Dijkstra; "A Note on Two Problems in Connex
`ion with Graphs"; Numerische Mathmatik, pp. 269-271
`1959.
`"Protocol for Providing the Connectionless-Mode Net
`work Service'; ISO 8473; Mar. 1987.
`"Intermediate system to Intermediate system In
`tra-Domain routeing exchange protocol for use in Con
`junction with the Protocol for providing the Connec
`tionless-mode Network Service'; ISO 10589; Oct. 15,
`1989.
`"Information processing systems-Telecommunications
`and information exchange between systems-End sys
`tem to Intermediate system routeing exchange protocol
`for use in conjunction . . . ;' ISO 9542; Mar. 26, 1988.
`"Internet Protocol," Darpa Internet Program, Protocol
`Specification; RFC 791; Sep. 1981.
`J. Postel; "Internet Control Message Protocol," Darpa
`
`
`
`
`
`Internet, Program Protocol Specification; RFC 792;
`Sep. 1981.
`R. Braden, J. Postel; “Requirements for Internet Gate
`ways,' RFC 1009; Jun. 1987.
`J. Moy; “The OSPF Specification," RFC 1131; Oct.
`1989.
`C. L. Hedrick, L. Bosack; "An Introduction to IGRP,'
`Jul. 26, 1989.
`Callon et al., "Routing in an Internetwork Environ
`ment,' pp. 4-9.
`Shoch et al., "Mutual Encapsulation of Internetwork
`Protocols," IEN 140, Apr. 1980.
`Primary Examiner-Douglas W. Olms
`Assistant Examiner-Min Jung
`Attorney, Agent, or Firm-Fish & Richardson
`(57)
`ABSTRACT
`A method for connecting a network so that TCP/IP
`and OSI 8473 packets may be routed in the same do
`main. The independence of the addresses is maintained:
`one device in the network may be assigned only a
`TCP/IP address, and another device may be assigned
`only a ISO 8473 address. Furthermore, all of the routers
`share link state information by using a common link
`state packet format (such as the ISO 10589 format); thus
`routes through the network may be computed without
`regard for the protocols supported by the routers along
`the route. Where necessary, packets are encapsulated
`and forwarded through routers which are not capable
`in the protocol of the packet. In some disclosed embodi
`ments, all of the routers in a given area support a given
`protocol (or, in fact, have identical capabilities, in
`which case encapsulation is not required). In these em
`bodiments, the encapsulation is performed by suitable
`modifications to each router's packet forwarding proce
`dures. In other disclosed embodiments, these topologi
`cal restrictions are removed, and the network is ex
`panded to support additional protocols. In these em
`bodiments, the Dijkstra algorithm is also modified to
`generate information on how to encapsulate and for
`ward packets through the network.
`
`24 Claims, 20 Drawing Sheets
`O OSIROUTER or END SYSTEM
`PROUTER of END SYSTEM
`o DUALIPIOS ROUTER
`
`Cloudflare - Exhibit 1078, page 1
`
`

`

`U.S. Patent
`
`Oct. 5, 1993
`
`Sheet 1 of 20
`
`5,251,205
`
`WHISAS GN= 'o HalmOH ISO O
`
`WELLSÅS CINE JO HELT)OH c?|T
`
`
`
`Cloudflare - Exhibit 1078, page 2
`
`

`

`U.S. Patent
`
`Oct. 5, 1993
`
`Sheet 2 of 20
`
`5,251,205
`
`1 1 O
`
`DELIVER PACKETTOES
`
`1 O2
`
`
`
`104
`
`O6
`
`1 O 8
`
`
`
`108
`
`
`
`
`
`1
`
`1
`
`
`
`112
`
`
`
`
`
`RECEIVE PACKET
`ADDRESSED TO
`END SYSTEMZ
`
`REVIEW LSP's
`TO DETERMINE
`ZS ROUTER
`( = ROUTERA)
`
`
`
`AM ROUTER A2
`NO
`FORWARD
`PACKETTOWARD
`ROUTERA
`
`FIG. 1B
`
`FORWARD
`PACKETTOWARD
`ROUTERA
`
`DETERMINE
`FIRST ROUTER
`N PATH TO A
`
`SEND PACKET
`ONLINK TO
`FIRST ROUTER
`N PATH TO A
`
`FIG. 1C
`
`Cloudflare - Exhibit 1078, page 3
`
`

`

`U.S. Patent
`
`Oct. 5, 1993
`
`Sheet 3 of 20
`
`5,251,205
`
`
`WEIS?S GNB 10 HunOH ISO O
`
`
`WELLSÅS CINE JO HELLQOH CHI[]
`
`
`
`
`
`
`
`HELTTOH ISO/CHI TV/TMC)[5]
`
`Cloudflare - Exhibit 1078, page 4
`
`

`

`U.S. Patent
`
`Oct. 5, 1993
`
`Sheet 4 of 20
`
`5,251,205
`
`
`
`38 '- || 1=Moš? ?AIBQ
`
`8 Z !
`
`ON
`
`SE OL92 ||
`
`
`
`ScHST NABIABH
`
`(V H-BLOOB =)
`EINIWNHELLECI O L
`
`HB 1 flOH SZ22 ||
`
`
`Z WELLSÅS CINE
`OLCESSE HOOV/02 ||
`
`
`
`Cloudflare - Exhibit 1078, page 5
`
`

`

`U.S. Patent
`
`Oct. 5, 1993
`
`Sheet 5 of 20
`
`5,251,205
`
`126
`
`FORWARD PACKET
`TOWARD ROUTERA
`
`DETERMINE FIRST
`ROUTER IN
`PATH TO A
`
`133
`
`
`
`FIRST ROUTER
`N PATH TO A
`O
`
`34
`
`DUAL
`
`SPACKET P?
`
`No 136
`
`YES
`
`
`
`ENCAPSULATE -38 140
`PACKEN IP
`SEND PACKET
`HEADER. ADDRESS
`ONLINK TO
`TO AS DUMMY
`FIRST ROUTERN
`PEND SYSTEM
`PATH TOA
`
`IS PACKET. OSI?
`
`YES
`
`142
`
`No
`
`ENCAPSULATE
`PACKET NOS
`HEADER. ADDRESS
`TO AS DUMMY
`OSEND SYSTEM
`
`FIG. 2C
`
`Cloudflare - Exhibit 1078, page 6
`
`

`

`U.S. Patent
`
`Oct. 5, 1993
`
`Sheet 6 of 20
`
`5,251,205
`
`
`
`s
`
`Cloudflare - Exhibit 1078, page 7
`
`

`

`U.S. Patent
`
`Oct. 5, 1993
`
`Sheet 7 of 20
`
`5,251,205
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`PLACE YOURSELF
`ATROOT OF
`ROUTING TREE
`
`18O
`
`PLACEYOUR
`NEIGHBORS BELOW
`YOUAS
`TENTATIVENODES
`
`182
`
`FIND CLOSEST
`TENTATIVENODE,
`MAKE PERMANENT
`
`ADO
`(CLOSER OR NEW)
`NEIGHBORS OF NEW
`NODE BELOW NEW
`NODEASTENTATIVE
`
`ARETHERE ANY
`TENTATIVENODES
`LEFT 2
`
`FG. 4A
`
`Cloudflare - Exhibit 1078, page 8
`
`

`

`U.S. Patent
`
`Oct. 5, 1993
`
`Sheet 8 of 20
`
`5,251,205
`
`
`
`
`
`19 O
`
`Cloudflare - Exhibit 1078, page 9
`
`

`

`U.S. Patent
`
`Oct. 5, 1993
`
`Sheet 9 of 20
`
`5,251,205
`
`PLACE YOUR
`NEIGHBORS BELOW
`YOUASTENTATIVE
`NODES
`
`182
`
`FIRST NEIGHBOR
`
`210
`
`212
`
`ISNEIGHBOR
`ALREADY TENTATIVE2
`
`YES
`
`NO
`
`218
`
`SEERTO "?"
`
`YES
`
`24
`S EXISTING
`TENTATIVE CLOSER
`(TiE BREAKER
`NO
`
`DELETE EXISTING
`TENTATIVE
`
`222
`
`
`
`
`
`NO DOES NEW NEIGHBOR 220
`SUPPORTOSI?
`
`21 6
`
`
`
`
`
`
`
`YES
`
`SET OSIFLAG
`
`
`
`NO
`
`DOES NEW NEIGHBOR
`SUPPORT P?
`
`221
`
`
`
`224
`
`
`
`YES
`
`CLEAR PFLAG
`
`SET PFLAG
`
`225
`
`226
`
`229
`
`NO
`
`MORENEIGHBORS
`LEFT2
`
`228
`
`YES
`
`F.G. 5B
`
`Cloudflare - Exhibit 1078, page 10
`
`

`

`U.S. Patent
`
`Oct. 5, 1993
`
`Sheet 10 of 20
`
`5,251,205
`
`ADD(CLOSER OR NEW)
`NEIGHBORS OF NEW
`NODE BELOW NEW
`NODEASTENTATIVE
`
`186
`
`FIRST NEIGHBOR
`
`240
`
`SNEIGHBOR
`A READY
`PERMANENT
`NO
`244 ALEEve
`NO
`
`250
`
`SET ER, P, OSIFLAGS
`TO VALUES IN PARENT
`
`242
`
`246
`
`YES
`
`S EXISTING
`TENTATIVECLOSER YES
`TE BREAKER
`NO
`DELETE EXISTING
`TENTATIVE
`
`252
`
`NO
`
`248
`
`
`
`
`
`
`
`254
`
`260
`
`
`
`
`
`YES
`
`S PFLAG SET2
`
`YES
`
`256
`DOES NEIGHBOR
`SUPPORT IP?
`
`YES
`
`NO
`DOES NEW NEIGHBOR N2
`SUPPORTOSI?
`
`SEER TO
`PARENTS NAME
`
`262
`
`ADD NEIGHBOR
`TENTATIVELY
`
`264
`
`MORENEIGHBORS NO
`LEFT?
`
`265
`
`YES
`
`NEXT NEIGHBOR
`
`266
`
`FIG. 5C
`
`Cloudflare - Exhibit 1078, page 11
`
`

`

`U.S. Patent
`
`Oct. 5, 1993
`
`Sheet 11 of 20
`
`5,251,205
`
`éudu=3SVYSLNOHUSI
`
`cu|882
`
`V8c
`
`VOLGassasyadv
`
`QayvaT
`
`OV1ddi
`
`
`
`NOLaxOWdGQHYYMYOs
`
`O1ANNLXAN
`
`ON
`
`élSOL3aHOVdSIOL2
`
`
`
`LayOVdGYUVMHOS
`
`
`
`VUSINOHGHYVMOL|gz}
`
`
`
`YAOVSHISOALVA
`
`
`HAQVSHISOALVAYO
`HAGVSHdi31VsaH9
`YAQVSHdiALWaYD
`
`SVYA.LNOYHOSHOSVYSLNOYMOSHO|Gauva1O
`98¢VHalnodc8e
`
`062
`
`
`
`L5xOVdGSLVINSdVONA
`
`
`
`LaNOVdALVINSdVONA
`
`
`
`QHVMdOd‘H30V3HNI
`
`OLNITLXANNO
`
`VHALNOY
`
`9‘Sis
`
`YaOLGS3SSSYHCdV
`
`3O1GaSSayudqv
`
`
`
`SVHALNOHSI
`
`é«én=YA
`
`BLc
`
`VOLaassayddy
`
`Cloudflare - Exhibit 1078, page 12
`
`Cloudflare - Exhibit 1078, page 12
`
`
`
`
`
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Oct. 5, 1993
`
`Sheet 12 of 20
`
`5,251,205
`
`
`
`HELLOOH ISO
`
`HELLÍTO}} di
`
`
`
`
`
`HELLOOH €d
`
`
`
`ISO-9d TV/TMC)
`
`HELITYOH
`
`bainoa NOV
`
`06 ||
`
`002
`
`Cloudflare - Exhibit 1078, page 13
`
`

`

`U.S. Patent
`
`Oct. 5, 1993
`
`Sheet 13 of 20
`
`5,251,205
`
`PLACE YOUR
`NEIGHBORS BELOW
`YOUASTENTATIVE
`NODES
`
`182
`
`340 - FIRSTNEIGHBOR
`
`342
`
`SNEIGHBOR
`ALREADY TENTATIVE2
`
`NO
`
`344
`yes IS THE EXISTING
`TENTATIVE CLOSER2
`(TE BREAKER)
`NO
`
`ES
`
`
`
`NO DOES NEW NEIGHBOR
`SUPPORTOSI?
`
`DELETE EXISTING
`TENTATIVE
`
`YES
`
`SETOS FLAG
`
`350
`
`46
`3
`
`NO DOES NEW NEIGHBOR
`SUPPORT IP?
`
`352
`
`YES
`
`349
`
`353
`
`CLEAR PFLAG
`
`SET PFLAG
`
`354
`
`357
`
`NO DOES NEW NEIGHBOR
`SUPPORT P3?
`
`356
`
`YES
`
`CLEAR P3 FLAG
`
`SET P3 FLAG
`
`358
`
`NO
`
`MORENEIGHBORS
`LEFT?
`
`360
`
`364
`
`NEXT NEIGHBOR
`
`362
`
`FIG. 8B
`
`Cloudflare - Exhibit 1078, page 14
`
`

`

`U.S. Patent
`
`Oct. 5, 1993
`
`Sheet 14 of 20
`
`5,251,205
`
`ADD(CLOSER OR NEW)
`NEIGHBORS OF NEW
`NODE BELOW NEW
`NODEASTENTATIVE
`
`186
`
`370
`
`FIRST NEIGHBOR
`
`SNEIGHBOR A READY
`PERMANENT
`37 2-
`NO
`SNEIGHBOR
`ALREADY TENTATIVE2
`
`374
`
`YES
`
`380
`
`SET OS, PP3 FLAGS
`st
`TO VALUES IN PARENT
`
`
`
`NO
`
`384
`
`NO
`
`390
`
`NO
`
`SOS FLAGSET2
`
`382
`
`YES
`DOES NEIGHBOR
`SUPPORTOS2
`
`N
`O
`
`ISP FLAG SET2
`YES
`DOESNEIGHBOR
`SUPPORT P?
`
`388
`
`No
`
`SP3 FLAG SET2
`
`394
`
`YES
`DOES NEIGHBOR
`SUPPORT P3?
`
`NO
`
`TENTATIVELY
`
`400
`
`LEFT2
`YES
`
`to
`
`4O6
`
`FIG. 8C
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`376
`
`ES
`S THE EXISTING
`TENTATIVE CLOSER2 TC
`(TE BREAKER)
`NO
`DELETE EXISTING
`TENTATIVE
`
`378
`
`CLEAR OS FLAG
`
`386
`392
`
`CLEARPFLAG
`
`398
`
`404
`
`cae
`
`Cloudflare - Exhibit 1078, page 15
`
`

`

`U.S. Patent
`
`Oct. 5, 1993
`
`Sheet 15 of 20
`
`5,251,205
`
`FORWARD PACKET
`TOWARD ROUTERA
`
`126
`
`41 O
`
`CHECKROUTERA's
`OS FLAG
`
`CEAR
`
`SET
`
`FORWARD PACKET
`ONNEXT LINK
`TOA
`
`412
`
`408- IS PACKETOS1
`NO
`
`4 6
`
`LYES
`CLEAR CHECKROUTERA's
`EP FLAG
`
`IS PACKET P?
`
`is
`
`
`
`SET
`
`FORWARD PACKET
`ONNEXT LINK
`TOA
`
`418
`
`NO 414
`
`CHECK ROUTERAS
`P3 FLAG
`
`SET
`
`CLEAR
`
`420
`
`FORWARD PACKET
`ONNEXT LINK
`TOA
`
`422
`
`
`
`GETFLAGS OF
`A-PROTOCOL.
`ROUTER
`
`424
`
`426N ISOSIFLAGSET?
`
`432
`
`ENCAPSULATE IN
`PADDRESSTO
`ALL-PROTOCOL.
`
`
`
`YES
`
`434
`
`NN
`
`ENCAPSULATE IN 428
`OSIADDRESSTO
`ALL-PROTOCOL
`
`4. 3 O
`
`YES
`
`ENCAPSULATE IN
`P3ADDRESSTO
`ALL-PROTOCOL
`
`436
`
`SIP FLAGSET2
`
`SP3 FLAG SET2
`
`NO
`
`4.38
`
`GETFLAGS OF
`PARENNODE
`
`FG. 9
`
`Cloudflare - Exhibit 1078, page 16
`
`

`

`U.S. Patent
`
`Oct. 5, 1993
`
`Sheet 16 of 20
`
`5,251,205
`
`190
`
`200
`
`192
`194
`196 - STATUS
`198-cost
`330
`332
`334
`
`
`
`440-s
`
`FIG. OA
`
`Cloudflare - Exhibit 1078, page 17
`
`

`

`U.S. Patent
`
`Oct. 5, 1993
`
`Sheet 17 of 20
`
`5,251,205
`
`PLACE YOUR
`NEIGHBORS BELOW
`YOUASTENTATIVE
`NODES
`
`
`
`
`
`182
`
`340 - FIRSTNEIGHBOR
`
`
`
`344
`
`342
`
`SNEIGHBOR
`ALREADY TENTATIVE2
`
`YES IS THE EXISING
`TENTATIVE CLOSER7
`
`N
`O
`
`442 - SET EP TO "."
`
`N
`O
`
`DELETE EXISTING
`TENTATIVE
`
`349
`
`CLEAR OSIFLAG
`
`
`
`N O
`
`348
`
`DOES NEW NEIGHBOR
`SUPPORTOS?
`YES
`SEOS FLAG
`
`50
`3
`
`346
`
`N
`O DOES NEW NEIGHBOR
`SUPPORT P2
`
`352
`5
`
`54
`3
`
`356
`5
`
`58
`3
`
`6
`360
`
`362
`
`53
`3
`
`CLEARPFLAG
`
`YES
`SET PFLAG
`
`3
`57
`
`CLEAR P3 FLAG
`
`O
`N
`
`DOES NEW NEIGHBOR
`SUPPORT P3?
`YES
`SET P3 FLAG
`
`/
`
`NO
`
`MORENEIGHBORS
`LEFT?
`YES
`
`
`
`FIG. OB
`
`Cloudflare - Exhibit 1078, page 18
`
`

`

`U.S. Patent
`
`Oct. 5, 1993
`
`Sheet 18 of 20
`
`5,251,205
`
`ADD(CLOSER OR NEW)
`NEIGHBORS OF NEW
`NODE BELOW NEW
`NODEASTENTATIVE
`
`186
`
`370
`
`FIRSTNEIGHBOR
`
`YES IS NEIGHBORALREADY
`PERMANENT2
`372
`NO
`SNEIGHBOR
`7
`374 NALREADYTENTATIVE?
`
`444
`
`SET FLAGS, ES
`TO VALUES IN PARENT
`
`
`
`
`
`
`
`
`
`39 O.
`
`NO
`
`
`
`
`
`
`
`
`
`ISOSIFLAGSET?
`YES
`
`DOES NEIGHBOR
`SUPPORTOSI?
`
`SIP FLAG SET2
`YES
`DOES NEIGHBOR
`SUPPORT IP?
`
`speFaest
`YES
`
`376
`
`YES
`
`IS THE EXISTING
`TENTATIVE CLOSER2
`
`YES
`
`NO
`ISTING
`DELE
`
`CLEAR OSFAG.
`SE EP TO "OS"
`
`386
`392
`
`CLEARPFLAG.
`SET EP TO "P"
`
`
`
`
`
`398
`
`388
`
`NO
`
`394
`
`396 DOESNEIGHBOR
`SUPPORT P3?
`
`NO
`
`CLEAR P3 FLAG.
`SET EP TO "P3"
`
`452 - AREANYFLAGSSET
`YES
`AODNEIGHBOR
`TENTATIVELY
`
`4 OO
`
`
`
`NO
`
`ADD EP, PARENT
`NAME TO END OFES.
`SET ALL FLAGS.
`
`NO
`
`MORENEIGHBORS
`LEFT2
`
`YES - NEXTNEIGHBOR
`
`404
`
`4O2
`
`FIG 10C
`
`4O6
`
`Cloudflare - Exhibit 1078, page 19
`
`

`

`U.S. Patent
`
`Oct. 5, 1993
`
`Sheet 19 of 20
`
`5,251,205
`
`FORWARD PACKET
`TOWARD ROUERA
`
`126
`
`468
`
`456- is PACKETos?
`NO
`
`YES
`458
`
`CHECKROUTER ASSEI
`OS FLAG
`CEAR
`
`464
`
`SET
`
`CHECKROUTERA's
`PFLAG
`
`YES
`
`IS PACKET IP?
`
`CEAR
`
`CHECK PFLAG
`
`NO
`
`
`
`
`
`/
`466
`
`CHECKOSIFLAG
`
`
`
`CHECKOS FLAG
`
`
`
`
`
`ADO OSE HEAOER
`ADDRESSED TO A
`
`ADOP3 HEADER
`ADDRESSED TOA
`
`ADD PHEADER
`ADDRESSED TOA
`
`472
`
`47
`
`
`
`ADO HEADERS AND
`ADDRESSESNES.
`
`478
`
`FORWARD PACKET - 480
`TOFRSTNODE
`
`FIG 11
`
`Cloudflare - Exhibit 1078, page 20
`
`

`

`U.S. Patent
`
`Oct. 5, 1993
`
`Sheet 20 of 20
`
`5,251,205
`
`
`
`
`
`Routing Domain
`Net "17"
`
`Area
`Subnet "17. 133"
`"17. 133.43"
`
`Area
`Subnet "17.22"
`
`
`
`
`
`
`
`
`
`
`
`"17.13357"
`
`Area
`Subnet "17.42"
`
`F.G. 12
`
`Cloudflare - Exhibit 1078, page 21
`
`

`

`1.
`
`MULTIPLE PROTOCOL ROUTING
`
`15
`
`BACKGROUND OF THE INVENTION
`This invention relates to routing algorithms which
`support multiple protocols.
`The end systems (e.g., computers or printers) which
`form a computer network are interconnected by de
`vices known as routers. Each end system is attached to
`one of the network's routers and each router is responsi
`10
`ble for forwarding communications to and from its
`attached end systems.
`The routers transfer information to and from the end
`systems and among themselves along communications
`links in formatted packets. For example, when an origi
`nating end system wishes to transmit information to a
`destination end system, it generates a packet header in
`an appropriate format (this header includes, among
`other information, the address of the destination end
`system), and then fills the remainder of the packet with
`20
`the information to be transmitted. (In the following
`description, the term "user data packet' will refer to the
`entire packet, i.e. the formatted header and the informa
`tion that is to be transmitted from end system to end
`system.) The completed user data packet is then pro
`25
`vided to the router attached to (and responsible for) the
`originating end system, which forwards it toward the
`destination end system. Packets transmitted among the
`routers themselves (which will be referred to as "con
`trol packets') are similarly formatted and forwarded.
`30
`When a router receives a user data packet, it reads the
`user data packet's destination address from the user data
`packet header, and then transmits the user data packet
`on the link leading most directly to the user data pack
`et's destination. Along the path from source to destina
`35
`tion, a user data packet may be transmitted along sev
`eral links and pass through several routers, each router
`on the path reading the user data packet header and
`forwarding the user data packet accordingly.
`To determine how user data packets should be for
`40
`warded, each router typically knows the locations of
`the network's end systems (i.e., which routers are re
`sponsible for which end systems), the nature of the
`connections between the routers, and the states (e.g.,
`operative or inoperative) of the links forming those
`45
`connections. Using this information, each router can
`compute effective routes through the network and
`avoid, for example, faulty links or routers. A procedure
`for performing these tasks is generally known as a
`"routing algorithm'.
`In popular routing algorithms such as that described
`in "The New Routing Algorithm for the ARPANET'
`by McQuillan et al., IEEE Transactions on Communica
`tions, May, 1980, each router determines which end
`systems are attached to it, what links to other routers
`are available, the states of those links, and the identities
`of the routers on the other ends of those links. To initial
`ize the network, each router places this information in a
`control packet known as a Link State packet (LSP), and
`transmits this. LSP to all of the other routers in the
`network (i.e., "advertises' its neighbors and end sys
`tems to the network). Later, when changes in the net
`work occur (e.g., a link fails), one or more routers may
`generate new LSPs which supersede previously gener
`ated LSPs.
`65
`As long as the most recent LSPs are propagated
`reliably to all of the routers, each router will have com
`plete information about the topology of the network
`
`5,251,205
`2
`and can generate a routing database describing routes
`through the network (for example, using the algorithm
`described in "A Note on Two Problems in Connexion
`with Graphs" by Edsgar Dijkstra, Numerische Math
`ematik, Vol. 1, 1959, pages 269-271).
`In order for user data packets to be delivered to their
`destinations, each end system on the network must have
`an unambiguous address. There are several independent
`standards organizations which document and promul
`gate address allocation schemes, as well as control and
`user data packet formats which may be used for com
`municating under these schemes. Several networks of
`routers have been configured according to these ad
`dressing schemes and formats.
`In what follows, the term "routing protocol' will be
`used to describe the combination of an address alloca
`tion scheme and a format (or a group of related formats)
`that describes control packets and other information to
`be exchanged among routers, and which is used to cal
`culate the paths which the user data packets will take
`between routers. Routing protocols are often associated
`with their own routing algorithms, each routing algo
`rithm being documented and promulgated by the stan
`dards organization responsible for the associated rout
`ing protocol.
`Further, the term "protocol suite' will be used to
`describe the comprehensive set of protocols that is de
`signed to work together to coherently provide com
`plete communication capabilities. Two examples of
`protocol suites are the TCP/IP protocol suite and the
`OSI protocol suite. Each of these protocol suites in
`cludes one or more network layer protocols which
`define the format used for control and user data packets
`that are to be transferred by the network routers. For
`example, the IP protocol of the TCP/IP protocol suite
`defines the network layer protocol which makes up the
`format of the user data packets that are forwarded by
`the IP routers. Similarly, the OSI routers forward user
`data packets following the ISO 8473 network layer
`protocol.
`The Transmission Control Protocol (TCP) RFC 793,
`Internetwork Protocol (IP) RFC 791, the Internet Con
`trol Message Protocol RFC 792, and the TCP/IP pro
`tocol suite which is described in RFC 1122, "Require
`ments for Internet Hosts-Communication Layers,'
`RFC 1123, "Requirements for Internet Hosts-Ap
`plication and Support,' RFC 1100, "IAB Official Pro
`tocol Standards,” and RFC 1009, "Requirements for
`Internet Gateways,' and associated other RFCs, all
`available from SRI International, DDN Network Infor
`mation Center, Room EJ291, 333 Ravenswood Avenue,
`Menlo Park, Calif. 94025, have recently been growing
`in importance as a multi-vendor communications archi
`tecture, and many networks are based on them.
`(TCP/IP terminology refers to routers as "gateways',
`and end systems as "hosts'.) At the same time, how
`ever, existing networks also use the Open Systems In
`terconnection (OSI) protocols such as described in In
`ternational Organization for Standardization (ISO)
`7498, "Information Processing Systems-Open Systems
`Interconnection-Basic Reference Model,' ISO 8473,
`"Protocol for Providing the Connectionless-mode Net
`work Service,' ISO 9542, "End System to Intermediate
`System Routing Exchange Protocol," and ISO DP
`10589 "Intermediate System to Intermediate System
`Intradomain Routing Exchange Protocol," all available
`from BSi Standards, 2 Park Street, London England,
`
`50
`
`55
`
`Cloudflare - Exhibit 1078, page 22
`
`

`

`O
`
`5,251,205
`3
`4.
`W1A2BS, and more are expected to be created as OSI
`managing multiple independent networks is less effi
`is further developed.
`cient than configuring and managing a single integrated
`Because the several existing protocols (in particular
`network of the same total size; multiple networks must
`TCP/IP and OSI) have been developed independently,
`be configured independently, increasing overhead; and
`they are largely incompatible.
`multiple networks cannot be managed as efficiently as a
`Networks having incompatible protocols cannot
`single network because the implicit interactions be
`make their links and routers available to each other,
`tween the networks (such as the shared loads placed on
`which may result in excess redundancy and reduced
`routers and links) cannot be well characterized and
`efficiency. Also, each of the networks must be main
`controlled.
`tained independently, increasing the total management
`SUMMARY OF THE INVENTION
`effort over what would be required by a single, univer
`sally compatible network.
`In one aspect, the invention features a method of
`One known way to share routing resources among
`calculating routes for sending user data packets through
`networks having incompatible protocols is known as
`an interconnected network of information handling
`gateway encapsulation. In gateway encapsulation, a
`devices. Each of the user data packets includes destina
`15
`network using protocol A is provided with a path
`tion address information conforming to an addressing
`through a second network that uses protocol B. To
`convention of any one of two or more different inde
`form the path, two routers are manually configured to
`pendent protocol suites. The routes for user data pack
`provide gateways from protocol A to protocol B, and
`ets are always calculated using a single route calculation
`back.
`algorithm corresponding to the same routing protocol
`20
`Each gateway router is configured to be fluent in
`(which is chosen from an arbitrary protocol suite) re
`both protocol A and protocol B. When a user data
`gardless of the addressing convention to which the user
`packet formatted in protocol A is received, at a gateway
`data packet conforms. This calculation does not involve
`router, the gateway router "encapsulates' the user data
`converting the destination information from one ad
`packet in a protocol B header (i.e., generates a protocol
`dressing convention to another.
`25
`B header and places the protocol A user data packet,
`Preferred embodiments of this aspect include the
`including the protocol A header, into the data area of
`following features.
`the protocol B user data packet). The encapsulated
`There are exactly two protocol suites.
`protocol A user data packet is then addressed to the
`Link state packets conforming to the routing proto
`second gateway router, and transmitted through the
`col used to compute routes are sent to the information
`protocol B network.
`handling devices, and routes are calculated based on
`When the encapsulated protocol A user data packet is
`information contained in the link state packets.
`received at the second gateway router, the protocol B
`The OSI IS-IS routing protocol is used to compute
`encapsulation header is removed, and the protocol A
`routes.
`user data packet is forwarded to its destination through
`In another aspect, the invention features a method for
`35
`the protocol A network.
`calculating routes for sending user data packets via
`The routing algorithm used in the protocol A net
`information handling devices which are interconnected
`work is suitably modified to make the protocol A rout
`in a communications network. The information han
`ers aware of the gateway, so that user data packets
`dling devices include (a) single-protocol information
`destined to routers at the other end of the gateway are
`handling devices capable of recognizing and forward
`forwarded to one of the gateway routers.
`ing only user data packets which conform to a single
`One disadvantage of gateway encapsulation is that
`protocol suite, and (b) multi-protocol information han
`the gateway must be manually configured, and thus
`dling devices capable of recognizing and forwarding
`must also be manually maintained. If a change to the
`user data packets which conform to any one of two or
`gateway path is desired, or if an additional gateway
`more protocol suites. A routing protocol is used to
`45
`path is added, the gateway routers must be manually
`automatically predetermine at which information han
`adjusted to effect the desired changes. Furthermore, the
`dling devices to encapsulate and to decapsulate a given
`gateway path is only available to the protocol A net
`packet.
`work as long as the gateway routers themselves are
`Preferred embodiments of this aspect include the
`operational. If a gateway router fails, the pre-estab
`following features.
`lished path through the protocol B network is severed,
`The information handling devices are organized in
`and communications must be re-routed through the
`areas and all of the information handling devices within
`protocol A network.
`a single area are at least capable of recognizing and
`Another way to route multiple incompatible proto
`forwarding user data packets which conform to the
`cols is known as "ships in the night” (SIN). In the SIN
`same one of the protocol suites. This common protocol
`55
`approach, the same physical resources (e.g., routers and
`suite may be different for different areas.
`links) are used to route completely separate protocols.
`A given area may include (a) single-protocol informa
`The shared resources multiplex between the supported
`tion handling devices capable of recognizing and for
`protocols, and the protocols themselves operate more
`warding only user data packets which conform to a first
`or less independently.
`protocol suite, (b) single-protocol information handling
`With SIN, there is some degree of competition for
`devices capable of recognizing and forwarding only
`resources, because implementing two protocols requires
`user data packets which conform to a second different
`additional programming time as well as additional CPU
`protocol suite, and (c) at least one multi-protocol infor
`and memory resources in the routers. Furthermore,
`nation handling device capable of recognizing and
`SIN requires that two complete sets of control packets
`forwarding user data packets which conform to the first
`be distributed through the two independent networks,
`and second protocol suite (and/or every other protocol
`which doubles the control traffic overhead over that of
`suite that is used by any other information handling
`a single integrated network. Finally, configuring and
`device in the area).
`
`30
`
`50
`
`65
`
`Cloudflare - Exhibit 1078, page 23
`
`

`

`O
`
`15
`
`5,251,205
`5
`6
`There are exactly two protocol suites, one which is
`FIG. 8A is a diagram of a data structure of the rout
`the TCP/IP protocol suite and another which is the
`ing tree of FIG. 4B as used in a dual-protocol router of
`OSI protocol suite.
`FIG 7B.
`Link state packets conforming to the routing proto
`FIG. 8B is a flow diagram of an algorithm for initial
`col used to compute routes are sent to the information 5
`izing the routing trees in the dual-protocol routers of
`handling devices, and routes are calculated based on
`FIG. 7B.
`information contained in the link state packets.
`FIG. 8C is a flow diagram of an algorithm for build
`The OSI IS-IS routing protocol is used to compute
`ing the routing trees in the dual-protocol routers of
`routes and determine at which information handling
`FIG. 7B.
`devices to encapsulate and to decapsulate.
`FIG. 9 is a flow diagram of the user data packet
`forwarding algorithm to be followed by the dual
`In another aspect, the invention features a method of
`protocol routers of FIG. 7B.
`enabling user data packets to be forwarded from one
`FIG. 10A is a diagram of a data structure of the rout
`local area network to another by a device which is
`ing tree of FIG. 4B as used in the all-protocol router of
`capable of acting as a router to recognize and forward
`FIG. 7B.
`user data packets which conform to a first protocol suite
`FIG. 10B is a flow diagram of an algorithm for initial
`and is capable of acting as a bridge to recognize and
`izing the routing tree in the all-protocol router of FIG.
`forward user data packets which conform to at least a
`7B.
`second protocol suite. For a user data packet which
`FIG. 10C is a flow diagram of an algorithm for build
`conforms to the first protocol suite and is addressed to
`ing the routing tree in the all-protocol router of FIG.
`20
`a single address which is not an address of the device,
`7B.
`the devices acts as a bridge rather than as a router.
`FIG. 11 is a flow diagram of the user data packet
`Other features and advantages of the invention will
`forwarding algorithm to be followed by the all-protocol
`be apparent from the following description of the pre
`router of FIG. 7B.
`ferred embodiments and from the claims.
`FIG. 12 illustrates a common area structure.
`25
`DESCRIPTION OF THE PREFERRED
`FIG. 13 illustrates a brouter.
`EMBODIMENTS
`GENERAL DESCRIPTION
`We first briefly describe the drawings.
`Before discussing the invention, it will be useful to
`FIG. 1A is a diagram of a dual-protocol network 30
`define some terminology.
`segregated on a per-area basis which does not require
`A router that is fluent in only one of the protocols
`encapsulation.
`supported by the multi-protocol network will be gener
`FIG. 1B is a flow diagram of the user data packet
`ally referred to as a "single-protocol' router. Where
`receiving algorithm to be followed by the routers of
`necessary, the protocol supported by a single-protocol
`FIG. A.
`router may be indicated by explicit reference to the
`35
`FIG. 1C is a flow diagram of the user data packet
`protocol. For example, a single-protocol router which
`forwarding algorithm to be followed by the routers of
`is fluent in only protocol P1 may be referred to as a
`FIG. 1A.
`"P1-only" router.
`FIG. 2A is a diagram of a dual-protocol network
`Routers that are fluent in more than one of the sup
`segregated on a per-area basis which requires encapsu- 40
`ported protocols interconnect the dissimilar single
`lation.
`protocol routers. A router that is fluent in more than
`FIG. 2B is a flow diagram of the user data packet
`one of the supported protocols will be generally re
`receiving algorithm to be followed by the dual-protocol
`ferred to as a "multi-protocol' router. Routers that are
`routers of FIG. 2A.
`fluent in two protocols will be referred to as "dual
`FIG. 2C is a flow diagram of the user data packet 45
`protocol" routers; routers that are fluent in three proto
`forwarding algorithm to be followed by the dual
`cols will be referred to as "three-protocol" routers, and
`protocol routers of FIG. 2A.
`so on. Multi-protocol routers that are fluent in all of the
`FIG. 3 is a diagram of a dual-protocol network which
`protocols supported by a given network will be referred
`is not segregated on a per-area basis.
`to as "all-protocol' routers. (Note that where only two
`FIG. 4A is a flow diagram of an algorithm used to 50
`protocols are supported, the terms multi-protocol, dual
`build routing trees.
`protocol, and all-protocol are synonymous; however,
`FIG. 4B is a diagram of a routing tree.
`this synonymity does not apply when more than two
`FIG. 5A is a diagram of a data structure of the rout
`protocols are supported.)
`ing tree of FIG. 4B as used in a dual-protocol router of
`There are two types of multi-protocol routers. A
`FIG. 3.
`"simple multi-protocol router". will route user data
`55
`FIG. 5B is a flow diagram of an algorithm for initial
`packets conforming to two or more protocols. How
`izing the routing trees in the dual-protocol routers of
`ever, a simple multi-protocol router is only able to for
`FIG. 3.
`ward the user data packets; it is not able to perform
`FIG. 5C is a flow diagram of an algorithm for build
`encapsulation or decapsulation to make user data pack
`ing the routing trees in the dual-protocol routers of 60
`ets in one protocol compatible with another protocol.
`FIG. 3,
`An "enhanced multi-protocol router' will not only
`FIG. 6 is a flow diagram of the user data packet
`route user data packets conforming to two or more
`forwarding algorithm to be followed by the dual
`protocols, but is also able to perform encapsulation or
`protocol routers of FIG. 3.
`decapsulation to make user data packets in one protocol
`FIG. 7A illustrates a three-protocol network which 65
`compatible with anot

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