0: **Server** knows no peers 1: **Sender** connects, sends _ANNOUNCE_, waits for **Receiver**, **Sender** is ready to send data 1.1 **Server** knows 1 peer - **Sender** 2: **Receiver** connects, sends _ANNOUNCE_, waits for **Sender**, **Receiver** is ready to receive data 2.2 **Server** knows 2 peers 2.3 **Server** relays _ANNOUNCE_ to **Sender** 3: **Sender** receives _ANNOUNCE_ 3.1 **Sender** sends _DATA_ to **Server** 3.2 **Server** relays _DATA_ from **Sender** to **Receiver** 3.3 **Receiver** saves DATA 4: File transfer is complete, **Sender** sends _COMPLETE_ to **Server** 4.1: **Server** relays _COMPLETE_ to **Receiver** 4.2: **Receiver** semds _COMPLETE_ to **Server** 5.1: **Server** removes peers 5.2 **Sender** exits 5.3 **Receiver** exits