In their paper Two Bitcoins at the Price of One? Double-Spending Attacks on Fast Payments in Bitcoin, Karame and Androulaki outline a particular race-attack that involves the slight control over a vendor's network connection (we need a direct connection to the vendor in this attack). After reading it, I wondered why we couldn't connect more than one peer to the vendor.
Suppose an adversary A who owns many nodes on the network surrounds a vendor V so that V unbeknowingly is only connected to A. That way, we could send a transaction to them, say, T_AV. Then, when they broadcast that transaction to the network, they're just broadcasting it to the adversary, who would of course confirm the validity of T_AV. In the meantime, so long as V isn't connected to the rest of the network they wouldn't know about the double-spend. This would make for an attack that has feasible hardware requirements, and isn't hindered by fast transactions.
Am I missing something or would this attack work? I'm also curious what kind of measures Bitcoin takes to prevent the controlling of someone else's connections, and what kind of counter-measures attackers have used to control someone else's connections, if any.