add a fsm benchmark, fix a bug in protect protocol