WO1996035282A1 - System and method for hybrid contention/polling protocol collision resolution using a depth first search technique - Google Patents

System and method for hybrid contention/polling protocol collision resolution using a depth first search technique Download PDF

Info

Publication number
WO1996035282A1
WO1996035282A1 PCT/US1996/003954 US9603954W WO9635282A1 WO 1996035282 A1 WO1996035282 A1 WO 1996035282A1 US 9603954 W US9603954 W US 9603954W WO 9635282 A1 WO9635282 A1 WO 9635282A1
Authority
WO
WIPO (PCT)
Prior art keywords
branch
frame
depth
collision
received
Prior art date
Application number
PCT/US1996/003954
Other languages
French (fr)
Inventor
John A. Perreault
Abhay Joshi
Mete Kabatepe
Lawrence W. Lloyd
Stephen Schroeder
Original Assignee
Motorola Inc.
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 Motorola Inc. filed Critical Motorola Inc.
Priority to AU52588/96A priority Critical patent/AU5258896A/en
Publication of WO1996035282A1 publication Critical patent/WO1996035282A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/407Bus networks with decentralised control
    • H04L12/413Bus networks with decentralised control with random access, e.g. carrier-sense multiple-access with collision detection (CSMA-CD)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/403Bus networks with centralised control, e.g. polling

