This information is based on packet captures.
After standard TCP handshaking an audio stream can be requested from the server by a registered player (registered means it has a sesssion ID).
Requesting a Last.fm audio stream:
GET /last.mp3?Session=1 HTTP/1.1\r\n Connection: Keep-Alive\r\n Host: 0.0.0.0\r\n \r\n
This information is sent using Hypertext Transfer Protocol. The number after Session is a pre-determined string from when the player is registered. The Host is the ip address where the player is originating.
Successful reply from audio stream request:
HTTP/1.0 200 OK\r\n Server: last.fm Streaming Server\r\n Content-type: audio/mpeg\r\n Cache-control: no-cache\r\n Pragma: no-cache\r\n Connection: close\r\n \r\n
Immediately following this message the audio stream is continually sent at approximately 1492KB per packet.