a basic socket protocol