Definitions

  • CX095004 METHOD AND APPARATUS FOR A HYBRID CONTENTION AND POLLING PROTOCOL by Abhay Joshi, Mete Kabatepe, Lawrence W. Lloyd, John A. Perreault, And Stephen Schroeder
  • CX095005 METHOD AND SYSTEM FOR PROVIDING ACCESS BY SECONDARY STATIONS TO A SHARED TRANSMISSION MEDIUM, by Abhay Joshi, Mete Kabatepe, Lawrence W. Lloyd, John A. Perreault, And Stephen Schroeder
  • CX095007 METHOD AND APPARATUS FOR MULTILING POLLING, by Abhay Joshi, Mete Kabatepe, Lawrence W. Lloyd, John A.
  • the present invention relates to communication in shared channel environments, and more particularly to collision resolution techniques for communication in shared channel environments.
  • Data to be transmitted in a shared channel environment may typically be "packaged" in frames to facilitate transmission.
  • a frame is a set of consecutive time slots in which the position of each digit time slot is identified by reference to a frame- alignment signal.
  • the frame-alignment signal may not necessarily occur entirely or even in part in each frame.
  • the retransmitted frame may collide again with frame transmissions from the same device(s) involved in the original collision if the other devices select approximately the same amount of time to wait before retransmitting, or with any other device that coincidentally chooses to transmit.
  • the devices back off longer and longer amounts of time, until a maximum number of retransmission attempts has occurred, at which point the frame is dropped.
  • the probability of multiple collisions of frames occurring increases to the point of congestion collapse, i.e., very little or no frame traffic is transmitted successfully without collisions.
  • the headend Master can hear the "upstream” transmissions of the "remote Slave” devices, and all remote Slave devices can hear the "downstream” transmissions of the headend Master (e.g., multidrop modem Wide Area Networks (WANs), coaxial cable CATV WANs, etc.).
  • WANs Wide Area Networks
  • CATV WANs coaxial cable CATV WANs, etc.
  • one solution is for the headend Master to repeat all remote Slave upstream transmissions by transmitting them downstream, so that those involved in a collision can hear the collision.
  • this type of solution uses bandwidth that could more profitably be utilized for downstream transmissions when some or all transmissions are sent beyond a local network (e.g., to destinations in a wide area network).
  • FIG. 1 is a block diagram of a Master/Slave communication system that operates in accordance with the method of the present invention.
  • FIG. 2 is a block diagram of a Master device of FIG.
  • FIG. 3 is a block diagram of a Slave device of FIG. 1 that is utilized in accordance with the present invention.
  • FIG. 4 is a diagram of a collision resolution poll tree structure in accordance with the present invention.
  • FIG. 5 is a flow chart of steps in accordance with implementation of the method of contention access control of the present invention by the Master device controller.
  • FIG. 6 is a flow chart of steps in accordance with implementation of the method for utilizing a collision resolution protocol of the present invention by the Master device controller.
  • FIG. 7 is a flow chart of one implementation of the steps of transmitting upon receiving a contention poll from the first Master device and retransmitting, by the subset of Slave devices, the information to the Master device in accordance with the present invention.
  • FIG. 8 is a flow chart of one implementation of the steps utilized by the Slave device controller in executing the process_contention_frame subroutine in accordance with the present invention.
  • FIG. 9 is a flow chart of one embodiment of steps in accordance with the method of the present invention.
  • FIG. 10 is a flow chart of one embodiment of steps of a depth first tree search that is utilized together with polls for collision resolution in accordance with the present invention.
  • the present invention provides a solution to the problem of resolving collisions in an environment where the transmitting devices cannot "hear" collisions without the headend Master repeating transmission of all upstream frames in the downstream direction. Using this invention results in more efficient use of downstream bandwidth. This invention also prevents additional collisions from occurring between a device that is retransmitting due to an earlier collision and a device that is transmitting a frame for the first time. Further, this invention prevents congestion collapse from occurring under heavy channel loading.
  • this invention provides a solution which prevents additional collisions from occurring between a device that is retransmitting due to an earlier collision, and a device that is retransmitting a frame due to a more recent collision.
  • the present invention prevents congestion collapse from occurring under heavy channel loading.
  • This invention is particularly well-suited to, although not limited to, environments where there is a single Master transmitter for a plurality of Slave receivers in a downstream direction, and a plurality of Slave transmitters for one Master receiver in an upstream direction (e.g., multidrop modem WANs, coaxial cable CATV WANs, etc.).
  • the plurality of Slave transmitters are allowed to remain simple at the cost of some additional complexity in the single Master transmitter, while at the same time providing an effective collision resolution mechanism.
  • the Master transmitter has the ability to receive transmissions by any of the Slaves on the shared channel in order to detect collisions.
  • the Master transmitter controls transmission by all of the Slaves by transmitting contention polls, which allow all or some subset of the Slaves to transmit, and collision resolution polls which allow only a subset of those Slaves involved in the most recent collision to attempt retransmission.
  • the subset of Slaves allowed to retransmit following a collision is determined using a depth first tree search technique.
  • the tree is grown "deeper", i.e., to a node at a next depth, with fewer and fewer Slaves allowed to retransmit as the depth increases, and when no collision occurs on a specific branch of the tree, the branch is "pruned", i.e., terminated, and a subset of Slaves for a next branch of the node is permitted, until collisions for all branches of a node have been resolved.
  • collision resolution is continued at a next node at the immediately previous depth, and so on, until all collisions have been resolved.
  • this process is repeated until only the root of the tree remains, at which point all collisions have been resolved.
  • FIG. 1 is a block diagram of a Master/Slave communication system that operates in accordance with the method of the present invention.
  • the Master device (102) communicates with the Slave devices (104, 106, 108, ...) by utilizing a downstream channel (1 10) and an upstream channel (1 12) to provide a hybrid contention/polling protocol system that implements a depth first search technique for providing collision resolution.
  • the Master device (102) transmits to all Slave devices, i.e., stations, (104, 106, 108, ...) on the downstream channel (110) and receives from all Slave devices (104, 106, 108, ...) on the upstream channel (1 12).
  • the Slave devices (104, 106, 108, ...) receive transmissions from the Master device (102) on the downstream channel (110), and transmit to the Master device (102) on the upstream channel (112).
  • the Master device (102) detects and controls the resolution of, upstream channel collisions that occur when two or more Slave devices (104, 106, 108, ...) transmit coincidentally.
  • FIG. 2, numeral 200 is a block diagram of a Master device of FIG. 1 that is utilized in accordance with the present invention.
  • the Master device (200) receives upstream channel frames at the receiver(s)/collision detector(s) (208).
  • the receiver(s)/collision detector(s) (208) determine whether there was a collision (typically based on an implication of a collision when a cyclic redundancy code is incorrect), and provide this information to the controller (204).
  • the controller (204) controls Slave device access to the upstream channel based on the receiver(s)/collision detector's information by generating contention polls which allow a subset (which may be the entire set) of the Slave devices to transmit, or collision resolution polls which allow only a subset (which is less than the entire set) of those Slave devices involved in the most recent collision to attempt retransmission.
  • the controller (204) then forwards frames received on the upstream channel without a collision to predetermined applications.
  • FIG. 3, numeral 300 is a block diagram of a Slave device of FIG. 1 that is utilized in accordance with the present invention.
  • the Slave device (300) receives downstream channel frames through a receiver (308).
  • the controller (304) of the Slave device determines whether the received frame is a contention poll or collision resolution poll and selects the appropriate response as necessary (i.e., no response, transmission of a new frame, or retransmission of the last frame sent). If a response is to be sent, it is sent to the transmitter (306) of the Slave device for delivery on the upstream channel. If the frame received on the downstream channel is not a contention poll or collision resolution poll, it is sent to the predetermined applications.
  • FIG. 4, numeral 400 is a diagram of a collision resolution poll tree structure in accordance with the present invention.
  • Two integer variables are used to control the sequence and termination of the collision resolution procedure, which is based on a depth first tree search technique.
  • the first variable is MAXDEPTH (D), representing a maximum depth that the tree may grow to, which corresponds to the maximum number of consecutive collisions allowed before abandoning the collision resolution procedure and discarding all frames involved in the collision.
  • the second variable is MAXBRANCH (B), representing the maximum number of branches allowed at a vertice (i.e., node) in the tree, which corresponds to the maximum value allowed for a random number that is selected by each Slave device involved in a specific collision in an attempt to differentiate between colliding transmissions of Slave devices in the next retransmission.
  • MAXDEPTH and MAXBRANCH can be chosen dynamically at the time of the collision, or statically, based on the application.
  • the root node (402) represents the contention poll that resulted in a collision.
  • MAXBRANCH nodes one depth level below (410, 412 414), each node representing a collision resolution poll that will be generated by the Master.
  • Each slave involved in the collision on the previous collision resolution poll selects a random integer number 1 to MAXBRANCH.
  • the master If no collision occurs, the master generates a collision resolution poll for each of the nodes at a given depth level, then backs up to the previous depth level and generates a collision resolution poll for the next branch at that level, repeating this process until only the root (402) remains, at which point all collisions have been resolved.
  • FIG. 9, numeral 900 One embodiment of steps in accordance with the method of the present invention is set forth in FIG. 9, numeral 900.
  • the invention provides efficient resolution of transmission collisions in a simultaneous channel access communication system having at least a first Master device and a plurality of Slave devices, and includes the steps of: 1 ) sending (902), by a plurality of
  • FIG. 10, numeral 1000 is a flow chart of one embodiment of steps of a depth first tree search that is utilized together with polls for collision resolution in accordance with the present invention.
  • the predetermined depth first tree search technique includes the steps of: 1 ) setting (1002), by the Master device, a dynamically or statically determined maximum depth D, D being an integer, to represent a depth of a tree and a second dynamically or statically determined integer value B to represent a maximum number of branches for each depth level of the tree; 2) selecting (1004), by the Master device, a subset of Slaves at a first depth level and a branch, wherein each Slave involved in a collision randomly selects a branch in an integer range of 1-B, the Master device selects branch value 1 and the subset of slaves that are allowed to retransmit following the collision are those slaves who have selected branch value 1 , and said subset of slaves retransmitting and one of 2A-2B: 2A) where a collision occurs, proceeding (1006), by the Master device, to
  • the Master device controller has logic for controlling access to the upstream channel by Slave devices.
  • the Master device controller also has logic for controlling the resolution of collisions of Slave device transmissions on the upstream channel, should they occur.
  • FIG. 5, numeral 500 is a flow chart of steps in accordance with implementation of the method of contention access control of the present invention by the Master device controller.
  • FIG. 6, numeral 600 is a flow chart of steps in accordance with implementation of the method for utilizing a collision resolution protocol of the present invention by the Master device controller.
  • the Slave device has logic for controlling its access to the upstream channel based upon the receipt of frames on the downstream channel that were transmitted by the Master device.
  • the Slave device also contains logic for recognizing that the Master device is resolving a specific collision that the Slave device was involved in, and for selecting a random number between one and MAXBRANCH for use in the collision resolution procedure described.
  • selecting a subset of Slaves allowed to retransmit following the collision, by the first Master device using a collision resolution poll in accordance with a predetermined depth first tree search technique includes the following steps.
  • a predetermined depth i.e., MAXDEPTH
  • MAXBRANCH preselected or dynamically determined maximum branch value B
  • the Master device exits (622) the step of resolving the collision, and where the branch is an integer value 1 ⁇ branch ⁇ B, the Master device sends (606) a collision resolution poll having a depth and a branch and a MAXBRANCH, wherein the depth is initially set to 1 and, as the present protocol is implemented, is incremented during each recursion, to a maximum of D, D being an integer value between 1 and MAXDEPTH, and depth being a level of a tree of the predetermined depth first tree search, and branch is incremented during each recursion to a maximum of MAXBRANCH, and waits for a frame to be received or for a predetermined timeout period to elapse.
  • MAXBRANCH may be a preselected constant value or may be selected to be a different value for each collision poll.
  • the resolve_collision subroutine may utilize a stack (where the stack has a depth of D) recursively until transmission fail to collide, and then proceed to the step of increasing branch to branch + 1 (618). Upon exiting the resolve_collision subroutine of FIG. 6 after all collisions have been resolved, one exits to FIG. 5, step
  • a transmission is typically a frame or packet.
  • the steps of transmitting, by the plurality of Slave devices upon receiving a contention poll from the first Master device and retransmitting, by the subset of Slave devices, the information to the Master device include the following steps.
  • the Slave device waits (702) for a valid frame to be received. Where a valid frame fails to be received (703), the Slave device recycles (710) to waiting for a valid frame to be received. Where a valid frame is received (703), the slave device determines (704) whether the frame is one of: a contention poll and a collision resolution poll.
  • the Slave device forwards the frame received to the applications (708) and recycles (710) to waiting for a valid frame to be received.
  • the Slave device executes a process_contention_frame subroutine (706) (see FIG. 8) providing the received valid frame, referred to herein as frame_received and providing said frame_received type, one of: a contention poll and a collision resolution poll, referred to herein as frame_type, and recycles (710) to waiting for a valid frame to be received.
  • the Slave device controller (304), in executing the process_contention_frame subroutine typically implements the steps shown in FIG. 8, numeral 800.
  • the Slave device controller determines (806) whether the frame_type is a collision resolution poll.
  • the hybrid contention/polling protocol system of the present invention utilizes the depth first search technique described above for providing collision resolution for collisions of transmissions in a shared channel environment.
  • the system includes a plurality of Slave devices and at least a first Master device coupled by upstream channel(s) and downstream channel(s).
  • the hybrid contention/polling protocol incudes: 1 ) transmitting, by the plurality of Slave devices upon receiving a contention poll from the first Master device, information to the Master device, wherein transmissions of the Slave devices provide a collision; 2) selecting a subset of Slaves allowed to retransmit following the collision, by the first Master device using a collision resolution poll in accordance with a predetermined depth first tree search technique; and 3) retransmitting, by the subset of Slave devices, the information to the Master device, and, where another collision is obtained, recycling to step 2 and repeating steps 2 and 3 until all collisions are resolved.
  • the predetermined depth first tree search technique utilized by the hybrid contention/polling protocol system is described above.
  • the steps implemented by the Master device to provide the contention poll and for selecting, using a collision resolution poll, a subset of Slaves allowed to retransmit following the collision using a predetermined depth first tree search technique are set forth above.
  • the steps for transmitting, by the plurality of Slave devices upon receiving a contention poll from the first Master device and retransmitting, upon receiving a collison resolution poll from the first Master device, by the subset of Slave devices, the information to the Master device are as described above.

Abstract

A method and system provide efficient resolution of transmission collisions in a simultaneous channel access communication environment. At least a first Master device and a plurality of Slave devices utilize the steps of: (1) transmitting, by the plurality of Slave devices upon receiving a contention poll from the first Master device, information to the Master device, wherein transmissions of the Slave devices provide a collision (1002); (2) selecting a subset of Slaves allowed to retrsnsmit following the collision, by the first Master device using a collision resolution poll in accordance with a predetermined depth first tree search technique (1004); and (3) retransmitting, by the subset of Slave devices, the information to the Master device, and, where another collision is obtained, recycling to step 2 and repeating steps 2 and 3 until all collisions are resolved (1004, 1006 and 1008).

Description

