Rocks: Reliable Sockets

[ Download | Docs ]

Rocks protect sockets-based applications from network failures, particularly failures common to mobile computing, including:
  • Link failures (e.g., unexpected modem disconnection);
  • IP address changes (e.g., laptop movement, DHCP lease expiry);
  • Extended periods of disconnection (e.g., laptop suspension).
Rock-enabled programs continue to run after any of these events; their broken connections recover automatically, without loss of in-flight data, when connectivity returns. Rocks work transparently with most applications, including SSH clients, X-windows applications, and network service daemons.


  • Reliable: Rocks detect connection failures within seconds and reconnect automatically when connectivity is restored. Reconnection succeeds even when one end of the connection obtains a new IP address.

  • Safe: Rocks recover lost in-flight data no matter when failures occur, safely interoperate with ordinary sockets, and authenticate resumed connections.

  • User level: You can install and use rocks as an ordinary user. They do not require any kernel modifications.

  • Transparent: You can use rocks with existing programs without re-programming, re-compiling, or re-linking.

  • Easy to use: Rocks come with simple command-line tools for enabling rocks in ordinary programs.

For more details about rocks (and the related racks system) we encourage you to read our paper.


The current version is Rocks 2.4 for x86 Linux (September 2002):

This software is no longer being maintained.