Providing a software image to one or more nodes in a network

WO2026206615A1PCT designated stage Publication Date: 2026-10-01LANDIS GYR TECH INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/US2026/018614
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2025-03-25
Filing Date
2026-03-11
Publication Date
2026-10-01

Smart Images

  • Figure US2026018614_01102026_PF_FP_ABST
    Figure US2026018614_01102026_PF_FP_ABST
Patent Text Reader

Abstract

A method for providing a software image to one or more nodes in a network, the software image comprising one or more blocks. The method comprises determining whether a first node of the one or more nodes has received all of the one or more blocks of the software image in a first transmission phase. If the first node has not received all of the one or more blocks of the software image in the first transmission phase, the method comprises: determining one or more missing blocks for the first node, the one or more missing blocks being blocks of the software image that were not received by the first node in the first transmission phase, and transmitting, in a second transmission phase, the one or more missing blocks to the first node. A head-end system for a network of nodes, and a node in a network, are also described.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] PROVIDING A SOFTWARE IMAGE TO ONE OR MORE NODES IN A NETWORK

[0002] TECHNICAL FIELD

[0003] The present disclosure relates to providing a software image, the software image comprising one or more blocks, to one or more nodes in a network. For example, the software image may be a firmware image.

[0004] BACKGROUND

[0005] In a firmware download (FWDL), for example when updating device firmware, a firmware image is divided into many firmware image blocks and the blocks are transmitted one-by-one until the entire firmware image is downloaded to the device. Known FWDL procedures often start by sending a multicast FWDL to all devices (or “nodes”) in a network.

[0006] Since multicast FWDL success is often less than 100%, any devices that did not receive all of the firmware image blocks during the multicast FWDL may require the firmware image blocks to be transmitted again. However, there may be hundreds or even thousands of image blocks, which could take hours or even days to transmit. Retransmitting all of the firmware image blocks can therefore be time consuming and costly, particularly in applications where network bandwidth is limited.

[0007] SUMMARY

[0008] According to the present disclosure, a software image (such as a firmware image) is provided to one or more nodes (e.g. a plurality of nodes) in a network, e.g. as a firmware download (FWDL). The software image comprises one or more blocks (e.g. a plurality of blocks). If it is determined that a given node in the network has not received all of the blocks, any blocks that were not received are transmitted to the given node again, for example in a unicast (point-to-point, P2P) transmission mode. By transmitting again only those blocks that were not received during the initial transmission, significant time and network bandwidth may be saved in comparison toretransmitting all of the blocks, particularly in the case where the retransmission takes place in a unicast transmission mode.

[0009] Described herein is a method for providing a software image to one or more nodes (e.g. a plurality of nodes) in a network, the software image comprising one or more blocks.

[0010] The method may comprise transmitting, in a first transmission phase, the software image to each of the nodes of the one or more nodes.

[0011] The method comprises determining whether a first node of the one or more nodes has received all of the one or more blocks of the software image in the first transmission phase. If the first node has not received all of the one or more blocks of the software image in the first transmission phase, the method may comprise determining one or more missing blocks for the first node, the one or more missing blocks being blocks of the software image that were not received by the first node in the first transmission phase; and transmitting, in a second transmission phase, the one or more missing blocks to the first node.

[0012] The first transmission phase and the second transmission phase may be identifiable to the first node by an identifier.

[0013] Also described herein is a head-end system (HES) for a network of nodes.

[0014] The HES may be configured to transmit, in a first transmission phase, a software image to each node of one or more nodes in the network.

[0015] The software image comprises one or more blocks.

[0016] The HES is further configured to determine whether a first node of the one or more nodes has received all of the one or more blocks of the software image in the first transmission phase. The HES may be further configured, in response to determining that the first node has not received all of the one or more blocks of the software image in the first transmission phase, to initiate a second transmission phase with the first node; determine one or more missing blocks for the first node, the one or more missingblocks being blocks of the software image that were not received by the first node in the first transmission phase; and transmit, in the second transmission phase, the one or more missing blocks to the first node. The first transmission phase and the second transmission phase may be identifiable to the first node by an identifier.

