US9271123B2 - Wireless reliability architecture and methods using network coding - Google Patents

Wireless reliability architecture and methods using network coding Download PDF

Info

Publication number
US9271123B2
US9271123B2 US14/013,330 US201314013330A US9271123B2 US 9271123 B2 US9271123 B2 US 9271123B2 US 201314013330 A US201314013330 A US 201314013330A US 9271123 B2 US9271123 B2 US 9271123B2
Authority
US
United States
Prior art keywords
segments
coded
thread
packets
decoder
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US14/013,330
Other versions
US20140269505A1 (en
Inventor
Muriel Medard
Xiaomeng Shi
Marie-Jose Montpetit
Surat Teerapittayanon
Kerim Fouli
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Massachusetts Institute of Technology
Original Assignee
Massachusetts Institute of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Massachusetts Institute of Technology filed Critical Massachusetts Institute of Technology
Priority to US14/013,330 priority Critical patent/US9271123B2/en
Assigned to MASSACHUSETTS INSTITUTE OF TECHNOLOGY reassignment MASSACHUSETTS INSTITUTE OF TECHNOLOGY ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MONTPETIT, MARIE-JOSE, FOULI, KERIM, TEERAPITTAYANON, SURAT, MEDARD, MURIEL, SHI, XIAOMENG
Publication of US20140269505A1 publication Critical patent/US20140269505A1/en
Application granted granted Critical
Publication of US9271123B2 publication Critical patent/US9271123B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0076Distributed coding, e.g. network coding, involving channel coding
    • H04L1/0077Cooperative coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0009Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
    • H04L1/0011Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding applied to payload information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/04Error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding

Definitions

  • Subject matter disclosed herein relates generally to wireless communication and, more particularly, to techniques, systems, and devices for providing reliability within wireless systems.
  • the 4 th generation (4G) wireless standards require stationary speeds of 1 giga bits-per-second (Gbps) and mobile speeds of 100 mega bits-per-second (Mbps), while the third generation (3G) standards only required stationary speeds of 2 Mbps and mobile speeds of 384 kilo bits-per-second (Kbps). That is, 4G requires 500 and 260 times faster speeds than 3G in the stationary and mobile cases, respectively. Thus, the need for low-cost performance-multiplying technologies is expected to become significant for wireless networks in the near future.
  • a method for use in providing reliable data transfer in a wireless network comprises: obtaining data elements associated with a data transfer operation between a first node and a remote second node; distributing the data elements among a plurality of encoder worker threads; and employing random linear network coding (RLNC) in the encoder worker threads to generate, for corresponding data elements, coded segments for transmission from the first node to the second node.
  • RLNC random linear network coding
  • the method further comprises: generating uncoded segments in at least one of the encoder worker threads for corresponding data elements; and transmitting the coded and uncoded segments from the first node to the second node for implementing systematic RLNC.
  • obtaining data elements includes intercepting data elements at a predetermined point within a protocol stack.
  • intercepting data elements includes intercepting Internet protocol (IP) packets at an IP layer of the protocol stack.
  • IP Internet protocol
  • the method further comprises transmitting the coded segments from the first node to the second node, wherein transmitting the coded segments includes injecting the coded segments into the IP layer of the protocol stack.
  • distributing the data elements among a plurality of encoder worker threads includes buffering the data elements, generating a plurality of buffer lists that each includes one or more data elements, and distributing the buffer lists among the plurality of encoder worker threads.
  • distributing the buffer lists includes distributing the buffer lists to the encoder worker threads in a round robin fashion.
  • generating a plurality of buffer lists includes, for each successive buffer list: acquiring a new data element; adding the new data element to a current buffer list; and repeating acquiring and adding until a maximum buffer list processing time has been reached or the maximum buffer list size has been reached.
  • the method further comprises: concatenating data elements distributed to a first encoder worker thread to form a first coding block; and segmenting the first coding block into segments having a first segment size, wherein segmenting includes padding the first coding block if a size of the first coding block is not a multiple of the first segment size; wherein employing random linear network coding includes: (a) generating random coefficients for the segments; and (b) linearly combining the segments using the random coefficients to generate a first coded segment in the first encoder worker thread.
  • employing random linear network coding further includes repeating generating and linearly combining to generate other coded segments in the first encoder worker thread until a predetermined number of coded segments has been generated or an acknowledgement message has been received from a corresponding processing thread in the second node.
  • the method further comprises determining, before segmenting the first coding block, a segment length and a number of segments to use in performing random linear network coding for the first coding block, wherein the determining of the segment length and is based at least in part on a length of the first coding block.
  • the method further comprises adding a header to the first coded segment.
  • the header includes a thread identifier (TID) to identify a thread associated with the first coded segment.
  • TID thread identifier
  • the header includes a block identifier (BID) to identify a coding block associated with the first coded segment.
  • BID block identifier
  • the header includes a segment identifier (SID) to distinguish the first coded segment from other coded segments generated by the first encoder worker thread.
  • SID segment identifier
  • the header includes an indication of a number of segments used to generate the first coded segment.
  • the header includes an indication of the coding coefficients used to generate the first coded segment.
  • the indication of the coding coefficients used to generate the coded segment includes a seed of a random number generator used to generate the coding coefficients.
  • the method further comprises adjusting at least one of: a number of coded segments to transmit to the second node, a number of segments in a coding block, a length of segments in a coding block, a number of coded segments within a transmission round, and a maximum number of coded segment transmission rounds, based at least in part on channel-related information.
  • the channel-related information includes at least one of: channel estimates generated within the first node and feedback information received from the second node.
  • the encoder worker threads are implemented in the first node.
  • the encoder worker threads are implemented at a location outside the first node.
  • the first node is a relay node and obtaining data elements includes receiving coded packets at the relay node; and employing RLNC in the encoder worker threads includes re-coding the coded packets using RLNC.
  • the method further comprises: initiating a new encoder worker thread at the relay node for each received packet having a thread identifier (TID) that was previously unknown to the relay node; performing re-coding among packets of the same block; repeating re-coding in the relay node's encoder worker thread within each block, upon each new packet reception, or until a predetermined number of coded packets has been generated or an acknowledgement message has been received from a corresponding processing thread in the second node; and ceasing transmission of coded packets for any given block and sending an acknowledgement upstream to the next transmitting node upon receiving an acknowledgement for the block.
  • TID thread identifier
  • the method is performed in coordination with one or more physical layer reliability enhancement mechanisms.
  • the first and second nodes are part of a wireless municipal area network.
  • a communication device comprises: a wireless transceiver; and one or more processors configured to: obtain data elements associated with a data transfer operation between the communication device and a remote node; and distribute the data elements among a plurality of encoder worker threads that are each configured to use random linear network coding (RLNC) to generate coded segments for corresponding data elements.
  • RLNC random linear network coding
  • the one or more processors are configured to: (a) cause encoded segments to be generated in at least one of the encoder worker threads for corresponding data elements; and transmit the coded and encoded segments to the destination node via the transceiver to implement systematic RLNC.
  • the one or more processors are configured to obtain the data elements by intercepting the data elements at a predetermined point within a protocol stack of the communication device.
  • the data elements are Internet protocol (IP) packets and the one or more processors include a netfilter to intercept IP packets at an IP layer of the protocol stack of the communication device.
  • IP Internet protocol
  • the one or more processors are configured to: acquire a new data element; add the new data element to a current buffer list; and repeat the acquisition and addition of new data elements until a maximum buffer list processing time or a maximum buffer list size is reached.
  • a first of the encoder worker threads is configured to: concatenate corresponding data elements to form a first coding block; segment the first coding block into segments having a first segment size, wherein segmenting includes padding the first coding block if a size of the coding block is not a multiple of the first segment size; generate random coefficients for the segments; and linearly combine the segments using the random coefficients to generate a first coded segment.
  • the first encoder worker thread is configured to generate additional random coefficients for the segments and linearly combine the segments using the additional random coefficients to generate additional coded segments.
  • the first encoder worker thread is configured to generate additional coded segments until a predetermined number of coded segments have been generated or an acknowledgement message is received from a corresponding processing thread in the destination node.
  • the first encoder worker thread is configured to generate coded segments in rounds, wherein N m coded segments are generated per round and a nominal delay of T r exists between rounds.
  • the first encoder worker thread is configured to not exceed a maximum number N k of rounds.
  • the first encoder worker thread is configured to determine, before segmenting the first coding block, a segment length and a number of segments to use for random linear network coding for the first coding block based at least in part on a length of the first coding block.
  • a method for use in providing reliable data transfer in a wireless network comprises: receiving coded segments from a remote wireless node, each coded segment being associated with a specific coding thread and being coded with a random linear network code (RLNC); reading thread identifiers within the received coded segments and directing the coded segments to corresponding decoder worker threads based thereon, each decoder worker thread having a corresponding encoder worker thread associated with the remote wireless node; and using the coded segments within the corresponding decoder worker threads to recover original data elements.
  • RLNC random linear network code
  • the method further comprises: receiving uncoded segments from the remote wireless node, each uncoded segment being associated with a specific coding thread; and reading thread identifiers within the received uncoded segments and directing the uncoded segments to corresponding decoder worker threads based thereon; wherein using the coded segments within the corresponding decoder worker threads to recover original data elements includes using the coded segments as redundant information to the uncoded segments within the decoder worker threads to recover the original data elements using systematic RLNC.
  • the uncoded segments are received before the corresponding coded segments for each decoder worker thread.
  • the coded segments for each decoder worker thread are received in rounds, with N m coded segments per round and a nominal delay of T r between rounds.
  • the method further comprises sending an acknowledgement (ACK) message from a decoder worker thread to a corresponding encoder worker thread associated with the remote wireless node in response to recovery of all original data elements associated with corresponding segments.
  • ACK acknowledgement
  • using the coded segments within the corresponding decoder worker threads to recover original data elements includes performing a Gauss-Jordan elimination operation for each new coded segment.
  • using the coded segments within the corresponding decoder worker threads to recover original packets comprises: recovering a corresponding coding block within a first decoder worker thread; removing padding from the coding block, if any, within the first decoder worker thread; and separating the coding block into original data elements.
  • the method further comprises delivering the original data elements recovered by the decoder worker threads to a corresponding application.
  • a communication device comprises: a wireless transceiver; and one or more processors to: receive coded segments from a remote wireless node, each coded segment being associated with a specific coding thread and being coded with a random linear network code (RLNC); read thread identifiers within the received coded segments and direct the coded segments to corresponding decoder worker threads based thereon, each decoder worker thread having a corresponding encoder worker thread that is associated with the remote wireless node; and use the coded segments within the corresponding decoder worker threads to recover original data elements.
  • RLNC random linear network code
  • the one or more processors are configured to: receive uncoded segments from the remote wireless node, each uncoded segment being associated with a specific coding thread; read thread identifiers within the received uncoded segments and direct the uncoded segments to corresponding decoder worker threads based thereon; and use the coded segments as redundant information to the uncoded segments to recover the original data elements within the decoder worker threads, using systematic RLNC.
  • each decoder worker thread is configured to send an acknowledgement (ACK) message to a corresponding encoder worker thread associated with the remote wireless node in response to recovery of all original data elements associated with the decoder worker thread.
  • ACK acknowledgement
  • each decoder worker thread is configured to perform a Gauss-Jordan elimination operation when a new coded segment is received.
  • a method for use in a wireless system comprises: transmitting systematic packets to a remote node; and transmitting one or more nonsystematic packets to the remote node, the non-systematic packets being encoded with a random linear network code (RLNC), the nonsystematic packets to serve as redundant information to the systematic packets for implementing systematic RLNC.
  • RLNC random linear network code
  • transmitting one or more nonsystematic packets to the remote device includes transmitting the one or more nonsystematic packets to the remote device in successive rounds, each round having N m packets.
  • transmitting the one or more nonsystematic packets to the remote device in successive rounds includes transmitting the packets with a nominal inter-round delay of T r .
  • the method further comprises: before transmitting the systematic packets, generating the systematic packets, at least in part, within a plurality of encoder threads, each systematic packet including a thread identifier (TID) to identify a corresponding encoder thread; and before transmitting the nonsystematic packets, generating the nonsystematic packets, at least in part, within the plurality of encoder threads, each nonsystematic packet including a thread identifier (TID) to identify a corresponding encoder thread.
  • TID thread identifier
  • generating the nonsystematic packets includes: obtaining a coding block within a first encoder thread; segmenting the coding block into a number of segments; generating first random coefficients for the segments; and linearly combining the segments using the first random coefficients to generate a first nonsystematic segment.
  • a method for use in a wireless system comprises: obtaining a coding block; segmenting the coding block into a number of equal-length uncoded segments; generating one or more coded segments by applying random linear network coding (RLNC) to the number of equal-length segments; and transmitting the uncoded segments and the one or more coded segments to a remote node, the one or more coded segments for use as redundant information by the remote node to recover one or more of the uncoded segments should they be erased in the wireless channel.
  • RLNC random linear network coding
  • FIG. 1 is a diagram illustrating a wireless municipal area network (WMAN) that may incorporate features described herein;
  • WMAN wireless municipal area network
  • FIG. 2 is a block diagram illustrating an example node architecture that may be used within a communication device or node in accordance with an embodiment
  • FIG. 3 is a diagram illustrating a modified protocol stack that may be implemented within a node in accordance with an embodiment
  • FIGS. 4 and 5 are block diagrams illustrating an encoder process and a decoder process, respectively, in accordance with embodiments
  • FIG. 6 is a diagram illustrating an exemplary encoding process in accordance with an embodiment
  • FIG. 7 is a diagram illustrating an NC packet header format that may be used in accordance with an embodiment.
  • FIG. 8 is a diagram illustrating an ACK packet format that may be used in accordance with an embodiment.
  • the subject matter described herein relates to techniques, devices, systems, circuits, and concepts for use in implementing network coding (or other similar coding techniques) within wireless systems in a manner that can enhance data transfer reliability and efficiency.
  • the techniques, devices, systems, circuits, and concepts may be used in any of a wide variety of different types of wireless systems and networks.
  • the techniques are used within wireless municipal area networks (WMANs), such as those that follow the IEEE 802.16 family of wireless networking standards or the Long Term Evolution (LTE) family of standards. It should be appreciated, however, that many other applications also exist.
  • WMANs wireless municipal area networks
  • LTE Long Term Evolution
  • network-coding-enabled reliability architectures are provided for next generation wireless networks.
  • These network coding (NC) architectures may, in some implementations, use a flexible thread-based coding design.
  • these architectures may utilize systematic intra-session random linear network coding (RLNC) as a packet erasure code to support fast and reliable information transfer between wireless nodes.
  • the systematic RLNC coding and decoding may be performed within, for example, a number of coding/decoding threads that span the channel between a transmitter and a receiver.
  • an architecture is provided that is able to decrease packet loss from around 11-32% to nearly 0% with respect to a network implementing HARQ and joint HARQ/A mechanisms.
  • the architecture is capable of achieving an increase in throughput by a factor of up to 5.9 and a reduction in end-to-end file transfer delay by a factor of up to 5.5.
  • the protocols and architectures described herein may reduce or eliminate the need to use other reliability enhancement techniques within a system or network (e.g., ARQ and/or joint HARQ/ARQ schemes in the PHY/MAC layers, etc.).
  • network coding may be applied across the OSI model.
  • some layers may be better choices than others in different applications. For example, additional performance gains at the physical layer may be onerous, since existing coding schemes have achieved near-optimal efficiency levels in this layer.
  • network coding may yield important gains when integrated within the transport and MAC sub-layers.
  • transport and MAC functions are performed at the convergence and MAC sub-layers.
  • the current context for higher Internet layers i.e., TCP/IP
  • TCP/IP The current context for higher Internet layers (i.e., TCP/IP) is extremely dynamic. This is essentially due to the sensitivity of TCP's congestion control to the variety of possible transmission environments (e.g., wireless, satellite, optical long-haul, etc.), leading to the emergence of a number of alternative competing transport protocols and enhancements.
  • Network coding may therefore benefit from the continuity offered by industrial standards such as IEEE 802.16 (WiMAX) and LTE.
  • WiMAX IEEE 802.16
  • LTE Long Term Evolution
  • network coding is applied at the convergence sub-layer (or at the edge between the IP layer and the convergence sub-layer), although other locations within a protocol stack are used in other embodiments.
  • FIG. 1 is a diagram illustrating a wireless municipal area network (WMAN) 10 that may incorporate features described herein in one or more embodiments.
  • the WMAN 10 may operate in accordance with one or more wireless networking standards such as, for example, the IEEE 802.16 wireless networking standard, the LTE advanced wireless standard, and/or others.
  • the WMAN 10 may include one or more wireless base stations 12 , 14 , 16 to provide communication services to one or more wireless subscribers in a corresponding wireless coverage area.
  • the base stations 12 , 14 , 16 may, for example, provide last mile services for one or more homes 18 , 20 in the coverage area.
  • the homes 18 , 20 may each include internal or external customer premises equipment (CPE) to support wireless communication with one of more of the base stations 12 , 14 , 16 .
  • CPE customer premises equipment
  • the homes 18 , 20 may include a separate internal wireless local area network (e.g., an IEEE 802.11 (WiFi) network or the like).
  • a separate internal wireless local area network e.g., an IEEE 802.11 (WiFi) network or the like.
  • one or more of the homes 18 , 20 may include one or more user devices (e.g., a laptop, a smart phone, a desktop, etc.) that are capable of communicating directly with a base station of the WMAN 10 .
  • the base stations 12 , 14 , 16 of WMAN 10 may also communicate with one or more mobile devices 22 or other mobile platforms within the coverage area. Likewise, the base stations 12 , 14 , 16 may communicate with one or more subscribers within an office building 24 or other structure. The base stations 12 , 14 , 16 may also be capable of communicating with one or more wireless hot spots 26 in a surrounding environment to provide access to the network for users within the hotspot coverage region. As is apparent, the number of different subscriber scenarios that are possible within WMAN 10 and other wireless MANs is large.
  • the base stations 12 , 14 , 16 may also be capable of directly communicating with one another via one or more direct line of sight (LOS) backhaul links 28 , 30 , 32 between base stations. Further, in some systems, the base stations 12 , 14 , 16 may also be coupled to one or more large external networks (e.g., the Internet 38 , a public switched telephone network (PSTN), etc.) by one or more fixed back haul links 34 , 36 or other links to provide corresponding services to subscribers.
  • LOS line of sight
  • the techniques and features described herein may be used to enhance data transfer reliability and/or data transfer efficiency between nodes in a wireless MAN, such as WMAN 10 of FIG. 1 .
  • a wireless MAN such as WMAN 10 of FIG. 1 .
  • features described herein may be implemented within the base stations 12 , 14 , 16 of WMAN 10 and also within the various types of subscriber equipment that communicate with the base stations 12 , 14 , 16 .
  • the techniques and features described herein may also be implemented in other types of wireless networks and systems.
  • the features and techniques described herein may be used in both single hop links and multi-hop links within a network.
  • FIG. 2 is a block diagram illustrating an example node architecture 50 that may be used within a communication device or node in accordance with an embodiment.
  • the architecture 50 may be used within, for example, a base station or subscriber equipment associated with a WMAN (e.g., WMAN 10 of FIG. 1 , etc.) or node equipment within other wireless networks or systems.
  • the node architecture 5 d 0 may include: one or more digital processors 52 , a memory 54 , a wireless transceiver 56 , and a user interface 58 .
  • a bus 62 and/or other structure(s) may be provided for establishing interconnections between the various components of node architecture 50 .
  • Digital processor(s) 52 may include one or more digital processing devices that are capable of executing programs or procedures to provide functions and/or services for a user.
  • Memory 54 may include one or more digital data storage systems, devices, and/or components that may be used to store data and/or programs for other elements of node architecture 50 .
  • Wireless transceiver 56 may include any type of transceiver that is capable of supporting wireless communication with one or more remote wireless entities.
  • User interface 58 may include any type of device, component, or subsystem for providing an interface between a user and the corresponding node equipment.
  • Digital processor(s) 52 may include, for example, one or more general purpose microprocessors, digital signals processors (DSPs), controllers, microcontrollers, application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), programmable logic arrays (PLAs), programmable logic devices (PLDs), reduced instruction set computers (RISCs), and/or other processing devices or systems, including combinations of the above.
  • Digital processor(s) 52 may be used to, for example, execute an operating system for a corresponding node.
  • Digital processor(s) 52 may also be used to, for example, execute one or more application programs for a node.
  • digital processor(s) 52 may be used to implement, either partially or fully, one or more of the communications related processes or techniques described herein in some implementations.
  • wireless transceiver 66 may include any type of transceiver that is capable of supporting wireless communication with one or more remote wireless entities.
  • Wireless transceiver 56 may include one or more digital processors for performing corresponding functions.
  • Wireless transceiver 56 may be coupled to one or more antennas 64 and/or other transducers, to facilitate the transmission and/or reception of communication signals.
  • wireless transceiver 56 may be used to implement, either partially or fully, one or more of the communications related processes or techniques described herein.
  • architecture 50 may also include one or more wired transceivers (not shown).
  • wireless transceiver 56 may be configured in accordance with one or more wireless networking standards and/or wireless cellular standards. Multiple wireless transceivers may be used in some implementations to support operation in different networks or systems in a surrounding environment or with different wireless networking and/or cellular standards. Wireless transceiver 56 may, in some implementations, be capable of communicating with peer devices in a peer-to-peer, ad-hoc, or wireless mesh network arrangement. In addition, in some implementations, wireless transceiver 56 may be capable of communicating with a base station or access point of an infrastructure-type wireless communication scenario. In some instances, wireless transceiver 56 may be a base station transceiver that is capable of supporting multiple simultaneous wireless links with different subscriber equipment.
  • Memory 54 may include any type of system, device, or component, or combination thereof, that is capable of storing digital information (e.g., digital data, computer executable instructions and/or programs, etc.) for access by a processing device or other component.
  • digital information e.g., digital data, computer executable instructions and/or programs, etc.
  • This may include, for example, semiconductor memories, magnetic data storage devices, disc based storage devices, optical storage devices, read only memories (ROMs), random access memories (RAMs), non-volatile memories, flash memories, USB drives, compact disc read only memories (CD-ROMs), DVDs, Blu-Ray disks, magneto-optical disks, erasable programmable ROMs (EPROMs), electrically erasable programmable ROMs (EEPROMs), magnetic or optical cards, and/or other digital storage suitable for storing electronic instructions and/or data.
  • ROMs read only memories
  • RAMs random access memories
  • CD-ROMs compact disc read only memories
  • DVDs DVDs
  • node architecture 50 of FIG. 2 represents one possible example of a node architecture that may be used in an implementation. Other architectures may alternatively be used.
  • node device node
  • node communication device
  • similar terms are used to describe any type of digital electronic device or system that includes some form of communication capability.
  • This may include, for example, a laptop, desktop, notebook, or tablet computer; a personal digital assistant (PDA); a personal communication service (PCS) device; a personal navigation assistant (PNA); a cellular telephone, smart phone, or other handheld wireless communication device; a pager; a wireless sensor device; a satellite communication device; a media player having communication capability; a digital storage device with communication capability; CPE equipment; a set top box; wireless network interface cards (NICs) and other network interface structures; a wireless base station or wireless access point; an integrated circuit or system on chip (SOC) having communication functionality; and/or other devices, systems, or equipment.
  • PDA personal digital assistant
  • PCS personal communication service
  • PNA personal navigation assistant
  • FIG. 3 is a diagram illustrating a modified protocol stack 70 that may be implemented within a node to support a network coding based reliability architecture in accordance with an embodiment.
  • protocol stack 70 may be implemented within, for example, the processor(s) 52 and/or the wireless transceiver 56 of the node.
  • the stack 70 may include, for example: an application layer 72 , a transport layer 74 , an internet protocol (IP) layer 76 , a convergence sublayer 78 , an upper medium access control (MAC) sublayer 80 , a lower MAC sublayer 82 , and a physical layer 84 .
  • IP internet protocol
  • MAC medium access control
  • the functions of these various layers are well known in the art and, therefore, will not be described herein.
  • the lower layers 86 of the protocol stack 70 e.g., the convergence sublayer 78 , the upper and lower MAC sublayers 80 , 82 , and the physical layer 84
  • the lower layers 86 of the protocol stack 70 may be configured in accordance with a particular wireless networking standard (e.g., WiMAX, etc.).
  • a particular wireless networking standard e.g., WiMAX, etc.
  • modifications are made to protocol stack 70 to incorporate network coding into a corresponding wireless network or system.
  • network coding may be added to a network in a manner that acts as a packet erasure code to support data transfer reliability and data transfer efficiency in the network.
  • network coding is applied at the IP layer 76 of the protocol stack 70 .
  • a Linux packet filtering framework (netfilter) 88 or other functionality may be used to intercept IP packets that are flowing downward through the stack 70 for use in applying network coding.
  • the terms “original packets” and “native packets” will be used to describe packets just before network coding is applied (i.e., the packets that will eventually be extracted in the receiver).
  • the IP packets may be intercepted by netfilter 88 near, for example, the boundary between the IP layer 76 and the convergence sublayer 78 in one approach.
  • a network coding module 90 may be provided to process the intercepted packets to apply network coding.
  • Processed packets which may include both coded packets and uncoded packets, may then be injected back into protocol stack 70 by the network coding module 90 and allowed to flow downward toward physical layer 84 for transmission to a remote receiver. Similar processing may be performed in the reverse direction in the receiver device to recover the original data packets.
  • the network coding module 90 may be implemented in user-space.
  • the module 90 may act as an encoder at a source node (e.g., a base station, etc.) and as a decoder at a destination node (e.g., a subscriber station, etc.).
  • a source application located in user-space may send outgoing IP packets to an operating system (OS) where the transport and IP layers are run.
  • OS operating system
  • the netfilter 88 (or other packet interception functionality) can be used to intercept the IP packets and send them to the network coding module 90 in user-space.
  • the network coding module 90 then returns coded IP packets or segments to the OS.
  • Coded IP packets then traverse the WiMAX stack 86 , passing through the convergence sublayer (CS) 78 , the upper and lower MAC sublayers 80 , 82 , and the PHY layer 84 .
  • a netfilter may intercept the incoming coded IP packets handed from WiMAX to the OS and deliver them to a corresponding network coding module in user space.
  • the network coding module of the destination node may then send decoded packets (or original data packets) to the corresponding OS, which forwards the packets to the destination application.
  • the ARQ and HARQ run from the upper and lower MAC sublayers, respectively, may be switched off.
  • the network coding modules 90 within source and destination nodes may use a flexible thread-based design, where parallel encoding-decoding instances are generated to process packets concurrently.
  • network coding (and, more specifically, random linear network coding or RLNC) is implemented as a systematic packet erasure code in the network where uncoded packets are transmitted to a destination node along with coded packets. The coded packets then serve as redundant information that may be used to recover original packets in the destination node. This technique may be referred to as systematic RNLC.
  • systematic RNLC Random linear network coding
  • the same technique of intercepting packets, applying network coding, and then re-injecting coded packets may be applied at other locations in a stack in other implementations (e.g., the convergence sub-layer 78 , the upper or lower MAC layer 80 , 82 , etc.).
  • the network coding module 90 is implemented in user-space (e.g., as part of application layer 72 ) within the node. In other implementations, however, the network coding module 90 (or the functions thereof) may be implemented in other layers or locations in a network, either inside or outside the original node.
  • the network coding module 90 is implemented within the user space of another node in the network.
  • the netfilter 88 may forward the extracted packets to the other node through, for example, a network link or other communication path.
  • the coded packets may then be returned to the first node for re-injection into the stack 70 .
  • the application of network coding may be made part of a corresponding protocol stack and, therefore, would not require an interception and re-injection of packets.
  • a netfilter 88 is used to intercept IP packets at an IP layer 76 of a protocol stack.
  • the term netfilter is commonly associated with the IP layer and filtration of IP packets. Therefore.
  • other types of filters or data element interception functions or devices may be used to intercept data elements for coding.
  • FIGS. 4 and 5 are block diagrams illustrating an encoder process 100 and a decoder process 200 , respectively, in accordance with an embodiment.
  • the encoder process 100 may be used, for example, within a source node (or relay node) and the decoder process 200 may be used within a corresponding destination node during a data transfer operation.
  • the encoder process 100 may include an encoder master thread 102 and a plurality of encoder worker threads 104 a , . . . , 104 n .
  • the decoder process 200 may include a decoder master thread 202 and a plurality of decoder worker threads 204 a , . . .
  • Each of the encoder worker threads 104 a , . . . , 104 n in the source node may correspond to one of the decoder worker threads 204 a , . . . , 204 n in the destination node.
  • Each encoder-decoder thread pair may operate independently from the other pairs and may be identified by a unique thread ID (TID).
  • TID unique thread ID
  • different worker threads being executed within a node may be processed concurrently within different processors or processor cores associated with the node.
  • multiple worker threads may be executed within a single processor in a node using, for example, time division multiplexing or a similar technique.
  • multiple processor cores that each execute multiple worker threads may be used within a node.
  • the encoder master thread 102 load-balances the encoder worker threads 104 a , . . . , 104 n by distributing incoming data elements, packets in this embodiment, to the threads 104 a , . . . , 104 n in a predetermined manner. In at least one embodiment, the master thread 102 distributes the packets in a round-robin fashion, although other techniques may alternatively be used.
  • the encoder worker threads 104 a , . . . , 104 n may apply network coding to packets distributed to them to generate coded packets. As will be described in greater detail, the unique thread ID associated with each coded packet may be inserted into the coded packet before it is transmitted to the destination node.
  • the decoder master thread 202 directs each incoming coded IP packet to a corresponding decoder worker thread 204 a , . . . , 204 n according to its TID.
  • the decoder worker thread may then process the packets it receives to recover the original data packets.
  • the original data packets may then be delivered to the appropriate application.
  • FIG. 6 is a diagram illustrating an exemplary encoding process 300 in accordance with an embodiment.
  • the process 300 may be used within, for example, a network coding module associated with a source node in a wireless network.
  • Incoming IP packets may first be buffered ( 302 ) and stored successively as a “buffer list” in a master thread associated with a network coding module.
  • the master thread may use a predetermined criterion to determine when a buffer list is ready to handed off to a next available encoder worker thread.
  • the following process may be used to generate buffer lists and determine when they are to be handed off.
  • a timer T may first be initialized.
  • the length L b of a new buffer list may next be initialized to zero.
  • the length of each new packet received may then be added to L b . This may be repeated for each new packet until T reaches T i or L b reaches L t , where T i is the maximum time to develop the buffer list and L t is the maximum length of the buffer list. If adding a new packet would result in L b exceeding L t , the new packet will not be added and will be held for the next buffer list. The current buffer list is then delivered to the next worker thread. The process is then repeated for the next buffer list. This process may be expressed in pseudocode as follows:
  • the buffer list may be concatenated into a coding block ( 304 ).
  • padding may be added to the coding block ( 306 ) to generate a padded coding block that is a multiple of a desired coding segment size.
  • a “segment” is the basic unit of operation within the network coding module.
  • the well-known ANSI X.923 byte padding algorithm is used to perform padding. In ANSI X.923, bytes filled with zeros are appended to the data and the last byte stores the number of padded bytes.
  • the coding block may next be divided into equal sized segments ( 308 ) having the desired segment size.
  • Random linear network coding may then be used to generate one or more coded segments during a coding process ( 310 ), A coded segment may be generated by first generating random coefficients (a i ) for each of the segments, multiplying each segment by the corresponding coefficient, and then summing the products together as follows:
  • a different coded segment may be generated by generating and using new random coefficients.
  • the coded segments may be encapsulated ( 312 ) by adding NC headers to form coded IP packets.
  • the coded IP packets may then be transmitted to the destination node via the wireless channel.
  • all of the segments associated with a particular coding block will be the same size, but the segment size will be avowed to change from coding block to coding block.
  • the number of segments N s and the segment length L s that are used for a particular coding block are calculated by the corresponding worker thread (or the master thread) based, at least on part, on the length L b , of the coding block, the maximum length L m of the segments, and the preferred number N r of segments.
  • One technique for calculating these values will now be described. As shown below, using this technique, the calculation of the number of segments N s and the segment length L s and the addition of padding (e.g., padding 306 of FIG. 6 ) are performed as together as part of a common process.
  • the current length L b of the coding block may first be incremented by 1 byte to serve as a padding boundary.
  • An initial value of N s may then be set as N r .
  • the value of N s may then be repeatedly incremented and the value of L s may be repeatedly calculated as
  • random linear network coding is used as a systematic packet erasure code within a wireless network. This will be referred to herein as systematic RLNC.
  • systematic RLNC random linear network coding
  • some or all of the segments may be transmitted to the destination node in an uncoded form. Coded segments may then be transmitted for use as redundant information during subsequent data decoding, in this manner, any uncoded packets that are lost (i.e., erased) in the channel may be recovered in the receiver.
  • N s uncoded segments may first be generated and sent to the destination node, followed by one or more coded segments.
  • the uncoded segments may each be generated by using a coefficient of 1 for a desired segment and a coefficient of zero for all other segments.
  • the coded segments may be generated using randomly generated coefficients as described previously.
  • the uncoded segments will be referred to herein as “systematic segments” and the coded segments as “nonsystematic segments.”
  • the nonsystematic segments will be transmitted in a series of rounds, with N m nonsystematic segments being transmitted in each round.
  • a maximum number of rounds N k may be specified in some implementations.
  • An inter-round pause of duration T r may be implemented between rounds to allow other threads to process their blocks.
  • ACK acknowledgement
  • systematic RLNC is implemented using a Galois Field of size 2 8 . This field size allows each coefficient to be expressed as a single byte. However, other field sizes may be used in other implementations.
  • the above-described process for implementing systematic RLNC may be expressed in pseudocode as follows:
  • FIG. 7 is a diagram illustrating an NC header format 400 that may be used in accordance with an embodiment.
  • the NC header format 400 may include: an IP header field 402 , a thread ID (TID) field 404 , a block ID (BID) field 406 , a segment ID (SID) field 408 , a filed 412 for the number N s of segments in the coding block, and a coding coefficients field 414 .
  • Other NC header formats may alternatively be used.
  • Segment length L s is not included because it can be derived using the packet length field in the IP header 402 .
  • the TID identifies which thread the packet belongs to.
  • the BID identifies which block the packet belongs to within a given thread. For each thread, the BID may be incremented for every new coded block.
  • the SID keeps track of the individual segments generated for a particular block (i.e., the SID is incremented for each new coded segment that is generated). N s and the coding coefficients are used during the decoding process.
  • FIG. 8 is a diagram illustrating an ACK packet format 450 that may be used in accordance with an embodiment. As shown, the ACK packet 450 may include an IP header 452 , a TID 454 , and a BID 456 . Other ACK formats may alternatively be used.
  • the decoding process used at a decoder worker thread is essentially a reverse of the encoding process used in the corresponding encoder worker thread (see, e.g., FIG. 6 ).
  • de-capsulation may be performed to strip the NC header from a received coded segment. Each received coded segment may then be used to progressively decode using Gauss-Jordan elimination or a similar technique.
  • Gauss-Jordan elimination or a similar technique.
  • M represents the current coefficient matrix of incoming coded packets
  • M[r+1] refers to row r+1 of M
  • rank(M) is the rank of M.
  • the code rate (CR) may be defined as the ratio of the number N s of segments to the sum of N s and the number of redundancy segments:
  • N k is the number of redundancy rounds
  • N m is the number of redundancy segments transmitted per round. Note that this is an upper bound on the effective code rate, as an ACK may interrupt before N k rounds of N m redundancy segments have been transmitted.
  • blocks that cannot be decoded can still contain useful information, as some uncoded packets may be extracted.
  • an additional two-byte field may be provided in the NC header called the stark field. The start field allows IP packet defragmentation at the decoder in the event of unsuccessful block decoding.
  • the total NC header length may be L h +N s , where L h , is the length of the NC header without coding coefficients.
  • the NC header overhead ratio would therefore be
  • L h + N s L s where L s is the segment length. If N s is 120, L h is 24, and L s is 1400, the overhead would be 10.29%.
  • This overhead can be reduced in three ways: 1) by increasing L m , the maximum length of segments, thus increasing L s , 2) by reducing N s , and 3) by sending a seed of a pseudo-random number generator instead of a coefficient vector. Using random seeds, the overhead becomes
  • a type field and either a segment number (segn) or seed.type field may be used to identify whether a packet is coded or uncoded.
  • the parameter segn may be used in a systematic packet to specify the segment number.
  • the seed field may be used in a coded packet as a random seed.
  • a simple pseudo-random number generator may be used to generate the random seed.
  • Gerhard's generator is described in pseudo code below. Given a seed a, the generator generates a pseudo-random number from 1 to lim.
  • various techniques, devices, and architectures were described for implementing network coding within a source node of a network. It should be appreciated that these techniques, devices, and architectures may also be used to perform re-coding in, for example, intermediate or relay nodes within multi-hop networks. For example, instead of decoding packets at a relay node and then applying a new layer of network coding to the decoded information, a relay node may simply collect received data elements such as coded packets and code them together in a re-coding operation before relaying them. In the above description, data elements may denote segments or packets that may be coded or uncoded. Re-coding is particularly well suited for use in scenarios involving two links having different characteristics.
  • a re-coding operation is performed as follows.
  • the relay initiates a new encoder worker thread for each received packet having a TID that was previously unknown to the relay node.
  • the re-coding operation includes generating a new coded packet through linearly combining all the previously received packets of the same block through RLNC.
  • re-coding is repeated upon each new packet reception, or until a predetermined number of coded packets have been generated or an acknowledgement message has been received from the receiver node.
  • the recoding node Upon receiving an acknowledgement for any given block, the recoding node ceases transmitting coded packets for that block and sends an acknowledgement upstream to the next transmitting node.
  • one or more operational parameters used in a wireless reliability node, system, or architecture may be adapted based on channel-related information. For example, in some implementations, adjustments may be made to one or more of the following operational parameters in a source node based on current channel and/or environmental conditions: number of redundant coded packets, number of segments in a coding block, length of segments in a coding block, number of coded packets within a round, maximum number of rounds, and/or others.
  • the channel-related information may include channel state information generated by a channel estimation unit or other structure within the source node.
  • channel-related information or environmental information may be received from a remote node (e.g., as feedback from the destination node).
  • a source node may receive signal to interference and noise ratio (SINR) information as feedback from a destination node.
  • SINR signal to interference and noise ratio
  • the source node may then predict packet loss in the channel based on the SINR information and adjust the number of redundant coded packets that will be transmitted based thereon. Other parameters may be adjusted in a similar fashion.
  • SINR signal to interference and noise ratio
  • the techniques and structures described herein may be used to enhance data transfer reliability within a network or system.
  • Other techniques or mechanisms may also be available to enhance or improve reliability in a network.
  • the WiMAX standard adopted two retransmission mechanisms: namely, Automatic Repeat reQuest (ARQ) at the upper MAC layer, and Hybrid ARQ (HARQ) at the lower MAC and PHY layers.
  • ARQ Automatic Repeat reQuest
  • HARQ Hybrid ARQ
  • a transmitter will determine whether to retransmit information based on whether or not an acknowledgement (ACK) message or a negative acknowledgement (NACK) message is received in response to a transmission.
  • ACK acknowledgement
  • NACK negative acknowledgement
  • reliability mechanisms may also (or alternatively) be implemented within a network.
  • one or more reliability mechanisms may be provided within the physical layer. These mechanisms may include, for example, various modulation and coding schemes (MCSs) used in the physical layer, adaptive MCS techniques implemented in the physical layer (where the MCS scheme is varied based upon, for example, channel conditions), and/or other techniques.
  • MCSs modulation and coding schemes
  • adaptive MCS techniques implemented in the physical layer (where the MCS scheme is varied based upon, for example, channel conditions), and/or other techniques.
  • the network coding techniques described herein may be implemented with or without other reliability enhancing mechanisms.
  • the techniques and features described herein are used within a WiMAX network with both the ARQ and HARQ mechanisms turned off.
  • the described techniques may be used as the sole reliability enhancing mechanism above the physical layer.
  • the network coding techniques described herein may be implemented in a coordinated fashion with one or more reliability enhancing mechanisms at the physical layer. That is, the higher layer network coding techniques and the lower, physical layer mechanisms may be jointly optimized to generate an enhanced level of reliability.
  • a network coding architecture is provided that is capable of significantly decreasing packet loss compared to a network using HARQ or joint HARQ/ARQ mechanisms.
  • the HARQ/ARQ mechanisms may be viewed as a posteriori repetition code adaptation mechanisms, with rates determined by the number of reactive retransmissions for each unit of data. Since retransmissions are packet specific, the rate granularity is low, and the maximum rate is small.
  • network coding formulates unique packets into equivalent degrees of freedom, offering three advantages as a code adaptation scheme. First, coded packets can be sent a priori, in expectation of packet losses, thus reducing the effect of large round trip times in ARQ.
  • each newly received degree of freedom can make up for any previously lost packet, thus leading to rate adaptation in steps of 1/block-size, where a block is the group of data packets coded together.
  • HARQ/ARQ relies heavily on the acknowledgment process and is thus prone to ACK/NACK errors, delays, and losses, which in turn can result in inefficient retransmission of correctly received packets.
  • Network coding is less sensitive, since each transmitted coded packet is a new degree of freedom that can be useful in decoding.
  • the combination of proactive transmissions, rate adaptation with a finer granularity, and robustness to ACK losses can make network coding an efficient alternative reliability mechanism. It is also more in-line with the ever increasing speed and performance of a priori adaptive modulation and coding at the PHY layer.
  • techniques and structures described herein may be implemented in any of a variety of different devices or systems that may operate as, or be part of, a network node.
  • techniques or features may be embodied as instructions and/or data structures stored on non-transitory computer readable media that may be read and executed by a computing system.
  • Computer readable media may include, for example, floppy diskettes, hard disks, optical disks, compact disc read only memories (CD-ROMs), digital video disks (DVDs), Blu-ray disks, magneto-optical disks, read only memories (ROMs), random access memories (RAMs), erasable programmable ROMs (EPROMs), electrically erasable programmable ROMs (EEPROMs), magnetic or optical cards, flash memory, and/or other types of media suitable for storing electronic instructions or data.
  • CD-ROMs compact disc read only memories
  • DVDs digital video disks
  • Blu-ray disks magneto-optical disks
  • ROMs read only memories
  • RAMs random access memories
  • EPROMs erasable programmable ROMs
  • EEPROMs electrically erasable programmable ROMs
  • magnetic or optical cards flash memory, and/or other types of media suitable for storing electronic instructions or data.

