throbber
(12) United States Patent
`Rothman et al.
`
`(10) Patent No.:
`45) Date of Patent:
`
`US 7,398,382 B2
`Jul. 8, 2008
`
`9
`
`USOO7398382B2
`
`J. ww.
`
`OWC (a
`
`- - -
`
`7,032,031 B2 * 4/2006 Jungcket al. ............... TO9,246
`7,085,921 B2 * 8/2006 Frye, Jr. ......................... T13/1
`7,099,927 B2* 8/2006 Cudd et al. ....
`... 709,217
`2. . R g3. h
`t it. - - - - - - - - - - - - - - 36
`7,203,735 B1 * 4/2007 Le Pennec et al. .......... 709/219
`2003/0126242 A1* 7/2003 Chang ..............
`... TO9,222
`2003/0208675 A1* 11/2003 Burokas et al. ................ T13/1
`2004/0068576 A1* 4/2004 Lindbo et al. .....
`... 709,232
`2005/0144431 A1* 6/2005 Lin et al. ....................... T13/1
`2005/0278583 A1* 12/2005 Lennert et al. ................ T14? 43
`OTHER PUBLICATIONS
`Preboot Execution Environment (PXE) Specification, Intel Corpora
`tion, Sep. 20, 1999, ver, 2.1, pp. 1-101.
`* cited by examiner
`Primary Examiner Thomas Lee
`Assistant Examiner Jaweed A Abbaszadeh
`(74) Attorney, Agent, or Firm Blakely, Sokoloff, Taylor &
`Zafman LLP
`
`(57)
`
`ABSTRACT
`
`Methods and apparatus for improving network boot effi
`ciency are disclosed. Under embodiments of the method, boot
`images that are initially sent from a boot server to various
`9.
`y
`clients are cached at network devices along communication
`paths between the boot server and the clients. In response to
`Subsequent boot image requests from the clients, boot images
`cached at the network devices are downloaded directlv from
`y
`the network devices rather than from the boot server, reducing
`network traffic to and from the boot server and domains in
`between. In addition, boot program bootstrap files may also
`be cached and downloaded in a similar manner. Techniques
`are also disclosed for intercepting boot image download and
`network bootstrap program requests at the network devices,
`and for maintaining valid boot image cache configurations
`across the network. The network devices generally include
`Switches, routers, bridges, and gateway servers.
`
`23 Claims, 17 Drawing Sheets
`
`(54) METHOD AND APPARATUS TO ENHANCE
`PLATFORM BOOT EFFICIENCY
`
`(75) Inventors: Michael A. Rothman, Puyallup, WA
`(US); Vincent J. Zimmer, Federal Way,
`WA (US)
`
`7
`
`(*) Notice:
`
`(73) Assignee: Intel Corporation, Santa Clara, CA
`(US)
`-
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 313 days.
`(21) Appl. N 11AO26,420
`ppl. No.:
`9
`Dec. 29, 2004
`Prior Publication Data
`
`(22) Filed:
`(65)
`
`US 2006/0143432 A1
`
`Jun. 29, 2006
`
`(51) Int. Cl.
`(2006.01)
`G06F 9/00
`(2006.01)
`G06F 15/177
`(2006.01)
`G06F 5/16
`52) U.S. Cl. ........................... 713/2; 709/217; 709/219;
`709/222
`(58) Field of Classification Search ................. 709/203,
`709/222; 713/2
`See application file for complete search historv.
`ry
`pp
`p
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`5,280,627 A *
`1/1994 Flaherty et al. ................ 713/2
`5,452,454. A
`9, 1995 Basu ............................. 713/2
`6,138,162 A * 10/2000 Pistriotto et al. ............ 709,229
`6,389,462 B1* 5/2002 Cohen et al. ................ TO9.218
`6,549,934 B1 * 4/2003 Peterson et al. ............. TO9,203
`6,854,009 B1* 2/2005 Hughes ...................... TO9.220
`6,965,924 B1 * 1 1/2005 Gerthe ....................... TO9.218
`6,976,058 B1* 12/2005 Brown et al. ................ 709/217
`
`
`
`
`
`130 (TYP) -128 (Typ)
`
`
`
`RETREWE
`(O(Push-
`
`PUSH
`DIRECTIV
`
`32
`:
`iD, CLIENTA
`MAC: OD-FA-20-35-D-F
`P: 24.54.60.10
`
`A
`
`126
`t
`6KRETRIEVE.
`“.
`124.53
`: PXE
`
`A. 132
`CLIENT A; 6.IMG
`CLIENTB;3.IMG
`ENTC:4.
`CENTC: 4.MG
`
`108
`
`28
`
`Docker EX1007
`Page 1 of 28
`
`

`

`U.S. Patent
`
`Jul. 8, 2008
`
`Sheet 1 of 17
`
`US 7,398,382 B2
`
`
`
`s
`
`Docker EX1007
`Page 2 of 28
`
`

`

`U.S. Patent
`
`Jul. 8, 2008
`
`Sheet 2 of 17
`
`US 7,398,382 B2
`
`
`
`N
`d ld
`co
`C
`d
`w
`c
`c
`a.
`co
`t
`r
`to 2
`co
`r
`an
`dis
`s
`a.
`d
`e
`
`Docker EX1007
`Page 3 of 28
`
`

`

`U.S. Patent
`
`Jul. 8, 2008
`
`Sheet 3 of 17
`
`US 7,398,382 B2
`
`
`
`
`
`&
`
`: i
`
`
`
`47
`
`
`
`
`
`i
`
`
`
`
`
`Docker EX1007
`Page 4 of 28
`
`

`

`U.S. Patent
`
`Jul. 8, 2008
`
`Sheet 4 of 17
`
`US 7,398,382 B2
`
`
`
`:
`
`Docker EX1007
`Page 5 of 28
`
`

`

`U.S. Patent
`
`Jul. 8, 2008
`
`Sheet 5 Of 17
`
`US 7,398,382 B2
`
`&
`
`
`
`
`
`
`
`Docker EX1007
`Page 6 of 28
`
`

`

`U.S. Patent
`
`Jul. 8, 2008
`
`Sheet 6 of 17
`
`US 7,398,382 B2
`
`
`
`S.
`
`Docker EX1007
`Page 7 of 28
`
`

`

`U.S. Patent
`
`Jul. 8, 2008
`
`Sheet 7 Of 17
`
`US 7,398,382 B2
`
`1ST SYSTEM POWER ON/RESET
`
`200
`
`INITIALIZE CLIENT OBTAIN NETWORKADDRESS
`
`2O2
`
`OBTAINBOOT (OPERATING SYSTEM)
`IMAGE OVER NETWORK FROM BOOT SERVER
`
`204
`
`1st PHASE
`
`
`
`CACHE BOOT IMAGE AT NETWORKDEVICE (E.G.,
`SWITCH, ROUTER, BRIDGEETC.) OR GATEWAY
`SERVER PROXMATE TO CLIENT
`
`206
`
`BOOT OS IMAGE
`
`208
`
`CONTINUE NORMAL RUNTIME USE
`
`210
`
`ONGOING
`
`SUBSEQUENT SYSTEM POWER ON/RESET
`
`212
`
`INITIALIZE CLIENT OBTAIN NETWORKADDRESS
`
`214
`
`OBTAIN OS BOOT IMAGE FROM CACHING DEVICE
`(NETWORKDEVICE OR GATEWAY SERVER)
`
`216
`
`Fig. 2
`
`Docker EX1007
`Page 8 of 28
`
`

`

`U.S. Patent
`
`Jul. 8, 2008
`
`Sheet 8 of 17
`
`US 7,398,382 B2
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`INTIAL
`FIRMWARE
`
`PXE DHCP Discover
`
`yPXECLIENT TAGs/
`
`PXECLIENT TAGS
`
`PXESERVER TAGS
`3O8
`Extended DHCP Bie/PXESERVERTAGs/
`31 O
`BOOT SERVER LIST A 306r- 124.54.60.10
`
`
`
`(3) DHCP Request "APXECLENTAGs
`
`PROXY
`DHCP
`SERVICE
`
`312
`Boot Service Discover PXE CLIENT TAGS
`
`318
`Boot Service Ack
`PXESERVERTAGS
`316 - NBP NAME
`316
`
`(7) PXE Download Request (TFTP)NBP NAME
`Network Bootstrap Program Download
`
`BOOT
`SERVICE
`
`
`
`SERVICE
`
`LOAD 8.
`
`NBP
`
`LOAD 8.
`EXECUTE
`BOOT
`IMAGE
`
`132
`
`Fig. 3a
`
`:
`
`Boot IMAGE IMTFTPOR
`SERVICE
`
`i
`... TRAPREQUEST-324
`i
`:
`........l.
`CACHE NBP - 326
`i iwi. TRAPREQUEST-334
`CACHE BOOT
`IMAGE
`
`- - - - - - - - - - - - - - - - - - - - - ----- Y - - - - -
`
`336
`
`
`
`Network Device
`Gateway Server
`
`114
`
`Docker EX1007
`Page 9 of 28
`
`

`

`U.S. Patent
`
`Jul. 8, 2008
`
`Sheet 9 Of 17
`
`US 7,398,382 B2
`
`NTIAL
`FIRMWARE
`
`302 -
`PXEDHCP Discover 7PXECENTAS
`3O8
`Extended DHCP offe/PXESERVERTAGS
`3101N/ BOOT SERVER LIST W306\ 124.54.60.10
`(3) DHCP Request 302\/PxE CENT TAGs
`
`
`
`
`
`
`
`T
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`LOAD &
`EXECUTE
`NBP
`
`LOAD 8.
`EXECUTE
`BOOT
`IMAGE
`
`312
`Boot service Discover/PE9EN TAGS
`
`318
`Boot Service Ack
`
`PXESERVERTAGS
`
`316 NNBP NAME
`O PXE Download Request (TFTP)
`
`316
`
`NBP NAME
`
`| DHCP/Proxy
`IDHCP Server
`
`
`
`BOOT
`| SERVICE
`
`Network Bootstrap Prodram Download
`p
`9
`322
`
`NBP FILE
`
`SERVICE
`320
`
`
`
`
`
`126
`340
`342^DEVICE IF ADDRESS & PORT
`(9) Boot image Download Request (TFTP, TCP/IP)
`Boot IMAGE MTOR
`TCP/IP
`FILE(S)
`SERVICE
`
`:
`
`PORT
`
`NER
`
`332
`
`132
`
`Fig. 3b
`
`114
`
`Docker EX1007
`Page 10 of 28
`
`

`

`U.S. Patent
`
`Jul. 8, 2008
`
`Sheet 10 of 17
`
`US 7,398,382 B2
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`INTIAL
`FIRMWARE
`
`3O2
`PXE DHCP Discover
`
`PXE CLIENTAGS
`
`3O8
`Extended DHCP offe/PXESERVERTAGS
`310 N/ BOOT SERVER LIST A306\ 124.54.60.10
`(3) DHCP Request 302\/PXECLIENT TAGs
`(ODHCP Ack
`
`
`
`312
`Boot Service Discover PXE CLIENT TAGS
`
`
`
`318
`Boot Service Ack
`
`PXESERVER TAGS
`
`BOOT
`SERVICE
`
`316 runBP NAME
`
`316
`
`OPXE Download Request (TFTP)NBP NAME
`
`LOAD &
`EXECUTE
`NBP
`
`load
`D
`Network Bootstrap P
`program Luownloa
`322^J NBP FILE
`(9) Boot image Download Request (TFTP, TCP/IP
`
`MITFTP
`SERVICE
`
`126
`
`6.IMG-sWITCH 114
`
`
`
`332
`
`Boot IMAGE | MTOR
`TCP/IP
`FILE(S)
`SERVICE
`
`LOAD &
`EXECUTE
`BOOT
`IMAGE
`
`Client
`
`132
`
`Fig. 3c
`
`114
`
`Docker EX1007
`Page 11 of 28
`
`

`

`U.S. Patent
`
`Jul. 8, 2008
`
`Sheet 11 of 17
`
`US 7,398,382 B2
`
`INTIAL
`FIRMWARE
`
`3O2
`PXE DHCP Discover
`
`PXE CLIENT TAGS
`
`308
`Extended DHCP offe/PXESERVERTAGS
`310
`BOOT SERVER LIST 306
`124.54.60.10
`
`
`
`(3) DHCP Request "AxeculeNTAGs
`(ODHCP Ack
`
`312
`Boot service Discover/PE9ENTAS
`318
`Boot Service Ack
`
`PXESERVERTAGS
`
`
`
`
`
`DHCP/Proxy
`DHCP Server
`
`BOOT
`SERVICE
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`316 - NBP NAME
`O PXE Download Request (TFTP)
`316 - NBP NAME
`(8) NBP Download
`INTERCEPT
`EXECUTE E"g 322 NBPFLE
`
`LOAD 8.
`
`Boot image Download
`Request (TFTP, TCPIIP)
`
`INTERCEPT
`
`X
`
`"El
`LOGIC
`
`LOAD &
`EXECUTE
`BOOT
`IMAGE
`
`BOOT IMAGE
`FILE(S)
`
`332
`
`- || MTEPOR
`TCP/IP
`SERVICE
`
`*
`
`
`
`
`
`350
`
`IPADDR CLIENTA: 6. IMG
`PADDR CLENT B: 3.IMG
`PADDR CENTC: 4.MG
`
`
`
`344
`NetWork
`Device?
`Gateway
`Sever
`
`114
`
`132
`
`Fig. 3d
`
`Docker EX1007
`Page 12 of 28
`
`

`

`U.S. Patent
`
`Jul. 8, 2008
`
`Sheet 12 of 17
`
`US 7,398,382 B2
`
`RECEIVE PACKET
`
`400
`
`INITIATE PACKET PROCESSING; EXTRACT
`HEADER METADATA
`
`402
`
`IS
`FILTER INDICAMARKED
`NHEADER2
`
`404
`
`YES
`
`REDIRECT TO SLOWPATH PROCESSING
`
`406
`
`
`
`CACHE COPY OF PACKETS; FORWARD
`ORIGINAL PACKETS; REASSEMBLY COPIED U-408
`PACKETS TO FORMFILE OR MESSAGE;
`STORE FILE OR HANDLE MESSAGE
`
`NO
`
`UPDATE IMAGE MAP
`
`EMPLOY FAST PATH PROCESSING TO
`FORWARD PACKETS
`
`410
`
`412
`
`Fig. 4
`
`Docker EX1007
`Page 13 of 28
`
`

`

`U.S. Patent
`
`Jul. 8, 2008
`
`Sheet 13 of 17
`
`US 7,398,382 B2
`
`SETUP {
`
`STORE PXESERVER ADDRESS/PORT
`VALUES ONCACHING DEVICE
`
`5OO
`
`RECEIVE PACKET
`
`5O1
`
`INITIATE PACKET PROCESSING, EXTRACT
`HEADER METADATA
`
`502
`
`
`
`DOES
`DESTINATION ADDRESS/
`PORT MATCHPXE
`ADDRESS/PORT
`
`504
`
`YES
`
`REDIRECT TO SLOWPATH PROCESSING
`
`506
`
`ONGOING
`
`
`
`CACHE COPY OF PACKETS; FORWARD
`ORIGINAL PACKETS; REASSEMBLY COPIED
`PACKETS TO FORMFILE OR MESSAGE;
`STORE FILE OR HANDLE MESSAGE
`
`NO
`
`508
`
`UPDATE IMAGE MAP
`
`EMPLOY FAST PATH PROCESSING TO
`FORWARD PACKETS
`
`510
`
`512
`
`Fig. 5
`
`Docker EX1007
`Page 14 of 28
`
`

`

`U.S. Patent
`
`Jul. 8, 2008
`
`Sheet 14 of 17
`
`US 7,398,382 B2
`
`PXESERVER PREPARES TO SEND AFILE TO
`BECACHED
`
`6OO
`
`PXESERVER SENDSA DIRECTIVE OVER THE
`MANAGEMENT CHANNEL TO THE NETWORK 6O2
`DEVICE TO CACHE THE FILE, PROVIDING
`PACKETDENTIFICATION DATA
`
`DETECTPACKETS
`
`604
`
`REDIRECT TO SLOWPATH PROCESSING
`
`606
`
`
`
`CACHE COPY OF PACKETS;
`FORWARD ORIGINAL PACKETS;
`REASSEMBLY COPIED PACKETS TO FORM
`FILE AND STORE LOCALLY (e.g., DISKDRIVE
`OR LOCAL SERVER)
`
`608
`
`UPDATE IMAGE MAP
`
`610
`
`Fig. 6
`
`Docker EX1007
`Page 15 of 28
`
`

`

`U.S. Patent
`
`Jul. 8, 2008
`
`Sheet 15 Of 17
`
`US 7,398,382 B2
`
`SYSTEM POWER ON/RESET N 700
`
`RECEIVE/INTERCEPT BOOT IMAGE
`DOWNLOAD REQUEST
`
`
`
`
`
`
`
`IDENTIFY CACHED IMAGE
`READ CHECKSUMFILE
`
`
`
`702
`
`704
`
`
`
`
`
`
`
`SEND CHECKSUMVERIFICATION
`MESSAGE TO PXESERVER
`
`706
`
`
`
`
`
`
`
`NO
`
`DO
`CHECKSUMS
`MATCH2
`
`
`
`YES
`
`708
`
`DOWNLOAD BOOT IMAGE FROM
`CACHING DEVICE
`
`710
`
`DOWNLOAD UPDATED BOOT IMAGE
`FROMPXESERVER, CACHEAT
`NETWORKDEVICEIGATEWAY SERVER
`
`COMPLETEOS BOOT
`
`Fig. 7
`
`Docker EX1007
`Page 16 of 28
`
`

`

`U.S. Patent
`
`Jul. 8, 2008
`
`Sheet 16 of 17
`
`US 7,398,382 B2
`
`MANTAIN BOOT IMAGE VERIFICATION
`TABLE ONEACH CACHING DEVICE
`AND PXESERVER
`
`800
`
`
`
`
`
`
`
`BOOT IMAGE
`UPDATED?
`
`802
`
`YES
`
`UPDATE BOOT IMAGE
`VERIFICATION TABLE ON
`THE PXESERVER
`
`804
`
`DETERMINE WHICH CACHING DEVICE(S)
`SIARE CACHING OUTDATED VERSION
`OF BOOT IMAGE
`
`806
`
`DOWNLOAD BOOT IMAGE TO THE
`APPLICABLE CACHING DEVICE(S)
`
`808
`
`UPDATE BOOT IMAGE
`VERIFICATION TABLE ON THE
`APPLICABLE CACHING DEVICE(S)
`
`810
`
`
`
`
`
`Fig. 8
`
`Docker EX1007
`Page 17 of 28
`
`

`

`U.S. Patent
`
`Jul. 8, 2008
`
`Sheet 17 Of 17
`
`US 7,398,382 B2
`
`934
`
`H-
`g
`;
`99 3.
`
`
`
`MEDIA
`INTERFACE
`
`OO 902
`924 (TYP)
`
`SRAM STORE
`
`DRAM STORE
`
`NON-VOLATLE
`STORE
`
`91
`
`FAST PATH
`PROCESSING
`
`SLOWPATH PROCESSING
`FILE SYSTEM
`918
`
`HEADER
`FILTER
`
`CACHE MESSAGE
`LOGIC
`HANDLER
`
`LOCAL FILESTORE
`
`909
`REDIRECT
`
`920
`
`922
`910
`
`908
`
`
`
`-
`-S928
`NETWORKSERVICES
`
`930
`
`911
`
`900
`
`Fig. 9
`
`Docker EX1007
`Page 18 of 28
`
`

`

`US 7,398,382 B2
`
`1.
`METHOD AND APPARATUS TO ENHANCE
`PLATFORM BOOT EFFICIENCY
`
`FIELD OF THE INVENTION
`
`The field of invention relates generally to computer plat
`forms and networks and, more specifically but not exclusively
`relates to techniques for performing network booting in an
`efficient manner.
`
`BACKGROUND INFORMATION
`
`10
`
`2
`FIG. 1a schematically depicts the first phase of one
`embodiment of the invention, wherein a network bootstrap
`program file and a boot image are cached on a network device
`in conjunction with downloading the same from a boot server
`to a client;
`FIG.1b schematically depicts a second phase of the down
`load technique, wherein the cache boot image is downloaded
`directly from the network device:
`FIG. 1c schematically depicts one embodiment under
`which the boot server sends a download directive to the net
`work device to push a copy of the cached boot image to the
`client;
`FIG. 1d schematically depicts one embodiment under
`which request messages intended for the boot server are inter
`cepted and processed at the network device;
`FIG. 1e schematically depicts one embodiment of a boot
`image configuration control scheme, wherein a checksum
`validation test is performed on a cached boot image to deter
`mine whether the cache boot image is a valid boot image:
`FIG. 2 is a flowchart illustrating operations performed
`during the first and second phases of the boot image cache and
`download scheme of FIGS. 1a and 1b,
`FIG. 3a is a message flow diagram illustrating a message
`exchange sequence corresponding to the first phase opera
`tions of FIGS. 1a and 2:
`FIG. 3b is a message flow diagram illustrating a message
`exchange sequence corresponding to the second phase opera
`tions of FIGS. 1b and 2:
`FIG. 3C is a message flow diagram illustrating a message
`exchange sequence corresponding to the second phase opera
`tions of FIG. 1C:
`FIG. 3d is a message flow diagram illustrating a message
`exchange sequence corresponding to the second phase opera
`tions of FIG. 1d.
`FIG. 4 is a flowchart illustrating operations and logic per
`formed by one embodiment of a caching and message detec
`tion scheme that employs cache and message indicia in net
`work packets;
`FIG. 5 is a flowchart illustrating operations and logic per
`formed by one embodiment of a caching and message detec
`tion scheme that employs detects files and messages to be
`trapped and/or cached based on server address and port values
`in network packet headers;
`FIG. 6 is a flowchart illustrating caching operations per
`formed in accordance with one embodiment that employs a
`managed network device;
`FIG. 7 is a flowchart illustrating operations and logic per
`formed to validate a boot image in accordance with the tech
`nique depicted in FIG. 1e,
`FIG. 8 is a flowchart illustrating operations and logic per
`formed during one embodimentofa boot image configuration
`control scheme under which boot image verification tables
`are employed; and
`FIG. 9 is a schematic diagram of a network device archi
`tecture that may be employed to practice aspects of the
`embodiments described herein.
`
`15
`
`25
`
`30
`
`35
`
`A common problem faced by IT (information technology)
`managers is to ensure that client systems in their enterprises
`can boot appropriate Software images using appropriate con
`figuration parameters. Formerly, this process typically
`entailed performing an entire operating system installation
`for each computer, which was often necessary due to the
`differences in unrestricted platform configurations within an
`enterprise. This process was improved by controlling the
`platform configuration (e.g., by purchasing significant num
`bers of platforms having the same configurations), which
`enabled an operating system to be provisioned on a platform
`by simply copying an installation image corresponding to a
`given platform configuration to each platform in the enter
`prise having that configuration.
`More recently, there is gathering momentum for imple
`menting network booting of operating systems (OS) across
`all or portions of an enterprise internet. This is driven by
`several factors, including a reduced expense (both in capital
`and maintenance costs) for diskless workstations, enterprise
`software licensing considerations, configuration manage
`ment workload for the IT department, and security consider
`ations (viruses, hackers, etc.). Under a network boot, a
`selected boot image is loaded each time a given platform is
`started or reset. The provisioning of boot images is typically
`performed in conjunction with client authentication and Secu
`rity considerations. These selected boot images and configu
`ration parameters must be acquired from selected servers in
`the enterprise as dictated by the needs of the particular envi
`ronment, the capabilities or mission of the user, the resources
`available within the client, etc. Furthermore, these clients
`should boot consistently and in an interoperable manner
`regardless of the sources or vendors of the software and the
`hardware of both client and server machines.
`While network booting provides several advantages, par
`ticularly improved configuration control and reduced soft
`ware management requirements, it introduces new problems
`with respect to network traffic and security considerations.
`For example, a large enterprise internet may serve 1000's of
`50
`users. With modern boot images approaching upwards of a
`gigabyte or more, a significant load is placed on the enterprise
`internet and boot servers, particularly during timeframes in
`which system booting is heavy, such as during the start of a
`work day.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`40
`
`45
`
`55
`
`The foregoing aspects and many of the attendant advan
`tages of this invention will become more readily appreciated
`as the same becomes better understood by reference to the
`following detailed description, when taken in conjunction
`with the accompanying drawings, wherein like reference
`numerals refer to like parts throughout the various views
`unless otherwise specified:
`FIG. 1 is a schematic diagram of an exemplary enterprise
`network used to described embodiments of the invention
`depicted in FIGS. 1a-e,
`
`DETAILED DESCRIPTION
`
`60
`
`65
`
`Embodiments of methods and apparatus for improving
`networkboot efficiency are described herein. In the following
`description, numerous specific details are set forth to provide
`a thorough understanding of embodiments of the invention.
`One skilled in the relevant art will recognize, however, that
`the invention can be practiced without one or more of the
`specific details, or with other methods, components, materi
`als, etc. In other instances, well-known structures, materials,
`
`Docker EX1007
`Page 19 of 28
`
`

`

`3
`or operations are not shown or described in detail to avoid
`obscuring aspects of the invention.
`Reference throughout this specification to “one embodi
`ment” or “an embodiment’ means that a particular feature,
`structure, or characteristic described in connection with the
`embodiment is included in at least one embodiment of the
`present invention. Thus, the appearances of the phrases "in
`one embodiment' or “in an embodiment” in various places
`throughout this specification are not necessarily all referring
`to the same embodiment. Furthermore, the particular fea
`tures, structures, or characteristics may be combined in any
`Suitable manner in one or more embodiments.
`In accordance with aspects of the embodiments now
`described, techniques are disclosed for performing network
`booting in a manner that reduces boot-related network traffic
`while meeting the aforementioned configuration and security
`criteria required by IT managers and the like. By way of
`example, various embodiments are described in connection
`with an exemplary enterprise network that is illustrative of
`various components common to typical enterprise networks.
`The techniques may also be employed for other network
`architectures using the general principles and teachings dis
`closed herein.
`FIG. 1 shows an exemplary enterprise network 100 includ
`ing five domains 102,104,106, 108, and 110. Domains 102,
`104 and 106 are interconnected via a switch 112, while
`domains 104, 106, and 108 are interconnected via a switch
`114. Domain 110, which comprises a remote domain, is con
`nected to domain 108 via a pair of gateway server 116 and
`117, which are connected via the Internet 118. Optionally, the
`gateway servers may be lined via a leased telecommunica
`tions link or the like, or may use a virtual private network
`(VPN) link over Internet 118 or other public and/or private
`network infrastructure. Domain 102 is hosted by a domain
`server 119, while domain 106 is hosted by a domain server
`120. Each of domains 104 and 110 are hosted by a respective
`Dynamic Host Control Protocol (DHCP) server 122 and 124.
`Domain 108 includes a Preboot Execution Environment
`(PXE) boot server 126. Domain 108 also includes a host
`server that may be the same machine used for PXE boot server
`126, or may be a separate server (not shown). In some
`embodiments, a PXE boot server and a DHCP server or
`DHCP proxy server may be co-located.
`Each of domains 102, 104, 106 and 110 are depicted as
`hosting multiple clients, including exemplary desktop clients
`128 and laptop clients 130. Other types of clients may also be
`hosted by a given domain, including workstations and various
`types of servers (both not shown) in addition to the various
`domain and DHCP servers shown in the figures herein.
`Domain 108 may also host similar types of clients (not shown
`for clarity) to those shown in domains 102,104,106 and 110.
`It will be understood that each domain may include 10's,
`100's or even 1000's of clients, only a fraction of which are
`depicted in the figures herein for simplicity and clarity. Some
`of the clients may be connected to their respective domain or
`DHCP server via a wired link (e.g., Ethernet), while others
`may be connected via a wireless link (e.g., 802.11a-g) facili
`tated by an appropriate wireless access point or router. For
`simplicity, wireless access points and routers are not depicted
`in the figures herein. At least a portion of the clients in each
`domain are configured to boot their respective operating sys
`tems using a network boot process.
`FIG. 2 shows a flowchart illustrating an overview of opera
`tions that are performed to Support enhanced network boot
`efficiency, according to one embodiment. The overall process
`begins with a first system power on event for a client depicted
`in a start block 200. In response, the client will perform a set
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 7,398,382 B2
`
`10
`
`15
`
`4
`of initialization operations via load and execution of its firm
`ware (e.g., BIOS), including initializing the client to Support
`network communications. In conjunction with the set of ini
`tialization operations, the client obtains a network address in
`a block 202.
`In a block 204, the client obtains an operating system boot
`image over the network from a boot server. In conjunction
`with delivering the boot image to the client, the boot image is
`cached at a network device. Such as a Switch, router, bridge,
`etc., or a gateway server that is proximate to the client in a
`block 206. The image is then booted in a block 208 to enable
`run-time use, which is continued in a continuation block 210.
`At continuation block 212, a Subsequent system power on
`or reset event occurs. For example, the user has a problemand
`decides to reboot the client, the user decides to selectively
`shutdown the client for the day and the subsequent power on
`eventrepresents restarting the client the following day, etc. As
`before, the client is initialized, enabling the client to obtain a
`network address in a block 214. This time, however, the client
`obtains the OS boot image from the caching device (e.g.,
`Switch, router, bridge, gateway server, etc.) rather than the
`boot server. The flowchart logic then returns to block 208 to
`boot the OS image, and the operations of blocks 210, 212,
`214, and 216 are repeated on an ongoing basis.
`Booting over a network raises several management and
`performance issues related to configuration, ease of use, boot
`latency, security issues, etc. Ideally, a uniform and consistent
`set of pre-boot protocol services should be employed to
`ensure that network-based booting is accomplished through
`industry standard protocols used to communicate with the
`boot server. In addition, to ensure interoperability, the down
`loaded Network Bootstrap Program (NBP) should be pre
`sented with a uniform and consistent pre-boot operating envi
`ronment within the booting client, so it can accomplish its
`task independent of for example, the type of network adapter
`implemented in the system. This capability is useful in
`enhancing the manageability of the client machine in several
`situations; for example:
`Remote new system setup. If the client does not have an OS
`installed on its hard disk, or the client has no hard disk at
`all, downloading an NBP from a server can help auto
`mate the OS installation and other configuration steps.
`Remote emergency boot. If the client machine fails to boot
`due to a hardware or software failure, downloading an
`executable image from a server can provide the client
`with a specific executable that enables remote problem
`notification and diagnosis.
`Remote network boot. In instances where the client
`machine has no local storage, it can download its system
`Software image from the server in the course of normal
`operation.
`One industry-standard technique for performing network
`booting that is employed by embodiments described herein is
`defined by the PXE protocol (current specification entitled
`Preboot Execution Environment Specification 2.1, Sep. 20.
`1999). PXE is defined on a foundation of industry-standard
`Internet protocols and services that are widely deployed in the
`industry, namely TCP/IP (Transmission Control Protocol/
`Internet Protocol), DHCP, and TFTP (Trivial File Transfer
`Protocol). These standardize the form of the interactions
`between clients and servers. To ensure that the meaning of the
`client-server interaction is standardized as well, certain ven
`dor option fields in the DHCP protocol are used, which are
`allowed by the DHCP standard. The operations of standard
`DHCP and/or BOOTP servers (that serve up IP addresses
`and/or NBPs) are not be disrupted by the use of the extended
`protocol. Clients and servers that are aware of these exten
`
`Docker EX1007
`Page 20 of 28
`
`

`

`5
`sions will recognize and use this information, and those that
`do not recognize the extensions will ignore them.
`In brief, the PXE protocol operates as follows. The client
`initiates the protocol by broadcasting a DHCPDISCOVER
`message containing an extension that identifies the request as
`coming from a client that implements the PXE protocol.
`Assuming that a DHCP server or a Proxy DHCP server imple
`menting this extended protocol is available, after several
`intermediate steps, the server sends the client a list of appro
`priate (PXE) Boot Servers. The client then discovers a Boot
`Server of the type selected and receives the name of an execut
`able file on the chosen Boot Server. The client uses TFTP to
`download the executable from the Boot Server. Finally, the
`client initiates execution of the downloaded image. At this
`point, the client’s state must meet certain requirements that
`provide a predictable execution environment for the image.
`Important aspects of this environment include the availability
`of certain areas of the client's main memory, and the avail
`ability of basic network I/O services.
`On the server end of the client-server interaction, services
`are made available that are responsible for providing redirec
`tion of the client to an appropriate Boot Server. These redi
`rection services may be deployed in two ways:
`1. Combined standard DHCP and redirection services. The
`DHCP servers that are supplying IP addresses to clients are
`modified to become, or are replaced by servers that serve
`up IP addresses for all clients and redirect PXE-enabled
`clients to Boot Servers as requested.
`2. Separate standard DHCP and redirection services. PXE
`redirection servers (Proxy DHCP servers) are added to the
`30
`existing network environment. They respond only to PXE
`enabled clients, and provide only redirection to Boot Serv
`CS.
`To enable the interoperability of clients and downloaded
`bootstrap programs, the client PXE code provides a set of
`35
`services for use by the BIOS or a downloaded NBP. The API
`(Application Program Interface) services provided by PXE
`for use by the BIOS or NBP are:
`Preboot Services API. Contains several global control and
`information functions.
`Trivial File Transport Protocol (TFTP) API. Enables open
`ing and closing of TFTP connections, and reading pack
`ets from and writing packets to a TFTP connection.
`User Datagram Protocol (UDP) API. Enables opening and
`closing UDP connections, and reading packets from and
`writing packets to a UDP connection.
`Universal Network Driver Interface (UNDI) API. Enables
`basic control of and I/O (input/output) through the cli
`ent's network interface device. This allows the use of
`50
`universal protocol drivers such that the same universal
`driver can be used on any network interface that imple
`ments this API.
`The PXE protocol is a combination of an extension of
`DHCP (through the use of several DHCP Option tags) and the
`55
`definition of simple packet transactions that use the DHCP
`packet format and options to pass additional information
`between the client and server. In the PXE protocol, DHCP
`options fields are used to do the following:
`Distinguish between DHCPDISCOVER and DHCPRE
`60
`QUEST packets sent by a client as part of this extended
`protocol from other packets that the DHCP server or
`Boot Server might receive:
`Distinguish between DHCPOFFER and DHCPACK pack
`ets sent by a DHCP or Proxy DHCP server as part of this
`extended protocol from other packets that the client may
`receive;
`
`45
`
`25
`
`40
`
`65
`
`US 7,398,382 B2
`
`5
`
`10
`
`15
`
`6
`Convey the client system's ID to the DHCP and Boot
`Server:
`Convey the client systems architecture type to the DHCP
`and Boot Server; and
`Convey the Boot Server type from which the client is
`requesting a response.
`Based on any or all of the client network adapter type,
`system architecture type, and client system ID, the Boot
`Server returns to the client the file name (on the server) of an
`appropriate executable. The client downloads the specified
`executable into memory and executes it.
`A message exchange sequence corresponding to the initial
`(first) phase PXE operations performed under one embodi
`ment of the initial phase of FIG. 2 is schematically depicted in
`FIGS. 1a and 3a. Many of these operations pertain to a con
`ventional PXE boot sequence, as is known in the art. How
`ever, additional operations are performed to provide caching
`of boot images.
`As shown by an initial firmware block 300, the process
`begins with the client (e.g., client 132) initializing its platform
`via load and execution of a corresponding set of firmware.
`During the platform initialization, the client is configured to
`support PXE-level network communications, which employ
`packet-based messages. There is no requirement to Support
`more complex transmission protocols, such as TCP/IP, at this
`point.
`Following client platform initialization, a PXE boot pro
`cess begins at step 1, with a client broadcasting a DHCPDIS
`COVER message to the standard DHCP port (67). An option
`field in the message contains the following information,
`which is collectively depicted as PXE client tags 302 in FIG.
`3a: 1) a tag for a client identifier (UUID universal unique
`identifier); 2) a tag for the client UNDI version; 3) a tag for the
`client system architecture; and 4) a DHCP option 60, Class
`ID, set to “PXEClient:Arch:XXXXX:UNDI:yyy ZZZ”.
`Under conventional DHCPusage, a DHCP server is used to
`allocate dynamic and static (i.e., reserved) DHCP addresses
`in response to address requests from various clients. In gen
`eral, a DHCP server may operate in conjunction with a
`domain server, and may be co-located with a domain server.
`A given DHCP server may serve a single domain, or may
`serve multiple domains that are related. For example, in the
`exemplary network of FIGS. 1 and 1a-e, DHCP server 122
`serves domains 102, 104, 106 and 108, while DHCP server
`124 servers domain 110.
`In the example shown in FIG. 1a, a client 132 broadcasts a
`DHCPDISCOVER request across its local domain 106. This
`DHCPDISCOVER message is then forwarded to the domain
`104 of DHCP server 122 in accordance with

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