[0017] Additionally described herein is a node in a network, the node being configured to: receive, in a first transmission phase, a software image from a head-end system (HES), the first transmission phase being identifiable to the node by an identifier, the software image comprising one or more blocks; in response to initiation, by the HES, of a second transmission phase with the node, the second transmission phase being identifiable to the node by the identifier: send, in the second transmission phase, a report of any missing blocks of the software image, the missing blocks being blocks of the software image that were not received by the node in the first transmission phase.

[0018] Rather than retransmitting all blocks again, even if most of the firmware image was already received during the first transmission phase, the invention according to the present disclosure allows the second transmission phase to continue where the first transmission left off, and to send only the blocks that were missed by the node during the first transmission.

[0019] A same identifier may be used to identify the transmissions of the first transmission phase and the second transmission phase to inform the node that the image blocks transmitted in the second transmission phase correspond to the same software image as was transmitted in the first transmission phase.

[0020] In some examples, the identifier comprises a transmission header. In other examples, the transmission may be identified by the image itself (i.e. the identifier may be the software image).

[0021] In some examples, a subset of nodes may be identified as having missed the same blocks in the first transmission phase. Therefore, in the second transmission phase, the one or more missing blocks may be transmitted to each node of the subset of nodes. It will be understood that the first node may be a node of the subset of nodes.In some examples, the first transmission phase comprises transmission in a broadcast mode (e.g. to all nodes in the network).

[0022] In some examples, the first transmission phase comprises transmission in a multicast mode (e.g. to all nodes, or a subset of nodes, in the network).

[0023] In some examples, the second transmission phase comprises transmission in a unicast mode (e.g. P2P to an individual node in the network).

[0024] In some examples, the second transmission phase comprises transmission in a multicast mode (e.g. to the subset of nodes identified as having missed the same blocks in the first transmission phase).

[0025] The software image may be, or may comprise, a firmware image.

[0026] It will be understood that, if all of the missing blocks are still not received by the node at the end of the second transmission phase, any blocks that are still missing may be transmitted in a third transmission phase. The third transmission phase may also be identifiable to the first node by the identifier.

[0027] A new or updated software image, following transmission (download) to the node, may require activation. For example, a node (e.g. the first node) may inform the HES whether all of the image blocks have been received (e.g. at the end of the first transmission phase, and again at the end of the second transmission phase), and the image may not be activated until all of the image blocks have been received. In some examples, the image may also be validated (e.g. in a validation phase) before the image is activated.

[0028] In a particular example, the first node may notify the HES of the missing blocks in response to receiving a second transmission (corresponding to the second transmission phase) having the same identifier as the first transmission (corresponding to the first transmission phase), where the second transmission may be a unicast transmission. The HES may send the second transmission to any nodes that do not notify the HES that all of the image blocks have been received.A node according to the present disclosure may be, or may comprise, a utility meter. The software image may comprise utility meter firmware.

[0029] Nodes may be connected in a mesh network.

[0030] BRIEF DESCRIPTION OF THE DRAWINGS

[0031] The invention will now be described, by way of example only, with reference to the following drawings:

[0032] Figure 1 is a block diagram illustrating an example of a networked system and a mesh network;

[0033] Figure 2 is a sequence diagram illustrating the interactions between a head-end system (HES), a first node, and a second node in the network according to the present disclosure;

[0034] Figure 3 is a flow diagram illustrating a method for providing a software image to one or more nodes in a network according to the present disclosure;

[0035] Figure 4 is a schematic illustration of a device, which may correspond to a node and / or a HES, according to the present disclosure;

[0036] Figure 5 is a process flow diagram illustrating an example of a method, or algorithm, that may be carried out by a HES according to the present disclosure; and

[0037] Figure 6 is a process flow diagram illustrating an example of a method, or algorithm, that may be carried out by a node according to the present disclosure.

[0038] DETAILED DESCRIPTION

