Ping depends on how exactly you measure it. Generally it checks the response time, but obviously that time depends on the amount of data transfered (because transfer takes time itself), when exactly the time is taken (the engine doesn't immediately answer a ping, but does so within more or less fixed time intervals).
DOS ping is determined via ICMP Echo, a dedicated protocol for bouncing data back to the sender. As such it immediately responds and the sender (your PC) can immediately check the time between sending and receiving the data.
UT ping is based on round-trip times of the game traffic, which is send via UDP packets. Obviously game data usually is more than just 32 bytes (DOS ping's default data size), so it already takes much longer to travel to the server and back. As hinted above already, UT servers and clients update the game state in discrete intervals. For the server this is dictated by the tickrate (a tick = one update of the entire game state, tickrate = number of updates per second), clientsidely by the framerate (each rendered frame is preceded by exactly one game state update). Ping time is in milliseconds, so 91 is a bit less than 0.01 seconds, which is the time between two frames at 100 frames/sec.
Servers usually run at a much lower tickrate (mostly 30 to 45), and pings could be calculated as client->server->client or as server->client->server. Ping could also be averaged, there may be attempts to filter out systematic errors, like the time between ticks.