user protocol