[0039] Figure 1 is a block diagram illustrating an example of a networked system 100 and a mesh network 101. The networked system 100 and the mesh network 101 provides a network infrastructure for smart devices (e.g., resource consumption meters, vehicles, home appliances, etc. that include communication technology) to communicate across a network of nodes (i.e., other smart devices), the internet, and / or an intranet. The networked system 100 includes a head-end system (HES) 102, which may function as a central processing system that receives a stream of data from a network 104. The network 104 may be the internet, an intranet, or any other data communicationnetwork. The mesh network 101 may include a root node 106 and other nodes 108a-108h collecting data associated with the nodes 106 and 108a-108h, and the root node 106 transmits the collected data to the network 104 and ultimately to the HES 102 of the networked system 100. In addition, the root node 106 may also receive from the HES 102 network management messages and transmit the network management messages to the nodes 108a-108h. Likewise, the root node 106 itself or other nodes 108a-108h may also issue and transmit network management messages to other nodes 108a-108h. The data and network management transmitted between the nodes 106, 108a-108h may be collectively referred to herein as “transmissions” (e.g. “first transmission”, “second transmission”, etc.), “communications” and / or “data packets”. These transmissions (and / or communications, and / or data packets) are transmitted and routed through data links 110 between the nodes 106, 108a-108h. The root node 106 may be a personal area network (PAN) coordinator, an internet gateway, or any other device capable of connecting to the network 104.

[0040] The root node 106 may generally be referred to as a parent node due to data links with the nodes 108a and 108b that are located at a node layer (e.g., layer one) below the root node 106. For example, the root node 106 is illustrated as communicating directly with the network 104. As illustrated, nodes 108a and 108b may also be referred to as parent nodes due to data links with nodes 108c, 108d, 108e, and 108g that are located at a node layer (e.g., layer two) below the nodes 108a and 108b. Further, nodes 108e and 108g may be referred to as parent nodes due to data links with nodes 108f and 108h that are located at a node layer (e.g., layer three) below the nodes 108e and 108g. The nodes 108a-108h may all funnel information up through the node layers to the root node 106 and ultimately to the HES 102.

[0041] Each of the nodes 106 and 108a-108h are linked with at least one of the other nodes 106 and 108a-108h. Links 110 may be created by storing neighboring node information in neighbor caches of the nodes 106 and 108a-108h that provide indications to the nodes 106 and 108a-108h of the other nodes 106 and 108a-108h through which data may be routed. For example, the neighbor cache of the node 108h may include neighboring node information identifying that data collected at the node 108h should be transmitted to the node 108g. Likewise, the neighbor cache of the node 108g may include neighboring node information identifying that the node 108g should transmit relevant information to the node 108h (e.g., network managementmessages or other information from the HES 102) and also identifying that the node 108g should transmit data collected by the node 108g and data received from the node 108h to the node 108b. Such a data transmission scheme may continue up through the node layers of the mesh network 101.

[0042] In operation, fewer or more nodes 108 may be included in the mesh network 101, and more root nodes 106 may also be included in the networked system 100. Additionally, while the mesh network 101 depicted in Figure 1 includes a root node layer (i.e., the root node 106), layer one (i.e., the nodes 108a and 108b), layer two (i.e., the nodes 108c, 108d, 108e, and 108g), and layer three (i.e., the nodes 108f and 108h), fewer or more node layers are also contemplated. Moreover, while Figure 1 depicts a specific network topology (e.g., a DODAG tree topology), other network topologies are also possible (e.g., a ring topology, a mesh topology, a star topology, etc.).

[0043] According to the present disclosure, a software image (such as a firmware image) may be provided to one or more nodes 108 in the mesh network 101 illustrated in Figure 1. However, Figure 1 is not to be seen as limiting, it will be understood that the method for providing a software image according to the present disclosure may also be suitable for other kinds of networks that are not described or illustrated herein. Similarly, the HES, and the node, according to the present disclosure may be suitable for use with networks other than the kind illustrated in Figure 1.

[0044] A software image, such as a firmware image, may be transmitted from the HES 102 to each of the nodes 108 in a network (e.g. the mesh network 101) as one or more blocks. For example, the HES 102 may transmit the software image to all nodes 108 in the network, or at least to a subset of the nodes 108 in the network, in a broadcast mode or a multicast mode.

[0045] However, if a node in the network does not successfully receive all of the blocks of the software image, known methods require that the entire software image (i.e. all blocks) be transmitted again, which is very inefficient.

[0046] According to the present disclosure, upon determining that a node in the network has not received all of the blocks of the software image, the HES sends any missing blocks directly to the node, for example in unicast (i.e. P2P) mode. In cases where two ormore nodes are missing the same blocks, the HES may send the missing blocks directly to the two or more nodes in a multicast mode. Because only the missing blocks are transmitted, and only to those nodes that did not successfully receive the whole software image in the first transmission phase, significant time, network bandwidth, and resources may be saved.

