“Two things are infinite: the universe and human stupidity; and I'm not sure about the universe.” — Albert Einstein
"Never try to teach a pig to sing; it wastes your time and it annoys the pig." — Robert Heinlein
It appears to be TCP only. Run a sniffer (tcpdump, wireshark, etc) against the default interface with a src or dst port 25565 and tell mc to hit a server with no port specified in the hostIP field. Or run a netfilter/packetfilter firewall and don't allow UDP. I do both and have never seen a UDP requester logged for any MC muiltiplayer, authentication, or updater activity.
ResilientHosting said: "Its UDP as TCP resends packets if they failed sending which would not really work for a multiplayer game."
... just ... No. Wrong answer, total BS. Ask an HPC/Networks admin about IP subprotocol choices for application-layer-instanciated traffic.
ResilientHosting is not wrong. TCP is a non-optimal choice for networked multiplayer, because it adds an incredibly heavy framework over the standard IP interface. UDP may lose packets, but there's no framework demanding that they all be received, and that they're in the right order. TCP does not supply a direct connection, but emulates one, and that involves sending lots of unnecessary data, and resending lots of potentially large packets(for multiplayer games. Most other services need that structure). And mixing UDP and TCP isn't a solution, because TCP has a tendency to greatly increase packet loss in UDP.
tl;dr TCP is not unviable for online multiplayer, but it is DEFINITELY not optimal (like a lot of minecraft code). Mojang's use of TCP would explain why minecraft servers have a tendency to be incredibly laggy, as well... More so than other games...