Shaping the link at the source works as long as you're the only computer along the bottleneck link. Once there are varying number of other sources competing for the bottleneck, determining the "rate" is hard (which is what congestion control algorithms do!)