[0047] Figure 2 is a sequence diagram illustrating the interactions between the HES 202, and a first node 208a and a second node 208b in the network, according to some examples. As shown in Figure 2, the HES 202 completes the transmission of the software image to the nodes in the network (including the first node 208a and the second node 208b) as a first transmission phase. The software image comprises one or more blocks. The transmission in the first transmission phase may be in a broadcast or multicast mode.

[0048] In the example illustrated in Figure 2, when the first transmission phase is complete, the second node 208b has received all of the blocks of the software image (i.e. the software download is finished). Therefore, the second node 208b notifies the HES 202 that all of the blocks have been received by the second node 208b. However, the HES 202 also detects that the first node 208a has not received all of the blocks (i.e. the software download is not finished or complete), for example because the HES 202 does not receive a notification from the first node 208a that all of the blocks have been received by the first node 208a. In some examples, the HES 202 may query with the node(s) 208a, 208b whether all of the blocks have been received, or the HES 202 may determine whether a node 208a, 208b has received all of the blocks in any other suitable way.

[0049] The HES 202 determines which blocks are missing, i.e. which blocks were not received by the first node 208a in the first transmission phase, for example it may be determined that there are N missing blocks (e.g. numbered 1 to N, respectively). The HES 202 may determine which blocks are missing by initiating the second transmission phase, which may comprise transmission in a unicast mode, with the first node 208a (i.e. P2P transmission between the HES 202 and the first node 208a). The second transmission phase has a same identifier as the first transmission phase. When the first node 208a detects the second transmission phase having a same identifier as the first transmission phase, the first node 208a sends a report to the HES 202 of the missingblocks. In other examples, the HES 202 may determine the missing blocks before initiating the second transmission phase, for example the first node 208a may report the missing blocks to the HES 202 unprompted (e.g. after a predetermined amount of time has passed following transmission of the most recent block). It will be understood that the HES 202 may determine which blocks are missing in any suitable way.

[0050] The HES 202 then sends, in the second transmission phase, the missing blocks (e.g. missing block 1, missing block 2, etc., up to missing block N) to the first node 208a. Because the second transmission phase is identified by a same identifier as the first transmission phase, the blocks received in the second transmission phase are identifiable by the first node 208a as belonging to the same software image as the blocks received in the first transmission phase. Therefore, the first node 208a knows to add the blocks received in the second transmission phase to those blocks that were received in the first transmission phase, rather than to overwrite the blocks that were received in the first transmission phase.

[0051] The identifier may comprise a transmission header. In some examples, the transmission is identified by the software image itself. For example, the identifier could correspond to a software (e.g. firmware) version number.

[0052] Upon completion of the second transmission phase, the first node 208a notifies the HES 202 that all of the blocks have now been received. Alternatively, if the blocks have still not all been received by the first node 208a, a third transmission phase may be initiated to deliver any blocks that are still missing.

[0053] It will be understood that, in some examples, more than one node is missing the same blocks. In such cases, in some examples, the second transmission phase may comprise transmission in a multicast mode to those nodes.

[0054] As further shown in Figure 2, in some examples, the newly received software image may require activation. Activation may take place once a node has received all of the software blocks. In some examples, a further requirement for activation of the software image may be that the image is validated. For example, the image may be validated using a cyclic redundancy check (CRC), and / or a signature check.Figure 3 is a flow diagram illustrating a method 300 for providing a software image to one or more nodes in a network according to the present disclosure.

[0055] As described herein, the software image comprises one or more blocks.

[0056] In a step S302, the method 300 comprises determining whether a first node of the one or more nodes has received all of the one or more blocks of the software image in a first transmission phase. For example, a HES may determine that the first node has not reported that it has received all of the blocks. As described herein, the first transmission phase may comprise transmission in a broadcast mode, or in a multicast mode.

[0057] In a step S304, the method 300 comprises, if the first node has not received all of the one or more blocks of the software image in the first transmission phase, determining one or more missing blocks for the first node, the one or more missing blocks being blocks of the software image that were not received by the first node in the first transmission phase. For example, the HES may initiate a unicast transmission mode (which may be part of a second transmission phase), and the first node may report the blocks that are missing upon initiation of the unicast transmission mode.

