Method and system for an efficient multiple access polling protocol for interactive communication

Information

  • Patent Grant
  • 5889963
  • Patent Number
    5,889,963
  • Date Filed
    Wednesday, June 19, 1996
    28 years ago
  • Date Issued
    Tuesday, March 30, 1999
    25 years ago
  • CPC
  • US Classifications
    Field of Search
    • US
    • 340 82506
    • 340 82507
    • 340 82508
    • 340 8255
    • 340 82554
    • 348 12
    • 455 51
    • 395 835
    • 395 838
    • 395 860
    • 395 861
    • 395 2001
    • 395 20006
    • 395 20009
    • 395 20012
    • 370 230
    • 370 449
    • 370 468
    • 370 477
    • 370 457
  • International Classifications
    • G06F13368
    • H04L12403
Abstract
A polling procedure providing the capabilities to assign and dynamically modify a user's communication parameters (i.e., response allocation and polling rate) based on the user's bandwidth requirements. In addition, the polling procedure instructs the users to delay their responses as a function of round-trip propagation delay and remaining response allocation for previously polled users to ensure that poll responses from separate users do not overlap.
Description

FIELD OF THE INVENTION
The present invention relates generally to a multiple access polling protocol for interactive communication and, more particularly, to a multiple access polling protocol for interactive communication which assigns and dynamically varies polling rates and response size allocations of users based on their bandwidth requirements.
BACKGROUND OF THE INVENTION
A. Generally
In communication networks such as cable television systems, it is often desirable to access information from individual subscriber terminals coupled to the network. For example, in a typical two-way cable television system, each subscriber is provided with an addressable converter that enables the selective reception of authorized television programs. Recent advances in the CATV industry have enabled the provision of pay-per-view services, wherein the cable television customer has an opportunity to select specific programs such as first-run movies. The information provided by the user station in this type of setup is limited.
However, other features available on CATV systems including shop-at-home, bank-at-home, viewer opinion polling, home multimedia PC applications and video conferencing require that the user station be more active in communicating with a communication control center. To be useful, a communications protocol selected for use with a CATV system wherein the user station's communication needs are variable desirably provides for efficient use of the available resources (e.g., data transmission bandwidth). Moreover, the system should desirably be upgradable if more bandwidth is available and/or the maximum bandwidth required by the user increases (e.g., HDTV).
Different applications require different bandwidth and delay requirements. Voice requires approximately 56-64 kilobits-per-second (kbps) for telephone quality but higher quality may require as much as 256 kbps. A video signal compressed using the MPEG-1 standard requires about 1.5 Megabits-per-second (Mbps) and other compression schemes that provide a higher quality video signal may require as much as 5-9 Mbps. HDTV quality requires approximately 20 Mbps.
Bandwidth requirements for data vary over a wide range. An application providing stock quotes may have a low bandwidth requirement (kbps) while the transfer of files over the network may require a much higher bandwidth.
In addition, while voice and video have stringent real-time delivery requirements, data usually does not. For example, a bandwidth of 1.5 Mbps can be provided by allowing the user station to send a packet of size 1.5 kilobits every millisecond or a packet of size 1.5 Megabits every second. While the latter may be acceptable in the case of a file transfer application, it would not be acceptable for a video conference where smaller packets have to be sent more frequently.
In an interactive environment, a user's bandwidth requirement may vary during a connection. For example, a user could be in the middle of a voice call and may want to add video to the call. This could cause his bandwidth requirement to go up, for example, from 250 kbps to 5 Mbps which, in turn, may cause the user station to change from sending 5 kilobit packets every 20 ms to sending 20 kilobit packets every 4 ms.
As mentioned, a solution to efficiently sharing available bandwidth needs to take into consideration the potential of users with varying bandwidth requirements. Current methods such as systems employing frequency division multiple access (FDMA) or time division multiple access (TDMA) can only allocate in multiples of a predetermined minimum frequency band or time slot, respectively. Moreover, TDMA requires all the users to have time synchronization, which adds complexity to the system. This is inefficient in the case of applications with variable bandwidth requirements.
B. Background Regarding CATV Topology
FIG. 1 shows a typical CATV system comprising at least one headend 102 connected to a plurality of hubs 104a-d interconnected in a star-like topology. The connections between hubs 104a-d are provided for redundancy purposes. The above connections have been made either by coaxial cables (coax), microwave links or optical fibers, although optical fibers are expected to be the medium of the future.
Emanating from each hub 104a are trunks 106 (typically 40-50) which serve a group of homes. Although current trunks are typically coaxial cables, they too are being replaced by optical fibers. Optical fiber trunks terminate at an optical node 108 which receives the optical signal, converts it to a coax compatible signal and transmits it to the homes.
Replacing much of the interconnections with optical fibers will likely increase the bandwidth available on the coax from approximately 300-400 MHz to 1 GHz. This will enable the provision of a few hundred digital PPV channels and interactive services like video-conferencing and home shopping in addition to the usual cable channels.
SUMMARY OF THE INVENTION
The present invention involves a polling method and system for providing access to a shared communications medium by multiple users coupled to a remote station. Each user is assigned a polling rate and a predetermined response size. Then, a polling signal is transmitted from the remote station to each user station at the assigned polling rate. Then, a response is transmitted from each user station no greater in size than the predetermined response size after receiving the polling signal.