Abstract

Network-coding-enabled reliability architectures and techniques are provided that are capable of enhancing data transfer reliability and efficiency in next generation wireless networks. In some embodiments, the techniques and architectures utilize a flexible thread-based coding approach to implement network coding. The techniques and architectures may also, or alternatively, utilize systematic intra-session random linear network coding as a packet erasure code to support reliable data transfer.

Description

CROSS REFERENCE TO RELATED APPLICATION
The present application is a divisional of U.S. patent application Ser. No. 13/968,566, filed Aug. 16, 2013, which claims the benefit of U.S. Provisional Patent Application No. 61/791,321, filed on Mar. 15, 2013, which are both incorporated by reference herein in their entireties.
GOVERNMENT RIGHTS
This invention was made with government support under Contract Nos. FA9550-09-1-0196 and FA9550-08-1-0159 awarded by the Air Force Office of Scientific Research, under Contract No. N66001-11-C-4003 awarded by the Space and Naval Warfare Systems Command, and under Contract No. HR0011-10-3-0002 awarded by the Defense Advanced Research Projects Agency. The government has certain rights in the invention.
FIELD
Subject matter disclosed herein relates generally to wireless communication and, more particularly, to techniques, systems, and devices for providing reliability within wireless systems.
BACKGROUND
The growing market for mobile devices is placing increasing demands on wireless networks. Indeed, at the end of 2009, the number of mobile phone subscribers exceeded 4.6 billion worldwide, and the global mobile data traffic has been predicted to double every year through 2014. As a result, a crucial challenge for next generation wireless networks is to cope with the rapid increase in multimedia traffic with minimal impact on equipment complexity.
The 4th generation (4G) wireless standards require stationary speeds of 1 giga bits-per-second (Gbps) and mobile speeds of 100 mega bits-per-second (Mbps), while the third generation (3G) standards only required stationary speeds of 2 Mbps and mobile speeds of 384 kilo bits-per-second (Kbps). That is, 4G requires 500 and 260 times faster speeds than 3G in the stationary and mobile cases, respectively. Thus, the need for low-cost performance-multiplying technologies is expected to become significant for wireless networks in the near future.
Techniques are therefore needed for providing fast, efficient, and reliable data transfer operations that are suitable for use in high traffic wireless networks and other systems.
SUMMARY
In accordance with one aspect of the concepts, systems, circuits, and techniques described herein, a method for use in providing reliable data transfer in a wireless network comprises: obtaining data elements associated with a data transfer operation between a first node and a remote second node; distributing the data elements among a plurality of encoder worker threads; and employing random linear network coding (RLNC) in the encoder worker threads to generate, for corresponding data elements, coded segments for transmission from the first node to the second node.
In one embodiment, the method further comprises: generating uncoded segments in at least one of the encoder worker threads for corresponding data elements; and transmitting the coded and uncoded segments from the first node to the second node for implementing systematic RLNC.
In one embodiment, obtaining data elements includes intercepting data elements at a predetermined point within a protocol stack.
In one embodiment, intercepting data elements includes intercepting Internet protocol (IP) packets at an IP layer of the protocol stack.
In one embodiment, the method further comprises transmitting the coded segments from the first node to the second node, wherein transmitting the coded segments includes injecting the coded segments into the IP layer of the protocol stack.
In one embodiment, distributing the data elements among a plurality of encoder worker threads includes buffering the data elements, generating a plurality of buffer lists that each includes one or more data elements, and distributing the buffer lists among the plurality of encoder worker threads.
In one embodiment, distributing the buffer lists includes distributing the buffer lists to the encoder worker threads in a round robin fashion.
In one embodiment, generating a plurality of buffer lists includes, for each successive buffer list: acquiring a new data element; adding the new data element to a current buffer list; and repeating acquiring and adding until a maximum buffer list processing time has been reached or the maximum buffer list size has been reached.
In one embodiment, the method further comprises: concatenating data elements distributed to a first encoder worker thread to form a first coding block; and segmenting the first coding block into segments having a first segment size, wherein segmenting includes padding the first coding block if a size of the first coding block is not a multiple of the first segment size; wherein employing random linear network coding includes: (a) generating random coefficients for the segments; and (b) linearly combining the segments using the random coefficients to generate a first coded segment in the first encoder worker thread.
In one embodiment, employing random linear network coding further includes repeating generating and linearly combining to generate other coded segments in the first encoder worker thread until a predetermined number of coded segments has been generated or an acknowledgement message has been received from a corresponding processing thread in the second node.
In one embodiment, the method further comprises determining, before segmenting the first coding block, a segment length and a number of segments to use in performing random linear network coding for the first coding block, wherein the determining of the segment length and is based at least in part on a length of the first coding block.
In one embodiment, the method further comprises adding a header to the first coded segment.
In one embodiment, the header includes a thread identifier (TID) to identify a thread associated with the first coded segment.
In one embodiment, the header includes a block identifier (BID) to identify a coding block associated with the first coded segment.
In one embodiment, the header includes a segment identifier (SID) to distinguish the first coded segment from other coded segments generated by the first encoder worker thread.
In one embodiment, the header includes an indication of a number of segments used to generate the first coded segment.
In one embodiment, the header includes an indication of the coding coefficients used to generate the first coded segment.
In one embodiment, the indication of the coding coefficients used to generate the coded segment includes a seed of a random number generator used to generate the coding coefficients.
In one embodiment, the method further comprises adjusting at least one of: a number of coded segments to transmit to the second node, a number of segments in a coding block, a length of segments in a coding block, a number of coded segments within a transmission round, and a maximum number of coded segment transmission rounds, based at least in part on channel-related information.
In one embodiment, the channel-related information includes at least one of: channel estimates generated within the first node and feedback information received from the second node.
In one embodiment, the encoder worker threads are implemented in the first node.
In one embodiment, the encoder worker threads are implemented at a location outside the first node.
In one embodiment, the first node is a relay node and obtaining data elements includes receiving coded packets at the relay node; and employing RLNC in the encoder worker threads includes re-coding the coded packets using RLNC.
In one embodiment, the method further comprises: initiating a new encoder worker thread at the relay node for each received packet having a thread identifier (TID) that was previously unknown to the relay node; performing re-coding among packets of the same block; repeating re-coding in the relay node's encoder worker thread within each block, upon each new packet reception, or until a predetermined number of coded packets has been generated or an acknowledgement message has been received from a corresponding processing thread in the second node; and ceasing transmission of coded packets for any given block and sending an acknowledgement upstream to the next transmitting node upon receiving an acknowledgement for the block.
In one embodiment, the method is performed in coordination with one or more physical layer reliability enhancement mechanisms.
In one embodiment, the first and second nodes are part of a wireless municipal area network.
In accordance with another aspect of the concepts, systems, circuits, and techniques described herein, a communication device comprises: a wireless transceiver; and one or more processors configured to: obtain data elements associated with a data transfer operation between the communication device and a remote node; and distribute the data elements among a plurality of encoder worker threads that are each configured to use random linear network coding (RLNC) to generate coded segments for corresponding data elements.
In one embodiment, the one or more processors are configured to: (a) cause encoded segments to be generated in at least one of the encoder worker threads for corresponding data elements; and transmit the coded and encoded segments to the destination node via the transceiver to implement systematic RLNC.
In one embodiment, the one or more processors are configured to obtain the data elements by intercepting the data elements at a predetermined point within a protocol stack of the communication device.
In one embodiment, the data elements are Internet protocol (IP) packets and the one or more processors include a netfilter to intercept IP packets at an IP layer of the protocol stack of the communication device.
In one embodiment, to generate a buffer list, the one or more processors are configured to: acquire a new data element; add the new data element to a current buffer list; and repeat the acquisition and addition of new data elements until a maximum buffer list processing time or a maximum buffer list size is reached.
In one embodiment, a first of the encoder worker threads is configured to: concatenate corresponding data elements to form a first coding block; segment the first coding block into segments having a first segment size, wherein segmenting includes padding the first coding block if a size of the coding block is not a multiple of the first segment size; generate random coefficients for the segments; and linearly combine the segments using the random coefficients to generate a first coded segment.
In one embodiment, the first encoder worker thread is configured to generate additional random coefficients for the segments and linearly combine the segments using the additional random coefficients to generate additional coded segments.
In one embodiment, the first encoder worker thread is configured to generate additional coded segments until a predetermined number of coded segments have been generated or an acknowledgement message is received from a corresponding processing thread in the destination node.
In one embodiment, the first encoder worker thread is configured to generate coded segments in rounds, wherein Nm coded segments are generated per round and a nominal delay of Tr exists between rounds.
In one embodiment, the first encoder worker thread is configured to not exceed a maximum number Nk of rounds.
In one embodiment, the first encoder worker thread is configured to determine, before segmenting the first coding block, a segment length and a number of segments to use for random linear network coding for the first coding block based at least in part on a length of the first coding block.
In accordance with a still another aspect of the concepts, systems, circuits, and techniques described herein, a method for use in providing reliable data transfer in a wireless network comprises: receiving coded segments from a remote wireless node, each coded segment being associated with a specific coding thread and being coded with a random linear network code (RLNC); reading thread identifiers within the received coded segments and directing the coded segments to corresponding decoder worker threads based thereon, each decoder worker thread having a corresponding encoder worker thread associated with the remote wireless node; and using the coded segments within the corresponding decoder worker threads to recover original data elements.
In one embodiment, the method further comprises: receiving uncoded segments from the remote wireless node, each uncoded segment being associated with a specific coding thread; and reading thread identifiers within the received uncoded segments and directing the uncoded segments to corresponding decoder worker threads based thereon; wherein using the coded segments within the corresponding decoder worker threads to recover original data elements includes using the coded segments as redundant information to the uncoded segments within the decoder worker threads to recover the original data elements using systematic RLNC.
In one embodiment, the uncoded segments are received before the corresponding coded segments for each decoder worker thread.
In one embodiment, the coded segments for each decoder worker thread are received in rounds, with Nm coded segments per round and a nominal delay of Tr between rounds.
In one embodiment, the method further comprises sending an acknowledgement (ACK) message from a decoder worker thread to a corresponding encoder worker thread associated with the remote wireless node in response to recovery of all original data elements associated with corresponding segments.
In one embodiment, using the coded segments within the corresponding decoder worker threads to recover original data elements includes performing a Gauss-Jordan elimination operation for each new coded segment.
In one embodiment, using the coded segments within the corresponding decoder worker threads to recover original packets comprises: recovering a corresponding coding block within a first decoder worker thread; removing padding from the coding block, if any, within the first decoder worker thread; and separating the coding block into original data elements.
In one embodiment, the method further comprises delivering the original data elements recovered by the decoder worker threads to a corresponding application.
In accordance with a further aspect of the concepts, systems, circuits, and techniques described herein, a communication device comprises: a wireless transceiver; and one or more processors to: receive coded segments from a remote wireless node, each coded segment being associated with a specific coding thread and being coded with a random linear network code (RLNC); read thread identifiers within the received coded segments and direct the coded segments to corresponding decoder worker threads based thereon, each decoder worker thread having a corresponding encoder worker thread that is associated with the remote wireless node; and use the coded segments within the corresponding decoder worker threads to recover original data elements.
In one embodiment, the one or more processors are configured to: receive uncoded segments from the remote wireless node, each uncoded segment being associated with a specific coding thread; read thread identifiers within the received uncoded segments and direct the uncoded segments to corresponding decoder worker threads based thereon; and use the coded segments as redundant information to the uncoded segments to recover the original data elements within the decoder worker threads, using systematic RLNC.
In one embodiment, each decoder worker thread is configured to send an acknowledgement (ACK) message to a corresponding encoder worker thread associated with the remote wireless node in response to recovery of all original data elements associated with the decoder worker thread.
In one embodiment, each decoder worker thread is configured to perform a Gauss-Jordan elimination operation when a new coded segment is received.
In accordance with a still further aspect of the concepts, systems, circuits, and techniques described herein, a method for use in a wireless system, comprises: transmitting systematic packets to a remote node; and transmitting one or more nonsystematic packets to the remote node, the non-systematic packets being encoded with a random linear network code (RLNC), the nonsystematic packets to serve as redundant information to the systematic packets for implementing systematic RLNC.
In one embodiment, transmitting one or more nonsystematic packets to the remote device includes transmitting the one or more nonsystematic packets to the remote device in successive rounds, each round having Nm packets.
In one embodiment, transmitting the one or more nonsystematic packets to the remote device in successive rounds includes transmitting the packets with a nominal inter-round delay of Tr.
In one embodiment, the method further comprises: before transmitting the systematic packets, generating the systematic packets, at least in part, within a plurality of encoder threads, each systematic packet including a thread identifier (TID) to identify a corresponding encoder thread; and before transmitting the nonsystematic packets, generating the nonsystematic packets, at least in part, within the plurality of encoder threads, each nonsystematic packet including a thread identifier (TID) to identify a corresponding encoder thread.
In one embodiment, generating the nonsystematic packets includes: obtaining a coding block within a first encoder thread; segmenting the coding block into a number of segments; generating first random coefficients for the segments; and linearly combining the segments using the first random coefficients to generate a first nonsystematic segment.
In accordance with yet another aspect of the concepts, systems, circuits, and techniques described herein, a method for use in a wireless system, comprises: obtaining a coding block; segmenting the coding block into a number of equal-length uncoded segments; generating one or more coded segments by applying random linear network coding (RLNC) to the number of equal-length segments; and transmitting the uncoded segments and the one or more coded segments to a remote node, the one or more coded segments for use as redundant information by the remote node to recover one or more of the uncoded segments should they be erased in the wireless channel.
BRIEF DESCRIPTION OF THE DRAWINGS
The foregoing features may be more fully understood from the following description of the drawings in which:
FIG. 1 is a diagram illustrating a wireless municipal area network (WMAN) that may incorporate features described herein;
FIG. 2 is a block diagram illustrating an example node architecture that may be used within a communication device or node in accordance with an embodiment;
FIG. 3 is a diagram illustrating a modified protocol stack that may be implemented within a node in accordance with an embodiment;
FIGS. 4 and 5 are block diagrams illustrating an encoder process and a decoder process, respectively, in accordance with embodiments;
FIG. 6 is a diagram illustrating an exemplary encoding process in accordance with an embodiment;
FIG. 7 is a diagram illustrating an NC packet header format that may be used in accordance with an embodiment; and
FIG. 8 is a diagram illustrating an ACK packet format that may be used in accordance with an embodiment.
DETAILED DESCRIPTION
The subject matter described herein relates to techniques, devices, systems, circuits, and concepts for use in implementing network coding (or other similar coding techniques) within wireless systems in a manner that can enhance data transfer reliability and efficiency. The techniques, devices, systems, circuits, and concepts may be used in any of a wide variety of different types of wireless systems and networks. In some implementations, for example, the techniques are used within wireless municipal area networks (WMANs), such as those that follow the IEEE 802.16 family of wireless networking standards or the Long Term Evolution (LTE) family of standards. It should be appreciated, however, that many other applications also exist.
In some embodiments described herein, network-coding-enabled reliability architectures are provided for next generation wireless networks. These network coding (NC) architectures may, in some implementations, use a flexible thread-based coding design. In addition, or alternatively, these architectures may utilize systematic intra-session random linear network coding (RLNC) as a packet erasure code to support fast and reliable information transfer between wireless nodes. The systematic RLNC coding and decoding may be performed within, for example, a number of coding/decoding threads that span the channel between a transmitter and a receiver. In at least one implementation, an architecture is provided that is able to decrease packet loss from around 11-32% to nearly 0% with respect to a network implementing HARQ and joint HARQ/A mechanisms. Thus, the architecture is capable of achieving an increase in throughput by a factor of up to 5.9 and a reduction in end-to-end file transfer delay by a factor of up to 5.5. In some implementations, the protocols and architectures described herein may reduce or eliminate the need to use other reliability enhancement techniques within a system or network (e.g., ARQ and/or joint HARQ/ARQ schemes in the PHY/MAC layers, etc.).
In general, network coding may be applied across the OSI model. However, some layers may be better choices than others in different applications. For example, additional performance gains at the physical layer may be onerous, since existing coding schemes have achieved near-optimal efficiency levels in this layer. In contrast, network coding may yield important gains when integrated within the transport and MAC sub-layers. In the context of WMANs, transport and MAC functions are performed at the convergence and MAC sub-layers. The current context for higher Internet layers (i.e., TCP/IP) is extremely dynamic. This is essentially due to the sensitivity of TCP's congestion control to the variety of possible transmission environments (e.g., wireless, satellite, optical long-haul, etc.), leading to the emergence of a number of alternative competing transport protocols and enhancements. This trend is compounded by the emergence of IPv6. Network coding may therefore benefit from the continuity offered by industrial standards such as IEEE 802.16 (WiMAX) and LTE. In the context of WMANs, the application of network coding at the convergence sub-layer would serve all supported traffic and would be independent of likely technology and protocol shifts at higher layers. Therefore, in some embodiments, network coding is applied at the convergence sub-layer (or at the edge between the IP layer and the convergence sub-layer), although other locations within a protocol stack are used in other embodiments.
FIG. 1 is a diagram illustrating a wireless municipal area network (WMAN) 10 that may incorporate features described herein in one or more embodiments. The WMAN 10 may operate in accordance with one or more wireless networking standards such as, for example, the IEEE 802.16 wireless networking standard, the LTE advanced wireless standard, and/or others. As illustrated, the WMAN 10 may include one or more wireless base stations 12, 14, 16 to provide communication services to one or more wireless subscribers in a corresponding wireless coverage area. The base stations 12, 14, 16 may, for example, provide last mile services for one or more homes 18, 20 in the coverage area. The homes 18, 20 may each include internal or external customer premises equipment (CPE) to support wireless communication with one of more of the base stations 12, 14, 16. In some cases, the homes 18, 20 may include a separate internal wireless local area network (e.g., an IEEE 802.11 (WiFi) network or the like). Alternatively, one or more of the homes 18, 20 may include one or more user devices (e.g., a laptop, a smart phone, a desktop, etc.) that are capable of communicating directly with a base station of the WMAN 10.
The base stations 12, 14, 16 of WMAN 10 may also communicate with one or more mobile devices 22 or other mobile platforms within the coverage area. Likewise, the base stations 12, 14, 16 may communicate with one or more subscribers within an office building 24 or other structure. The base stations 12, 14, 16 may also be capable of communicating with one or more wireless hot spots 26 in a surrounding environment to provide access to the network for users within the hotspot coverage region. As is apparent, the number of different subscriber scenarios that are possible within WMAN 10 and other wireless MANs is large.
In addition to communicating with subscriber equipment, the base stations 12, 14, 16 may also be capable of directly communicating with one another via one or more direct line of sight (LOS) backhaul links 28, 30, 32 between base stations. Further, in some systems, the base stations 12, 14, 16 may also be coupled to one or more large external networks (e.g., the Internet 38, a public switched telephone network (PSTN), etc.) by one or more fixed back haul links 34, 36 or other links to provide corresponding services to subscribers.
As will be described in greater detail, in some embodiments, the techniques and features described herein may be used to enhance data transfer reliability and/or data transfer efficiency between nodes in a wireless MAN, such as WMAN 10 of FIG. 1. For example, with reference to FIG. 1, features described herein may be implemented within the base stations 12, 14, 16 of WMAN 10 and also within the various types of subscriber equipment that communicate with the base stations 12, 14, 16. As will be appreciated, the techniques and features described herein may also be implemented in other types of wireless networks and systems. The features and techniques described herein may be used in both single hop links and multi-hop links within a network.
FIG. 2 is a block diagram illustrating an example node architecture 50 that may be used within a communication device or node in accordance with an embodiment. The architecture 50 may be used within, for example, a base station or subscriber equipment associated with a WMAN (e.g., WMAN 10 of FIG. 1, etc.) or node equipment within other wireless networks or systems. As illustrated, the node architecture 5 d 0 may include: one or more digital processors 52, a memory 54, a wireless transceiver 56, and a user interface 58. A bus 62 and/or other structure(s) may be provided for establishing interconnections between the various components of node architecture 50. Digital processor(s) 52 may include one or more digital processing devices that are capable of executing programs or procedures to provide functions and/or services for a user. Memory 54 may include one or more digital data storage systems, devices, and/or components that may be used to store data and/or programs for other elements of node architecture 50. Wireless transceiver 56 may include any type of transceiver that is capable of supporting wireless communication with one or more remote wireless entities. User interface 58 may include any type of device, component, or subsystem for providing an interface between a user and the corresponding node equipment.
Digital processor(s) 52 may include, for example, one or more general purpose microprocessors, digital signals processors (DSPs), controllers, microcontrollers, application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), programmable logic arrays (PLAs), programmable logic devices (PLDs), reduced instruction set computers (RISCs), and/or other processing devices or systems, including combinations of the above. Digital processor(s) 52 may be used to, for example, execute an operating system for a corresponding node. Digital processor(s) 52 may also be used to, for example, execute one or more application programs for a node. In addition, digital processor(s) 52 may be used to implement, either partially or fully, one or more of the communications related processes or techniques described herein in some implementations.
As described above, wireless transceiver 66 may include any type of transceiver that is capable of supporting wireless communication with one or more remote wireless entities. Wireless transceiver 56 may include one or more digital processors for performing corresponding functions. Wireless transceiver 56 may be coupled to one or more antennas 64 and/or other transducers, to facilitate the transmission and/or reception of communication signals. In some embodiments, wireless transceiver 56 may be used to implement, either partially or fully, one or more of the communications related processes or techniques described herein. In some implementations, architecture 50 may also include one or more wired transceivers (not shown).
In various implementations, wireless transceiver 56 may be configured in accordance with one or more wireless networking standards and/or wireless cellular standards. Multiple wireless transceivers may be used in some implementations to support operation in different networks or systems in a surrounding environment or with different wireless networking and/or cellular standards. Wireless transceiver 56 may, in some implementations, be capable of communicating with peer devices in a peer-to-peer, ad-hoc, or wireless mesh network arrangement. In addition, in some implementations, wireless transceiver 56 may be capable of communicating with a base station or access point of an infrastructure-type wireless communication scenario. In some instances, wireless transceiver 56 may be a base station transceiver that is capable of supporting multiple simultaneous wireless links with different subscriber equipment.
Memory 54 may include any type of system, device, or component, or combination thereof, that is capable of storing digital information (e.g., digital data, computer executable instructions and/or programs, etc.) for access by a processing device or other component. This may include, for example, semiconductor memories, magnetic data storage devices, disc based storage devices, optical storage devices, read only memories (ROMs), random access memories (RAMs), non-volatile memories, flash memories, USB drives, compact disc read only memories (CD-ROMs), DVDs, Blu-Ray disks, magneto-optical disks, erasable programmable ROMs (EPROMs), electrically erasable programmable ROMs (EEPROMs), magnetic or optical cards, and/or other digital storage suitable for storing electronic instructions and/or data.
It should be appreciated that the node architecture 50 of FIG. 2 represents one possible example of a node architecture that may be used in an implementation. Other architectures may alternatively be used. As used herein, the terms “node device,” “node,” “communication device,” and similar terms are used to describe any type of digital electronic device or system that includes some form of communication capability. This may include, for example, a laptop, desktop, notebook, or tablet computer; a personal digital assistant (PDA); a personal communication service (PCS) device; a personal navigation assistant (PNA); a cellular telephone, smart phone, or other handheld wireless communication device; a pager; a wireless sensor device; a satellite communication device; a media player having communication capability; a digital storage device with communication capability; CPE equipment; a set top box; wireless network interface cards (NICs) and other network interface structures; a wireless base station or wireless access point; an integrated circuit or system on chip (SOC) having communication functionality; and/or other devices, systems, or equipment. It should be appreciated that all or part of the various devices, systems, processes, or methods described herein may be implemented using any combination of hardware, firmware, and/or software.
FIG. 3 is a diagram illustrating a modified protocol stack 70 that may be implemented within a node to support a network coding based reliability architecture in accordance with an embodiment. If the node architecture of FIG. 2 is used for a node, protocol stack 70 may be implemented within, for example, the processor(s) 52 and/or the wireless transceiver 56 of the node. As shown in FIG. 3, the stack 70 may include, for example: an application layer 72, a transport layer 74, an internet protocol (IP) layer 76, a convergence sublayer 78, an upper medium access control (MAC) sublayer 80, a lower MAC sublayer 82, and a physical layer 84. The functions of these various layers are well known in the art and, therefore, will not be described herein. The lower layers 86 of the protocol stack 70 (e.g., the convergence sublayer 78, the upper and lower MAC sublayers 80, 82, and the physical layer 84) may be configured in accordance with a particular wireless networking standard (e.g., WiMAX, etc.). In at least one embodiment, modifications are made to protocol stack 70 to incorporate network coding into a corresponding wireless network or system. As will be described in greater detail, in some implementations, network coding may be added to a network in a manner that acts as a packet erasure code to support data transfer reliability and data transfer efficiency in the network.
In the embodiment of FIG. 3, network coding is applied at the IP layer 76 of the protocol stack 70. A Linux packet filtering framework (netfilter) 88 or other functionality may be used to intercept IP packets that are flowing downward through the stack 70 for use in applying network coding. As used herein, the terms “original packets” and “native packets” will be used to describe packets just before network coding is applied (i.e., the packets that will eventually be extracted in the receiver). The IP packets may be intercepted by netfilter 88 near, for example, the boundary between the IP layer 76 and the convergence sublayer 78 in one approach. A network coding module 90 may be provided to process the intercepted packets to apply network coding. Processed packets, which may include both coded packets and uncoded packets, may then be injected back into protocol stack 70 by the network coding module 90 and allowed to flow downward toward physical layer 84 for transmission to a remote receiver. Similar processing may be performed in the reverse direction in the receiver device to recover the original data packets.
In some embodiments, the network coding module 90 may be implemented in user-space. The module 90 may act as an encoder at a source node (e.g., a base station, etc.) and as a decoder at a destination node (e.g., a subscriber station, etc.). At a source node, a source application located in user-space may send outgoing IP packets to an operating system (OS) where the transport and IP layers are run. The netfilter 88 (or other packet interception functionality) can be used to intercept the IP packets and send them to the network coding module 90 in user-space. The network coding module 90 then returns coded IP packets or segments to the OS. Coded IP packets then traverse the WiMAX stack 86, passing through the convergence sublayer (CS) 78, the upper and lower MAC sublayers 80, 82, and the PHY layer 84. At the destination node, a netfilter may intercept the incoming coded IP packets handed from WiMAX to the OS and deliver them to a corresponding network coding module in user space. The network coding module of the destination node may then send decoded packets (or original data packets) to the corresponding OS, which forwards the packets to the destination application. When using this NO-enhanced architecture, the ARQ and HARQ run from the upper and lower MAC sublayers, respectively, may be switched off.
As described above, in some embodiments, the network coding modules 90 within source and destination nodes may use a flexible thread-based design, where parallel encoding-decoding instances are generated to process packets concurrently. In addition, in some implementations, network coding (and, more specifically, random linear network coding or RLNC) is implemented as a systematic packet erasure code in the network where uncoded packets are transmitted to a destination node along with coded packets. The coded packets then serve as redundant information that may be used to recover original packets in the destination node. This technique may be referred to as systematic RNLC. In the discussion below, an example embodiment is described that uses both threading and systematic RLNC.
Although shown in FIG. 3 as being applied at the IP layer 76, it should be appreciated that the same technique of intercepting packets, applying network coding, and then re-injecting coded packets may be applied at other locations in a stack in other implementations (e.g., the convergence sub-layer 78, the upper or lower MAC layer 80, 82, etc.). Also, as described above, in some implementations, the network coding module 90 is implemented in user-space (e.g., as part of application layer 72) within the node. In other implementations, however, the network coding module 90 (or the functions thereof) may be implemented in other layers or locations in a network, either inside or outside the original node. For example, in one exemplary implementation, the network coding module 90 is implemented within the user space of another node in the network. In such a implementation, the netfilter 88 may forward the extracted packets to the other node through, for example, a network link or other communication path. The coded packets may then be returned to the first node for re-injection into the stack 70. In addition, in some implementations, the application of network coding may be made part of a corresponding protocol stack and, therefore, would not require an interception and re-injection of packets.
In the embodiments described above, a netfilter 88 is used to intercept IP packets at an IP layer 76 of a protocol stack. The term netfilter is commonly associated with the IP layer and filtration of IP packets. Therefore. In embodiments where the above-described techniques are implemented at other layers of a stack, other types of filters or data element interception functions or devices may be used to intercept data elements for coding.
FIGS. 4 and 5 are block diagrams illustrating an encoder process 100 and a decoder process 200, respectively, in accordance with an embodiment. The encoder process 100 may be used, for example, within a source node (or relay node) and the decoder process 200 may be used within a corresponding destination node during a data transfer operation. As shown in FIG. 4, the encoder process 100 may include an encoder master thread 102 and a plurality of encoder worker threads 104 a, . . . , 104 n. Likewise, with reference to FIG. 5, the decoder process 200 may include a decoder master thread 202 and a plurality of decoder worker threads 204 a, . . . , 204 n. Each of the encoder worker threads 104 a, . . . , 104 n in the source node may correspond to one of the decoder worker threads 204 a, . . . , 204 n in the destination node. Each encoder-decoder thread pair may operate independently from the other pairs and may be identified by a unique thread ID (TID). In some implementations, different worker threads being executed within a node may be processed concurrently within different processors or processor cores associated with the node. In other implementations, multiple worker threads may be executed within a single processor in a node using, for example, time division multiplexing or a similar technique. In still other embodiments, multiple processor cores that each execute multiple worker threads may be used within a node.
The encoder master thread 102 load-balances the encoder worker threads 104 a, . . . , 104 n by distributing incoming data elements, packets in this embodiment, to the threads 104 a, . . . , 104 n in a predetermined manner. In at least one embodiment, the master thread 102 distributes the packets in a round-robin fashion, although other techniques may alternatively be used. The encoder worker threads 104 a, . . . , 104 n may apply network coding to packets distributed to them to generate coded packets. As will be described in greater detail, the unique thread ID associated with each coded packet may be inserted into the coded packet before it is transmitted to the destination node. At the destination node, the decoder master thread 202 directs each incoming coded IP packet to a corresponding decoder worker thread 204 a, . . . , 204 n according to its TID. The decoder worker thread may then process the packets it receives to recover the original data packets. The original data packets may then be delivered to the appropriate application.
FIG. 6 is a diagram illustrating an exemplary encoding process 300 in accordance with an embodiment. The process 300 may be used within, for example, a network coding module associated with a source node in a wireless network. Incoming IP packets may first be buffered (302) and stored successively as a “buffer list” in a master thread associated with a network coding module. The master thread may use a predetermined criterion to determine when a buffer list is ready to handed off to a next available encoder worker thread. In at least one embodiment, the following process may be used to generate buffer lists and determine when they are to be handed off. A timer T may first be initialized. The length Lb of a new buffer list may next be initialized to zero. The length of each new packet received may then be added to Lb. This may be repeated for each new packet until T reaches Ti or Lb reaches Lt, where Ti is the maximum time to develop the buffer list and Lt is the maximum length of the buffer list. If adding a new packet would result in Lb exceeding Lt, the new packet will not be added and will be held for the next buffer list. The current buffer list is then delivered to the next worker thread. The process is then repeated for the next buffer list. This process may be expressed in pseudocode as follows:
1:  Initialize timer T
2:  Initialize length Lb of buffer list
3:  while T < Ti and Lb < Lt do
4:    Receive new packet with length Lp
5:    Lb ← Lb + Lp
6:  end while
7:  Transfer buffer list to next worker thread and repeat.
Either before or after the present buffer list is transferred to an encoder worker thread, the buffer list may be concatenated into a coding block (304). Next, padding may be added to the coding block (306) to generate a padded coding block that is a multiple of a desired coding segment size. As used herein, a “segment” is the basic unit of operation within the network coding module. In at least one embodiment, the well-known ANSI X.923 byte padding algorithm is used to perform padding. In ANSI X.923, bytes filled with zeros are appended to the data and the last byte stores the number of padded bytes. The coding block may next be divided into equal sized segments (308) having the desired segment size. Random linear network coding (RLNC) may then be used to generate one or more coded segments during a coding process (310), A coded segment may be generated by first generating random coefficients (ai) for each of the segments, multiplying each segment by the corresponding coefficient, and then summing the products together as follows:
coded segment = i = 1 N s a i · segment
A different coded segment may be generated by generating and using new random coefficients.
After coded segments have been generated, the coded segments may be encapsulated (312) by adding NC headers to form coded IP packets. The coded IP packets may then be transmitted to the destination node via the wireless channel. As will be described in greater detail, in some embodiments, all of the segments associated with a particular coding block will be the same size, but the segment size will be avowed to change from coding block to coding block.
In at least one embodiment, the number of segments Ns and the segment length Ls that are used for a particular coding block are calculated by the corresponding worker thread (or the master thread) based, at least on part, on the length Lb, of the coding block, the maximum length Lm of the segments, and the preferred number Nr of segments. One technique for calculating these values will now be described. As shown below, using this technique, the calculation of the number of segments Ns and the segment length Ls and the addition of padding (e.g., padding 306 of FIG. 6) are performed as together as part of a common process. The current length Lb of the coding block may first be incremented by 1 byte to serve as a padding boundary. An initial segment length may then be set as Ls=Lb/Nr. An initial value of Ns may then be set as Nr. The value of Ns may then be repeatedly incremented and the value of Ls may be repeatedly calculated as
L b N s
until Ls is less than or equal to the maximum segment length Lm. This process may be expressed in pseudocode as follows:
1: Lb ← Lb + 1
2: L b L b N r
3: Ns ← Nr
4: while Ls > Lm do
5:  Ns ← Ns + 1
6: L s L b N s
7: end while
As described previously, in some embodiments, random linear network coding (RLNC) is used as a systematic packet erasure code within a wireless network. This will be referred to herein as systematic RLNC. For example, in one approach, after a coding block has been segmented, some or all of the segments may be transmitted to the destination node in an uncoded form. Coded segments may then be transmitted for use as redundant information during subsequent data decoding, in this manner, any uncoded packets that are lost (i.e., erased) in the channel may be recovered in the receiver.
One example technique for implementing systematic RLNC in a wireless network will now be described. Ns uncoded segments may first be generated and sent to the destination node, followed by one or more coded segments. The uncoded segments may each be generated by using a coefficient of 1 for a desired segment and a coefficient of zero for all other segments. The coded segments may be generated using randomly generated coefficients as described previously. The uncoded segments will be referred to herein as “systematic segments” and the coded segments as “nonsystematic segments.” In one approach, the nonsystematic segments will be transmitted in a series of rounds, with Nm nonsystematic segments being transmitted in each round. A maximum number of rounds Nk may be specified in some implementations. An inter-round pause of duration Tr may be implemented between rounds to allow other threads to process their blocks. When a decoder worker thread has successfully decoded all original packets, it may send an acknowledgement (ACK) message to the corresponding encoder worker thread.
In some embodiments, when the ACK message is received by the encoder worker thread, the thread will cease to generate and transmit further nonsystematic segments. The encoder worker thread may also cease to generate and transmit nonsystematic segments after Nk rounds have been performed, even if no ACK has been received. This technique protects against inefficiencies related to ACK errors or losses. In at least one embodiment, systematic RLNC is implemented using a Galois Field of size 28. This field size allows each coefficient to be expressed as a single byte. However, other field sizes may be used in other implementations. The above-described process for implementing systematic RLNC may be expressed in pseudocode as follows:
1:  for x = 1 → Ns do >generate systematic code first
2:    generate an uncoded segment.
3:  end for
4:  while ACK has not yet been received do
5:    for y = 1 → Nk do
6:      for z = 1 → Nm do
7:        generate a coded segment
8:      end for
9:      wait for duration Tr
10: >terminate if an ACK is received
11:   end for
12:  end while
As described above, coded segments generated in a source node may be encapsulated into coded IP packets before transmission. During the encapsulation procedure, an NC header is added to the coded segment. FIG. 7 is a diagram illustrating an NC header format 400 that may be used in accordance with an embodiment. As shown, the NC header format 400 may include: an IP header field 402, a thread ID (TID) field 404, a block ID (BID) field 406, a segment ID (SID) field 408, a filed 412 for the number Ns of segments in the coding block, and a coding coefficients field 414. Other NC header formats may alternatively be used. Segment length Ls is not included because it can be derived using the packet length field in the IP header 402. The TID identifies which thread the packet belongs to. The BID identifies which block the packet belongs to within a given thread. For each thread, the BID may be incremented for every new coded block. The SID keeps track of the individual segments generated for a particular block (i.e., the SID is incremented for each new coded segment that is generated). Ns and the coding coefficients are used during the decoding process.
As described above, once a coding block has been decoded (or a decision is made that enough coded packets or degrees of freedom have been received to finish decoding), a decoder worker thread may send an ACK message back to the corresponding encoder worker thread (i.e., the encoder thread having the same TID). FIG. 8 is a diagram illustrating an ACK packet format 450 that may be used in accordance with an embodiment. As shown, the ACK packet 450 may include an IP header 452, a TID 454, and a BID 456. Other ACK formats may alternatively be used.
The decoding process used at a decoder worker thread is essentially a reverse of the encoding process used in the corresponding encoder worker thread (see, e.g., FIG. 6). First, de-capsulation may be performed to strip the NC header from a received coded segment. Each received coded segment may then be used to progressively decode using Gauss-Jordan elimination or a similar technique. Once a coding block has been decoded and reassembled, it may be unpadded and the original encoded IP packets may be separated. If a packet with a different BID from the current block arrives at a decoder worker thread before a current block is decoded, the decoder may drop the current block and start decoding the new block in some embodiments. An example implementation of a Gauss-Jordan elimination process is shown below in pseudocode. In the process illustrated below, M represents the current coefficient matrix of incoming coded packets, M[r+1] refers to row r+1 of M, and rank(M) is the rank of M.
1:  r ← 0
2:  MN s ×(N s +L s ) ← 0
3:  for each incoming coded IP packet Np do
4:     M[r + 1] ← coefficients and segment of Np
5:     Gauss-Jordan elimination on (r + 1) × (Ns + Ls) of M
6:     if rank(M) = r + 1 then
7:        r ← r + 1
8:        if r = Ns then
9:           done decoding
10:        end if
11:     end if
12:  end for