[0058] In a step S306, the method 300 comprises transmitting, in a second transmission phase, the one or more missing blocks to the first node.

[0059] The first and second transmission phases may be identifiable by a same identifier (e.g. a transmission header, and / or the software image itself), so that initiation of the second transmission phase causes the first node to report the missing blocks, and / or so that the first node does not overwrite the blocks received in the first transmission phase with the blocks received in the second transmission phase.

[0060] Figure 4 schematically illustrates an example of a device 400, which may correspond to a node and / or a HES according to the present disclosure (for example the HES 102, 202, and / or a node 106, 108, 208a, 208b, illustrated in Figures 1 and 2 and described herein). Where the device 400 is a node in a network, the device 400 may comprise a smart device (e.g., a resource consumption meter such as a utility meter, vehicle, home appliance, etc.) The device 400 comprises a memory 401 configured to storecomputer-readable instructions (e.g. software). The device 400 further comprises a processor 403. As described herein, the processor 403 may be provided with the computer-readable instructions stored in the memory 401 which, when executed by the processor 403, cause the processor 401 to carry out one or more of the methods described herein (including the method 300 illustrated in Figure 3 and described herein). The instructions may be stored on a non-transitory computer readable medium. A non-transitory computer readable medium can include any electronic, optical, magnetic, or other storage devices capable of providing a processor with computer readable instructions or other program code. Non-limiting examples of a computer readable medium include a magnetic disk, a memory chip, a ROM, a RAM, an ASIC, optical storage, magnetic tape or other magnetic storage, or any other medium from which a processing device can read instructions. The instructions may include processor-specific instructions generated by a compiler or an interpreter from code written in any suitable computer-programming language, including, for example, C, C++, C#, Visual Basic, Java, Python, Perl, JavaScript, and ActionScript.

[0061] In general, the device 400 may be connected or connectable to a network (e.g. a mesh network), such as the internet, a local area network, or a PAN. The device 400 may comprise a communication device 405 such as an antenna and / or a radio to enable the device 400 to connect to the network. The communication device 405 can include any device or group of devices suitable for establishing a wired or wireless data connection to one or more data networks, e.g. a transceiver device, such as a radio frequency (RF) transceiver, capable of transmitting and receiving RF communication from other nodes in the network (e.g. mesh network). The communication device 405 may comprise a network interface device. Non-limiting examples of a network interface device include an Ethernet network adapter, a modem, and / or the like. The processor 403 is able to communicate with processors of other devices (i.e. nodes) via the network (e.g. the internet, and / or a local area network, and / or PAN) using the communication device 405. Communications with the processors of other nodes may comprise transmissions as described herein (e.g. the first and / or the second transmission) as well as the transmission of data packets. For example, the device 400 may receive transmissions (e.g. the first and / or second transmission) via the communication device 405. For example, the device 400 may transmit one or more data packets to other nodes in the network via the communication device 405.Figure 5 is a process flow diagram 500 illustrating an example of a method, or algorithm, that may be carried out by a HES according to the present disclosure. The process flow diagram 500 in Figure 5 refers to a firmware download (FWDL) and illustrates an example in which a firmware update is provided to a node in the network. However, it will be understood that the method or algorithm illustrated in the process flow diagram 500 may also be applicable to the provision of other kinds of software image to one or more nodes in a network.

[0062] As shown in Figure 5, at 502 the broadcast or multicast FWDL from the HES to the one or more nodes in the network is complete. As described herein, the broadcast or multicast FWDL may be referred to as a first transmission phase. At 504, the HES determines whether any node(s) (e.g. a first node) of the one or more nodes has / have received all of the blocks, or if any nodes are missing any blocks. For example, referring again to Figure 4 (where the device 400 may be a node or a HES), the HES may receive (e.g. via the communication device 405) a report or notification from each node that has received all of the blocks, confirming that the FWDL has been completed for that node. Any node from which the HES does not receive a notification that all of the blocks have been received is identified as a node having missing blocks.

[0063] If no nodes having missing blocks are identified, the FWDL is considered complete for all nodes (see step 514 of the process flow diagram 500).

