Improving Per-Flow Fairness in Ad Hoc Networks