Skip to Main Content
Wireless sensor networks that are energy-constrained must transmit and receive data as efficiently as possible. If the transmission is delay tolerant, transferring blocks of accumulated data can be more efficient than transferring each sensed measurement as soon as it is available. This paper proposes a Block Transfer Protocol (BTP) designed for efficient and reliable transmission in wireless sensor networks. BTP reduces the time it takes to reliably transfer a block of packets compared to conventional link layer protocols, by piggybacking in data packets information about the transfer, minimizing the number of acknowledgements needed for reliable transmission, and reducing the need for timeouts, which can substantially slow down communication when transmission is unreliable. In addition, BTP improves reliability by handling false positive acknowledgements and by letting the receivers communicate to senders how many packets they are prepared to accept, providing a flow control mechanism to exert back-pressure on the senders. BTP has been evaluated on a real sensor node platform, as well as in simulation. BTP reduces the average time to transfer blocks of 60 packets, each 41 bytes long, by more than 20% over a perfect link with no packet loss, to 63% when 50% of the packets are lost. Furthermore, BTP ensures channel fairness and in our tests achieves a 100% delivery over multiple hops.