Other techniques for decoding received segments may be used in other embodiments.
When using the above-described techniques, the code rate (CR) may be defined as the ratio of the number Ns of segments to the sum of Ns and the number of redundancy segments:
CR N s N s + N k + N m , ( 1 )
where Nk is the number of redundancy rounds, and Nm, is the number of redundancy segments transmitted per round. Note that this is an upper bound on the effective code rate, as an ACK may interrupt before Nk rounds of Nm redundancy segments have been transmitted.
In embodiments where systematic RLNC is used, blocks that cannot be decoded can still contain useful information, as some uncoded packets may be extracted. To determine where an IP packet starts in a segment, an additional two-byte field may be provided in the NC header called the stark field. The start field allows IP packet defragmentation at the decoder in the event of unsuccessful block decoding.
Assuming one byte per coefficient, the total NC header length may be Lh+Ns, where Lh, is the length of the NC header without coding coefficients. The NC header overhead ratio would therefore be
L h + N s L s ,
where Ls is the segment length. If Ns is 120, Lh is 24, and Ls is 1400, the overhead would be 10.29%. This overhead can be reduced in three ways: 1) by increasing Lm, the maximum length of segments, thus increasing Ls, 2) by reducing Ns, and 3) by sending a seed of a pseudo-random number generator instead of a coefficient vector. Using random seeds, the overhead becomes
L h + q L s ,
where q is the size of the seed value, typically 4 bytes. Using the previously assumed values of Lh and Ls, the overhead is reduced to 2% using this approach.
In order to support random seeds, new fields may be added to the NC header. For example, a type field and either a segment number (segn) or seed.type field may be used to identify whether a packet is coded or uncoded. The parameter segn may be used in a systematic packet to specify the segment number. The seed field may be used in a coded packet as a random seed. A simple pseudo-random number generator may be used to generate the random seed. One such generator, known as Gerhard's generator, is described in pseudo code below. Given a seed a, the generator generates a pseudo-random number from 1 to lim.
1:   a ← 1
2:   function RAND(lim)
3:      a ← (a × 32719 + 3) mod 32749
4:      return (a mod lim) + 1
5:   end function