BRIEF DESCRIPTION OF THE DRAWINGS
The invention is best understood from the following detailed description when read in connection with the accompanying drawings, in which:
FIG. 1 is a representation of a CATV analog network structure;
FIG. 2 shows a segment of FIG. 1 focusing on the hub, the optical node and the associated tree network;
FIG. 3 is a timing diagram illustrating the aspect of the present invention which provides for dynamically varying polling rate and response size allocation;
FIGS. 4a-4b are timing diagrams which illustrate the impact of propagation delay on the efficiency of polling;
FIGS. 4c-4d are timing diagrams which illustrate the aspect of the present invention which provides for efficient non-overlapping responses;
FIG. 4e is a timing diagram which illustrates the integration of the aspects featured in FIG. 3 and FIGS. 4c-d;
FIG. 5 shows the format of a poll suitable for use with the present invention;
FIG. 6 shows the format of a polling table for storing the polls of FIG. 5 suitable for use with the present invention;
FIG. 7 is a functional block diagram of a hub polling apparatus suitable for use with the present invention;
FIG. 8 is a functional block diagram of a user's set-top box polling apparatus suitable for use with the present invention;





DETAILED DESCRIPTION OF THE INVENTION
I. Overview
The polling procedure of the present invention provides the capabilities to dynamically modify a user's communication parameters, i.e., response size allocation (packet size) and polling rate, based on bandwidth requirements. Additionally, the polling procedure ensures that poll responses from separate users do not overlap.
It should be noted that, although the polling procedure is described with reference to a CATV network, it is not limited to a CATV network.
FIG. 3 illustrates, by way of example, the capability of a hub and a user to renegotiate the parameters of their communication connection (e.g., response size allocation and polling rate). In FIG. 3, the hub and the user have defined communication parameters which are initially determined when a connection is made. Once the user becomes active (i.e., hub sending data polls and user responding with data), a user desiring to modify either or both of its communication parameters, requests a control poll from the hub, step 302.
The hub sends the control poll, step 304, which allows the user to respond with a request for modification (e.g., less frequent polls and reduced response size allocation), step 306. Upon receipt of the request, the hub modifies the polls and their rate accordingly. Subsequent polling and responding between the hub and the user is conducted using the modified parameters, as represented by the transition from the gray shaded areas to the black shaded areas in FIG. 3.
The capability to assign and renegotiate the communication parameters provides an efficient and flexible polling protocol for multiple access interactive communications. This is especially advantageous when the communication parameters vary from one connection to the next or when they vary during a given connection.
Another aspect of the polling procedure ensures that responses by separate users do not overlap. This capability is illustrated, by way of example, in FIGS. 4a-4d. In FIG. 4a, a hub communicating with two users employs a polling procedure in which the users respond immediately upon receipt of a poll (delay of user processing assumed to be insignificant) and the hub waits for receipt of the response from the last poll before sending out the next poll. As seen in FIG. 4a, the hub and the users remain idle during the time it takes for polls and/or data to propagate.
FIG. 4b illustrates, by way of example, the timing of a polling procedure capable of maximizing the use of bandwidth such that the hub is almost always receiving data. In this procedure, the hub schedules the polls such that when the users respond immediately upon receipt of the polls, the timing is such that idle time is minimized.
In contrast, FIG. 4c illustrates, by way of example, the timing of a polling procedure also capable of maximizing the use of bandwidth such that the hub is almost always receiving data. In this procedure, the hub schedules the polls according to the maximum response size allocation for previous users while the users are instructed to suitably delay their responses so they appear equidistant from the hub.
Similar to the procedure of FIG. 4c, FIG. 4d illustrates, by way of example, the timing of a polling procedure also capable of maximizing the use of bandwidth such that the hub is almost always receiving data. In this procedure, the hub rather than scheduling the polls itself instructs the users to delay transmission by some value which is a function of the sum of the remainder of maximum response size allocations for previously polled users and the maximum round-trip propagation delay.
To summarize, in the present invention, more efficient polling is provided by varying the communication parameters and ensuring no overlap of responses by delaying poll responses from users for a certain period of time. The above combination of features is illustrated, by way of example, in FIG. 4e.
The delay time is based on a known maximum round-trip propagation delay as well as the maximum response size allocated for the previously polled users. In this way, the hub can send out successive polls without waiting for a response because the user stations have been instructed to delay a sufficient amount of time to allow a previously polled user station to finish its response.
II. Detailed Description of the Exemplary
Embodiment
As mentioned, the polling procedure of the present invention provides the capabilities to assign and dynamically modify a user station's maximum packet-size allocation and to dynamically modify the rate at which each user is polled. And, in addition, the polling procedure ensures that poll responses from separate users do not overlap.
A. Polls
In the exemplary embodiment of the present invention, there are two kinds of polls--data polls and control polls. Although the general format of the polls is the same, a field within the poll indicates whether the poll is a data poll or control poll.
FIG. 5 shows the format of a poll 500. As shown, the poll format has four fields: (1) delay 502, (2) size of max. response 504, (3) station address 506 and (4) data/control indicator 508. It should be noted that other fields could be added to the poll format for the purpose of performing other functions not specified herein.
The delay field 502 indicates to the user the amount of time that the user should wait from the time it receives the poll to the time it sends its response. Although this delay is initially calculated from a knowledge of the round-trip propagation delay between the user and the hub, if necessary, the round-trip propagation delay can be remeasured at periodic intervals to account for variations (e.g., weather).
In equation form, the delay field 502 equals D.sub.i where D.sub.i is chosen to be larger than the sum of three quantities:
(1) the maximum round-trip propagation delay from any user to the hub,
(2) the delay encountered in the poll-FIFO of the hub, described below with reference to FIG. 7,
(3) the delay encountered in the poll-FIFO of the user set-top box, described below with reference to FIG. 8.
The delay fields of the various users are chosen so as to minimize the dead-time between responses on the upstream channel while ensuring that these responses do not overlap. This is discussed below in further detail in the Theory of Operation section.
The size of max. response field 504 indicates to the user the maximum length of the response that can be sent in response to the poll. In the exemplary embodiment, for data polls, this is initially specified at the time of connection setup; however, for control polls, this is the maximum size of any control message and is fixed at the time of system design. Furthermore, responses are in the form of packets of data.
The station address field 506 is the address of the user within the network. For example, referring to the tree network of FIG. 2, each user 202 has a separate address and is analogous to a leaf on the tree; however, this procedure is not limited to a tree topology. Other topologies suitable for use with the present invention include a ring, a bus, a star, or the like.
The data/control field 508, as mentioned above, indicates to the user whether the poll is a data poll or a control poll.
In the case of active users, control polls are the preferred vehicle for renegotiating the communication parameters. And, in the exemplary embodiment, a field in the header of the data packet sent by a user in response to a data poll requests that the hub send the user a control poll for the purpose of renegotiation (see FIG. 3).
All users receive control polls at a predetermined low frequency while they are idle for the purpose of setting up a connection. And, in the exemplary embodiment, a connection release (or disconnect request) can be effected by sending an appropriate control packet in response to a data poll (when there is no more data to be sent).
B. Poll Table and Poll Generation
In the exemplary embodiment of the present invention, available bandwidth is divided into two types of channels: one for upstream communication (i.e., user to hub) and one for downstream communication (i.e., hub to user). Although a polling table is maintained for every upstream channel, the following description, for purposes of illustration, focuses on the case of a single upstream channel.
FIG. 6 shows the format of a polling table 600 suitable for use with the present invention. At least one contemplated alternative to the polling "table" would be to store pointers to memory locations containing the table entries.
As shown in FIG. 6, every table entry contains four fields (note that .delta. is the time interval between reading two successive entries from polling table 600):
(1) .DELTA..sub.j 602, the time between polls for that connection (if the user is active, this time interval is specified at the time of the connection request; if the user is idle, it is a predetermined time interval for idle users),
(2) .epsilon..sub.j 604, where .epsilon..sub.j .delta. is the adjustment in the time to the next poll needed to compensate for the accumulated error in the polling time,
(3) t.sub.j 606, the time at which Poll.sub.j is to be read from the polling table in units of .delta., and
(4) Poll.sub.j 500, the poll itself.
For every station, there is an entry in polling table 600. This entry is replaced every time a poll is sent to that station. Some of the parameters of the entry, e.g., the time to the next poll .DELTA., are changed in response to control messages from the station, e.g., connection requests and disconnects.
Upon reading a non-empty row (a valid entry), the entry is copied into the poll-FIFO (see FIG. 8), removed from this row of polling table 600 and an attempt is made to create a new entry for that user .DELTA. rows from the current row. A potential problem arises, however, if the row .DELTA. rows away is occupied. In the exemplary embodiment of the present invention, the entry is placed in the next available row, thus, increasing the time between successive reads for this connection. One contemplated solution to compensate for the increase in time between successive reads is to decrease the time to the next poll.
An equation-oriented description of the reading, writing and updating of the polling table follows (where N is the number of rows in polling table 600 and the maximum time between two polls, N.delta., is the time between two successive polls to an idle station):
(1) Initialize the polling table with one entry for each station in the network, at some random position in the table. If this entry is in row i, set t.sub.i =t+i.delta., .DELTA..sub.i =N and .epsilon..sub.i =0. Let j=-1.
(2) Let j=j+1.
(3) Check for a connection request and if one is present, delete the idle entry corresponding to that station from the polling table and add an entry with the parameters specified by the connection request at the first available row in the table, say i. Set .epsilon..sub.i =0,.DELTA..sub.i and Poll.sub.i can be obtained from the connection request.
(4) Check for requests for control polls and add an entry corresponding to it at the first available position in the table setting .DELTA.=0.
(5) Check for a disconnect request and replace the corresponding entry in the polling table by one with the parameters for an idle station.
(6) Check for bandwidth renegotiation messages. If there are any, delete the entry for that user and add an entry with the new parameters at the first available position. (In the exemplary embodiment, a bandwidth change request is treated as a simultaneous disconnect and connect.)
(7) If row j mod N in the polling table is empty, go to (2).
(8) Read row j mod N and send Poll.sub.j into the poll-FIFO (see FIG. 8); if this entry is a one-time only control poll (i.e., .DELTA.=0), delete this entry and go to (2).
(9) Let i=min(k:k.gtoreq.j+1, k.gtoreq.j+.DELTA..sub.j -.epsilon..sub.j, entry k mod N in polling table is empty). Remove entry j in the polling table and replace it by an entry in row i mod N with the other fields of the entry given by
.epsilon..sub.i =.epsilon..sub.j -(i-j-.DELTA..sub.j),
.DELTA..sub.i =.DELTA..sub.j, and
t.sub.i =t.sub.j +(i-j).delta..
(10) Go back to (2).
It should be noted that although a particular order for the above steps has been presented, the order may be varied if necessary to accommodate certain design objectives.
To further illustrate the above procedure, the following example is described:
Assume that there are two stations in the network which are both idle and that control polls are being sent to them periodically. Also assume that the process is at the top of the polling table and t=0.
A connection request is received from station 1 with .DELTA. specified as 100.delta.. The idle poll for station 1 is deleted and an entry is placed in row 0 of the polling table with the parameters (Poll.sub.0, .DELTA..sub.0 =100, .epsilon..sub.0 =0 and t.sub.0 =0).
After reading row 0 of the polling table, it is deleted and an entry with the parameters (Poll.sub.100 =Poll.sub.0, . . . , t.sub.100 =100.delta.) is placed in row 100 (assuming row 100 is empty).
Now, upon checking for connection requests after having read row 9 of the polling table, a connection request from station 2 is detected. The .DELTA. specified for this station is 90.delta.. The idle poll for station 2 is deleted and an entry is placed in the next available row--row 10--with the appropriate parameters (Poll.sub.10, .DELTA..sub.10 =90, .epsilon..sub.10 =0, t.sub.10 =10.delta.).
After reading row 10 of the polling table, the entry is deleted and an attempt is made to place another entry in row 100 (10+90), but this row is occupied. The next available row is 101 and we put an entry in this row with the appropriate parameters (Poll.sub.101 =Poll.sub.10, .DELTA..sub.101 =.DELTA..sub.10 =90, .epsilon..sub.101 =1, t.sub.101 =101.delta.). Assuming no other control messages (e.g., disconnects, bandwidth change requests) are received, rows 11 through 99 remain empty.
After reading row 100, it is replaced by an entry at row 200 with the same parameters. After reading row 101, it is replaced by an entry in row 190 (101+.DELTA..sub.101 -.epsilon..sub.101 =101+90-1=190) with the appropriate parameters (Poll.sub.190 =Poll.sub.101, .DELTA..sub.190 =.DELTA..sub.101 =90, .epsilon..sub.190 =.epsilon..sub.101 +(190-101-90)=0, t.sub.190 =190.delta.).
Assuming N=1024, continuing with the above process results in rows 200, 300, 400, 500, . . . 1000, 76 (1100 mod N) containing polls for station 1 and rows 280, 370, 460, . . . 910, 1001, 66 (1090 mod 1024) containing polls for station 2.
By the procedure illustrated in the above example, polls are generated at a rate which meets the bandwidth requirements of the connection.
C. Hub and User Polling Apparatus
FIG. 7 shows a polling apparatus 700 for the hub suitable for use with the present invention. It should be noted that, although this portion of the polling apparatus is shown in the hub, it could be located in the optical node. Additionally, communication between the hub and the headend (see FIG. 1) can be accomplished by suitable means well known in the art.
In FIG. 7, polling table 600 (described above) contains the entries associated with each connection, active and idle. Poll generator 706 reads the entries and places them in poll-FIFO 708. Polls from the poll-FIFO 708 along with data from the data-FIFO 710 are fed to multiplexer 712. The output of mux 712 is appropriately modified by delay compensator 714 which uses the output of poll store 716 (the details of the modification procedure are described below). The output of the delay compensator 714 is modulated by modulator 718 and transmitted along the cable.
At the other end of the cable, a polling apparatus 800, shown in FIG. 8, is used in the user's set-top box. The modulated data sent by apparatus 700 is first demodulated by demodulator 802. Next, the demodulated data is received, if the station address is recognized, and then identified as either polls or (user)-data, functional block 804. The polls are subsequently timestamped by timestamper 806. Next, using demultiplexer 808, the data is routed to the user equipment while the polls with timestamps are placed into poll-FIFO 810. Counter 812 reads the delay field of the poll and delays the transmission of outgoing data by the specified amount. The data to be sent is selected via multiplexer 814, then modulated by modulator 816 and sent back via the cable.
D. Delay Adjustments in the Polling Procedure
Referring back to FIG. 7, poll-FIFO 708 contains the polls along with the time that it was read from the table, t.sub.j. One purpose of the t.sub.j is to be able to calculate the delay incurred by the poll while in poll-FIFO 708 where it waits to be transmitted. In the exemplary embodiment of the present invention, the polls have non-preemptive priority over data messages (i.e., if there is a poll waiting to be sent, no data packets are sent but a data packet in transmission is not interrupted in order to send a poll). Thus, if a poll is scheduled to be transmitted during a time that data is being sent, the poll is delayed in the poll-FIFO 708.
However, the delay incurred in poll-FIFO 708 is not the only factor used to ensure that responses to the polls do not overlap. An additional consideration is the maximum time allocated for responses to previously sent polls.
Responses to polls j and j+1 overlap if, for example, t.sub.j +p.sub.j <t.sub.j+1, where t.sub.j and t.sub.j+1 are the timestamps on polls j and j+1, respectively, and p.sub.j is the maximum size of the response to poll j. But in order to determine if responses to polls j and j+1 overlap, it is not always sufficient to consider the size of the response to poll j alone, it may be necessary to consider is the size of the responses for the previous polls as well. The following procedure is used to compute the value by which the delay field of poll j should be increased, if any, in order to ensure that the responses to the polls do not overlap.
Let t.sub.0 be the timestamp on the first poll and p.sub.0 be the maximum size of the response to this poll. Initialize poll store 716 with the value t.sub.0 +p.sub.0. Denote the value in poll store 716 by S. For j.gtoreq.1, execute either of the following steps, according to whether t.sub.j .gtoreq.S or t.sub.j <S:
If t.sub.j .gtoreq.S, the increment to the delay field of poll j is zero. Replace S by t.sub.j +p.sub.j.
If t.sub.j <S, the increment to the delay field of poll j is S-t.sub.j. Increase S by p.sub.j.
At the user polling apparatus of FIG. 8, each received poll is tagged with a timestamp recording the time of arrival, t.sub.k, and put in poll-FIFO 810. When the poll reaches the head of poll-FIFO 810, the delay field is decremented by the time spent in poll-FIFO 810, t-t.sub.k. The value of the delay field in the poll at the head of poll-FIFO 810 is loaded into a counter which is decremented (at clock speed) till it reaches zero. At this time, the response to the poll is transmitted and the poll is discarded.
E. Blocking Connection Requests
Since the system has a finite capacity, some connection requests may have to be denied. If the maximum packet size for connection i on the upstream channel is p.sub.i and the time between successive polls is .DELTA..sub.i .delta., the bandwidth requirement of the ith user on the upstream channel is p.sub.i /(T.DELTA..sub.i .delta.) where 1/T is the clock speed. Assume the bandwidth requirement of the ith user on the downstream channel is p.sub.i '/(T.DELTA..sub.i .delta.) and the length of a poll is .pi.. Then, if the total usable bandwidth on the upstream and downstream channels is B, we must have
.SIGMA..sub.i P.sub.i /(T.DELTA..sub.i .delta.)<B (U)
.SIGMA..sub.i (P.sub.i '+.pi.)/(T.DELTA..sub.i .delta.)<B (D)
If accepting a new connection would violate either of these two inequalities, the connection is blocked.
F. Multiple Channels
It should be noted that in the case of multiple upstream and downstream channels, polling table 600 of FIG. 6 and hub polling apparatus 700 of FIG. 7 are replicated at the hub for each channel in the system.
However, modulator 816 and demodulator 802 of FIG. 8 are made tunable over the range of available channels in the system.
In addition, the hub assigns channels to user stations. In the exemplary embodiment of the present invention, each user station has home channels (which can be different for different users) to which modulator 816 and demodulator 802 in its set-top box are tuned when the user station is idle. When the user becomes active, it is assigned, by the hub, a downstream channel to which demodulator 802 is tuned and an upstream channel to which modulator 816 is tuned. Therefore, the hub knows which channel to send the polls on for every user in the system.
G. Theory of Operation
Assuming, as shown in FIG. 1, the CATV network is configured with a tree topology, it follows that there is a unique path in the tree from any node to any other node and, in particular, from the users to the hub. As a result, the hub receives only one copy of any user's transmission.
It is assumed that all transmissions propagate on the coax with the same speed and have finite durations (possibly different for different transmissions). Two transmissions are said to collide at a point of the tree if parts of both transmissions are at that point at the same time.
Given the above assumptions, it is observed that:
If the transmissions originating from two users do not collide at the hub, they do not collide anywhere on their paths to the hub.
Let s.sub.i be the polling sequence, i.e., the users are polled by the hub in the order s.sub.0, s.sub.1, . . . Let the time of generation of the poll to user s.sub.i be t.sub.i (the timestamps) and let the response of user s.sub.i start to be received at the hub at the instant t.sub.i ' and be of size p.sub.i. Thus, this response is received by the hub during the interval �t.sub.i ',t.sub.i '+p.sub.i). In order to ensure that these responses do not overlap at the hub (and therefore, by the above observation, anywhere else on the coax tree), t.sub.i ' should be chosen such that these intervals are disjoint, i.e., such that
t.sub.i+1 '.gtoreq.t.sub.i '+p.sub.i for all i. (C)
Furthermore, if t.sub.i+1 '=t.sub.i '+p.sub.i there is no dead-time between responses. This is illustrated in FIG. 4b.
Suppose the times at which polls are generated are such that
t.sub.i+1 .gtoreq.t.sub.i +p.sub.i for all i.
In this case, the design of the polling procedure is such that the time between the generation of this poll at the hub and the time the response to this poll is received by the hub (t.sub.i '-t.sub.i) is a constant, D, independent of the user the poll is sent to. The way this is accomplished is by having each user delay its response to the poll by a specified amount D.sub.i. If II.sub.i denotes the round-trip propagation delay to user i, at the time of poll generation D.sub.i is set equal to D-II.sub.i.
Referring back to FIGS. 7 and 8, at the head of poll-FIFO 708 at the hub, the delay incurred in the FIFO is subtracted from D.sub.i and similarly at the set-top box so that the net elapsed time between poll generation and reception of the response remains constant, at D. This is illustrated in FIG. 4c.
The situation, however, becomes complicated by the fact that poll i+1 can be generated before the recipients of the previous polls have had sufficient time to respond, e.g., if t.sub.i+1 <t.sub.i +p.sub.i. In this case, the delay field of poll i+1 is increased in order to ensure that the responses do not overlap.
In general, denote the amount by which the delay field should be increased for poll k by a.sub.k. Then, a.sub.k should satisfy
t.sub.k+1 +a.sub.k+1 .gtoreq.t.sub.k +a.sub.k +p.sub.k for all k,
in order to satisfy inequality (C).
Furthermore, in order to minimize the dead-time between responses, the slack in this inequality should be minimized, i.e., the minimum (non-negative) value of a.sub.k that satisfies this inequality should be chosen.
Although the invention is illustrated and described herein embodied as a method and system for a multiple access polling protocol for interactive communication with respect to a CATV network, the invention is nevertheless not intended to be limited to the details as shown. Rather, various modifications may be made in the details within the scope and range of equivalents of the claims and without departing from the spirit of the invention.
Claims
  • 1. A polling method for providing efficient access to a shared communications medium by minimizing collisions and idle time for a plurality of interactive user stations coupled to a remote station which transmits polling signals, each user station having individual bandwidth requirements, the method comprising the steps of:
  • establishing connections between the remote station and user stations;
  • assigning to each user station, upon connection, a definite and respective polling rate, polling rate being defined as the number of polls per unit time received by a user station:
  • assigning to each user station, upon connection, a definite and respective response size,
  • transmitting a polling signal from the remote station to each user station at the respective assigned polling rates;
  • transmitting a response from each user station no greater in size than the respective response sizes after receiving the polling signals;
  • transmitting a request for modification from a user station to the remote station wherein the request indicates a change in bandwidth requirements for the user station,
  • modifying when individual bandwidth requirements are transmitted by a user station, at least one of the respective polling rates or the respective response sizes for the user stations; and
  • continuing communication between the remote station and the user stations with the modified polling rates and response sizes.
  • 2. A polling system for providing efficient access to a shared communications medium by minimizing collisions and idle time for a plurality of interactive user stations coupled to a remote station which transmits polling signals, each user station having individual bandwidth requirements, comprising:
  • means for establishing connections between the remote station and user stations:
  • means for assigning to each user station, upon connection, a definite and respective polling rate, polling rate being defined as the number of polls per unit time received by a user station;
  • means for assigning to each user station, upon connection, a definite and respective response size;
  • means for transmitting a polling signal from the remote station to each user station at the respective assigned polling rates;
  • means for transmitting a response from each user station no greater in size than the respective response sizes after receiving the polling signals;
  • means for transmitting a request for modification from the user station to the remote station wherein the request indicates a change in the bandwidth requirements for the user station; and
  • means for modifying, when individual bandwidth requirements are transmitted by a user station, at least one of the respective polling rates or the respective response sizes for the user stations such that communication between the remote station and the user stations being continued with the modified polling rates and response sizes.
Parent Case Info

This application is a continuation of application Ser. No. 08/372,867, filed Jan. 13, 1995, now patented U.S. Pat. No. 5,539,882, which is a continuation of Ser. No. 07/995,467, filed Dec. 22, 1992 which is a continuation-in-part of application No. 07/992,277, filed Dec. 16, 1992, now U.S. Pat. No. 5,367,517, now abandoned.

US Referenced Citations (18)
Number Name Date Kind
3651471 Haselwood et al. Mar 1972
3755782 Haas et al. Aug 1973
3803491 Osborn Apr 1974
4209840 Berardi et al. Jun 1980
4343042 Schrock et al. Aug 1982
4598363 Clark et al. Jul 1986
4689619 O'Brien, Jr. Aug 1987
4774707 Raychaudhuri Sep 1988
4796025 Farley et al. Jan 1989
4829297 Ilg et al. May 1989
4924462 Sojka May 1990
4940974 Sojka Jul 1990
4942572 Picard Jul 1990
5132680 Tezuka et al. Jul 1992
5367517 Cidon et al. Nov 1994
5471474 Grobicki et al. Nov 1995
5539882 Gopal et al. Jul 1996
5594871 Hiyama Jan 1997
Non-Patent Literature Citations (1)
Entry
J.D. Spragins, "Telecommunications: Protocols and Design," Chapter 5, Addison Wesley, (1990).
Continuations (2)
Number Date Country
Parent 372867 Jan 1995
Parent 995467 Dec 1992
Continuation in Parts (1)
Number Date Country
Parent 992277 Dec 1992