socket-protocol collaboration