Adaptively changing weights for fair scheduling in broadcast environments is disclosed. In one embodiment, a computer-implemented method for allocating bandwidth among a plurality of flows, such as nodes, sharing an output link, such as a network, is disclosed. The method includes adaptively determining a weight for each flow, based on a predetermined criteria, and allocating a portion of bandwidth to each flow proportionally to the weight for the flow. In one embodiment, the predetermined criteria takes into account an input rate of data packets for each flow, while in another embodiment, the predetermined criteria takes into account an queue size for each flow.