where x mod y is the modulo operator. Other random number generators may alternatively be used.
In embodiments described above, various techniques, devices, and architectures were described for implementing network coding within a source node of a network. It should be appreciated that these techniques, devices, and architectures may also be used to perform re-coding in, for example, intermediate or relay nodes within multi-hop networks. For example, instead of decoding packets at a relay node and then applying a new layer of network coding to the decoded information, a relay node may simply collect received data elements such as coded packets and code them together in a re-coding operation before relaying them. In the above description, data elements may denote segments or packets that may be coded or uncoded. Re-coding is particularly well suited for use in scenarios involving two links having different characteristics.
In some embodiments, a re-coding operation is performed as follows. The relay initiates a new encoder worker thread for each received packet having a TID that was previously unknown to the relay node. The re-coding operation includes generating a new coded packet through linearly combining all the previously received packets of the same block through RLNC. Within each block, re-coding is repeated upon each new packet reception, or until a predetermined number of coded packets have been generated or an acknowledgement message has been received from the receiver node. Upon receiving an acknowledgement for any given block, the recoding node ceases transmitting coded packets for that block and sends an acknowledgement upstream to the next transmitting node.
In some embodiments, one or more operational parameters used in a wireless reliability node, system, or architecture may be adapted based on channel-related information. For example, in some implementations, adjustments may be made to one or more of the following operational parameters in a source node based on current channel and/or environmental conditions: number of redundant coded packets, number of segments in a coding block, length of segments in a coding block, number of coded packets within a round, maximum number of rounds, and/or others. In at least one implementation, the channel-related information may include channel state information generated by a channel estimation unit or other structure within the source node. In other implementations, channel-related information or environmental information may be received from a remote node (e.g., as feedback from the destination node). In one exemplary implementation, for example, a source node may receive signal to interference and noise ratio (SINR) information as feedback from a destination node. The source node may then predict packet loss in the channel based on the SINR information and adjust the number of redundant coded packets that will be transmitted based thereon. Other parameters may be adjusted in a similar fashion.
As described previously, the techniques and structures described herein may be used to enhance data transfer reliability within a network or system. Other techniques or mechanisms may also be available to enhance or improve reliability in a network. For example, to alleviate the impact of wireless errors on network performance, the WiMAX standard adopted two retransmission mechanisms: namely, Automatic Repeat reQuest (ARQ) at the upper MAC layer, and Hybrid ARQ (HARQ) at the lower MAC and PHY layers. In both the ARQ and the HARQ mechanisms, a transmitter will determine whether to retransmit information based on whether or not an acknowledgement (ACK) message or a negative acknowledgement (NACK) message is received in response to a transmission. Using the ARQ mechanism, block retransmissions are processed independently. Using HARQ, Forward Error Correction (FEC) and ARQ are combined and subsequent retransmissions of a given information block are jointly processed with the original block. In WiMAX, both the HARQ and ARQ features can be enabled at the same time, leading to joint HARQ/ARQ operation. As will be appreciated, this reliance upon the use of ACK and/or NACK messages can increase overhead in the network.
Other reliability enhancing mechanisms may also (or alternatively) be implemented within a network. For example, in some networks, one or more reliability mechanisms may be provided within the physical layer. These mechanisms may include, for example, various modulation and coding schemes (MCSs) used in the physical layer, adaptive MCS techniques implemented in the physical layer (where the MCS scheme is varied based upon, for example, channel conditions), and/or other techniques.
The network coding techniques described herein may be implemented with or without other reliability enhancing mechanisms. For example, in some implementations, the techniques and features described herein are used within a WiMAX network with both the ARQ and HARQ mechanisms turned off. In fact, in some implementations, the described techniques may be used as the sole reliability enhancing mechanism above the physical layer. In some embodiments, the network coding techniques described herein may be implemented in a coordinated fashion with one or more reliability enhancing mechanisms at the physical layer. That is, the higher layer network coding techniques and the lower, physical layer mechanisms may be jointly optimized to generate an enhanced level of reliability.
As described above, in at least one implementation, a network coding architecture is provided that is capable of significantly decreasing packet loss compared to a network using HARQ or joint HARQ/ARQ mechanisms. There are many possible reasons for this significant improvement. For example, in one sense, the HARQ/ARQ mechanisms may be viewed as a posteriori repetition code adaptation mechanisms, with rates determined by the number of reactive retransmissions for each unit of data. Since retransmissions are packet specific, the rate granularity is low, and the maximum rate is small. By comparison, network coding formulates unique packets into equivalent degrees of freedom, offering three advantages as a code adaptation scheme. First, coded packets can be sent a priori, in expectation of packet losses, thus reducing the effect of large round trip times in ARQ. Second, each newly received degree of freedom can make up for any previously lost packet, thus leading to rate adaptation in steps of 1/block-size, where a block is the group of data packets coded together. Third, HARQ/ARQ relies heavily on the acknowledgment process and is thus prone to ACK/NACK errors, delays, and losses, which in turn can result in inefficient retransmission of correctly received packets. Network coding is less sensitive, since each transmitted coded packet is a new degree of freedom that can be useful in decoding. The combination of proactive transmissions, rate adaptation with a finer granularity, and robustness to ACK losses can make network coding an efficient alternative reliability mechanism. It is also more in-line with the ever increasing speed and performance of a priori adaptive modulation and coding at the PHY layer.
The techniques and structures described herein may be implemented in any of a variety of different devices or systems that may operate as, or be part of, a network node. In some implementations, techniques or features may be embodied as instructions and/or data structures stored on non-transitory computer readable media that may be read and executed by a computing system. Computer readable media may include, for example, floppy diskettes, hard disks, optical disks, compact disc read only memories (CD-ROMs), digital video disks (DVDs), Blu-ray disks, magneto-optical disks, read only memories (ROMs), random access memories (RAMs), erasable programmable ROMs (EPROMs), electrically erasable programmable ROMs (EEPROMs), magnetic or optical cards, flash memory, and/or other types of media suitable for storing electronic instructions or data.
Having described exemplary embodiments of the invention, it will now become apparent to one of ordinary skill in the art that other embodiments incorporating their concepts may also be used. The embodiments contained herein should not be limited to disclosed embodiments but rather should be limited only by the spirit and scope of the appended claims. All publications and references cited herein are expressly incorporated herein by reference in their entirety.

Claims (16)

What is claimed is:
1. A method for use in providing reliable data transfer in a wireless network, the method comprising:
receiving coded segments from a remote wireless node, each coded segment being associated with a specific coding thread and being coded with a random linear network code (RLNC);
reading thread identifiers within the received coded segments and directing the coded segments to corresponding decoder worker threads based thereon, each decoder worker thread having a corresponding encoder worker thread associated with the remote wireless node, wherein the coded segments for each decoder worker thread are received in rounds, with Nm coded segments per round and a nominal delay of Tr between rounds;
using the coded segments within the corresponding decoder worker threads to recover original data elements;
receiving uncoded segments from the remote wireless node, each uncoded segment being associated with a specific coding thread, wherein the uncoded segments are received before the corresponding coded segments for each decoder worker thread;
reading thread identifiers within the received uncoded segments and directing the uncoded segments to corresponding decoder worker threads based thereon;
wherein using the coded segments within the corresponding decoder worker threads to recover original data elements includes using the coded segments as redundant information to the uncoded segments within the decoder worker threads to recover the original data elements using systematic RLNC; and
sending an acknowledgement (ACK) message from a decoder worker thread to a corresponding encoder worker thread associated with the remote wireless node in response to recovery of all original data elements associated with corresponding segments.
2. The method of claim 1, wherein:
using the coded segments within the corresponding decoder worker threads to recover original data elements includes performing a Gauss-Jordan elimination operation for each new coded segment.
3. The method of claim 1, wherein using the coded segments within the corresponding decoder worker threads to recover original data elements comprises:
recovering a corresponding coding block within a first decoder worker thread;
removing padding from the coding block, if any, within the first decoder worker thread; and
separating the coding block into original data elements.
4. The method of claim 1, further comprising:
delivering the original data elements recovered by the decoder worker threads to a corresponding application.
5. A communication device comprising:
a wireless transceiver; and
one or more processors configured to:
receive coded segments from a remote wireless node, via said wireless transceiver, each coded segment being associated with a specific coding thread and being coded with a random linear network code (RLNC);
read thread identifiers within the received coded segments and direct the coded segments to corresponding decoder worker threads based thereon, each decoder worker thread having a corresponding encoder worker thread that is associated with the remote wireless node; and
use the coded segments within the corresponding decoder worker threads to recover original data elements.
6. The communication device of claim 5, wherein:
the one or more processors are configured to:
receive uncoded segments from the remote wireless node, each uncoded segment being associated with a specific coding thread;
read thread identifiers within the received uncoded segments and direct the uncoded segments to corresponding decoder worker threads based thereon; and
use the coded segments as redundant information to the uncoded segments to recover the original data elements within the decoder worker threads, using systematic RLNC.
7. The communication device of claim 6, wherein:
each decoder worker thread is configured to send an acknowledgement (ACK) message to a corresponding encoder worker thread associated with the remote wireless node in response to recovery of all original data elements associated with the decoder worker thread.
8. The communication device of claim 6, wherein:
each decoder worker thread is configured to perform a Gauss-Jordan elimination operation when a new coded segment is received.
9. A method for use in a wireless system, comprising:
transmitting systematic packets to a remote node; and
transmitting one or more nonsystematic packets to the remote node, the non-systematic packets being encoded with a random linear network code (RLNC), the nonsystematic packets to serve as redundant information to the systematic packets for implementing systematic RLNC.
10. The method of claim 9, wherein:
transmitting one or more nonsystematic packets to the remote device includes transmitting the one or more nonsystematic packets to the remote device in successive rounds, each round having Nm packets.
11. The method of claim 10, wherein:
transmitting the one or more nonsystematic packets to the remote device in successive rounds includes transmitting the packets with a nominal inter-round delay of Tr.
12. The method of claim 10, further comprising:
before transmitting the systematic packets, generating the systematic packets, at least in part, within a plurality of encoder threads, each systematic packet including a thread identifier (TID) to identify a corresponding encoder thread; and
before transmitting the nonsystematic packets, generating the nonsystematic packets, at least in part, within the plurality of encoder threads, each nonsystematic packet including a thread identifier (TID) to identify a corresponding encoder thread.
13. The method of claim 12, wherein generating the nonsystematic packets includes:
obtaining a coding block within a first encoder thread;
segmenting the coding block into a number of segments;
generating first random coefficients for the segments; and
linearly combining the segments using the first random coefficients to generate a first nonsystematic segment.
14. A method for use in a wireless system, comprising:
obtaining a coding block;
segmenting the coding block into a number of equal-length uncoded segments;
generating one or more coded segments by applying random linear network coding (RLNC) to the number of equal-length segments; and
transmitting the uncoded segments and the one or more coded segments to a remote node via a wireless channel, the one or more coded segments for use as redundant information by the remote node to recover one or more of the uncoded segments should they be erased in the wireless channel.
15. The method of claim 14, wherein:
segmenting the coding block into a number of equal-length uncoded segments includes padding the coding block if a size of the coding block is not a multiple of a desired segment length.
16. The method of claim 14, wherein generating one or more coded segments includes:
generating a set of random coefficients for the equal-length uncoded segments; and
linearly combining the equal-length uncoded segments using the random coefficients to generate a first coded segment.
US14/013,330 2013-03-15 2013-08-29 Wireless reliability architecture and methods using network coding Active 2034-03-11 US9271123B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/013,330 US9271123B2 (en) 2013-03-15 2013-08-29 Wireless reliability architecture and methods using network coding

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361791321P 2013-03-15 2013-03-15
US13/968,566 US9185529B2 (en) 2013-03-15 2013-08-16 Wireless reliability architecture and methods using network coding
US14/013,330 US9271123B2 (en) 2013-03-15 2013-08-29 Wireless reliability architecture and methods using network coding

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US13/968,566 Division US9185529B2 (en) 2013-03-15 2013-08-16 Wireless reliability architecture and methods using network coding

Publications (2)

Publication Number Publication Date
US20140269505A1 US20140269505A1 (en) 2014-09-18
US9271123B2 true US9271123B2 (en) 2016-02-23

Family

ID=51526735

Family Applications (3)