SYSTEM AND METHOD FOR HYBRID
CONTENTION/POLLING PROTOCOL COLLISION
RESOLUTION USING A DEPTH FIRST SEARCH
TECHNIQUE
Co-Pending Applications
The present application may be related to co-pending applications: CX095004, METHOD AND APPARATUS FOR A HYBRID CONTENTION AND POLLING PROTOCOL by Abhay Joshi, Mete Kabatepe, Lawrence W. Lloyd, John A. Perreault, And Stephen Schroeder; CX095005, METHOD AND SYSTEM FOR PROVIDING ACCESS BY SECONDARY STATIONS TO A SHARED TRANSMISSION MEDIUM, by Abhay Joshi, Mete Kabatepe, Lawrence W. Lloyd, John A. Perreault, And Stephen Schroeder; CX095007, METHOD AND APPARATUS FOR MULTILING POLLING, by Abhay Joshi, Mete Kabatepe, Lawrence W. Lloyd, John A. Perreault, And Stephen Schroeder; CX095008, METHOD AND SYSTEM FOR MANAGEMENT OF FREQUENCY SPECTRUM AMONG MULTIPLE APPLICATIONS ON A SHARED MEDIUM by John A. Perreault, Abhay Joshi, Albert Chen and Eva Labowicz; CX095009, METHOD AND APPARATUS FOR A HYBRID LIMITED CONTENTION AND POLLING PROTOCOL, by Abhay Joshi, Mete Kabatepe, Lawrence W. Lloyd, John A. Perreault, And Stephen Schroeder; and CX095012, METHOD AND SYSTEM FOR
MANAGEMENT OF FREQUENCY SPECTRUM AMONG MULTIPLE APPLICATIONS ON A SHARED MEDIUM, by Abhay Joshi, Mete Kabatepe, Lawrence W. Lloyd, John A. Perreault, And Stephen Schroeder.
Field of the Invention
The present invention relates to communication in shared channel environments, and more particularly to collision resolution techniques for communication in shared channel environments.
Background
Data to be transmitted in a shared channel environment may typically be "packaged" in frames to facilitate transmission. A frame is a set of consecutive time slots in which the position of each digit time slot is identified by reference to a frame- alignment signal. The frame-alignment signal may not necessarily occur entirely or even in part in each frame.
In shared channel environments having simultaneous channel access, two or more devices may transmit a frame simultaneously, causing collisions. Most protocols in use today use a form of random backoff for resolving these collisions. In random backoff, where devices involved in the collision "hear" the collision as it occurs, the collision is resolved by selecting a random number that controls how long, i.e., what timeout period, a device must wait before retransmitting. "Hear" typically means that a device receiver is tuned to the same channel as the transmissions, the device actually receives its own transmission and recognizes that the message is garbled, e.g., signals received do not match signals transmitted and the device implies a collision from the incorrectly received signals. When the timeout period has been completed, the device retransmits. The retransmitted frame may collide again with frame transmissions from the same device(s) involved in the original collision if the other devices select approximately the same amount of time to wait before retransmitting, or with any other device that coincidentally chooses to transmit. When repeated collisions occur while devices are trying to retransmit, the devices back off longer and longer amounts of time, until a maximum number of retransmission attempts has occurred, at which point the frame is dropped. Under heavy channel loading, the probability of multiple collisions of frames occurring increases to the point of congestion collapse, i.e., very little or no frame traffic is transmitted successfully without collisions.
Further, in some environments, only one "headend Master" device can hear the "upstream" transmissions of the "remote Slave" devices, and all remote Slave devices can hear the "downstream" transmissions of the headend Master (e.g., multidrop modem Wide Area Networks (WANs), coaxial cable CATV WANs, etc.). In this type of environment, one solution is for the headend Master to repeat all remote Slave upstream transmissions by transmitting them downstream, so that those involved in a collision can hear the collision. However, this type of solution uses bandwidth that could more profitably be utilized for downstream transmissions when some or all transmissions are sent beyond a local network (e.g., to destinations in a wide area network).
Thus, in shared channel environments where simultaneous channel access can occur, a system and method are needed for efficiently resolving the resulting collisions when two or more Slave devices transmit simultaneously.
Brief Descriptions of the Drawings FIG. 1 is a block diagram of a Master/Slave communication system that operates in accordance with the method of the present invention.
FIG. 2 is a block diagram of a Master device of FIG.
1 that is utilized in accordance with the present invention.
FIG. 3 is a block diagram of a Slave device of FIG. 1 that is utilized in accordance with the present invention.
FIG. 4 is a diagram of a collision resolution poll tree structure in accordance with the present invention.
FIG. 5 is a flow chart of steps in accordance with implementation of the method of contention access control of the present invention by the Master device controller.
FIG. 6 is a flow chart of steps in accordance with implementation of the method for utilizing a collision resolution protocol of the present invention by the Master device controller.
FIG. 7 is a flow chart of one implementation of the steps of transmitting upon receiving a contention poll from the first Master device and retransmitting, by the subset of Slave devices, the information to the Master device in accordance with the present invention.
FIG. 8 is a flow chart of one implementation of the steps utilized by the Slave device controller in executing the process_contention_frame subroutine in accordance with the present invention. FIG. 9 is a flow chart of one embodiment of steps in accordance with the method of the present invention.
FIG. 10 is a flow chart of one embodiment of steps of a depth first tree search that is utilized together with polls for collision resolution in accordance with the present invention.
Detailed Description of a Preferred Embodiment
The present invention provides a solution to the problem of resolving collisions in an environment where the transmitting devices cannot "hear" collisions without the headend Master repeating transmission of all upstream frames in the downstream direction. Using this invention results in more efficient use of downstream bandwidth. This invention also prevents additional collisions from occurring between a device that is retransmitting due to an earlier collision and a device that is transmitting a frame for the first time. Further, this invention prevents congestion collapse from occurring under heavy channel loading.
Also, this invention provides a solution which prevents additional collisions from occurring between a device that is retransmitting due to an earlier collision, and a device that is retransmitting a frame due to a more recent collision. By preventing additional collisions from occurring between a device that is retransmitting due to an earlier collision and a device that is transmitting a frame for the first time or due to a more recent collision, the present invention prevents congestion collapse from occurring under heavy channel loading. This invention is particularly well-suited to, although not limited to, environments where there is a single Master transmitter for a plurality of Slave receivers in a downstream direction, and a plurality of Slave transmitters for one Master receiver in an upstream direction (e.g., multidrop modem WANs, coaxial cable CATV WANs, etc.). The plurality of Slave transmitters are allowed to remain simple at the cost of some additional complexity in the single Master transmitter, while at the same time providing an effective collision resolution mechanism. The Master transmitter has the ability to receive transmissions by any of the Slaves on the shared channel in order to detect collisions. The Master transmitter controls transmission by all of the Slaves by transmitting contention polls, which allow all or some subset of the Slaves to transmit, and collision resolution polls which allow only a subset of those Slaves involved in the most recent collision to attempt retransmission.
In the present invention the subset of Slaves allowed to retransmit following a collision is determined using a depth first tree search technique. As collisions occur, the tree is grown "deeper", i.e., to a node at a next depth, with fewer and fewer Slaves allowed to retransmit as the depth increases, and when no collision occurs on a specific branch of the tree, the branch is "pruned", i.e., terminated, and a subset of Slaves for a next branch of the node is permitted, until collisions for all branches of a node have been resolved. Upon resolution of all collisions at a node, collision resolution is continued at a next node at the immediately previous depth, and so on, until all collisions have been resolved. Thus, this process is repeated until only the root of the tree remains, at which point all collisions have been resolved.
FIG. 1 , numeral 100, is a block diagram of a Master/Slave communication system that operates in accordance with the method of the present invention. The Master device (102) communicates with the Slave devices (104, 106, 108, ...) by utilizing a downstream channel (1 10) and an upstream channel (1 12) to provide a hybrid contention/polling protocol system that implements a depth first search technique for providing collision resolution.
In FIG. 1 , the Master device (102) transmits to all Slave devices, i.e., stations, (104, 106, 108, ...) on the downstream channel (110) and receives from all Slave devices (104, 106, 108, ...) on the upstream channel (1 12). The Slave devices (104, 106, 108, ...) receive transmissions from the Master device (102) on the downstream channel (110), and transmit to the Master device (102) on the upstream channel (112). The Master device (102) detects and controls the resolution of, upstream channel collisions that occur when two or more Slave devices (104, 106, 108, ...) transmit coincidentally.
FIG. 2, numeral 200, is a block diagram of a Master device of FIG. 1 that is utilized in accordance with the present invention. The Master device (200) receives upstream channel frames at the receiver(s)/collision detector(s) (208). The receiver(s)/collision detector(s) (208) determine whether there was a collision (typically based on an implication of a collision when a cyclic redundancy code is incorrect), and provide this information to the controller (204). The controller (204) controls Slave device access to the upstream channel based on the receiver(s)/collision detector's information by generating contention polls which allow a subset (which may be the entire set) of the Slave devices to transmit, or collision resolution polls which allow only a subset (which is less than the entire set) of those Slave devices involved in the most recent collision to attempt retransmission. The controller (204) then forwards frames received on the upstream channel without a collision to predetermined applications.
FIG. 3, numeral 300, is a block diagram of a Slave device of FIG. 1 that is utilized in accordance with the present invention. The Slave device (300) receives downstream channel frames through a receiver (308). The controller (304) of the Slave device determines whether the received frame is a contention poll or collision resolution poll and selects the appropriate response as necessary (i.e., no response, transmission of a new frame, or retransmission of the last frame sent). If a response is to be sent, it is sent to the transmitter (306) of the Slave device for delivery on the upstream channel. If the frame received on the downstream channel is not a contention poll or collision resolution poll, it is sent to the predetermined applications.
FIG. 4, numeral 400, is a diagram of a collision resolution poll tree structure in accordance with the present invention. Two integer variables are used to control the sequence and termination of the collision resolution procedure, which is based on a depth first tree search technique. The first variable is MAXDEPTH (D), representing a maximum depth that the tree may grow to, which corresponds to the maximum number of consecutive collisions allowed before abandoning the collision resolution procedure and discarding all frames involved in the collision. The second variable is MAXBRANCH (B), representing the maximum number of branches allowed at a vertice (i.e., node) in the tree, which corresponds to the maximum value allowed for a random number that is selected by each Slave device involved in a specific collision in an attempt to differentiate between colliding transmissions of Slave devices in the next retransmission. MAXDEPTH and MAXBRANCH can be chosen dynamically at the time of the collision, or statically, based on the application. In the example of FIG. 4 the root node (402) represents the contention poll that resulted in a collision. There are MAXBRANCH nodes one depth level below (404, 406, ..., 408), each of which has a plurality of branch nodes
(410, 412 414; 416, 418 420; 422, 424, ..., 426), and so on, and each node representing a collision resolution poll that will be generated by the Master. Thus, at MAXDEPTH, there are a plurality of branch nodes (432, 434 436; 438, 440, ..., 442) for each next to last branch node (428 430).
The Master generates a collision resolution poll with depth = 1 and branch = 1 (404). Each slave involved in the collision on the previous contention poll, upon seeing the collision resolution poll depth = 1 branch = 1 (404), selects a random integer number 1 to MAXBRANCH. All slaves that selected branch = 1 retransmit immediately, while all other slaves must wait for a collision resolution poll containing depth = 1 branch = whatever value the slave randomly selected, e.g., those slaves selecting the random number 2 must wait for a collision resolution poll containing depth = 1 branch = 2 (406), etc. Suppose that there was a collision on the collision resolution poll containing depth = 1 branch = 1 (404). There are MAXBRANCH nodes one depth level below (410, 412 414), each node representing a collision resolution poll that will be generated by the Master. Each slave involved in the collision on the previous collision resolution poll selects a random integer number 1 to MAXBRANCH. The Master generates a collision resolution poll with depth = 2 and branch = 1 (410), and all slaves that selected branch = 1 respond. This process continues until either no collision is detected or MAXDEPTH is exceeded. If MAXDEPTH is exceeded, the Master stops attempting to resolve the collisions for that branch and colliding frames are discarded by the slaves. If no collision occurs, the master generates a collision resolution poll for each of the nodes at a given depth level, then backs up to the previous depth level and generates a collision resolution poll for the next branch at that level, repeating this process until only the root (402) remains, at which point all collisions have been resolved. For example, after a collision resolution poll with depth = 1 branch = 1 (404) resulted in a collision, when no collision is detected at depth = 2 , branch = MAXBRANCH (414), the Master backs up to depth = (2-1 ) = 1 , branch = (1 +1 ) = 2 (406), and generates a collision resolution poll with depth = 1 branch = 2 (406). This process is repeated until no collision is detected at depth = 1 branch = MAXBRANCH (408), at which point all collisions have been resolved.
One embodiment of steps in accordance with the method of the present invention is set forth in FIG. 9, numeral 900. The invention provides efficient resolution of transmission collisions in a simultaneous channel access communication system having at least a first Master device and a plurality of Slave devices, and includes the steps of: 1 ) sending (902), by a plurality of
Slave devices to the { Master device, transmissions; 2) determining (904), by the Master device, that a collision has occurred between at least two of the transmissions; and 3) utilizing (906) a hybrid contention/polling protocol for implementing a depth first search technique to provide collision resolution.
The hybrid contention/polling protocol for implementing a depth first search technique typically includes the steps of: 1 ) sending, by the Master device, a contention poll to the plurality of Slave devices authorizing transmission; 2) determining, by the Master device, whether a timeout has occurred; 3) recycling to step 1 where a timeout has occurred; 4) continuing to step 5 where a timeout fails to occur; 5) determining, by the Master device, whether a transmission has been received; 6) recycling to step 1 where the transmission fails to be received; 7) continuing to step 8 where the transmission is received; 8) determining, by the Master device, whether a collision has occurred; 9) forwarding, by the Master device, the transmission to application(s) where the collision fails to occur, and recycling to step 1 ; and 10) executing, where a collision occurs, a collision resolution protocol that continues to execute until all collisions that can be resolved are resolved, with depth = 1 , and recycling to step 1.
FIG. 10, numeral 1000, is a flow chart of one embodiment of steps of a depth first tree search that is utilized together with polls for collision resolution in accordance with the present invention. The predetermined depth first tree search technique includes the steps of: 1 ) setting (1002), by the Master device, a dynamically or statically determined maximum depth D, D being an integer, to represent a depth of a tree and a second dynamically or statically determined integer value B to represent a maximum number of branches for each depth level of the tree; 2) selecting (1004), by the Master device, a subset of Slaves at a first depth level and a branch, wherein each Slave involved in a collision randomly selects a branch in an integer range of 1-B, the Master device selects branch value 1 and the subset of slaves that are allowed to retransmit following the collision are those slaves who have selected branch value 1 , and said subset of slaves retransmitting and one of 2A-2B: 2A) where a collision occurs, proceeding (1006), by the Master device, to a next depth level and selecting, by the Master device, a first predetermined subset of the next depth level of Slaves at the next depth level and a branch, wherein each slave involved in the immediately preceeding collision randomly selects a branch in an integer range of 1-B, the Master device selects branch value 1 and the subset of slaves that are allowed to retransmit following the collision are those slaves at said next depth level who have selected branch value 1 , and said subset of slaves retransmitting and recycling to one of 1006, 1008;
2B) where transmission is successful, proceeding (1008) by the Master device, to a next branch of the same depth level and selecting a subset of slaves at the same depth level and a branch, wherein each slave involved in a collision has previously selected a branch in an integer range of 1-B, the Master device selects the next branch value and the subset of slaves that are allowed to retransmit following the collision are those slaves who have selected the same branch as selected by the Master device, and said subset of slaves retransmitting and recycling to one of 1006 and 1008 until all collisions have been resolved for a branch, and the Master device returning to the previous depth level, and repeating step 1008 until all collisions have been resolved for the tree.
The Master device controller has logic for controlling access to the upstream channel by Slave devices. The Master device controller also has logic for controlling the resolution of collisions of Slave device transmissions on the upstream channel, should they occur. FIG. 5, numeral 500, is a flow chart of steps in accordance with implementation of the method of contention access control of the present invention by the Master device controller. Thus, the steps implemented by the Master device to provide the contention poll and for selecting, using a collision resolution poll, a subset of Slaves allowed to retransmit following the collision using a predetermined depth first tree search technique, typically include: 1 ) sending (502) a contention poll to the plurality of Slave devices authorizing transmission; 2) determining (504) whether a timeout has occurred; 3) recycling (514) to step 1 where a timeout has occurred; 4) continuing (520) to step 5 where a timeout fails to occur; 5) determining (506) whether a transmission has been received; 6) recycling (516) to step 4 where the transmission fails to be received; 7) continuing (522) to step 8 where the transmission is received; 8) determining (508) whether a collision has occurred; 9) forwarding (510), where the collision fails to occur (524), the transmission to application(s) and recycling (518) to step 1 ; 10) executing (512), where a collision occurs (526), a resolve_collision subroutine with depth = 1 that continues to execute until all collisions are resolved, and recycling (518) to step 1.
FIG. 6, numeral 600, is a flow chart of steps in accordance with implementation of the method for utilizing a collision resolution protocol of the present invention by the Master device controller. The Slave device has logic for controlling its access to the upstream channel based upon the receipt of frames on the downstream channel that were transmitted by the Master device. The Slave device also contains logic for recognizing that the Master device is resolving a specific collision that the Slave device was involved in, and for selecting a random number between one and MAXBRANCH for use in the collision resolution procedure described. Typically, selecting a subset of Slaves allowed to retransmit following the collision, by the first Master device using a collision resolution poll in accordance with a predetermined depth first tree search technique includes the following steps. First, a predetermined depth, i.e., MAXDEPTH, is preselected or dynamically determined and input into the Master device controller. The Master device starts by selecting (602) branch = 1 and determines (604) whether the branch is less than or equal to a preselected or dynamically determined maximum branch value B (MAXBRANCH), B an integer. Where the branch is greater than B, the Master device exits (622) the step of resolving the collision, and where the branch is an integer value 1< branch < B, the Master device sends (606) a collision resolution poll having a depth and a branch and a MAXBRANCH, wherein the depth is initially set to 1 and, as the present protocol is implemented, is incremented during each recursion, to a maximum of D, D being an integer value between 1 and MAXDEPTH, and depth being a level of a tree of the predetermined depth first tree search, and branch is incremented during each recursion to a maximum of MAXBRANCH, and waits for a frame to be received or for a predetermined timeout period to elapse. MAXBRANCH may be a preselected constant value or may be selected to be a different value for each collision poll.
Next, the Master device determines whether a predetermined timeout period has elapsed (608). Where the timeout period has elapsed, the Master device proceeds to set branch equal to branch + 1 (618) and proceeds as further detailed below. Where the Master device determines that a timeout period has failed to elapse, the Master device determines whether a transmission has been received (610). Where a transmission fails to be received and the predetermined timeout period has elapsed, the Master device sets (618) branch = branch + 1 and recycles (620) to determining whether branch is less than or equal to a predetermined maximum branch value B. Where a transmission is received, the Master device determines (612) whether a collision has occurred and where a collision fails to occur forwards the transmission received to the application (613), sets (618) branch = branch + 1 and recycles (620) to determining whether branch is less than or equal to the predetermined maximum branch value B. Where a collision occurs, the Master device determines (614) whether depth is less than D. Where depth is greater than or equal to D, the Master device exits (624) the step of selecting a subset of Slaves, and where depth is less than D, the Master device sets depth = depth + 1 and executes (616) the recursive resolve_collision subroutine. Upon exiting the recursive resolve_collision subroutine of FIG. 6, one exits to step 618, sets (618) branch = branch + 1 , and recycles (620) to determining whether branch is less than or equal to the predetermined maximum branch value B. In one implementation, the resolve_collision subroutine may utilize a stack (where the stack has a depth of D) recursively until transmission fail to collide, and then proceed to the step of increasing branch to branch + 1 (618). Upon exiting the resolve_collision subroutine of FIG. 6 after all collisions have been resolved, one exits to FIG. 5, step
518. A transmission is typically a frame or packet.
Typically, as set forth in FIG. 7, numeral 700, the steps of transmitting, by the plurality of Slave devices upon receiving a contention poll from the first Master device and retransmitting, by the subset of Slave devices, the information to the Master device include the following steps. The Slave device waits (702) for a valid frame to be received. Where a valid frame fails to be received (703), the Slave device recycles (710) to waiting for a valid frame to be received. Where a valid frame is received (703), the slave device determines (704) whether the frame is one of: a contention poll and a collision resolution poll. Where one of a contention poll and a collision resolution poll fails to be received, the Slave device forwards the frame received to the applications (708) and recycles (710) to waiting for a valid frame to be received. Where a valid frame, one of a contention poll and a collision resolution poll is received, the Slave device executes a process_contention_frame subroutine (706) (see FIG. 8) providing the received valid frame, referred to herein as frame_received and providing said frame_received type, one of: a contention poll and a collision resolution poll, referred to herein as frame_type, and recycles (710) to waiting for a valid frame to be received.
The Slave device controller (304), in executing the process_contention_frame subroutine typically implements the steps shown in FIG. 8, numeral 800. The Slave device controller receives the frame_received (i.e., the message itself) and frame_type information (i.e., whether a contention poll or a collision poll) and determines (802) whether frame_type = contention poll. Where the frame_type = contention poll, the Slave device controller determines (801 ) whether last_frame = NULL. Where last_frame fails to be equal to NULL, the Slave device controller discards the last frame sent and sets last_frame = NULL (803). Where last_frame is equal to NULL or immediately after setting (803) last frame = NULL, the Slave device controller sets current_depth = 1 (804), sets current_branch = 0 (805), determines whether another frame is to be sent (807), where all frames have been sent, exits, and sends a frame when another frame remains to be sent and sets last_frame = frame_sent (809), and exits (820). Where the frame_type is a non-contention poll, the Slave device controller determines (806) whether the frame_type is a collision resolution poll. Where the frame_type is a non-collision resolution poll, the Slave device controller exits (820), and where the frame_type is a collision resolution poll, the Slave device controller determines (808) whether last_frame = NULL. Where las rame = NULL, the Slave device controller exits (820), and where lasMrame fails to be NULL, the Slave device controller determines (810) whether current_depth = depth in frame_received. Where current_depth fails to be equal to depth in frame_received, the Slave device controller exits (820), and where current_depth = depth in frame_received, the Slave device controller determines (812) whether current_branch «-- 0 and where current_branch = 0, the Slave device controller sets (814) current_branch = random (1 , B). Random (1 ,B) is a subroutine call to a standard subroutine to generate a random integer number between 1 and B inclusive. Where current_branch is unequal to 0 or immediately after setting (814) current_branch = random (1 ,B), the Slave device controller determines (816) whether current_branch = branch in frame_received. Where current_branch fails to equal branch in frame_received, the Slave device controller exits (820), and where current_branch = branch in frame_received, the Slave device controller retransmits (818) last_frame, sets current_depth = current_depth +1 , and sets current_branch=0, and then exits (820).
The hybrid contention/polling protocol system of the present invention utilizes the depth first search technique described above for providing collision resolution for collisions of transmissions in a shared channel environment. As shown in FIG. 1 , the system includes a plurality of Slave devices and at least a first Master device coupled by upstream channel(s) and downstream channel(s). The hybrid contention/polling protocol incudes: 1 ) transmitting, by the plurality of Slave devices upon receiving a contention poll from the first Master device, information to the Master device, wherein transmissions of the Slave devices provide a collision; 2) selecting a subset of Slaves allowed to retransmit following the collision, by the first Master device using a collision resolution poll in accordance with a predetermined depth first tree search technique; and 3) retransmitting, by the subset of Slave devices, the information to the Master device, and, where another collision is obtained, recycling to step 2 and repeating steps 2 and 3 until all collisions are resolved.
The predetermined depth first tree search technique utilized by the hybrid contention/polling protocol system is described above. Similarly, the steps implemented by the Master device to provide the contention poll and for selecting, using a collision resolution poll, a subset of Slaves allowed to retransmit following the collision using a predetermined depth first tree search technique, are set forth above. Also the steps for transmitting, by the plurality of Slave devices upon receiving a contention poll from the first Master device and retransmitting, upon receiving a collison resolution poll from the first Master device, by the subset of Slave devices, the information to the Master device are as described above.

