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.