Application Number Title Priority Date Filing Date
US13/968,566 Active 2034-04-04 US9185529B2 (en) 2013-03-15 2013-08-16 Wireless reliability architecture and methods using network coding
US14/013,324 Active 2034-04-25 US9253608B2 (en) 2013-03-15 2013-08-29 Wireless reliability architecture and methods using network coding
US14/013,330 Active 2034-03-11 US9271123B2 (en) 2013-03-15 2013-08-29 Wireless reliability architecture and methods using network coding

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US13/968,566 Active 2034-04-04 US9185529B2 (en) 2013-03-15 2013-08-16 Wireless reliability architecture and methods using network coding
US14/013,324 Active 2034-04-25 US9253608B2 (en) 2013-03-15 2013-08-29 Wireless reliability architecture and methods using network coding

Country Status (1)

Country Link
US (3) US9185529B2 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160352871A1 (en) * 2015-05-27 2016-12-01 Huawei Technologies Co., Ltd. System and Method of Header Compression for Online Network Codes
US10009259B2 (en) 2012-01-31 2018-06-26 Massachusetts Institute Of Technology Multi-path data transfer using network coding
US10366137B2 (en) * 2014-08-15 2019-07-30 Interdigital Patent Holdings, Inc. Methods and apparatus for content delivery via browser cache extension
US10517092B1 (en) 2018-06-04 2019-12-24 SparkMeter, Inc. Wireless mesh data network with increased transmission capacity
US10581554B2 (en) * 2017-01-13 2020-03-03 Dolby Laboratories Licensing Corporation Systems and methods to generate copies of data for transmission over multiple communication channels
US11418449B2 (en) 2018-05-16 2022-08-16 Code On Network Coding, Llc Multipath coding apparatus and related techniques
US11424861B2 (en) 2017-03-29 2022-08-23 Massachusetts Institute Of Technology System and technique for sliding window network coding-based packet generation
US11451419B2 (en) 2019-03-15 2022-09-20 The Research Foundation for the State University Integrating volterra series model and deep neural networks to equalize nonlinear power amplifiers
US11563644B2 (en) 2019-01-04 2023-01-24 GoTenna, Inc. Method and apparatus for modeling mobility and dynamic connectivity on a stationary wireless testbed

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2742286T3 (en) 2010-03-25 2020-02-13 Massachusetts Inst Technology Secure network coding for streaming video streaming, multi-resolution wireless
US10530574B2 (en) 2010-03-25 2020-01-07 Massachusetts Institute Of Technology Secure network coding for multi-description wireless transmission
WO2013006697A2 (en) 2011-07-05 2013-01-10 Massachusetts Institute Of Technology Energy-efficient time-stampless adaptive nonuniform sampling
US9143274B2 (en) 2011-10-31 2015-09-22 Massachusetts Institute Of Technology Traffic backfilling via network coding in a multi-packet reception network
US9025607B2 (en) 2011-11-05 2015-05-05 Massachusetts Institute Of Technology Method and apparatus for efficient transmission of information to multiple nodes
US8780693B2 (en) 2011-11-08 2014-07-15 Massachusetts Institute Of Technology Coding approach for a robust and flexible communication protocol
US9160687B2 (en) 2012-02-15 2015-10-13 Massachusetts Institute Of Technology Method and apparatus for performing finite memory network coding in an arbitrary network
US9369255B2 (en) 2012-10-18 2016-06-14 Massachusetts Institute Of Technology Method and apparatus for reducing feedback and enhancing message dissemination efficiency in a multicast network
EP2974096A4 (en) 2013-03-14 2016-11-09 Massachusetts Inst Technology Method and apparatus for secure communication
US9607003B2 (en) 2013-03-14 2017-03-28 Massachusetts Institute Of Technology Network coded storage with multi-resolution codes
US9369541B2 (en) 2013-03-14 2016-06-14 Massachusetts Institute Of Technology Method and apparatus for implementing distributed content caching in a content delivery network
US9185529B2 (en) 2013-03-15 2015-11-10 Massachusetts Institute Of Technology Wireless reliability architecture and methods using network coding
US9019643B2 (en) 2013-03-15 2015-04-28 Massachusetts Institute Of Technology Method and apparatus to reduce access time in a data storage device using coded seeking
US10034179B2 (en) 2013-10-30 2018-07-24 Sai C. Manapragada System and method for extending range and coverage of bandwidth intensive wireless data streams
WO2015161133A1 (en) * 2014-04-16 2015-10-22 Apsi Wifi, Llc Reduction of network congestion
US10516617B2 (en) 2014-11-10 2019-12-24 APS Technology 1 LLC Network throughput
US10298271B2 (en) * 2015-02-03 2019-05-21 Infineon Technologies Ag Method and apparatus for providing a joint error correction code for a combined data frame comprising first data of a first data channel and second data of a second data channel and sensor system
US10289508B2 (en) 2015-02-03 2019-05-14 Infineon Technologies Ag Sensor system and method for identifying faults related to a substrate
KR20160109126A (en) * 2015-03-10 2016-09-21 한국전자통신연구원 Data transmitting and receiving apparatus using the network coding in multiple transmission paths
CN105227268B (en) * 2015-10-16 2019-08-30 中国人民解放军国防科学技术大学 A kind of encoding block self-adapting regulation method towards coding transmission agreement
WO2017087755A1 (en) * 2015-11-20 2017-05-26 Veniam, Inc. Systems and methods for network coded mesh networking in a network of moving things
EP3902142A1 (en) * 2016-05-12 2021-10-27 MediaTek Inc. Qc-ldpc coding methods and apparatus
US20170347130A1 (en) * 2016-05-26 2017-11-30 Yun Shang Company Limited Processing system and method for live video streaming based on network coding and content distribution network
US10361817B2 (en) * 2017-01-20 2019-07-23 Dolby Laboratories Licensing Corporation Systems and methods to optimize partitioning of a data segment into data packets for channel encoding
US10862620B2 (en) 2017-09-25 2020-12-08 Dolby Laboratories Licensing Corporation Systems and methods to optimize the load of multipath data transportation
CN108495320A (en) * 2018-04-04 2018-09-04 刘福珍 A kind of communication base station based on random linear network encoding
US10880731B2 (en) * 2018-04-06 2020-12-29 University Of South Florida System and method for enhanced diversity and network coding (eDC-NC)
US11575777B2 (en) * 2019-05-27 2023-02-07 Massachusetts Institute Of Technology Adaptive causal network coding with feedback
US11528342B2 (en) * 2019-10-02 2022-12-13 APS Technology 1 LLC Invoking a random linear network coding communications protocol
CN113328826A (en) * 2020-02-28 2021-08-31 华为技术有限公司 Data processing method and device
US11943825B2 (en) * 2020-07-09 2024-03-26 Qualcomm Incorporated Feedback-based broadcasting of network coded packets with sidelink
CN111741507B (en) * 2020-07-30 2020-12-08 浙江工商大学 Full-duplex relay data packet optimized scheduling method of 5G front-end equipment
US11777647B2 (en) 2021-06-30 2023-10-03 Electronics And Telecommunications Research Institute Method and apparatus for traffic transmission in communication system

