The Mars Rover project can most easily be split into two components: communication protocol and mission distribution and execution. The problems associated with communication protocol are relatively straightforward and include message authentication and error detection and correction. Mission distribution and execution encompasses a wider range of issues; apart from a basic distribution algorithm, we must be able to deal with rover failure, unreliable sensors, amendments, and the scheduling of data upload. Communication protocol further breaks down into two categories: communication on Mars (between two rovers or between the rovers and central command) and communication to Earth (from central command). Communication to Earth need only worry about transmission errors and unrecieved messages. The first issue is alleviated by including a hash with each message sent, so errors can be detected; the second is addressed by verification messages. Since it takes so long to communicate between Earth and Mars, the central command cannot wait for verification messages between packets, but it can resend a packet if its verification message is not recieved after a certain period of time. The message hashes can also be implemented in communications between the rovers and the central command. Additionally, message authentication on Mars, to prevent confusion between NASA and Poodle rovers, can be implemented by signing each message with a shared secret key known to all rovers and the command center. Since there are no malicious entities on Mars, no encryption or sealing is needed. Naming is trivial, because each of the fifty rovers can be programmed with a unique number. Finally, in order to determine whether there are other NASA devices within communication distance, the rover or command center can broadcast a predefined "who's here?" message. Any device which hears this message will broadcast a message containing its identifier.