协议功能实现