协议挪到公用模块