The IRTF has recommended the utilization of random early detection (RED), which uses the average queue length to determine congestion and dropping probabilities and drops packets randomly. But RED is unstable and can't protect traffic from flows that send more than average bandwidth or flows that fail to use end-to-end congestion control when the load is high. In this paper, it is shown a new scheme called early selective drop (ESD) that uses both load and average queue length to determine congestion and packet drop probabilities. The count of dropping probability is implemented by an exponential function. At the same time, ESD uses a virtual queue to record the per-active-flow state information and uses a method called pseudo-round-robin to filter out the candidate connections from those flows that occupy more bandwidth than average bandwidth. ESD distinguishes non-adaptive greedy traffic from adaptive traffic, short-lived flow from long-lived flow, long-RTT flow from short-RTT flow, and punishes non-adaptive flows when the network becomes congested. When it is time to drop a packet, ESD drops the candidate connection's packet in the front of the queue. The simulations demonstrate that ESD improves the stability of the queue and the fairness between different types of flows, decreases packet losses of WEB traffic and long-RTT flows, and reduces the application's response time.