The speed of UDP, TCP and WebSockets "Packets" are the same (e.g. wire speed), but they differ in overhead and reliability.
- WebSockets are a tunnel within an existing HTTP connection, so in effect TCP with more overhead. But they use existing ways in tunneling through NAT router and firewalls.
- TCP has reliability guarantees, e.g. no packets get lost and no duplicates. TCP needs an initial 3-way handshake, but this is once for a connection and not for each data chunk.
- UDP is fire and forget and you need to implement you own reliability on top if you need it. Apart from that, I'm not sure if the browser will even natively accept your UDP packet, at least outside RTP context (e.g. WebRTC). It might work with Java and Flash.