is UDP or TCP used for establishing connections between players, checking connection status, etc?
most games use UDP for their core game play, which is understandable because it's much faster, if not reliable. However, it seems like TCP is needed to establish connections and make sure everyone shakes each other's hands correctly. If UDP is used for this... well, I could see why there is such a high failure rate even with good settings.