A protocol identifier is specified when creating a Socket, which is a family/type specific identifier, where 0 means the default protocol for the particular family/type.
This enum contains a set of commonly available and used protocols. You can also pass any other identifiers handled by the platform in order to use protocols not listed here.