Citations (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5577056A (en) 1995-02-24 1996-11-19 Hughes Aircraft Co. Method and apparatus for adjusting the postamble false detection probability threshold for a burst transmission
US6128773A (en) 1997-10-01 2000-10-03 Hewlett-Packard Company Automatically measuring software complexity
US20030055614A1 (en) 2001-01-18 2003-03-20 The Board Of Trustees Of The University Of Illinois Method for optimizing a solution set
US6621851B1 (en) 1997-12-18 2003-09-16 At&T Wireless Services, Inc. Priority messaging method for a discrete multitone spread spectrum communications system
US20030214951A1 (en) 2002-05-17 2003-11-20 Joshi Niranjan S. Method for differentiating services and users in communication networks
US20040203752A1 (en) 2002-11-18 2004-10-14 Toshiba America Information Systems, Inc. Mobility communications system
US20050010675A1 (en) 2003-06-23 2005-01-13 Microsoft Corporation System and method for computing low complexity algebraic network codes for a multicast network
US20050078653A1 (en) 2003-10-14 2005-04-14 Agashe Parag Arun Method and apparatus for data communications over multiple channels
US6885653B2 (en) 2000-01-17 2005-04-26 Samsung Electronics Co., Ltd. Apparatus and method for allocating channel using OVSF code for uplink synchronous transmission scheme in a W-CDMA communication system
US20050152391A1 (en) * 2003-11-25 2005-07-14 Michelle Effros Randomized distributed network coding
US20050251721A1 (en) 2004-05-04 2005-11-10 Telefonaktiebolaget Lm Ericsson(Publ) Incremental redundancy operation in a wireless communication network
US20060020560A1 (en) 2004-07-02 2006-01-26 Microsoft Corporation Content distribution using network coding
EP1638239A1 (en) 2004-09-20 2006-03-22 Alcatel Extended repeat request scheme for mobile communication networks
US7064489B2 (en) 2000-09-28 2006-06-20 Roke Manor Research Limited Huffman data compression method
US7071853B2 (en) 2000-09-28 2006-07-04 Roke Manor Research Limited Method of compressing data packets
US20060146791A1 (en) 2004-12-30 2006-07-06 Supratim Deb Network coding approach to rapid information dissemination
US7095343B2 (en) 2001-10-09 2006-08-22 Trustees Of Princeton University code compression algorithms and architectures for embedded systems
US20060224760A1 (en) 2005-03-15 2006-10-05 1000 Oaks Hu Lian Technology Development (Beijing) Co., Ltd. Method and system for providing streaming content in a peer-to-peer network with network coding
US7164691B2 (en) 2002-06-26 2007-01-16 Standard Microsystems Corporation Communication system and method for sending isochronous streaming data across a synchronous network within a frame segment using a coding violation to signify invalid or empty bytes within the frame segment
US20070046686A1 (en) 2002-11-19 2007-03-01 Alexander Keller Image synthesis methods and systems
US20070116027A1 (en) 2005-11-21 2007-05-24 Alcatel Device and method for generating priority preservation composite bursts, for a network equipment of a burst switching communication network
WO2007109216A1 (en) 2006-03-21 2007-09-27 Kyocera Corporation System and method for broadcasting data over a wireless network
US7283564B2 (en) 2002-06-26 2007-10-16 Standard Microsystems Corp. Communication system and method for sending asynchronous data and/or isochronous streaming data across a synchronous network within a frame segment using a coding violation to signify at least the beginning of a data transfer
US20070274324A1 (en) 2006-05-26 2007-11-29 Microsoft Corporation Local network coding for wireless networks
US20080043676A1 (en) 1998-05-29 2008-02-21 Research In Motion Limited System and Method for Redirecting Data to a Wireless Device Over a Plurality of Communication Paths
US20080049746A1 (en) 2006-08-22 2008-02-28 Morrill Robert J System and method for routing data on a packet network
US7349440B1 (en) 2003-10-15 2008-03-25 Microsoft Corporation System and method for broadcasting information over a network
US20080123579A1 (en) 2006-11-27 2008-05-29 Kozat Ulas C Method and apparatus for reliable multicasting in wireless relay networks
US7408938B1 (en) 2003-10-15 2008-08-05 Microsoft Coporation System and method for efficient broadcast of information over a network
US7414978B2 (en) 2004-12-30 2008-08-19 Massachusetts Institute Of Technology Minimum-cost routing with network coding
US20080259796A1 (en) 2008-04-17 2008-10-23 Glen Patrick Abousleman Method and apparatus for network-adaptive video coding
US20080320363A1 (en) 2007-06-19 2008-12-25 International Business Machines Corporation Method and apparatus for rateless source coding with/without decoder side information
US20090003216A1 (en) 2007-06-27 2009-01-01 Microsoft Corporation Multipath Forwarding Algorithms Using Network Coding
US7529198B2 (en) 2005-04-07 2009-05-05 Microsoft Corporation Scalable overlay network
US20090135717A1 (en) 2007-11-26 2009-05-28 Iowa State University Research Foundation, Inc. Network protection using network coding
US20090175320A1 (en) 2005-10-31 2009-07-09 Thomas Haustein Method to Determine the Number of Data Streams to Be Used in a MIMO System
US20090198829A1 (en) 2008-01-31 2009-08-06 Microsoft Corporation Multi-Rate Peer-Assisted Data Streaming
US20090207930A1 (en) 2006-05-31 2009-08-20 Cornell University Methods and systems for space-time coding for distributed cooperative communicaton
US20090238097A1 (en) 2008-03-18 2009-09-24 Canon Kabushiki Kaisha Method and device for building of a network coding scheme for data transmission, corresponding computer program product and storage means
US20090248898A1 (en) 2005-12-22 2009-10-01 Microsoft Corporation Encoding And Decoding Optimisations
US20090285148A1 (en) 2008-05-19 2009-11-19 Microsoft Corporation Natural network coding for multi-hop wireless network
US20090310582A1 (en) 2008-05-15 2009-12-17 Harris Stratex Networks Operating Corporation Systems and Methods for Distributed Data Routing in a Wireless Network
US20090313459A1 (en) 2008-06-13 2009-12-17 International Business Machines Corporation System and method for processing low density parity check codes using a deterministic caching apparatus
US20090316763A1 (en) 2008-06-04 2009-12-24 Elza Erkip Spatial multiplexing gain for a distributed cooperative communications system using randomized coding
WO2010005181A2 (en) 2008-06-16 2010-01-14 Lg Electronics Inc. Cooperative symbol level network coding in multi-channel wireless networks
US20100014669A1 (en) 2006-07-13 2010-01-21 Wenyu Jiang Codec-independent encryption of material that represents stimuli intended for human perception
US20100046371A1 (en) 2008-05-29 2010-02-25 Jay Kumar Sundararajan Feedback-based online network coding
WO2010025362A2 (en) 2008-08-28 2010-03-04 Massachusetts Institute Of Technology Random linear network coding for time division duplexing
US20100111165A1 (en) 2008-10-31 2010-05-06 Electronics And Telecommunications Research Institute Network flow-based scalable video coding adaptation device and method
US20100146357A1 (en) 2006-11-29 2010-06-10 Peter Larsson Reliable multicast with linearly independednt data packet coding
US7821980B2 (en) 2006-08-03 2010-10-26 Nokia Corporation Variable rate soft information forwarding
US7876677B2 (en) 2007-05-22 2011-01-25 Apple Inc. Transmission control protocol queue sorting
WO2011043754A1 (en) 2009-10-06 2011-04-14 Thomson Licensing A method and apparatus for hop-by-hop reliable multicast in wireless networks
WO2011119909A1 (en) 2010-03-25 2011-09-29 Massachusetts Institute Of Technology Secure network coding for multi-resolution wireless video streaming
US20110238855A1 (en) 2000-09-25 2011-09-29 Yevgeny Korsunsky Processing data flows with a data flow processor
US8130776B1 (en) 2009-08-28 2012-03-06 Massachusetts Institute Of Technology Method and apparatus providing network coding based flow control
US20120057636A1 (en) 2010-09-08 2012-03-08 Cisco Technology, Inc. System and method for skip coding during video conferencing in a network environment
US20120300692A1 (en) 2009-10-22 2012-11-29 Interdigital Patent Holdings, Inc. Method and apparatus for a two-way relaying scheme with physical layer network coding
WO2012167034A2 (en) 2011-06-03 2012-12-06 Massachusetts Institute Of Technology Method and apparatus to perform functional compression
WO2013006697A2 (en) 2011-07-05 2013-01-10 Massachusetts Institute Of Technology Energy-efficient time-stampless adaptive nonuniform sampling
US20130107764A1 (en) 2011-10-31 2013-05-02 Linda M. Zeger Traffic Backfilling Via Network Coding In A Multi-Packet Reception Network
US20130114611A1 (en) 2011-11-05 2013-05-09 Massachusetts Institute Of Technology Method and Apparatus for Efficient Transmission of Information to Multiple Nodes
US20130114481A1 (en) 2011-11-08 2013-05-09 Massachusetts Institute Of Technology Coding Approach For A Robust And Flexible Communication Protocol
US20130195106A1 (en) 2012-01-31 2013-08-01 Massachusetts Institute Of Technology Multi-Path Data Transfer Using Network Coding
US8504504B2 (en) 2008-09-26 2013-08-06 Oracle America, Inc. System and method for distributed denial of service identification and prevention
US20140064296A1 (en) 2012-02-15 2014-03-06 Massachusetts Institute Of Technology Method And Apparatus For Performing Finite Memory Network Coding In An Arbitrary Network
US20140280395A1 (en) 2013-03-14 2014-09-18 Massachusetts Institute Of Technology Network Coded Storage With Multi-Resolution Codes
US20140280454A1 (en) 2013-03-14 2014-09-18 Massachusetts Institute Of Technology Method and Apparatus for Implementing Distributed Content Caching In A Content Delivery Network
US20140268398A1 (en) 2013-03-15 2014-09-18 Massachusetts Institute Of Technology Method And Apparatus To Reduce Access Time In A Data Storage Device Using Coded Seeking
US20140269505A1 (en) 2013-03-15 2014-09-18 Massachusetts Institute Of Technology Wireless Reliability Architecture And Methods Using Network Coding
WO2014160194A2 (en) 2013-03-14 2014-10-02 Massachusetts Institute Of Technology Method and apparatus for secure communication

Patent Citations (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5577056A (en) 1995-02-24 1996-11-19 Hughes Aircraft Co. Method and apparatus for adjusting the postamble false detection probability threshold for a burst transmission
US6128773A (en) 1997-10-01 2000-10-03 Hewlett-Packard Company Automatically measuring software complexity
US6621851B1 (en) 1997-12-18 2003-09-16 At&T Wireless Services, Inc. Priority messaging method for a discrete multitone spread spectrum communications system
US20080043676A1 (en) 1998-05-29 2008-02-21 Research In Motion Limited System and Method for Redirecting Data to a Wireless Device Over a Plurality of Communication Paths
US6885653B2 (en) 2000-01-17 2005-04-26 Samsung Electronics Co., Ltd. Apparatus and method for allocating channel using OVSF code for uplink synchronous transmission scheme in a W-CDMA communication system
US20090153576A1 (en) 2000-06-19 2009-06-18 Alexander Keller Image Synthesis Methods and Systems
US20110238855A1 (en) 2000-09-25 2011-09-29 Yevgeny Korsunsky Processing data flows with a data flow processor
US7071853B2 (en) 2000-09-28 2006-07-04 Roke Manor Research Limited Method of compressing data packets
US7064489B2 (en) 2000-09-28 2006-06-20 Roke Manor Research Limited Huffman data compression method
US20030055614A1 (en) 2001-01-18 2003-03-20 The Board Of Trustees Of The University Of Illinois Method for optimizing a solution set
US7095343B2 (en) 2001-10-09 2006-08-22 Trustees Of Princeton University code compression algorithms and architectures for embedded systems
US20030214951A1 (en) 2002-05-17 2003-11-20 Joshi Niranjan S. Method for differentiating services and users in communication networks
US7283564B2 (en) 2002-06-26 2007-10-16 Standard Microsystems Corp. Communication system and method for sending asynchronous data and/or isochronous streaming data across a synchronous network within a frame segment using a coding violation to signify at least the beginning of a data transfer
US7164691B2 (en) 2002-06-26 2007-01-16 Standard Microsystems Corporation Communication system and method for sending isochronous streaming data across a synchronous network within a frame segment using a coding violation to signify invalid or empty bytes within the frame segment
US20040203752A1 (en) 2002-11-18 2004-10-14 Toshiba America Information Systems, Inc. Mobility communications system
US20070046686A1 (en) 2002-11-19 2007-03-01 Alexander Keller Image synthesis methods and systems
US20050010675A1 (en) 2003-06-23 2005-01-13 Microsoft Corporation System and method for computing low complexity algebraic network codes for a multicast network
US20050078653A1 (en) 2003-10-14 2005-04-14 Agashe Parag Arun Method and apparatus for data communications over multiple channels
US7760728B2 (en) 2003-10-15 2010-07-20 Microsoft Corporation System and method for efficient broadcast of information over a network
US7408938B1 (en) 2003-10-15 2008-08-05 Microsoft Coporation System and method for efficient broadcast of information over a network
US20080291834A1 (en) 2003-10-15 2008-11-27 Microsoft Corporation System and Method for Efficient Broadcast of Information Over a Network
US7349440B1 (en) 2003-10-15 2008-03-25 Microsoft Corporation System and method for broadcasting information over a network
US7706365B2 (en) 2003-11-25 2010-04-27 California Institute Of Technology Randomized distributed network coding
US20050152391A1 (en) * 2003-11-25 2005-07-14 Michelle Effros Randomized distributed network coding
US20050251721A1 (en) 2004-05-04 2005-11-10 Telefonaktiebolaget Lm Ericsson(Publ) Incremental redundancy operation in a wireless communication network
US20060020560A1 (en) 2004-07-02 2006-01-26 Microsoft Corporation Content distribution using network coding
EP1638239A1 (en) 2004-09-20 2006-03-22 Alcatel Extended repeat request scheme for mobile communication networks
US7414978B2 (en) 2004-12-30 2008-08-19 Massachusetts Institute Of Technology Minimum-cost routing with network coding
US20060146791A1 (en) 2004-12-30 2006-07-06 Supratim Deb Network coding approach to rapid information dissemination
US20060224760A1 (en) 2005-03-15 2006-10-05 1000 Oaks Hu Lian Technology Development (Beijing) Co., Ltd. Method and system for providing streaming content in a peer-to-peer network with network coding
US7529198B2 (en) 2005-04-07 2009-05-05 Microsoft Corporation Scalable overlay network
US20090175320A1 (en) 2005-10-31 2009-07-09 Thomas Haustein Method to Determine the Number of Data Streams to Be Used in a MIMO System
US20070116027A1 (en) 2005-11-21 2007-05-24 Alcatel Device and method for generating priority preservation composite bursts, for a network equipment of a burst switching communication network
US20090248898A1 (en) 2005-12-22 2009-10-01 Microsoft Corporation Encoding And Decoding Optimisations
WO2007109216A1 (en) 2006-03-21 2007-09-27 Kyocera Corporation System and method for broadcasting data over a wireless network
US8040836B2 (en) 2006-05-26 2011-10-18 Microsoft Corporation Local network coding for wireless networks
US20070274324A1 (en) 2006-05-26 2007-11-29 Microsoft Corporation Local network coding for wireless networks
US20090207930A1 (en) 2006-05-31 2009-08-20 Cornell University Methods and systems for space-time coding for distributed cooperative communicaton
US20100014669A1 (en) 2006-07-13 2010-01-21 Wenyu Jiang Codec-independent encryption of material that represents stimuli intended for human perception
US7821980B2 (en) 2006-08-03 2010-10-26 Nokia Corporation Variable rate soft information forwarding
US20080049746A1 (en) 2006-08-22 2008-02-28 Morrill Robert J System and method for routing data on a packet network
US20080123579A1 (en) 2006-11-27 2008-05-29 Kozat Ulas C Method and apparatus for reliable multicasting in wireless relay networks
US20100146357A1 (en) 2006-11-29 2010-06-10 Peter Larsson Reliable multicast with linearly independednt data packet coding
US7876677B2 (en) 2007-05-22 2011-01-25 Apple Inc. Transmission control protocol queue sorting
US7945842B2 (en) 2007-06-19 2011-05-17 International Business Machines Corporation Method and apparatus for rateless source coding with/without decoder side information
US20080320363A1 (en) 2007-06-19 2008-12-25 International Business Machines Corporation Method and apparatus for rateless source coding with/without decoder side information
US20090003216A1 (en) 2007-06-27 2009-01-01 Microsoft Corporation Multipath Forwarding Algorithms Using Network Coding
US7912003B2 (en) 2007-06-27 2011-03-22 Microsoft Corporation Multipath forwarding algorithms using network coding
US20090135717A1 (en) 2007-11-26 2009-05-28 Iowa State University Research Foundation, Inc. Network protection using network coding
US20090198829A1 (en) 2008-01-31 2009-08-06 Microsoft Corporation Multi-Rate Peer-Assisted Data Streaming
US20090238097A1 (en) 2008-03-18 2009-09-24 Canon Kabushiki Kaisha Method and device for building of a network coding scheme for data transmission, corresponding computer program product and storage means
US20080259796A1 (en) 2008-04-17 2008-10-23 Glen Patrick Abousleman Method and apparatus for network-adaptive video coding
US20090310582A1 (en) 2008-05-15 2009-12-17 Harris Stratex Networks Operating Corporation Systems and Methods for Distributed Data Routing in a Wireless Network
US20090285148A1 (en) 2008-05-19 2009-11-19 Microsoft Corporation Natural network coding for multi-hop wireless network
US20100046371A1 (en) 2008-05-29 2010-02-25 Jay Kumar Sundararajan Feedback-based online network coding
US8068426B2 (en) 2008-05-29 2011-11-29 Massachusetts Institute Of Technology Feedback-based online network coding
US20090316763A1 (en) 2008-06-04 2009-12-24 Elza Erkip Spatial multiplexing gain for a distributed cooperative communications system using randomized coding
US20090313459A1 (en) 2008-06-13 2009-12-17 International Business Machines Corporation System and method for processing low density parity check codes using a deterministic caching apparatus
WO2010005181A2 (en) 2008-06-16 2010-01-14 Lg Electronics Inc. Cooperative symbol level network coding in multi-channel wireless networks
US8451756B2 (en) 2008-08-28 2013-05-28 Massachusetts Institute Of Technology Random linear network coding for time division duplexing
WO2010025362A2 (en) 2008-08-28 2010-03-04 Massachusetts Institute Of Technology Random linear network coding for time division duplexing
US8279781B2 (en) 2008-08-28 2012-10-02 Massachusetts Institute Of Technology Random linear network coding for time division duplexing
US8504504B2 (en) 2008-09-26 2013-08-06 Oracle America, Inc. System and method for distributed denial of service identification and prevention
US20100111165A1 (en) 2008-10-31 2010-05-06 Electronics And Telecommunications Research Institute Network flow-based scalable video coding adaptation device and method
US8130776B1 (en) 2009-08-28 2012-03-06 Massachusetts Institute Of Technology Method and apparatus providing network coding based flow control
US20120218891A1 (en) 2009-08-28 2012-08-30 Jay Kumar Sundararajan Method and apparatus providing network coding based flow control
WO2011043754A1 (en) 2009-10-06 2011-04-14 Thomson Licensing A method and apparatus for hop-by-hop reliable multicast in wireless networks
US20120300692A1 (en) 2009-10-22 2012-11-29 Interdigital Patent Holdings, Inc. Method and apparatus for a two-way relaying scheme with physical layer network coding
US20140185803A1 (en) 2010-03-25 2014-07-03 Luisa Lima Secure Network Coding for Multi-Resolution Wireless Transmission
WO2011119909A1 (en) 2010-03-25 2011-09-29 Massachusetts Institute Of Technology Secure network coding for multi-resolution wireless video streaming
US8571214B2 (en) 2010-03-25 2013-10-29 Massachusetts Institute Of Technology Secure network coding for multi-resolution wireless video streaming
US20120057636A1 (en) 2010-09-08 2012-03-08 Cisco Technology, Inc. System and method for skip coding during video conferencing in a network environment
WO2012167034A2 (en) 2011-06-03 2012-12-06 Massachusetts Institute Of Technology Method and apparatus to perform functional compression
US8482441B2 (en) 2011-06-03 2013-07-09 Massachusetts Institute Of Technology Method and apparatus to perform functional compression
WO2013006697A2 (en) 2011-07-05 2013-01-10 Massachusetts Institute Of Technology Energy-efficient time-stampless adaptive nonuniform sampling
US20130107764A1 (en) 2011-10-31 2013-05-02 Linda M. Zeger Traffic Backfilling Via Network Coding In A Multi-Packet Reception Network
US20130114611A1 (en) 2011-11-05 2013-05-09 Massachusetts Institute Of Technology Method and Apparatus for Efficient Transmission of Information to Multiple Nodes
WO2013067488A1 (en) 2011-11-05 2013-05-10 Massachusetts Institute Of Technology Method and apparatus for efficient transmission of information to multiple nodes
US20130114481A1 (en) 2011-11-08 2013-05-09 Massachusetts Institute Of Technology Coding Approach For A Robust And Flexible Communication Protocol
WO2013116456A1 (en) 2012-01-31 2013-08-08 Massachusetts Institute Of Technology Multi-path data transfer using network coding
US20130195106A1 (en) 2012-01-31 2013-08-01 Massachusetts Institute Of Technology Multi-Path Data Transfer Using Network Coding
US20140064296A1 (en) 2012-02-15 2014-03-06 Massachusetts Institute Of Technology Method And Apparatus For Performing Finite Memory Network Coding In An Arbitrary Network
US20140280395A1 (en) 2013-03-14 2014-09-18 Massachusetts Institute Of Technology Network Coded Storage With Multi-Resolution Codes
US20140280454A1 (en) 2013-03-14 2014-09-18 Massachusetts Institute Of Technology Method and Apparatus for Implementing Distributed Content Caching In A Content Delivery Network
WO2014160194A2 (en) 2013-03-14 2014-10-02 Massachusetts Institute Of Technology Method and apparatus for secure communication
WO2014159570A1 (en) 2013-03-14 2014-10-02 Massachusetts Institute Of Technology Network coded storage with multi-resolution codes
US20140268398A1 (en) 2013-03-15 2014-09-18 Massachusetts Institute Of Technology Method And Apparatus To Reduce Access Time In A Data Storage Device Using Coded Seeking
US20140269505A1 (en) 2013-03-15 2014-09-18 Massachusetts Institute Of Technology Wireless Reliability Architecture And Methods Using Network Coding
US20140269485A1 (en) 2013-03-15 2014-09-18 Massachusetts Institute Of Technology Wireless Reliability Architecture And Methods Using Network Coding
US20140269503A1 (en) 2013-03-15 2014-09-18 Massachusetts Institute Of Technology Wireless Reliability Architecture And Methods Using Network Coding

Non-Patent Citations (335)

* Cited by examiner, † Cited by third party
Title
"Data Service Options for Spread Spectrum Systems: Radio Link Protocol Type 3;" 3GPP2 C.S0017-010-A; Version 2.0; Sep. 2005.
"Guest Editorial Wireless Video Transmission;" IEEE Journal on Selected Areas in Communications; vol. 28; No. 3; Apr. 2010; pp. 297-298.
Abichar, et al.; "WiMax vs. LTE: Who Will Lead the Broadband Mobile Internet?;" Mobile Computing; IEEE Computer Society; IT Pro May/Jun. 2010; pp. 26-32.
AbuZeid, et al.; "IR-HARQ vs. Joing Channel-Network Coding for Cooperative Wireless Communication;" Cyber Journal: Multidisciplinary Journals in Science and Technology, Journal of Selected Areas in Telecommunications (JSAT); Aug. 2011; pp. 39-43.
AbuZeid, et al.; "IR-HARQ vs. Joint Channel-Network Coding for Cooperative Wireless Communication;" Cyber Journals: Multidisciplinary Journals in Science and Technology, Journal of Selected Areas in Telecommunications (JSAT); Aug. 2011; pp. 39-43.
Acedanski, et al.; "How Good is Random Linear Coding Based Distributed Network Storage?;" Proc. 1st Workshop on Network Coding, Theory, and Applications (Netcod'05); Apr. 2005; 6 pages.
Adamson, et al.; "Multicast Negative-Acknowledgment (NACK) Building Blocks;" Internet Engineering Task Force (IETF),RFC; vol. 5401; Nov. 2008; 42 pages.
Adamson, et al.; "NACK-Oriented Reliable (NORM) Transport Protocol;" Internet Engineering Task Force (IETF); RFC: vol. 5740; Nov. 2009; 94 pages.
Adamson, et al.; "Quantitative Prediction of NACK-Oriented Reliable Multicast (NORM) Feedback;" Proceedings, MILCOM 2000; vol. 2; Oct. 2002; 6 pages.
Ahiswede, et al.; "Network Information Flow;" IEEE Transactions on Information Theory; vol. 46; No. 4; Jul. 2000; pp. 1204-1216.
Ahmed, et al.; "On the Scaling Law of Network Coding Gains in Wireless Networks;" IEEE; MILCOM 2007; Oct. 2007; 7 pages.
Allman, et al.; "Fast Retransmit / Fast Recovery-TCP Congestion Control;" IETF; Section 3.2; RFC 2581; http://tool.ietf.org/html/rfc2581#section-3.2; April 1999; downloaded on Nov. 2, 2011; 14 pages.
Allman, et al.; "Fast Retransmit / Fast Recovery-TCP Congestion Control;" IETF; Section 3.2; RFC 2581; http://tools.ietf.org/html/rfc2581#section-3.2; Apr. 1999; downloaded on Nov. 2, 2011; 14 pages.
Application of Medard, et al.; "Wireless Reliability Architecture and Methods Using Network Coding;" U.S. Appl. No. 13/968,556, filed Aug. 16, 2013; 37 pages.
Application of Medard, et al.; "Wireless Reliability Architecture and Methods Using Network Coding;" U.S. Appl. No. 14/013,324, filed Aug. 29, 2013; 36 pages.
Armstrong, et al.; "Distributed Storage with Communication Costs;" IEEE Forty-Ninth Annual Allerton Conference-Allerton House; Sep. 28-30, 2011; pp. 1358-1365.
Awerbuch, et al.; "On-Line Generalized Steiner Problem;" Proceedings of the 7th Annual ACM-SIAM Symposium on Discrete Algorithms; pp. 1-12; 1996.
Baek, et al.; "The International Journal of Computer and Telecommunications Networking;" vol. 56; Issue 6; Apr. 2012; pp. 1745-1762.
Baron, et al.; "Coding Schemes for Multislot Messages in Multichannel ALOHA With Deadlines;" IEEE Transactions on Wireless Communications; vol. 1; No. 2; Apr. 2002; pp. 292-301.
Bellare, et al.; "A Concrete Security Treatment of Symmetric Encryption: Analysis of the DES Modes of Operation;" Proc. 38th Annual Symposium on Foundations of Computer Science; Oct. 1997; pp. 1-32.
Berman, et al.; "Improved Approximations for the Steiner Tree Problem;" Journal of Algorithms; Chapter 39; pp. 325-334.
Berman, et al.; "Improved Approximations for the Steiner Tree Problems;" Journal of Algorithms; Chapter 39; pp. 325-334.
Bhadra, et al.; "Looking at Large Networks: Coding vs. Queuing;" Proc. of the 25th IEEE International Conference on Computer Communications (INFOCOM); Apr. 2006; 12 pages.
Bharath-Kumar, et al.; "Routing to Multiple Destinations in Computer Networks;" IEEE Transactions on Communications; vol. Com-31; No. 3; Mar. 1983; pp. 343-351.
Bhargava, et al.; "Forward Error Correction Coding; Mobile Communications Handbook;" Part 1: Basic Principals; 1999; 18 pages.
Birk, et al.; "Judicious Use of Redundant Transmissions in Multichannel ALOHA Networks with Deadlines;" IEEE Journal on Selected Areas In Communications; vol. 17; No. 2; Feb. 1999; pp. 257-269.
Bisson, et al.; "Reducing Hybrid Disk Write Latency with Flash-Backed I/O Requests;" Proceedings of the Fifteenth IEEE International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunications Systems (MASCOTS'07); Oct. 2007; pp. 402-409.
Bonnin, et al.; "Automatic Multi-Interface Management Through Profile Handline;" Springer; Mobile Networks and Applications; Feb. 2009; pp. 4-17.
Borokhovich, et al.; "Tight bounds for Algebraic Gossip on Graphs;" Proc. of the IEEE International Symposium on Information Theory (ISIT); Jun. 13-18, 2010; 14 pages.
Borst, et al.; "Distributed Cashing Algorithms for Content Distribution Networks;" Power Point Presentation; BCAM Seminar; Bilbao, Sep. 30, 2010; 36 pages.
Borst, et al.; "Distributed Chaching Algorithms for Content Distribution Networks"; IEEE INFOCOM; 2010 Proceedings IEEE: Mar. 14-19, 2010; 9 pages.
Bui, et al.; "A Markovian Approach to Multipath Data Transfer in Overlay Networks;" IEEE Transactions on Parallel and Distributed Systems; vol. 21; No. 10; Oct. 2010; pp. 1398-1411.
Cai, et al.; "Secure Network Coding;" IEEE; ISIT; Jun. 30-Jul. 5, 202; pp. 323.
Calmon, et al.; "Network Coding Over Multiple Network Interfaces Using TCP;" Presentation; Information Theory and Applications Workshop (ITA) 2012; San Diego, CA; Feb. 5, 2012; 55 pages.
Cardinal, et al; "Minimum Entrophy Combinatorial Optimization Problems;" Data Structure and Algorithms, Discrete Mathematics; Aug. 17, 2010; pp. 1-16.
Castro, et al.; "Upper and Lower Error Bounds for Active Learning;" The 44'th Annual Allerton Conference on Communication, Control and Computing; vol. 2; No. 2.1; 2006, 10 pages.
Celik, et al.; "MAC for Networks with Multipacket Reception Capability and Spatially Distributed Nodes;" Proc. IEEE INFOCOM 2008; Apr. 2008; 9 pages.
Celik; "Distributed MAC Protocol for Networks with Multipacket Reception Capability and Spatially Distributed Nodes;" Master's Thesis; MIT Department of Electrical Engineering and Computer Science; May 2007; 127 pages.
Cha, et al.; "I Tube, You Tube, Everybody Tubes: Analyzing the World's Largest User Generated Content Video System;" 7th ACN GIGCOMM Conference on Internet Measurement; IMC'07; Oct. 24-26, 2007; 13 pages.
Chakrabarti, et al.; "Approximation Algorithms for the Unsplittable Flow Problem;" Proceedings of the 5th International Workshop of Approximation Algorithms for Combinatorial Optimization; Sep. 2005, pp. 1-27.
Chakrabarti, et al.; "Approximation Algorithms for the Unsplittable Flow Problem;" Proceedings of the 5th International Workshop on Approximation Algorithms for Combinatorial Optimization; Sep. 2005, pp. 1-27.
Chakrabarti, et al.; Approximation Algorithms for the Unsplittable Flow Problem; Algorithmica (2007); Springer Science-Business Media, Aug. 2006; 16 pages.
Charikar, et al.; "Approximation Algorithms for Directed Steiner Problems;" Proceedings of the 9th ACM-SIAM Symposium on Discrete Algorithms, pp. 1-15; 1998.
Chen, et al.; "Pipeline Network Coding for Multicast Streams;" ICMU Org.; 2010; 7 pages.
Chen, et al.; "Pipeline Network Coding for Multicast Streams;" ICMU Org.; 20107 pages.
Chou, et al.; "FEC and Pseudo-ARQ for Receiver-driven Layered Multicast of Audio and Video;" Data Compression Conference (DCC), 2000; Proceedings; Jan. 2000; 10 pages.
Chou, et al.; "Practical Network Coding;" Proceedings of the 41st Annual Allerton Conference on Communication, Control, and Computing; Oct. 2003; 10 pages.
Chou, et al.; "Practical Networking Coding;" 2003 Proceeding of Allerton Conference on Communications Control and Computing; Oct. 2003; 10 pages.
Cisco Visual Networking Index: Forecast and Methodology; 2009-2014; White Paper; Jun. 2, 2010; pp. 1-17.
Cisco Visual Networking Index; Forecast and Methodology; 2009-2014; White Paper, Jun. 2, 2010; pp. 1-17.
Cloud, et al.; "Co-Designing Multi-Packet Reception, Network Coding, and MAC Using a Simple Predictive Model;" arXiv:1101.5779v1 [cs.NI]; Submitted to W.Opt 2011;Jan. 30, 2011; pp. 1-8.
Cloud, et al.; "Effects of MAC approaches on non-monotonic saturation with COPE-a simple case study;" Military Communication Conference, 2011-MILCOM; Aug. 11, 2011; 7 pages.
Cloud, et al.; "MAC Centered Cooperation-Synergistic Design of Network Coding, Multi-Packet Reception, and Improved Fairness to Increase Network Throughput;" IEEE Journal on Selected Areas in Communications; vol. 30; No. 2; Feb. 2012; pp. 1-8.
Cloud, et al.; "Multi-Path TCP with Network Coding;" Wireless@mit-MIT Center for Wireless Networks and Mobile Computing; 2012 Inaugural Retreat; Oct. 10-11, 2012.
Cloud, et al; U.S. Appl. No. 13/654,953, filed Oct. 18, 2012.
Costa, et al.; "Informed Network Coding for Minimum Decoding Delay;" Fifth IEEE International Conference on Mobile Ad-hoc and Sensor Systems; Sep. 2008; pp. 80-91.
Coughlin, et al.; Years of Destiny: HDD Capital Spending and Technology Developments from 2012-2016; IEEE Santa Clara Valley Magnetics Society; Jun. 19, 2012; pp. 1-28.
Dana, et al.; "Capacity of Wireless Erasure Networks; IEEE Transactions on Information Theory;" vol. 52; No. 3; Mar. 2006; pp. 789-804.
Dana, et al.; "Capacity of Wireless Erasure Networks;" Jan. 2006; 41 pages.
Deb, et al.; "Algebraic Gossip: A Network Coding Approach to Optimal Multiple Rumor Mongering;" Proc. of the 42nd Allerton Conference on Communication, Control, and Computing; Jan. 2004; 10 pages.
Deb, et al.; "On Random Network Coding Based Information Dissemination;" Proc. of the IEEE International Symposium on Information Theory (ISIT); Sep. 4-9, 2005; 5 pages.
Demers, et al.; "Epidemic Algorithms for Replicated Database Maintenance;" PODC '87 Proceedings of the sixth annual ACM Symposium on Principles of distributed computing; Jan. 1987; pp. 1-12.
Dias, et al.; "Performance Analysis of HARQ in WiMax Networks Considering Imperfect Channel Estimation;" The 7th International Telecommunications Symposium (ITS 2010); 2010; 5 pages.
Dimakis, et al.; "A Survey on Network Codes for Distributed Storage;" Proceedings of the IEEE; vol. 99; No. 3; Mar. 2011; pp. 476-489.
Dimakis, et al.; "Network Coding for Distributed Storage Systems;" IEEE/ACM Transactions on Information Theory; vol. 56; No. 9; pp. 1-13.
Donoho, et al.; "Estimating Covariances of Locally Stationary Processes: Rates of Convergence of Best Basis Methods;" Statistics, Stanford University, Stanford, California, USA, Tech. Rep; 1998; pp. 1-64.
Downloaded on Nov. 2, 2011 for U.S. Pat. No. 7,706,365 filed on Nov. 17, 2004.
Downloaded on Oct. 29, 2013 for U.S. Appl. No. 13/29,310, filed Nov. 8, 2011; Part 1 of 3; 320 pages.
Downloaded on Oct. 29, 2013 for U.S. Appl. No. 13/291,310, filed Nov. 8, 2011; Part 2 of 3; 330 pages.
Downloaded on Oct. 29, 2013 for U.S. Appl. No. 13/291,310, filed Nov. 8, 2011; Part 3 of 3; 331 pages.
Downloaded on Oct. 30, 2013; U.S. Pat. No. 8,279,781 issued on Oct. 2, 2012; Part 1 of 3; 350 pages.
Downloaded on Oct. 30, 2013; U.S. Pat. No. 8,279,781 issued on Oct. 2, 2012; Part 2 of 3; 350 pages.
Downloaded on Oct. 30, 2013; U.S. Pat. No. 8,279,781 issued on Oct. 2, 2012; Part 3 of 3; 213 pages.
Downloaded on Oct. 30, 2013; U.S. Pat. No. 8,451,756 issued on May 28, 2013; Part 1 of 4; 400 pages.
Downloaded on Oct. 30, 2013; U.S. Pat. No. 8,451,756 issued on May 28, 2013; Part 2 of 4; 400 pages.
Downloaded on Oct. 30, 2013; U.S. Pat. No. 8,451,756 issued on May 28, 2013; Part 3 of 4; 400 pages.
Downloaded on Oct. 30, 2013; U.S. Pat. No. 8,451,756 issued on May 28, 2013; Part 4 of 4; 489 pages.
Effros; "Universal Multiresolution Source Codes;" IEEE Transactions on Information Theory; vol. 47; No. 6; Sep. 2001; pp. 2113-2129.
Effros; Distortion-Rate Bounds for Fixed-and Variable-Rate Multiresolution Source Codes; IEEE Transactions on Information Theory; vol. 45, No. 6; Sep. 1999; pp. 1887-1910.
El Bahri, et al.; "Performance Comparison of Type I, II and III Hybrid ARQ Schemes over AWGN Channels;" 2004 IEEE International Conference on Industrial Technology (ICIT); vol. 3; Dec. 8-10, 2004; pp. 1417-1421.
Eryilmaz, et al.; On Delay Performance Gains From Network Coding; Information Sciences and Systems; 2006 40th Annual Conference on Mar. 22-24, 2006; 7 pages.
Eryilmaz, et al.; On Delay Performance Gains From Network Coding; Information Sciences and Systems; 2006 40th Annual Conference on Mar. 22-24, 2006; pp. 864-870.
Fan, et al.; "Reliable Relay Assisted Wireless Multicast Using Network Coding;" IEEE Journal on Selected Areas in communications; vol. 27; No. 5; Jun. 2009; pp. 749-762.
Feizi, et al.; "Locally Adaptive Sampling;" Communication, Control, and Computing; 2010; 48th Annual Allerton Conference, IEEE; Sep. 29, 2010; pp. 152-159.
Feizi, et al.; "On Network Functional Compression;" arXiv online repository; URL: http://arxiv.org/pdf/1011.5496v2.pdf; Nov. 30, 2010p pp. 1-60.
Feizi, et al.; "When Do Only Sources Need to Compute? On Functional Compression in Tree Networks;" 47th Annual Allerton Conference, IEEE; Sep. 30, 2009; pp. 447-454.
Feizi, et al; "Cases Where Finding a Minimum Entrophy Coloring of a Characteristic Graph is a Polynomial Time Problem;" IEEE International Symposium on Information Theory; Jun. 13, 2010; pp. 116-120.
Ferner, et al.; "Toward Sustainable Networking: Storage Area Networks with Network Coding;" Fiftieth Annual Allerton Conference; IEEE; Oct. 1-5, 2012; pp. 517-524.
Ford, et al.; "TCP Extensions for Multipath Operation with Multiple Addresses;" Internet draft, draft-ford-mptcp-multiaddressed-03; Work in Progress, Mar. 2010; pp. 1-36.
Ford; "Architectural Guidelines for Multipath TCP Development;" Internet Engineering Task Force; Internet-Draft; Dec. 8, 2010; 17 pages.
Ford; "TCP Extension for Multipath Operation with Multiple Addresses draft-ford-mptcp-multiaddressed-03;" Internet Engineering Task Force; Internet-Draft; Mar. 8, 2010; 35 pages.
Fragouli, et al.; "Wireless Network Coding: Opportunities & Challenges;" MILCOM; Oct. 2007; 8 pages.
Frossard, et al.; "Media Streaming With Network Diversity;" Invited Paper; Proceedings of the IEEE: vol. 96, No. 1; Jan. 2008; pp. 39-53.
Frossard, et al.; "Media Streaming With Network Diversity;" Invited Paper; Proceedings of the IEEE; vol. 96, No. 1; Jan. 2008; pp. 39-53.
Galbraith, et al.; (HGST); "Iterative Detection Read Channel Technology in Hard Disk Drives;" Whitepaper; Nov. 2008; 8 pages.
Garcia-Luna-Aceves; "Challenges: Towards Truly Scalable Ad Hoc Networks;" MobiCom 2007; Sep. 2007; pp. 207-214.
Garcia-Luna-Aceves; "Extending the Capacity of Ad Hoc Networks Beyond Network Coding;" IWCMC 07; Proceedings of the 2007 International Conference on Wireless Communications and Mobile Computing; ACM; 2007; pp. 91-96.
Ghaderi, et al.; Reliability Gain of Network Coding in Lossy Wireless Networks; Infocom 2008; The 27th Conference on Computer Communications IEEE; Apr. 13-18, 2008; 5 pages.
Gheorghiu, et al.; "Multipath TCP with Network Coding for Wireless Mesh Networks;" IEEE Communications (ICC) 2010 International Conference; May 23-27, 2010; 5 pages.
Gheorghiu, et al.; "On the Performance of Network Coding in Multi-Resolution Wireless Video Streaming;" IEEE International Symposium on Jun. 9-11, 2010; 6 pages.
Ghez, et al.; "Stability Properties of Slotted Aloha with Multipacket Reception Capability;" IEEE Transactions on Automatic Control; vol. 33; No. 7; Jul. 1988; pp. 640-649.
Gkantsidis, et al.; "Cooperative Security for Network Coding File Distribution;" Proc. IEEE Infocom; Apr. 2006; 13 pages.
Gollakota, et al.; "ZigZag Decoding: Combating Hidden Terminals in Wireless Networks;" SIGCOMM 08; Aug. 17-22; pp. 159-170.
Golrezaei, et al.; "FemtoCaching: Wireless Video Content Delivery Through Distributed Caching Helpers;" arXiv:1109.4179v2; Apr. 7, 2012; pp. 1-11.
Grant, et al.; "Graph Implementation for Nonsmooth Convex Programs;" LNCIS 371; Springer-Verlag Limited; Jan. 2008; pp. 95-110.
Gupta; "The Capacity of Wireless Networks;" IEEE Transactions on Information Theory; vol. 46; No. 2; Mar. 2000; pp. 388-404.
Hadzi-Velkov, et al.; "Capture Effect in IEEE 802.11 Basic Service Area Under Influence of Rayleigh Fading and Near/Far Effect;" IEEE; PIMRC 202; vol. 1; Sep. 2002; 5 pages.
Haeupler, et al.; "One Packet Suffices-Highly Efficient Packetized Network Coding With Finite Memory;" IEEE International Symposium on Information Theory (ISIT) Proceedings; Jul. 31, 2011-Aug. 5, 2011; 5 pages.
Haeupler, et al.; "Optimality of Network Coding in Packet Networks;" ArXiv, Feb. 17, 2011; 5 pages.
Haeupler; "Analyzing Network Coding Gossip Made Easy;" Proc. of the 43rd Symposium on Theory of Computing (STOC); Jan. 2011, 13 pages.
Haley, et al.; "Reversible Low-Density Parity-Check Codes;" IEEE Transactions on Information Theory; vol. 55; No. 5; May 2009; pp. 2016-2036.
Halloush, et al.; "Network Coding with Multi-Generation Mixing: Analysis and Applications for Video Communication;" IEEE International Conference on Communications; May 19, 2008; pp. 198-202.
Han, et al.; "Multi-Path TCP: A Joint Congestion Control and Routing Scheme to Exploit Path Diversity in the Internet;" IEEE/ACM Transaction on Networking (TON); vol. 14; No. 6, Dec. 2006; 26 pages.
Han, et al.; "Multi-Path TCP: A Joint Congestion Control and Routing Scheme to Exploit Path Diversity in the Internet;" IEEE/ACM Transactions on Networking (TON); vol. 14; No. 6, Dec. 2008; 26 pages.
Han, et al.; "On Network Coding for Security;" IEEE Military Communications Conference; Oct. 2007; pp. 1-6.
Hassner, et al.; "4K Bye-Sector HDD-Data Format Standard;" Windows Hardware and Driver Central; San Jose, CA; Aug. 14, 2013; 5 pages.
Ho, et al.; "A Random Linear Network Coding Approach to Multicast;" IEEE Transactions on Information Theory; vol. 52; No. 10; Oct. 2006, pp. 4413-4430.
Ho, et al.; "A Random Linear Network Coding Approach to Multicast;" IEEE Transactions on Information Theory; vol. 52; No. 10; Oct. 2006; pp. 4413-4430.
Ho, et al.; "Byzantine Modification Detection in Multicast Networks using Randomized Network Coding;" IEEE; ISIT; Jun. 27-Jul. 2, 2004; p. 144.
Ho, et al.; "Network Coding from a Network Flow Perspective;" ISIT; Jun.-Jul. 2003; 6 pages.
Ho, et al.; "On Randomized Network Coding;" Proceedings of 41st Annual Allerton Conference on Communications, Control and Computing; Oct. 2003; 10 pages.
Ho, et al.; "On the utility of network coding in dynamic environments;" International Workshop on Wireless AD-HOC Networks (IWWAN); 2004; pp. 1-5.
Ho, et al.; "The Benefits of Coding over Routing in a Randomized Setting;" IEEE; ISIT Jun. 29-Jul. 4, 2003; p. 442.
Ho, et al.; "The Benefits of Coding Over Routing in a Randomized Setting;" ISIT 2003; Yokohama, Japan; IEEE; Jun. 29-Jul. 4, 2003; p. 442.
Ho, et al.; "The Benefits of Coding over Routing in a Randomized Setting;" Proceedings of 2003 IEEE International Symposium on Information Theory; Jun. 2003; pp. 1-6.
Hofri; "Disk Scheduling: FCFS vs. SSTF Revisited;" Communications of the ACM; vol. 23; No. 11; Nov. 1980; pp. 645-653.
Hong, et al.; Network-coding-based hybrid ARQ scheme for mobile relay networks; Electronics Letters; vol. 46; No. 7; Apr. 1, 2010; 2 pages.
International Disk Drive Equipment and Materials Assoc.; "Advanced Standard;" in Windows Hardware Engineering Conf.; May 2005; 11 pages.
International Preliminary Report on Patentability of the ISA for PCT/US2009/055359 dated Apr. 21, 2011.
Iyer, et al.; "Anticipatory scheduling: A disk scheduling framework to overcome deceptive idleness in synchronous I/O;" SIGOPS Operating Sys. Review; vol. 35; No. 5; Dec. 2001; 14 pages.
Jacobson, et al.; "Disk scheduling algorithms based on rotational position;" Hewlett-Packard laboratories; Palo Alto, CA; Technical Report HPL-CSP-91-7rev1; Feb. 26, 1991; 17 pages.
Jaggi, et al.; "Low Complexity Algebraic Multicast Network Codes;" Proceedings of the IEEE International Symposium on Information Theory; Jul. 4, 2003; 1 page.
Jaggi, et al.; "Resilient Network Coding in the Presence of Byzantine Adversaries;" Proc. IEEE INFOCOM; May 2007; 9 pages.
Jakubczak, et al.; "One-Size-Fits-All Wireless Video;" ACM Sig-Comm Hotnets 2009; 6 pages.
Jamieson, et al.; "PPR: Partial Packet Recovery for Wireless Networks;" Presentation; SIGCOMM 07; Aug. 27-31, 2007; 25 pages.
Jamieson, et al.; "PPR: Partial Packet Recovery for Wireless Networks;" SIGCOMM 07; Aug. 27-31, 2007; 12 pages.
Jannaty, et al.; "Full Two-Dimensional Markov Chain Analysis of Thermal Soft Errors in Subthreshold Nanoscale CMOS Devices;" IEEE Transactions on Device and Materials Reliability; vol. 11; No. 1; Mar. 2011; pp. 50-59.
Ji, et al.; "A network coding based hybrid ARQ algorithm for wireless video broadcast;" Science China; Information Sciences; vol. 54; No. 6; Jun. 2011; pp. 1327-1332.
Ji, et al; "A network coding based hybrid ARQ algorithm for wireless video broadcast;" Science China; Information Sciences; vol. 54; No. 6; Jun. 2011; pp. 1327-1332.
Jin, et al.; "Adaptive Random Network Coding in WiMAX;" Communications, 2008; ICC'08 IEEE International Conference on May 19-23, 2008; 5 pages.
Jin, et al.; "Adaptive Random Network Coding in WiMAX;" Communications, 2008; ICC'08 IEEE International Conference on May 19-23, 2008; pp. 2576-2580.
Jin, et al.; "Is Random Network Coding Helpful in WiMAX;" IEEE 27th Conference on Computer Communications; Apr. 2008; 5 pages.
Jolfaei, et al.; "A New Efficient Selective Repeat Protocol for Point-To-Multipoint Communication;" Communications 1993; ICC'93 Genova Technical Program, Conference Record; IEEE International Conference on May 23-26, 1993; vol. 2; pp. 1113-1117.
Karkpinski, et al.; "New Approximation Algorithms for the Steiner Tree Problems;" Technical Report, Electronic Colloquium on Computational Complexity (ECCC) TR95-030; 1995; pp. 1-17.
Karp, et al.; "Randomized Rumor Spreading;" IEEE Proceeding FOCS '00 Proceedings of the 41st Annual Symposium on Foundationa of Computer Science; Jan. 2000; pp. 565-574.
Karpinski, et al.; "New Approximation Algorithms for the Steiner Tree Problems;" Technical Report, Electronic Colloquium on Computational Complexity (ECCC) TR95-030; 1995; pp. 1-17.
Katti, et al.; "XORs in The Air: Practical Wireless Network Coding;" ACM SIGCOMM '06; Computer Communications Review; vol. 36; Sep. 11-15, 2006; 12 pages.
Katti, et al.; "XORs in the Air: Practical Wireless Network Coding;" IEEE/ACT Transactions on Networking; vol. 16; No. 3; 2008; pp. 1-14.
Kempe, et al.; "Protocols and Impossibility Results for Gossip-Based Communication Mechanisms;" Foundations of Computer Science, Jan. 2002; Proceedings. The 43rd Annual IEEE Symposium; pp. 471-480.
Key, et al.; "Combining Multipath Routing and Congestion Control for Robustness;" In Proceedings of IEEE CISS, 2006, 6 pages.
Kim, et al.; "Modeling Network Coded TCP Throughout: A Simple Model and its Validation;" VALUETOOLS '11 Proceedings of the 5th International ICST Conference on Performance Evaluation Methodologies and Tools; May 16-20, 2011; 10 pages.
Kim, et al.; "Modeling Network Coded TCP Throughput: A Simple Model and its Validation", arXiv: 1008.0420v1 [cs.IT] Aug. 2, 2010; 9 pages.
Kim, et al.; "Modeling Network Coded TCP Throughput: A Simple Model and its Validation", Cornell University Library, http://arxiv.org/abs/1008.0420, Aug. 2010, 3 pages.
Kim, et al.; "Modeling Network Coded TCP Throughput: A Simple Model and its Validation", Nov. 2010, 19 pages.
Kim, et al.; "Modeling Network Coded TCP Throughput: A Simple Model and its Validation", Nov. 2010, Presentation; 19 pages.
Kim, et al.; "Modeling Network Coded TCP Throuput: A Simple Model and its Validation", Cornell University Library, http://arxiv.org/abs/1008.0420, Aug. 2010, 3 pages.
Kim, et al.; "Modelling Network Coded TCP Throughput: A Simple Model and its Validation", Conference paper published May 2012, 10 pages.
Kim, et al.; "Network Coding for Multi-Resolution Multicast;" IEEE INFOCOM 2010; Mar. 2010; 9 pages.
Kim, et al.; "Transform-free analysis of the GI/G/1/K queue through the decomposed Little's formula;" Computers and Operations Research; vol. 30; No. 3; Mar. 2003; pp. 1-20.
Kodialam, et al.; "Online Multicast Routing With Bandwidth Guarantees: A New Approach Using Multicast Network Flow;" IEEE/ACM Transactions on Networking; vol. 11; No. 4; Aug. 2003; pp. 676-686.
Koetter, et al.; "An Algebraic Approach to Network Coding;" IEEE/ACM Transactions on Networking; vol. 11, No. 5; Oct. 2003; pp. 782-795.
Koetter, et al.; "An Algebraic Approach to Network Coding;" IEEE/ACM Transactions on Networking; vol. 11; No. 5; Oct. 2003; pp. 782-795.
Koetter, et al.; "Beyond Routing: An Algebraic Approach to Network Coding;" IEEE Infocom; 2002; 9 pages.
Koutsonikolas, et al.; "Efficient Online WiFi Delivery of Layered-Coding Media using Inter-layer Network Coding;" Distributed Computing Systems (ICDCS); 2011 31st International Conference on Jun. 2011; 11 pages.
Kritzner, et al.; "Priority Based Packet Scheduling with Tunable Reliability for Wireless Streaming;" Lecture Notes in Computer Science; 2004; pp. 707-717.
Kuhn, et al.; "Distributed Computation in Dynamic Networks;" Proc. of the 42rd Symposium on Theory of Computing (STOC); Jun. 5-8, 2010; 10 pages.
Lai; "Sequential Analysis: Some Classical Problems and New Challenges"; Statistica Sinica, vol. 11, No. 2; 2011; pp. 303-350.
Landau; "Application of the Volterra Series to the Analysis and Design of an Angle Track Loop;" IEEE Transactions on Aerospace and Electronic Systems; vol. AES-8, No. 3; May 1972; pp. 306-318.
Larsson, et al.; "Analysis of Network Coded HARQ for Multiple Unicast Flows;" Communication (ICC) 2010 IEEE International Conference on May 23-27, 2010 pp. 1-6.
Larsson, et al.; "Multi-User ARQ;" Vehicular Technology Conference; 2006; VTC (2006-Spring); IEEE 63rd ; vol. 4; May 7-10, 2006; pp. 2052-2057.
Larsson, et al.; "Multi-User ARQ;" Vehicular Technology Conference; 2006; VTC (2006-Spring); IEEE 63rd; vol. 4; May 7-10, 2006; pp. 2052-2057.
Larsson; "Analysis of Multi-User ARQ with Multiple Unicast Flows Under Non-iid Reception Probabilities;" Wireless Communication and Networking Conference 2007; WCNC 2007; IEEE; Mar. 11-15, 2007; pp. 384-388.
Larsson; "Multicast Multiuser ARQ;" Wireles Communications and Networking Conference (WCNC) 2008; IEEE; Apr. 3, 2008; pp. 1985-1990.
Larsson; "Multicast Multiuser ARQ;" Wireless Communications and Networking Conference, 2008; WCNC 2008; IEEE; Mar. 31-Apr. 3, 2008; pp. 1985-1990.
Le, et al.; "How Many Packets Can We Encode?-An Analysis of Practical Wireles Network Coding;" INFOCOM 2008; The 27th Conference on Computer Communications, IEEE; 2008; pp. 1040-1048.
Lee, et al.; "Content Distribution in VANETs using Network Coding: The Effect of Disk I/O and Processing O/H;" Proc. IEEE SECON; Jan. 2008; pp. 117-125.
Lehman, et al; "Complexity Classification of Network Information Flow Problems;" SODA 04' Proceedings of the fifteenth annual ACM-SIAM symposium on Discrete algorithms; Jan. 2004; pp. 9-10.
Li, et al.; "Is Random Network Coding Helpful in WiMAX?" Infocom 2008; The 27th Conference on Computer Communications; IEEE; Apr. 13-18, 2008; 5 pages.
Li, et al.; "Linear Network Coding;" IEEE Transactions on Information Theory; vol. 49; No. 2; Feb. 2003; pp. 371-381.
Li, et al.; "N-in-1 Retransmission with Network Coding;" IEEE Transactions on Wireless Communications; vol. 9; No. 9; Sep. 2010; pp. 2689-2694.
Li, et al.; "Robust and Flexible Scalable Video Multicast with Network Coding over P2P Network;" 2nd International Congress on Image and Signal Processing, IEEE: Oct. 17, 2009; pp. 1-5.
Li,et al.; "Linear Network Coding;" IEEE Transactions on Information Theory; vol. 49; No. 2; Feb. 2003; pp. 371-381.
Lima, et al.; "An Information-Theoretic Cryptanalysis of Network Coding-is Protecting the Code Enough;" International Symposium on Information Theory and its Applications; Dec. 2008; 6 pages.
Lima, et al.; "Random Linear Network Coding: A free cipher?" IEEE International Symposium on Information Theory; Jun. 2007; pp. 1-5.
Lima, et al.; "Secure Network Coding for Multi-Resolution Wireless Video Streaming;" IEEE Journal on Selected Areas in Communications; vol. 28; No. 3; Apr. 2010; pp. 377-388.
Lima, et al.; "Towards Secure Multiresolution Network Coding;" IEEE Information Theory Workshop; Jun. 12, 2009; pp. 125-129.
Liu, et al.; "The Throughput Order of Ad Hoc Networks Employing Network Coding Broadcasting;" Military Communications Conference; MILCOM 2006; Oct. 2006; pp. 1-7.
Liu, et al.; "Using Layered Video to Provide Incentives in P2P Live Streaming;" P2P-TV07: Proceedings of the 2007 Workshop on Peer-to-peer Streaming and IP-TV; Aug. 31, 2007 ACM; 6 pages.
Luby, et al.; "The Use of Forward Error Correction (FEC) in Reliable Multicast;" Internet Society Request for Comments; RFC 3453; Dec. 2002; 18 pages.
Lucani et al.; "On Coding for Delay New Approaches based on Network Coding in Network Coding in Networks with Large Latency;" Presentation in NetCod; Slide Presentation; Jun. 16, 2009; 17 pages.
Lucani et al; "Broadcasting in Time-Division Duplexing: A Random Linear Network Coding Approach;" presented Switzerland; Conference: NetCod 2009, Lausanne, Switzerland; Jun. 2009; 6 pages.
Lucani et al; "Broadcasting in Time-Division Duplexing: A Random Linear Network Coding Approach;" presented Switzerland; Conference; NetCod 2009, Lausanne, Switzerland; Jun. 2009; 6 pages.
Lucani et al; "On Coding for Delay New Approaches based on Network Coding in Networks with Large Latency;" Conference ITA Workshop, San Diego, USA; Slide Presentation; Feb. 13, 2009; 11 pages.
Lucani et al; "On Coding for Delay New Approaches based on Network Coding in Networks with Large Latency;" Conference ITA Workshop, San Diego, USA; Slide Presentation; Feb. 13, 2009; 12 pages.
Lucani et al; "On Coding for Delay-New Approaches Based on Network Coding in Networks with Large Latency;" Conference: ITA Workshop, San Diego, USA; Feb. 2009; 10 pages.
Lucani et al; "Random Linear Network Coding For Time Division Duplexing: Energy Analysis;" Conference: ICC 2009, Dresden, Germany; Jun. 2009; 5 pages.
Lucani et al; "Random Linear Network Coding For Time-Division Duplexing: Field Size Considerations;" Conference: GLOBECOM 2009, Hawaii, USA; Dec. 2009; 6 pages.
Lucani et al; "Random Linear Network Coding for Time-Division Duplexing: Queueing Analysis;" Conference ISIT 2009, Seoul, Korea; Jul. 2009; 5 pages.
Lucani et al; "Random Linear Network Coding for Time-Division Duplexing: Queuing Analysis;" Conference ISIT 2009, Seoul, Korea; Jul. 2009; 5 pages.
Lucani et al; "Random Linear Network Coding for Time-Division Duplexing: when to stop talking and start listening;" Presentation in ICC; Slide Presentation; Jun. 16, 2009; 6 pages.
Lucani et al; "Random Linear Network Coding for Time-Division Duplexing: when to stop talking and start listening;" Presentation in INFOCOM; Slide Presentation; Apr. 23, 2009; 10 pages.
Lucani, et al.; "Network Coding For Data Dissemination: It Is Not What You Know, But What Your Neighbors Don't Know;" Modeling and Optimization in Mobile, AdHoc, and Wireless Networks 2009; WiOPT 2009; 7th International Symposium on Jun. 23-27, 2009; pp. 1-8.
Lucani, et al.; "Network Coding Schemes for Underwater Networks;" WUWNet 07; Sep. 14, 2007; pp. 25-32.
Lucani, et al.; "Systematic Network Coding for Time-Division Duplexing;" Proceedings of the IEEE International Symposium on Information Theory (ISIT); ; Jun. 13-18, 2010; pp. 2403-2407.
Lun, et al.; "Further Results on Coding for Reliable Communication over Packet Networks;" Information Theory, ISIT 2005 Proceedings International Symposium on Sep. 4-9, 2005; 5 pages.
Lun, et al.; "Further Results on Coding for Reliable Communication over Packet Networks;" Information Theory, ISIT 2005 Proceedings International Symposium on Sep. 4-9, 2005; pp. 1848-1852.
Lun, et al.; "On Coding for Reliable Communication over Packet Networks;" LIDS Publication #2741; Jan. 2007; 33 pages.
Lun, et al.; "On Coding for Reliable Communication Over Packet Networks;" Physical Communication; vol. 1; No. 1; Jan. 2008; pp. 10 pages.
Lun, et al.; An Analysis of Finite-Memory Random Linear Coding on Packet Streams; Modeling and Optimization in Mobile, Ad Hoc and Wireless Networks; Apr. 3-6, 2006; pp. 1-6.
Lun; "Efficient Operation of Coded Packet Networks;" Ph.D. Dissertation; Massachusetts Institute of Technology; Jun. 2006; 130 pages.
Magli, et al.; "An Overview of Network Coding for Multimedia Streaming;" IEEE International Conference; Jun. 28, 2009; pp. 1488-1491.
Mallat, et al.; "Adaptive Covariance Estimation of Locally Stationary Processes;" Annals of Statistics, vol. 26, No. 1; 1998; pp. 1-43.
Manssour, et al.; "A Unicast Retransmission Scheme based on Network Coding;" IEEE Transactions on Vehicular Technology; vol. 61; Issue 2; Nov. 2011; 7 pages.
Manssour, et al.; "A Unicast Retransmission Scheme based on Network Coding;" IEEE Transactions on Vehicular Technology; vol. 61; Issue 2; pp. 871-876.
Maymounkov, et al.; "Methods for Efficient Network Coding;" Proc. of the 44th Allerton Conference on Communication, Control, and Computing; Sep. 2006; 10 pages.
Médard, et al.; "On Coding for Non-Multicast Networks;" invited paper, 41st Allerton Annual Conference on Communication, Control; Outgrowth of supervised student research Publications of Muriel Médard and Computing; vol. 1; Oct. 2003; 9 pages.
Medard, et al.; Systematic Network Coding for Time-Division Duplexing; Proceedings of the IEEE International Symposium on Information Theory (ISIT); ; Jun. 13-18, 2010; pp. 2403-2407.
Medard; "Some New Directions for Network Coding in Content Distributation", RLE, EECS, MIT, Seminar to Alcatel Lucent, Nov. 2010, 29 pages.
Medard; "Some New Directions for Network Coding in Content Distribution", RLE, EECS, MIT, Seminar to Alcatel Lucent, Nov. 2010, 29 pages.
Merchant, et al.; "Analytic Modeling of Clustered RAID with Mapping Based on Nearly Random Permutation;" IEEE Transactions on Computers; vol. 45; No. 3; Mar. 1996; pp. 367-373.
Metzner; "An Improved Broadcast Retransmission Protocol;" IEEE Transactions on Communications; vol. COM-32; No. 6; Jun. 1984; pp. 679-683.
Mosk-Aoyama, et al.; "Information Dissemination via Network Coding;" ISIT 2006; IEEE; Jul. 9-14, 2006; pp. 1748-1752.
Moyer, et al.; "A Survey of Security Issues in Multicast Communications;" IEEE Network; vol. 13; No. 6; Nov./Dec. 1999; pp. 12-23.
Nguyen, et al.; "Internet Media Streaming Using Network Coding and Path Diversity;" IEEE Global Telecommunications Conference; Nov. 30-Dec. 4, 2008; 5 pages.
Nguyen, et al.; "Wireless Broadcast Using Network Coding;" Vehicular Technology IEEE Transactions on Feb. 2009; vol. 58; Issue 2; 25 pages.
Nguyen, et al.; "Wireless Broadcast Using Networks Coding;" Vehicular Technology IEEE Transactions on Feb. 2009; vol. 58; Issue 2; 25 pages.
Nguyen, et al; "Video Streaming with Network Coding;" Journal of Signal Processing Systems; vol. 59, Issue 3; DOI: 10.1007/s11265-009-0342-7; Jun. 2010; 25 pages.
Nguyen, et al; "Video Streaming with Network Coding;" Journal of Signal Processing Systems; vol. 59, Issue 3; DOI: 10.1007/s11265-009-0342-7; Jun. 2010; p. 319-333.
Nobel; "Hypothesis Testing for Families of Ergodic Processes;" Bernoulli-London, vol. 12; No. 2; 2006; 21 pages.
Noguichi, et al.; "Performance Evaluation of New Multicast Architecture with Network Coding;" IEICE Transactions on Communication, E86-B; No. 6; Jun. 2003; 3 pages.
Notice of Allowance dated Jul. 22, 2015 for U.S. Appl. No. 13/968,566.
Notice of Allowance dated Mar. 20, 2014 from U.S. Appl. No. 13/291,310, filed Nov. 8, 2011.
Notice of Allowance dated Oct. 19, 2015; For U.S. Appl. No. 14/013,324; 9 pages.
NS Version 1-LBNL Network Simulator; web page-http://ee.lel.gov/ns/; Mar. 21, 2011; 3 pages.
Nyandoro, et al.; "Service Differentiation in Wireless LANs based on Capture;" IEEE GLOBECOM 2005; vol. 6; Dec. 2005; 5 pages.
Office Action dated Jul. 9, 2015 for U.S. Appl. No. 14/013,324.
Office Action dated Jun. 9, 2015 for U.S. Appl. No. 13/968,566, filed Aug. 16, 2013.
Oliveira, et al.; "A Network Coding Approach to Secret Key Distribution;" IEEE Transactions on Information Forensics and Security; vol. 3; No. 3; pp. 414-423; Sep. 2008.
ParandehGheibi, et al.; "Access-Network Association Policies for Media Streaming in Heterogeneous Environments;" Apr. 2010; pp. 1-8.
PCT Search Report of the ISA for PCT/US2009/055359 dated March 30, 2011.
Peng, et al.; "Research on Network Coding based Hybrid-ARQ Scheme for Wireles Networks;" Communication Systems (ICCS); 2010 IEEE International Conference on Nov. 17-19, 2010; pp. 218-222.
Peng, et al.; "Research on Network Coding bassed Hybrid-ARQ Scheme for Wireless Networks;" Communication Systems (ICCS); 2010 IEEE International Conference on Nov. 17-19, 2010; pp. 218-222.
Popovici, et al.; "Robust, Portable I/O Scheduling with the Disk Mimic;" Proc. USENIX Annual Tech. Conf. San Antonio, Texas, Jun. 2003; 14 pages.
Pu, et al.; Performance analysis of joint chase combining and network coding in wireless broadcast retransmission; Wireless Communication, Network and Mobile Computing 2008; WICOM '08, 4th International Conference on Oct. 12-14, 2008; pp. 1-4.
Qureshi, et al.; "An Efficient Network Coding based Retransmission Algorithm for Wireless Multicast;" Personal, Indoor and Mobile Radio Communications, 2009 IEEE 20th International Symposium on Sep. 13-16, 2009; 5 pages.
Qureshi, et al.; "An Efficient Network Coding based Retransmission Algorithm for Wireless Multicast;" Personal, Indoor and Mobile Radio Communications, 2009 IEEE 20th International Symposium on Sep. 13-16, 209; pp. 691-695.
Radunovic, et al.; "Horizon: Balancing TCP Over Multiple Paths in Wireless Mesh Network;" Proc. 14th ACM International Conference on Mobile Computing and Networking; Sep. 2008; 12 pages.
Ramanathan; "Multicast Tree Generation in Networks with Asymmetric Links;" IEEE Transactions on Networking; vol. 4; Aug. 1996; pp. 1-12.
Response dated Oct. 6, 2015, to Office Action dated Jul. 9, 2015; For U.S. Appl. No. 14/013,324; 10 Pages.
Response to Office Action dated Jul. 9, 2015 for U.S. Appl. No. 13/968,566.
Response to Office Action dated Sep. 19, 2013 as filed on Dec. 11, 2013 for U.S. Appl. No. 13/291,310.
Rezaee, et al.; "An Analysis of Speeding Multicast by Acknowledgment Reduction Technique (SMART) with Homogeneous and Heterogeneous Links-A Method of Types Approach;" Signals, Systems and Computers (ASILOMAR) 2011 Conference; IEEE; Nov. 2011; pp. 21-27.
Rezaee, et al.; "Multi Packet Reception and Network Coding;" Presentation at The 2010 Military Communications Conference Unclassified Technical Program; Nov. 2, 2010; 15 pages.
Rezaee, et al.; "Speeding Multicast by Acknowledgment Reduction Technique (SMART) Enabling Robustness of QoE to the Number of Users;" IEEE Journal on Selected Areas in Communication; vol. 30, No. 7; Aug. 2012; pp. 1270-1280.
Rezaee, et al.; "Speeding Multicast by Acknowledgment Reduction Technique (SMART);" ArXiv:1104.2941v2 [cs.NI] Sep. 10, 2011; 6 pages.
Rezaee, et.al.; "Multi Packet Reception and Network Coding;" Military Communications Conference; 2010; MILCOM 2010; IEEE; Oct. 31, 2010-Nov. 3, 2010; pp. 1393-1398.
Rezaee; "Network Coding, Multi-Packet Reception, and Feedback: Design Tools for Wireless Broadcast Networks;" Submitted to Department of Electrical Engineering and Computer Science and Massachusetts Institute of Technology; Sep. 2011; 92 pages.
Riemensberger, et al.; "Optimal Slotted Random Access in Coded Wireless Packet Networks;" WIOPt 10: Modeling and Optimization in Mobile, Ad Hoc, and Wireless Networks; Jul. 13, 2010; pp. 374-379.
Roughgarden, et al.; "How Bad is Selfish Routing?" Journal of the ACM; vol. 49, No. 2; Mar. 2002; pp. 236-259.
Ruemmler, et al.; "An introduction to disk drive modeling;" IEEE Computers; vol. 27; No. 3; Mar. 17-29, 1994; 17 pages.
Ryabko, et al.; "On Hypotheses Testing for Ergodic Processes;" Information Theory Workshop; ITW'08; IEEE; 2008; pp. 281-283.
Sanders, et al.; "Polynomial Time Algorithms for Network Information Flow;" 15th ACM Symposium on Parallel Algorithms and Architectures; Jun. 2003; pp. 1-9.
Sanders, et al.; "Polynomial Time Algorithms for Networks Information Flow;" 15th ACM Symposium on Parallel Algorithms and Architectures; Jun. 2003; pp. 1-9.
Sayenko, et al.; "Performance Analysis of the IEEE 802.16 ARQ Mechanism;" MSWiM'07; Oct. 22-26, 2007; pp. 314-322.
Scharf; "MPTCP Application Interface Considerations draft-scharf-mptcp-ap-04;" Internet Engineering Task Force; Internet-Draft; Nov. 22, 2010; 26 pages.
Seferoglu, et al.; "Opportunistic Network Coding for Video Streaming over Wireless;" Packet Video; Nov. 2007; 10 pages.
Sengupta, et al.; "An Analysis of Wireless Network Coding for Unicast Sessions: The Case for Coding-Aware Routing;" in INFOCOM 2007; 26th IEEE International Conference on Computer Communications; Jun. 2007; 9 pages.
Servetto, et al.; "Constrained Random Walks on Random Graphs: Routing Algorithms for Large Scale Wireless Sensor Networks;" WSNA 02; Sep. 28, 2002; 10 pages.
Shenker, et al.; "Pricing in computer networks: reshaping the research agenda;" Telecommunications Policy; vol. 20, No. 3; Jan. 1996; pp. 183-201.
Sherali, et al.; "Recovery of primal solutions when using subgradient optimization methods to solve Lagrangian duals of linear programs;" Elsevier Operations Research Letters 19 (Jan. 1996); pp. 105-113.
Shields; "The Interactions Between Ergodic Theory and Information Theory;" IEEE Transactions on Information Theory, vol. 44, No. 6; Oct. 1998; pp. 2079-2093.
Shrader, et al.; "Systematic wireless network coding;" Military Conference, 2009; MILCOM 2009; IEEE; 7 pages.
Shrader, et al; "Routing and Rate Control for Coded Cooperation in a Satellite-Terrestrial Network;" IEEE: The 2011 Military Communications Conference-Track 2-Network Protocols and Performance; Nov. 7-10, 2011; pp. 735-740.
Shriver, et al.; "An analytic behavior model for disk drives with readahead caches and request reordering;" Proc. SIGMETRICS/Performance, Joint Conf. on Meas. and Modeling Comp. Sys.; ACM; Jan. 1998; 10 pages.
Song, et al.; "Zero-Error Network Coding for Acyclic Networks;" IEEE Transactions on Information Theory; vol. 49, No. 12; Dec. 2003; pp. 3129-3139.
SongPu, et al.; Performance analysis of joint chase combining and network coding in wireless broadcast retransmission; Wireless Communication, Network and Mobile Computing 2008; WICOM '08, 4th International Conference on Oct. 12-14, 2008; pp. 1-4.
Soo Suh; "Send-On-Delta Sensor Data Transmission With A Linear Predictor;" Sensors; ISSN 1424-8220; vol. 7; No. 4; Apr. 26, 2007; pp. 537-547.
Sun, et al.; "Cooperative Hybrid-ARQ Protocol with Network Coding;" Communications and Networking in China 2009-ChinaCOM 2009; Fourth International Conference on Aug. 26-28, 2009; pp. 1-5.
Sundaram, et al.; "Multirate Media Streaming Using Network Coding;" Proc. 43rd Allerton Conference on Communication, Control, and Computing; Sep. 2005; 7 pages.
Sundararajan, et al.; "ARQ for Network Coding;" Information Theory; ISIT 2008; IEEE International Symposium on Jul. 6-11, 2008; pp. 1651-1655.
Sundararajan, et al.; "ARQ for Network Coding;" ISIT Proc. of the IEEE International Symposium on Information Theory (ISIT); Jul. 6-11, 2008; pp. 1651-1655.
Sundararajan, et al.; "Network Coding Meets TCP: Theory and Implementation;" Proceedings of the IEEE; vol. 99, Issue 3; Mar. 2011; pp. 490-512.
Sundararajan, et al.; "Network coding meets TCP:" InfoCOM 2009; IEEE, Apr. 19-25, 2009; pp. 280-288.
Sundararajan, et al.; "Network coding meets TCP;" InfoCOM 2009; IEEE, Apr. 19-25, 2009; pp. 280-288.
Sundararajan, et al.; On Queueing in Coded Networks-Queue Size Follows Degrees of Freedom; IEEE Information Theory Workshop on Information Theory for Wireless Networks (ITW); Jul. 1-6, 2007; 6 pages.
Sundararajan, et al; "Network Coding Meets TCP: Theory and Implementation;" Proceedings of the IEEE 99.3 (2011); pp. 490-512.
Teerapittayanon, et al.; "Network Coding as a WiMAX Link Reliability Mechanism;" Multiple Access Communication; Lectures Notes in Computer Science; vol. 7642; pp. 1-12; 2012.
Teerapittayanon, et al.; "Performance Enhancements in Next Generation Wireless Networks Using Network Coding: A Case Study in WiMAX;" Massachusetts Institute of Technology; Jun. 2012; 130 pages.
Thobaben; "Joint Network/Channel Coding for Multi-User Hybrid-ARQ;" Source and Channel Coding (SCC) 2008; 7th International ITG Conference on Jan. 14-16, 2008; 6 pages.
Tosun, et al.; "Efficient Multi-Layer Coding and Encryption of MPEG Video Streams;" Proc. 2000 IEEE International Conference on Multimedia and Expo; vol. 1; 2000; pp. 119-122.
Tosun, et al.; "Lightweight Security Mechanisms for Wireless Video Transmission;" Proc. Intl. Conference on Information Technology, Coding and Computing; Apr. 2001; pp. 157-161.
Tran, et al.; "A Hybrid Network Coding Technique for Single-Hop Wireles Networks;" IEEE Journal on Selected Areas in Communications; vol. 27; No. 5; Jun. 2009; pp. 685-698.
Tran, et al.; "A Hybrid Network Coding Technique for Single-Hop Wireless Networks;" IEEE Journal on Selected Areas in Communications; vol. 27; No. 5; Jun. 2009; pp. 685-698.
Tran, et al.; "A Joint Network-Channel Coding Technique for Single-Hop Wireless Networks;" Network Coding, Theory and Applications; 2008; NetCod 2008; Fourth Workshop on Jan. 3-4, 2008; pp. 1-6.
Trung, et al.; "Quality Enhancement for Motion JPEG Using Temporal Redundancies;" IEEE Transactions on Circuits and System for Video Technology, vol. 18; No. 5; May 2008; pp. 609-619.
Tsatsanis, et al.; "Network Assisted Diversity for Random Access Wireless Data Networks;" Signals, Systems & amp; Computers; IEEE; vol. 1; Nov. 1-4, 1988; pp. 83-87.
U.S. Appl. No. 13/654,953, filed Oct. 18, 2012, Zeger, et al.
U.S. Appl. No. 13/655,034, filed Oct. 18, 2012, Medard, et al.
U.S. Appl. No. 13/890,604, filed May 9, 2013, Zeger, et al.
U.S. Appl. No. 14/208,683, filed Mar. 13, 2014, Calmon, et al.
U.S. Appl. No. 14/297,090, filed Jun. 5, 2014, Kim, et al.
U.S. Appl. No. 14/668,185, Mar. 25, 2015, Medard, et al.
U.S. Appl. No. 14/678,359, filed Apr. 3, 2015, Zeger, et al.
U.S. Appl. No. 14/826,256, filed Aug. 14, 2015, Zeger, et al.
U.S. Appl. No. 14/843,358, filed Sep. 2, 2015, Haupler, et al.
U.S. Appl. No. 14/882,115, filed Aug. 10, 2015, Lima, et al.
Valancius, et al.; "Greening the Internet with Nano Data Centers;" Proc. 5th International Conference on Emerging Networking Experiments and Technologies; CoNEXT 2009; ACM 2009; Dec. 1-4, 2009; pp. 37-48.
Vasudevan, et al.; "Algebraic Gossip on Arbitrary Networks;" arXiv:0901.1444; Jan. 2009; 5 pages.
Velambi, et al.; "Throughput and Latency in Finite-Buffer Line Networks;" IEEE Transactions on Information Theory; vol. 57; No. 6; Jun. 2011; pp. 3622-3643.
Vien, al.; "Network Coding-based Block ACK for Wireless Relay Networks;" Proceedings of IEEE Vehicular Technology Conference (VTC2011-Spring); May 2011; 5 pages.
Vien, et al.; "Network Coding-based ARQ Retransmission Strategies for Two-Way Wireless Relay Networks;" Software, Telecommunications and Computer Networks (SoftCOM) 2010; International Conference on Sep. 23-25, 2010; 5 pages.
Vien, et al.; "Network Coding-based ARQ Retransmission Strategies for Two-Way Wireless Relay Networks;" Software, Telecommunications and Computer Networks (SoftCOM) 2010; International Conference on Sep. 23-25, 2010; pp. 180-184.
Vilela, et al.; "Lightweight Security for Network Coding;" IEEE International Conference on Communications; May 2008; 5 pages.
Wang, et al.; "Capacity-Delay Tradeoff for Information Dissemination Modalities in Wireless Networks;" in Information Theory; ISIT 2008; IEEE International Symposium; Jul. 2008; pp. 677-681.
Wang, et al.; "Embracing Interference in Ad Hoc Networks Using Joing Routing and Scheduling with Multiple Packet Reception;" in INFOCOM 2008; The 27th Conference on Computer Communications; IEEE; Apr. 2008; pp. 1517-1525.
Wang, et al.; Multipath Live Streaming via TCP: Scheme, Performance and Benefits; ACM Transactions on Multimedia Computing, Communications and Applications; vol. 5; No. 3; Article 25; Aug. 2009; pp. 1-23.
Widmer, et al.; "Network Coding for Efficient Communication in Extreme Networks;" Applications, Technologies, Architectures, and Protocols for Computer Communication; Aug. 2005; pp. 284-291.
Wieselthier, et al.; "Energy Efficient Broadcast and Multicast Trees in Wireless Networks;" Mobile Networks and Applications 7; Jan. 2002; pp. 481-492.
Wieselthier, et al.; "Energy-Aware Wireless Networking with Directional Antennas: The Case of Session-Based Broadcasting and Multicasting;" IEEE Transactions on Mobile Computing; vol. 1, No. 3; Jul.-Sep. 2002; pp. 176-191.
Wilhelm; "An Anomaly in Disk Scheduling: A Comparison of FCFS and SSTF Seek Scheduling Using an Empirical Model for Disk Access;" Communications of the ACM, vol. 19; No. 1; Jan. 1976; pp. 13-17.
Written Opinion of the ISA for PCT/US2009/055359 dated Mar. 30, 2011.
Wu, et al.; "A Trellis Connectivity Analysis of Random Linear Network Coding with Buffering;" Proc. of the International Symposium on Information Theory (ISIT); Jul. 9-14, 2006; pp. 768-772.
Yazdi, et al.; "Optimum Network Coding for Delay Sensitive Applications in WiMAX Unicast;" IEEE INFOCOM 2009; Apr. 19-25, 2009; pp. 1576-2580.
Yeung; "Multilevel Diversity Coding with Distortion;" IEEE Transactions on Information Theory; vol. 41, No. 2; Mar. 1995; pp. 412-422.
Yong, et al.; "XOR Retransmission in Multicast Error Recovery;" Networks 2000; ICON; Proceedings IEEE International Conference on Sep. 5-8, 2000; pp. 336-340.
Yun, et al.; "High-Throughput Random Access Using Successive Interference Cancellation in a Tree Algorithm;" IEEE Transactions on Information Theory; vol. 53; No. 12; Dec. 2007; pp. 4628-4639.
Yun, et al.; Towards Zero Retransmission Overhead: A Symbol Level Network Coding Approach to Retransmission; IEEE Transactions on Mobile Computing; vol. 10; No. 8; Aug. 2011; pp. 1083-1095.
Zeger; "Packet Erasure Coding with Random Access to Reduce Losses of Delay Sensitive Multislot Messages;" IEEE; Paper ID #900482; Aug. 18, 2009; pp. 1-8.
Zhang, et al.; "Collision Resolution in Packet Radio Networks Using Rotational Invariance Techniques;" IEEE Transactions on Communication; vol. 50; No. 1; Jan. 2002; pp. 146-155.
Zhang, et al.; "Optimized Multipath Network Coding in Loss Wireless Networks;" ICDCS '08 Proceedings of the 2008 The 28th International Conference on Distributing Computing Systems; Jan. 2008; 12 pages.
Zhang, et al.; Dual XOR In the AIR: A Network Coding Based Retransmission Scheme for Wireless Broadcasting; Communications (ICC) 2011 IEEE International Conference on Jun. 5-9, 2011; pp. 1-6.
Zhang, et al.; Dual XOR In the AIR; A Network Coding Based Retransmission Scheme for Wireless Broadcasting; Communications (ICC) 2011 IEEE International Conference on Jun. 5-9, 2011; pp. 1-6.
Zhao, et al.; "A Multiqueue Service Room MAC Protocol for Wireless Networks With Multipacket Reception;" IEEE/ACM Transactions on Networking; vol. 11; No. 1; Feb. 2003; pp. 125-137.
Zhao, et al.; "On analyzing and improving COPE performance;" Information Theory and Applications Workshop (ITA), Jan. 2010; pp. 1-6.
Zhu, et al.; "Multicast with Network Coding in Application-Layer Overlay Networks;" IEEE Journal on Selected Areas in Communications; vol. 22; No. 1; Jan. 2004; pp. 1-13.

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10009259B2 (en) 2012-01-31 2018-06-26 Massachusetts Institute Of Technology Multi-path data transfer using network coding
US10366137B2 (en) * 2014-08-15 2019-07-30 Interdigital Patent Holdings, Inc. Methods and apparatus for content delivery via browser cache extension
US10523790B2 (en) 2015-05-27 2019-12-31 Huawei Technologies Co., Ltd. System and method of header compression for online network codes
US9930145B2 (en) * 2015-05-27 2018-03-27 Huawei Technologies Co., Ltd. System and method of header compression for online network codes
US20160352871A1 (en) * 2015-05-27 2016-12-01 Huawei Technologies Co., Ltd. System and Method of Header Compression for Online Network Codes
US10581554B2 (en) * 2017-01-13 2020-03-03 Dolby Laboratories Licensing Corporation Systems and methods to generate copies of data for transmission over multiple communication channels
US11509417B2 (en) * 2017-01-13 2022-11-22 Dolby Laboratories Licensing Corporation Systems and methods to generate copies of data for transmission over multiple communication channels
US11424861B2 (en) 2017-03-29 2022-08-23 Massachusetts Institute Of Technology System and technique for sliding window network coding-based packet generation
US11418449B2 (en) 2018-05-16 2022-08-16 Code On Network Coding, Llc Multipath coding apparatus and related techniques
US10517092B1 (en) 2018-06-04 2019-12-24 SparkMeter, Inc. Wireless mesh data network with increased transmission capacity
US11563644B2 (en) 2019-01-04 2023-01-24 GoTenna, Inc. Method and apparatus for modeling mobility and dynamic connectivity on a stationary wireless testbed
US11451419B2 (en) 2019-03-15 2022-09-20 The Research Foundation for the State University Integrating volterra series model and deep neural networks to equalize nonlinear power amplifiers
US11855813B2 (en) 2019-03-15 2023-12-26 The Research Foundation For Suny Integrating volterra series model and deep neural networks to equalize nonlinear power amplifiers

Also Published As

Publication number Publication date
US20140269485A1 (en) 2014-09-18
US20140269505A1 (en) 2014-09-18
US20140269503A1 (en) 2014-09-18
US9185529B2 (en) 2015-11-10
US9253608B2 (en) 2016-02-02

Similar Documents

Publication Publication Date Title
US9271123B2 (en) Wireless reliability architecture and methods using network coding
US10009259B2 (en) Multi-path data transfer using network coding
KR101134332B1 (en) Method and apparatus for overhead reduction in an enhanced uplink in a wireless communication system
US9258084B2 (en) Method and implementation for network coefficents selection
US9860022B2 (en) Method, apparatus, and protocol for improving performance in a wireless network
RU2547696C2 (en) Communication control method, mobile communication system and mobile terminal
US20090319850A1 (en) Local drop control for a transmit buffer in a repeat transmission protocol device
EP2218204B1 (en) Method and system for data transmission in a data network
US11424861B2 (en) System and technique for sliding window network coding-based packet generation
WO2012036880A1 (en) Increasing hybrid automatic repeat request (harq) throughput
CN112636879B (en) Method and device for code block processing based on hybrid automatic repeat request
KR20100029024A (en) Transmitting device, transmitting method and receiving method for multicast and broadcast service
JP5236735B2 (en) Improved data structure boundary synchronization between transmitter and receiver
US9307441B1 (en) Systems and methods of transferring information to a wireless device
JP2010098766A (en) Receiving apparatus, receiving method, wireless communication system, and communication method
WO2024007303A1 (en) Wireless Communications Using Batch-Based Cross-Code Block Network Coding
KR101695838B1 (en) Apparatus and method for transmitting/receiving data in communication system
Xu et al. Max-degree network coding for wireless data broadcasting

Legal Events

Date Code Title Description
AS Assignment

Owner name: MASSACHUSETTS INSTITUTE OF TECHNOLOGY, MASSACHUSET

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MEDARD, MURIEL;SHI, XIAOMENG;MONTPETIT, MARIE-JOSE;AND OTHERS;SIGNING DATES FROM 20130724 TO 20130814;REEL/FRAME:031116/0454

STCF Information on status: patent grant

Free format text: PATENTED CASE

CC Certificate of correction
MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8