Claims

CLAIMS 20
1. A method for providing efficient collision resolution for transmissions that collide in a simultaneous channel access communication system having at least a first Master device and a plurality of Slave devices, comprising the steps of:
1 A) sending, by a plurality of Slave devices to the Master device, transmissions,
1 B) determining, by the Master device, that a collision has occurred between at least two of the transmissions, and
1 C) utilizing a hybrid contention/polling protocol for implementing a depth first search technique to provide collision resolution.
2. The method of claim 1 wherein the hybrid contention/polling protocol for implementing a depth first search technique includes the steps of: 2A) sending, by the Master device, a contention poll to the plurality of Slave devices authorizing transmission,
2B) determining, by the Master device, whether a timeout has occurred, 2B1 ) recycling to step 2A where a timeout has occurred, and
2B2) continuing to step 2C where a timeout fails to occur,
2C) determining, by the Master device, whether a transmission has been received,
2C1 ) recycling to step 2A where the transmission fails to be received,
2C2) continuing to step 2D where the transmission is received, 2D) determining, by the Master device, whether a collision has occurred,
2D1 ) forwarding, by the Master device, the transmission to application(s) where the collision fails to occur, and recycling to step 2A, and 1 D2) executing, where a collision occurs, a resolution_contention subroutine with depth = 1 , and recycling to step 2A.
3. The method of claim 1 wherein the predetermined depth first tree search technique includes the steps of:
3A) setting, by the Master device, a dynamically or statically determined maximum depth D, D being an integer, to represent a depth of a tree and a second dynamically or statically determined integer value B to represent a maximum number of branches for each depth level of the tree;
3B) selecting, by the Master device, a subset of Slaves at a first depth level and a branch, wherein each Slave involved in a collision randomly selects a branch in an integer range of 1-B, the Master device selects branch value 1 and the subset of slaves that are allowed to retransmit following the collision are those slaves who have selected branch value 1 , and said subset of slaves retransmitting and one of 3B1-3B2:
3B1 ) where a collision occurs, proceeding, by the Master device, to a next depth level and selecting, by the Master device, a first predetermined subset of the next depth level of Slaves at the next depth level and a branch, wherein each slave involved in the immediately preceeding collision randomly selects a branch in an integer range of 1-B, the Master device selects branch value 1 and the subset of slaves that are allowed to • retransmit following the collision are those slaves at said next depth level who have selected branch value 1 , and said subset of slaves retransmitting and recycling to one of 3B1 , 3B2;
3B2) where transmission is successful, proceeding by the Master device, to a next branch of the same depth level and selecting a subset of slaves at the same depth level and a branch, wherein each slave involved in a collision has previously selected a branch in an integer range of 1 -B, the Master device selects the next branch value and the subset of slaves that are allowed to retransmit following the collision are those slaves who have selected same branch as selected by the Master device, and said subset of salves retransmitting and recycling to one of 3B1 and 3B2 until all collisions have been resolved for a branch, and the Master device returning to the previous depth level, and repeating step 3B2 until all collisions have been resolved for the tree.
4. The method of claim 1 wherein the steps implemented by the Master device to provide a contention poll and for selecting, using a collision resolution poll, a subset of Slaves allowed to retransmit following the collision using a predetermined depth first tree search technique, include:
4A) sending a contention poll to the plurality of Slave devices authorizing transmission;
4B) determining whether a timeout has occurred; 4C) recycling to step 4A where a timeout has occurred;
4D) continuing to step 4E where a timeout fails to occur;
4E) determining whether a transmission has been received;
4F) recycling to step 4D where the transmission fails to be received;
4G) continuing to step 4H where the transmission is received; 4H) determining whether a collision has occurred;
41) forwarding, where the collision fails to occur, the transmission to application(s) and recycling to step 4A;
4J) executing, where a collision occurs, a resolve_collision subroutine with depth = 1 that continues to execute until all collisions are resolved, and recycling to step 4A.
5. The method of claim 1 wherein selecting a subset of Slaves allowed to retransmit following the collision, by the first Master device using a collision resolution poll protocol in accordance with a predetermined depth first tree search technique includes the steps of: 5A) inputting a predetermined depth, 5B) selecting branch = 1 ,
5C) determining whether branch is an integer value 1≤ branch < B, B an integer representing a preselected/dynamically determined maximum branch value MAXBRANCH, and 5C1 ) where the branch is greater than or equal to B, exiting the step of selecting a subset of Slaves, and
5C2) sending a collision resolution poll having a depth and a branch and MAXBRANCH, wherein the depth is initially set to 1 and incremented during each recursion to a maximum of MAXDEPTH D, maximum of D, D being an integer value between 1 and MAXDEPTH, and depth being a level of a tree of the predetermined depth first tree search, and the branch is incremented during each recursion to a maximum of MAXBRANCH, 5D) determining whether a predetermined timeout period has occurred,
5E) setting branch = branch + 1 and recycling to 5C where a predetermined timeout period has expired, 5F) determining, where a predetermined timeout is unexpired, whether where a transmission has been received, and
5G) setting branch = branch + 1 and recycling to 5C where a transmission is unreceived, 5H) where a transmission is received, determining whether a collision has occurred and one of:
5H1 ) where a collision fails to occur, forwarding the transmission received to the application(s), setting branch = branch + 1 and recycling to step 5C,
5H2) where a collision occurs, determining whether depth is less than D, and one of:
5H2a) where depth is greater than or equal to D, exiting the step of selecting a subset of Slaves, and
5H2b) where depth is less than
D, executing a recursive resolve_collision subroutine with depth= depth + 1 , setting branch = branch + 1 , and recycling to step 5C.
6. The method of claim 1 wherein the steps of sending transmissions, by the plurality of Slave devices upon receiving a contention poll from the first Master device and retransmitting, by the subset of Slave devices, the information to the Master device include: 6A) waiting for a valid frame to be received, 6B) recycling, where a valid frame fails to be received, to waiting for a valid frame to be received, 6C) determining, where a valid frame is received, whether the frame is one of: a contention poll and a collision resolution poll,
6D) forwarding, where one of a contention poll and a collision resolution poll fails to be received, the frame received to the applications and recycling to waiting for a valid frame to be received, and
6E) executing, where a valid frame, one of a contention poll and a collision resolution poll is received, a process_contention_frame subroutine to provide the received valid frame, frame_received, and providing a type for said frame_received, one of: a contention poll and a collision resolution poll, frame_type, and recycling to waiting for a valid frame to be received; and where further selected, wherein, for the Slave device, further including: 6F) receiving frame_received and frame_type information and determining whether frame_type = contention poll, and one of: 6F1 ) where the frame_type = contention poll, determining whether last_frame = NULL,
6F1 a) discarding, where last_frame fails to be equal to NULL, the last frame sent and setting last_frame = NULL, 6F1 b) discarding, where one of: last_frame is equal to NULL and immediately after setting last frame = NULL, setting current_depth = 1 and setting current_branch = 0 ,
6F1 c) determining whether another frame is to be sent,
6F1 d) exiting where all frames have been sent, 6F1 e) sending a frame when another frame remains to be sent, setting last_frame = frame_sent, and exiting,
6F2) where the frame_type is a non- contention poll, determining whether the frame_type = collision resolution poll and one of:
6F2a) where the frame_type is a non- collision resolution poll, exiting,
6F2b) where the frame_type is a collision resolution poll, determining whether last_frame = NULL, and one of: 6F2b1 ) where last_frame =
NULL, exiting, and
6F2b2) where lasMrame fails to be NULL, determining whether current_depth = depth in frame_received and one of:
6F2b2a) where current_depth fails to be equal to depth in frame_received, exiting, and
6F2b2b) where current_depth = depth in frame_received, determining whether current_branch = 0 and where current_branch is unequal to zero, proceeding to step 6F2b3 and where current_branch = 0, setting current_branch = random (1 , B), 6F2b3) determining whether current_branch = branch in frame_received and one of:
6F2b3a) where current_branch fails to equal branch in frame_received, exiting, and 6F2b3b) where current_branch = branch in frame_received, retransmitting: lasMrame, current_depth = current_depth +1 , and current_branch=0, and then exiting.
7. A hybrid contention/polling protocol system that utilizes a depth first search technique for providing collision resolution for collisions of transmissions in a shared channel environment, the system comprising: a plurality of Slave devices and at least a first
Master device coupled by upstream channel(s) and downstream channel(s), wherein the hybrid contention/polling protocol incudes:
7A) transmitting, by the plurality of Slave devices upon receiving a contention poll from the first Master device, information to the Master device, wherein transmissions of the Slave devices provide a collision ,
7B) selecting a subset of Slaves allowed to retransmit following the collision, by the first Master device using a collision resolution poll in accordance with a predetermined depth first tree search technique,
7C) retransmitting, by the subset of Slave devices, the information to the Master device, and, where another collision is obtained, recycling to step 8B and repeating steps 8B and 8C until all collisions are resolved.
8. The system of claim 7 wherein the predetermined depth first tree search technique includes:
8A) setting, by the Master device, a dynamically or statically determined maximum depth D, D being an integer, to represent a depth of a tree and a second dynamically or statically determined integer value B to represent a maximum number of branches for each depth level of the tree;
8B) selecting, by the Master device, a subset of Slaves at a first depth level and a branch, wherein each Slave involved in a collision randomly selects a branch in an integer range of 1-B, the Master device selects branch value 1 and the subset of slaves that are allowed to retransmit following the collision are those slaves who have selected branch value 1 , and said subset of slaves retransmitting and one of 8B1 -8B2:
8B1) where a collision occurs, proceeding, by the Master device, to a next depth level and selecting, by the Master device, a first predetermined subset of the next depth level of Slaves at the next depth level and a branch, wherein each slave involved in the immediately preceeding collision randomly selects a branch in an integer range of 1 -B, the Master device selects branch value 1 and the subset of slaves that are allowed to retransmit following the collision are those slaves at said next depth level who have selected branch value 1 , and said subset of slaves retransmitting and recycling to one of 8B1- 8B2;
8B2) where transmission is successful, proceeding by the Master device, to a next branch of the same depth level and selecting a subset of slaves at the same depth level and a branch, whrein each slave involved in a collision has previously selected a branch in an integer range of 1-B, the Master device selects the next branch value and the subset of slaves that are allowed to retransmit following the collision are those slaves who have selected same branch as selected by the Master device, and said subset of salves retransmitting and recycling to one of 8B1 and 8B2 until all collisions have been resolved for a branch, and the Master device returning to the previous depth level, and repeating step 8B2 until all collisions have been resolved for the tree.
9. The system of claim 7 wherein the steps implemented by the Master device to provide the contention poll and for selecting, using a collision resolution poll, a subset of Slaves allowed to retransmit following the collision using a predetermined depth first tree search technique, include:
9A) sending a contention poll to the plurality of Slave devices authorizing transmission;
9B) determining whether a timeout has occurred; 9C) recycling to step 10A where a timeout has occurred;
9D) continuing to step 9E where a timeout fails to occur;
9E) determining whether a transmission has been received;
9F) recycling to step 9D where the transmission fails to be received;
9G) continuing to step 9H where the transmission is received; 9H) determining whether a collision has occurred;
91) forwarding, where the collision fails to occur, the transmission to application(s) and recycling to step 9A;
9J) executing, where a collision occurs, a resolve_collision subroutine with depth = 1 that continues to execute until all collisions are resolved, and recycling to step 9A; and where selected, wherein selecting a subset of Slaves allowed to retransmit following the collision, by the first Master device using a collision resolution poll in accordance with a predetermined depth first tree search technique includes:
9K) inputting a predetermined depth, 9L) selecting branch = 1 ,
9M) determining whether branch is an integer value 1< branch < B, B an integer representing a maximum branch value MAXBRANCH, and
9M1 ) where the branch is greater than or equal to B, exiting the step of selecting a subset of
Slaves, and
9M2) sending a collision resolution poll having a depth and a branch and MAXBRANCH, wherein the depth is initially set to 1 and incremented during each recursion to a maximum of MAXDEPTH D, maximum of D, D being an integer value between 1 and MAXDEPTH, and depth being a level of a tree of the predetermined depth first tree search, and the branch is incremented during each recursion to a maximum of a preselected/dynamically determined MAXBRANCH,
9N) determiuning whether a predetermined timeout period has occurred,
90) setting branch = branch + 1 and recycling to
10C where a predetermined timeout period has expired, 9P) determining, where a predetermined timeout is unexpired, whether where a transmission has been received, and
9Q) setting branch = branch + 1 and recycling to
9M where a transmission is unreceived, 9R) where a transmission is received, determining whether a collision has occurred and one of:
9R1 ) where a collision fails to occur, forwarding the transmission received to the application(s), setting branch = branch + 1 and recycling to step 9C,
9R2) where a collision occurs, determining whether depth is less than D, and one of:
9R2a) where depth is greater than or equal to D, exiting the step of selecting a subset of Slaves, and
9R2b) where depth is less than
D, executing a recursive resolve_collision subroutine with depth= depth + 1 , setting branch = branch + 1 , and recycling to step 9M.
1 0. The system of claim 7 wherein transmitting, by the plurality of Slave devices upon receiving a contention poll from the first Master device and retransmitting, by the subset of Slave devices, the information to the Master device include:
1 0A) waiting for a valid frame to be received, 10B) recycling, where a valid frame fails to be received, to waiting for a valid frame to be received, 10C) determining, where a valid frame is received, whether the frame is one of: a contention poll and a collision resolution poll,
10D) forwardinging, where one of a contention poll and a collision resolution poll fails to be received, the frame received to the applications and recycling to waiting for a valid frame to be received, and
10E) executing, where a valid frame, one of a contention poll and a collision resolution poll is received, a process_contention_frame subroutine to provide the received valid frame, frame_received, and providing a type for said frame_received, one of: a contention poll and a collision resolution poll, frame_type, and recycling to waiting for a valid frame to be received, and where further selected, wherein, for the Slave device, further including: 10F) receiving frame_received and frame_type information and determining whether frame_type = contention poll, and one of: 10F1 ) where the frame_type = contention poll, determining whether lasMrame = NULL,
10F1 a) discarding, where lasMrame fails to be equal to NULL, the last frame sent and setting lasMrame = NULL, 10F1 b) discarding, where one of: lasMrame is equal to NULL and immediately after setting last frame = NULL, setting current_depth = 1 and setting current_branch = 0 ,
10F1 c) determining whether another frame is to be sent,
10F1 d) exiting where all frames have veen sent, 10F1 e) sending a frame when another frame remains to be sent, setting lasMrame = frame_sent, and exiting,
10F2) where the frame_type is a non- contention poll, determining whether the frame_type is a collision resolution poll and one of:
10F2a) where the framejype is a non-collision resolution poll, exiting,
10F2b) where the frame_type is a collision resolution poll, determining whether lasMrame = NULL, and one of: 10F2b1 ) where lasMrame =
NULL, exiting, and
10F2b2) where lasMrame fails to be NULL, determining whether current_depth = depth in frame_received and one of:
10F2b2a) where current_depth fails to be equal to depth in frame_received, exiting, and
10F2b2b) where current_depth = depth in frame_received, determining whether current_branch = 0 and where current_branch is unequal to zero, proceeding to step 10F2b3 and where current_branch = 0, setting current_branch = random (1 , B), 10F2b3) determining whether current_b ranch = branch in frame_received and one of:
10F2b3a) where current_branch fails to equal branch in frame_received, exiting, and 10F2b3b) where current_branch = branch in frame_received, retransmitting: lasMrame, current_depth = current_depth +1 , and current_branch=0, and then exiting.
PCT/US1996/003954 1995-05-02 1996-03-19 System and method for hybrid contention/polling protocol collision resolution using a depth first search technique WO1996035282A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU52588/96A AU5258896A (en) 1995-05-02 1996-03-19 System and method for hybrid contention/polling protocol col lision resolution using a depth first search technique

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/433,876 1995-05-02
US08/433,876 US5651009A (en) 1995-05-02 1995-05-02 System and method for hybrid contention/polling protocol collision resolution using a depth first search technique

