A medium access controller for a multi-user network that assigns or changes the operating protocol of multiple upstream channels according to user loading, user status, and / or type of
payload data transfers requested by the user or detected by the controller. One group of upstream channels utilizes a contention-only protocol for non-responding or off-line users, a second group utilizes a limited type
polling protocol for users requiring only brief transfers of
payload data, and a third group utilizes an exhaustive
polling protocol user requiring large amounts of
payload data transfers. Limited type
polling provides low latency for quick response to accommodate multiple users, while exhaustive polling provides large data
throughput at the expense of latency. Additional levels of limited or exhaustive polling may be employed to accommodate a larger variety of users needs. In addition, the channels themselves may be dynamically reclassified between and among contention and first and / or other level polling
modes based on user loading and / or the nature and character of on-going data transfers in order to achieve maximum utilization of shared resources. After initiating a
data transmission, the controller may also dynamically assign channels to a user based on detected changes in actual data transmissions. Thus, rules based on user
activity level may be implemented to determine when a user is switched between channel groups. Essentially, the controller may effect switching of the users' upstream channels dynamically and intelligently on a packet-by-packet basis. Users may include modems and / or other terminal devices in a
client-
server or other data communication network.