[0064] If any nodes having missing blocks are identified, the HES (at 506) starts a unicast (i.e. P2P) FWDL process with a node having missing blocks, the unicast FWDL having a same identifier (e.g. transmission header) as the broadcast / multicast FWDL. The HES then receives, as a response to initiating the unicast FWDL, a report of any missing blocks from the node (e.g. via the communication device 405 of the HES). If no missing blocks are reported, all of the firmware image blocks may be sent again to that node (see step 512). For example, if no missing blocks are reported, the HES does not know whether any of the blocks were received during the broadcast / multicast FWDL, so by sending all of the blocks again at 512 it can be ensured that the node receives the full FWDL. If, at 508, the missing blocks are identified, the missing firmware image blocks are sent in a unicast transmission mode at 510. As described herein, the sending the missing blocks in the unicast transmission mode may be referred to as a second transmission phase. In some examples, the starting of the unicast (P2P)transmission for the purpose of identifying missing blocks (i.e. step 506) may also form part of the second transmission phase. In some examples, sending all of the firmware image blocks to a node where no missing blocks have been identified (i.e. step 512) may also form part of the second transmission phase.

[0065] Once all nodes that have been identified as having missing blocks (i.e. identified as having missing blocks in step 504) have received either all of blocks again (step 512), or have received the missing blocks (step 510), the FWDL is complete (step 514).

[0066] Optionally, once the FWDL is complete, the firmware may be activated in a step 516.

[0067] Figure 6 is a process flow diagram 600 illustrating an example of a method, or algorithm, that may be carried out by a node according to the present disclosure. The process flow diagram 600 in Figure 6 refers to a FWDL and illustrates an example in which a node in a network receives a firmware update from a HES. However, it will be understood that the method or algorithm illustrated in the process flow diagram 600 may also be applicable to the receipt of other kinds of software image by the node.

[0068] As shown in Figure 6, at 602 the broadcast or multicast FWDL by the node from the HES is complete. As described herein, the broadcast or multicast FWDL may be referred to as a first transmission phase. At 604, the node determines whether all of the blocks of the firmware image have been received, or whether any blocks are missing. If all of the blocks have been received, the node may notify the HES that the FWDL is complete (see step 614), for example via the node’s communication device 405. However, if the node has not received all of the blocks, the node waits, at 605, for further FWDL messages from the HES. When the node receives (step 606), from the HES, the start of a unicast (P2P) transfer, the node determines (at 608) whether the unicast (P2P) transfer has a same identifier as the broadcast / multicast FWDL. If the unicast (P2P) transfer has a different identifier, a new FWDL is started 611 and the node receives all of the firmware image blocks again 612 (e.g. the re-received image blocks may overwrite any previously received firmware image blocks). If the unicast (P2P) transfer has a same identifier as the broadcast / multicast FWDL, the node sends a report of any missing blocks to the HES (step 609), e.g. via the node’s communication device 405. It will be understood that, in general, the node may receive firmware image blocks (e.g. in step 610 or 612) via the node’s communication device405. As described herein, receiving the missing blocks via the unicast (P2P) transmission may be referred to as a second transmission phase. In some examples, the receipt of the starting of the unicast (P2P) transmission for the purpose of identifying missing blocks (i.e. step 606) may be part of the second transmission phase. In some examples, reporting any missing FWDL blocks may (i.e. step 609) may be part of the second transmission phase. In some examples, receiving all of the blocks where the unicast (P2P) transfer has a different identifier (i.e. steps 611 and / or 612) may be part of the second transmission phase.

[0069] Once the node has received all of the blocks, either as missing blocks (step 610), or by receiving all of the blocks again (step 612), the FWDL is complete (step 614). Optionally, the firmware may require activation, and the node may await activation (e.g. as a message from the HES) in a step 616.

[0070] It will be understood that, in general, for any steps illustrated in the process flow diagrams 500, 600 illustrated in Figures 5 and 6, respectively, that involve communication between the HES and a node, such communication may take place via the HES or node’s communication device 405 as illustrated in Figure 4. It will be further understood that the process flow diagram 500 illustrated in Figures 5 may correspond to an algorithm that is stored as computer-readable instructions (e.g. software) in the memory 401 of a HES, and that is executed by the processor 403 of the HES. Similarly, the process flow diagram 600 illustrated in Figure 6 may correspond to an algorithm that is stored as computer-readable instructions (e.g. software) in the memory 401 of a node, and that is executed by the processor 403 of the node.