Publications (1)

Publication Number Publication Date
WO1996035282A1 true WO1996035282A1 (en) 1996-11-07

Family

ID=23721884

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1996/003954 WO1996035282A1 (en) 1995-05-02 1996-03-19 System and method for hybrid contention/polling protocol collision resolution using a depth first search technique

Country Status (3)

Country Link
US (1) US5651009A (en)
AU (1) AU5258896A (en)
WO (1) WO1996035282A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998035526A2 (en) * 1997-02-06 1998-08-13 Telefonaktiebolaget Lm Ericsson (Publ) Inter-node signaling for protocol initialization within a communications network
DE19721740A1 (en) * 1997-05-24 1998-11-26 Rexroth Mannesmann Gmbh Access control method for serial bus
DE19935490C2 (en) * 1999-07-28 2002-04-25 Phoenix Contact Gmbh & Co Method and control and data transmission system for providing communication between several participants

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754799A (en) * 1996-02-28 1998-05-19 Paradyne Corporation System and method for bus contention resolution
US5892769A (en) * 1996-08-28 1999-04-06 Motorola Inc. Method and system for prioritized multiple access using contention signatures for contention-based reservation
US5978795A (en) * 1997-01-14 1999-11-02 Microsoft Corporation Temporally ordered binary search method and system
IL131342A0 (en) * 1997-02-10 2001-01-28 Hybrid Networks Inc Method of sharing communication channels utilizing both contention and polling schemes
US6275497B1 (en) * 1997-02-10 2001-08-14 Hybrid Networks, Inc. Method and apparatus for controlling communication channels using contention and polling schemes
KR100232237B1 (en) * 1997-10-25 1999-12-01 김영환 Lan interfacing apparatus and method
US6704317B1 (en) 1998-05-27 2004-03-09 3Com Corporation Multi-carrier LAN modem server
US6891887B1 (en) 1998-05-27 2005-05-10 3Com Corporation Multi-carrier LAN adapter device using interpolative equalizer
US6507585B1 (en) 1998-05-27 2003-01-14 3Com Corporation Multi-carrier LAN adapter device using frequency domain equalizer
US6222851B1 (en) * 1998-05-29 2001-04-24 3Com Corporation Adaptive tree-based contention resolution media access control protocol
US6377683B1 (en) 1998-05-29 2002-04-23 3Com Corporation Low complexity frequency domain echo canceller for DMT transceivers
US6603811B1 (en) 1998-05-29 2003-08-05 3Com Corporation Low complexity frequency domain equalizer having fast re-lock
CA2341250C (en) 1998-07-21 2008-04-15 Tachyon, Inc. Method and apparatus for multiple access in a communication system
US6674730B1 (en) 1998-08-04 2004-01-06 Tachyon, Inc. Method of and apparatus for time synchronization in a communication system
US6256483B1 (en) 1998-10-28 2001-07-03 Tachyon, Inc. Method and apparatus for calibration of a wireless transmitter
US6650636B1 (en) 1999-08-27 2003-11-18 Tachyon, Inc. Transmission and reception of TCP/IP data over a wireless communication channel
US6218896B1 (en) 1999-08-27 2001-04-17 Tachyon, Inc. Vectored demodulation and frequency estimation apparatus and method
US6665292B1 (en) 1999-08-27 2003-12-16 Tachyon, Inc. Transmission and reception of TCP/IP data over a wireless communication channel
US6735188B1 (en) 1999-08-27 2004-05-11 Tachyon, Inc. Channel encoding and decoding method and apparatus
US6982969B1 (en) 1999-09-28 2006-01-03 Tachyon, Inc. Method and system for frequency spectrum resource allocation
US6674731B1 (en) 1999-08-27 2004-01-06 Tachyon, Inc. Transmission and reception of TCP/IP data over a wireless communication channel
US6463070B1 (en) 1999-08-27 2002-10-08 Tachyon, Inc. System and method for clock correlated data flow in a multi-processor communication system
US6532220B1 (en) 1999-08-27 2003-03-11 Tachyon, Inc. System and method for efficient channel assignment
US7068992B1 (en) * 1999-12-30 2006-06-27 Motient Communications Inc. System and method of polling wireless devices having a substantially fixed and/or predesignated geographic location
US6987770B1 (en) 2000-08-04 2006-01-17 Intellon Corporation Frame forwarding in an adaptive network
US6909723B1 (en) 2000-08-04 2005-06-21 Intellon Corporation Segment bursting with priority pre-emption and reduced latency
US7469297B1 (en) 2000-08-04 2008-12-23 Intellon Corporation Mechanism for using a quasi-addressed response to bind to a message requesting the response
US7298691B1 (en) 2000-08-04 2007-11-20 Intellon Corporation Method and protocol to adapt each unique connection in a multi-node network to a maximum data rate
US6907044B1 (en) * 2000-08-04 2005-06-14 Intellon Corporation Method and protocol to support contention-free intervals and QoS in a CSMA network
US7352770B1 (en) 2000-08-04 2008-04-01 Intellon Corporation Media access control protocol with priority and contention-free intervals
US6671284B1 (en) * 2000-08-04 2003-12-30 Intellon Corporation Frame control for efficient media access
US7826466B2 (en) * 2002-06-26 2010-11-02 Atheros Communications, Inc. Communication buffer scheme optimized for VoIP, QoS and data networking over a power line
US7120847B2 (en) * 2002-06-26 2006-10-10 Intellon Corporation Powerline network flood control restriction
US8149703B2 (en) 2002-06-26 2012-04-03 Qualcomm Atheros, Inc. Powerline network bridging congestion control
AU2003284317A1 (en) 2002-10-21 2004-05-13 Intellon Corporation Contention-free access intervals on a csma network
US20040156351A1 (en) * 2002-12-02 2004-08-12 Samsung Electronics Co., Ltd. Apparatus and method for making QOS-supporting polling list
US7281187B2 (en) 2003-11-20 2007-10-09 Intellon Corporation Using error checking bits to communicated an address or other bits
US8090857B2 (en) 2003-11-24 2012-01-03 Qualcomm Atheros, Inc. Medium access control layer that encapsulates data from a plurality of received data units into a plurality of independently transmittable blocks
US7660327B2 (en) 2004-02-03 2010-02-09 Atheros Communications, Inc. Temporary priority promotion for network communications in which access to a shared medium depends on a priority level
US7715425B2 (en) * 2004-02-26 2010-05-11 Atheros Communications, Inc. Channel adaptation synchronized to periodically varying channel
US7636370B2 (en) 2005-03-03 2009-12-22 Intellon Corporation Reserving time periods for communication on power line networks
US8175190B2 (en) 2005-07-27 2012-05-08 Qualcomm Atheros, Inc. Managing spectra of modulated signals in a communication network
US7822059B2 (en) 2005-07-27 2010-10-26 Atheros Communications, Inc. Managing contention-free time allocations in a network
EP1808983A1 (en) * 2006-01-13 2007-07-18 THOMSON Licensing Process and devices for selective collision detection
KR101484798B1 (en) 2007-05-10 2015-01-28 퀄컴 인코포레이티드 Managing distributed access to a shared medium
JP5543664B2 (en) 2010-04-12 2014-07-09 クゥアルコム・インコーポレイテッド Delayed acknowledgment for low overhead communication in networks
US8891605B2 (en) 2013-03-13 2014-11-18 Qualcomm Incorporated Variable line cycle adaptation for powerline communications

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5392285A (en) * 1993-03-31 1995-02-21 Intel Corporation Cascading twisted pair ethernet hubs by designating one hub as a master and designating all other hubs as slaves
US5475850A (en) * 1993-06-21 1995-12-12 Intel Corporation Multistate microprocessor bus arbitration signals

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2904283B2 (en) * 1989-05-22 1999-06-14 マツダ株式会社 Multiplex transmission equipment for vehicles

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5392285A (en) * 1993-03-31 1995-02-21 Intel Corporation Cascading twisted pair ethernet hubs by designating one hub as a master and designating all other hubs as slaves
US5475850A (en) * 1993-06-21 1995-12-12 Intel Corporation Multistate microprocessor bus arbitration signals

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998035526A2 (en) * 1997-02-06 1998-08-13 Telefonaktiebolaget Lm Ericsson (Publ) Inter-node signaling for protocol initialization within a communications network
WO1998035526A3 (en) * 1997-02-06 1999-01-14 Ericsson Telefon Ab L M Inter-node signaling for protocol initialization within a communications network
US5930264A (en) * 1997-02-06 1999-07-27 Telefonaktiebolaget L M Ericsson (Publ) Inter-node signaling for protocol initialization within a communications network
DE19721740A1 (en) * 1997-05-24 1998-11-26 Rexroth Mannesmann Gmbh Access control method for serial bus
DE19721740B4 (en) * 1997-05-24 2005-06-30 Bosch Rexroth Ag Control method for media access on a serial bus
DE19935490C2 (en) * 1999-07-28 2002-04-25 Phoenix Contact Gmbh & Co Method and control and data transmission system for providing communication between several participants

