Какой протокол лучше для передачи данных между несколькими Arduino?
RS485 из коробки полностью удовлетворяет вашим требованиям. Вам необходимо только повесить на Rx/Tx преобразователь уровней TTL<-> RS485.
Я бы попробовал EthernetShield.