[0071] Although the disclosure has been described in terms of preferred embodiments as set forth above, it should be understood that these embodiments are illustrative only and that the claims are not limited to those embodiments. Those skilled in the art will be able to make modifications and alternatives in view of the disclosure, which are contemplated as falling within the scope of the appended claims. Each feature disclosed or illustrated in the present specification may be incorporated in any embodiments, whether alone or in any appropriate combination with any other feature disclosed or illustrated herein.

Claims

CLAIMS:

1. A method for providing a software image to one or more nodes in a network, the software image comprising one or more blocks, the method comprising:determining whether a first node of the one or more nodes has received all of the one or more blocks of the software image in a first transmission phase, the first transmission phase being identifiable to the nodes by an identifier; if the first node has not received all of the one or more blocks of the software image in the first transmission phase, determining one or more missing blocks for the first node, the one or more missing blocks being blocks of the software image that were not received by the first node in the first transmission phase; andtransmitting, in a second transmission phase, the one or more missing blocks to the first node, the second transmission phase being identifiable to the first node by the identifier.

2. A method according to claim 1 , wherein the identifier comprises a transmission header.

3. A method according to claim 1 , wherein the identifier is the software image.

4. A method according to any one of the preceding claims, comprising:transmitting, in the second transmission phase, the one or more missing blocks to each node of a subset of nodes, the first node being a node of the subset of nodes, the nodes of the subset of nodes having the same missing blocks.

5. A method according to any one of the preceding claims, wherein the first transmission phase comprises transmission in a broadcast or multicast mode.

6. A method according to any one of the preceding claims, wherein the second transmission phase comprises transmission in a unicast mode.

7. A method according to any one of claims 1 to 4, wherein the second transmission phase comprises transmission in a multicast mode.

8. A method according to any one of the preceding claims, wherein the software image is a firmware image.

9. A head-end system for a network of nodes, the head-end system being configured to:determine whether a first node of one or more nodes in the network has received all blocks of one or more blocks of a software image in a first transmission phase;in response to determining that the first node has not received all of the one or more blocks of the software image in the first transmission phase:initiate a second transmission phase with the first node, the second transmission phase being identifiable to the first node by the identifier;determine one or more missing blocks for the first node, the one or more missing blocks being blocks of the software image that were not received by the first node in the first transmission phase; and transmit, in the second transmission phase, the one or more missing blocks to the first node.

10. A head-end system according to claim 9, wherein determining the one or more missing blocks for the first node comprises receiving, from the first node in the second transmission phase, a report of the one or more missing blocks.

11. A head-end system according to claim 9, wherein the identifier comprises a transmission header.

12. A head-end system according to claim 9, wherein the identifier is the software image.

13. A head-end system according to any one of claims 9 to 12, wherein the headend system is configured to:transmit, in the second transmission phase, the one or more missing blocks to each node of a subset of nodes, the first node being a node of thesubset of nodes, the nodes of the subset of nodes having the same missing blocks.

14. A head-end system according to any one of claims 9 to 13, wherein the first transmission phase comprises transmission in a broadcast or multicast mode.

15. A head-end system according to any one of claims 9 to 14, wherein the second transmission phase comprises transmission in a unicast mode.

16. A head-end system according to any one of claims 9 to 14, wherein the second transmission phase comprises transmission in a multicast mode.

17. A head-end system according to any one of claims 9 to 16, wherein the software image is a firmware image.

18. A node in a network, the node being configured to:receive, in a first transmission phase, a software image from a head-end system, the first transmission phase being identifiable to the node by an identifier, the software image comprising one or more blocks;in response to initiation, by the head-end system, of a second transmission phase with the node, the second transmission phase being identifiable to the node by the identifier:send, in the second transmission phase, a report of any missing blocks of the software image, the missing blocks being blocks of the software image that were not received by the node in the first transmission phase.

19. A node according to claim 18, wherein the first transmission phase comprises transmission in a broadcast or multicast mode.

20. A node according to claim 18 or 19, wherein the second transmission phase comprises transmission in a unicast or multicast mode.

21. A node according to any one of claims 18 to 20, wherein the software image is a firmware image.