Also Published As

Publication number Publication date
US5651009A (en) 1997-07-22
AU5258896A (en) 1996-11-21

Similar Documents

Publication Publication Date Title
US5651009A (en) System and method for hybrid contention/polling protocol collision resolution using a depth first search technique
EP0164411B1 (en) Peak load access in a two-way, e.g. catv contention system
EP0177094B1 (en) Multiple access communications system
US9426831B2 (en) Random access burst transmission scheme
EP1739891B1 (en) Transmission apparatus for reducing delay variance and related method
US5896385A (en) Transmission control method between a plurality of stations and corresponding stations and communication systems
US20020167963A1 (en) Method and apparatus for spread spectrum medium access protocol with collision avoidance using controlled time of arrival
EP1109356B1 (en) Collision-free multiple access reservation scheme for burst communications using a plurality of frequency tones
US5610595A (en) Packet radio communication system protocol
US5734833A (en) Shared communications channel with enhanced reservation and collision resolution protocols allows any subset of stations to transmit data after collision occured in contention slot
US6611521B1 (en) Data link layer extensions to a high latency wireless MAC protocol
US5684802A (en) System and method for hybrid contention/polling protocol collison resolution used backoff timers with polling
KR20080080726A (en) Apparatus and method for transmitting using multi-round contention
EP1097546A1 (en) Data link layer extensions to a high latency wireless mac protocol
US6009468A (en) Employing feedback data and congestion ranking to minimize contention delay in a multi-slot Mac protocol
AU676640B2 (en) Method and system for channel access resolution
EP0870385B1 (en) Transmission control method between a plurality of stations and corresponding communication stations
EP0597721B1 (en) TDM/TDMA telecommunications method
US7525984B2 (en) Method and apparatus for unifying MAC protocols
Kazakos et al. Random multiple access algorithms using a control mini-slot
van der Vleuten et al. Optimal controlled ALOHA for two-way data communication in a cable television network
JP2995986B2 (en) Packet communication system
JPH05284187A (en) Communication method for household wireless communication network
Malarvizhi et al. A near optimum MAC protocol based on the incremental collision resolution multiple access protocol for CDMA based communications system
Barker et al. Simulation analysis of advanced infrared (AIr) MAC wireless communications protocol

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AU CA CN

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: CA