Hi,
About Protocols, Services and Standards.
Some of the standards are mantained by big organizations as IANA (Internet Assigned Numbers Authority) and IETF (Internet Engineering Task Force).
Short history:
From 1974 - DARPA agency experimented first use of TCP - Transmission Control Program - among first versions of TCP/IP Protocol linking some of major US Academic Institutions and their campus, this way the code of what we know as TCP/IP protocol, leaked in the wild.
The standard exist, is free and anyone with some networking and developing skills can modify it and is not prohibited BUT he/she must assure integrity, security, authenticity, compatibility and last but not least conectivity - lack of bugs in protocol or differences too big for devices to be compatible between them, hence failing to connect - talking about state wide platforms customized to help entire departments or groups to craft specific types of handshakes to target for specific types of users or devices .
In US and EU all governamental institution and their partners had already banned all software made in Russia, China or having some third party ties even remotely.
On unix systems exist 2 lists of numbers: 1.Protocols no matter what layer it is and 2.Services.
1.Protocols - you have all communication protocols used on the Internet numbered from 0 to 65.565 (not all are used, some are reserved for experiments, some reserved for future developing).
2.Services - you have all services used on the Internet numbered from 0 to 65.565 (as above, not all used).
No matter the Operating System you have, you got those lists in it for Internet connection, without it you can't connect to any device via network card (wifi or wired).
Protocols few examples Services, few examples:
(no matter the layer):
1 #ICMP - ping - verify network connection
53 #DNS - Domain Name System - transforms ip in hostnames and viceversa
80 #HTTP - HyperText Transfer Protocol - browser Ex.: Opera
8080 #SHTTP - Secure HyperText Transfer Protocol - browser Ex.: Opera
443 #HTTPS - HyperText Transfer Protocol Secure - browser Ex.: Opera
132 #SCTP - Stream Control Transmission Protocol - sctp (Total Commander -Ftp module)
20 #FTP - File Transfer Protocol (Data transfer) - (Total Commander -Ftp module)
21 #FTP - File Transfer Protocol (Control) - (Total Commander -Ftp module)
25 #SMTP - Simple Mail Transport Protocol - any mail client as Outlook, Thunderbird Mail, etc.
587 #ESMTP - Extended Simple Mail Transport Protocol - any mail client as Outlook, Thunderbird Mail, etc.
...
...
...
The Services are Applications or Operating System programs that listen to a port number - Ex.: a web browser will listen to 80, 8080, 443 ports, SYSTEM will listen to port 53 for DNS - incoming packets are encoded when sent from top to bottom layer by layer as in OSI Model, and at destination are decoded bottom to top, so that's why there are programs that listens for connection on certain ports.
CONCLUSION:
A certain coherence, hierarchy and compatibility between standards of networking protocols from one machine/device (PC, tablet, smartphone, router, switch, etc) to another until intended destination device, must be carefully mantained or no connection or transfer will occur.
SO, "Bad protocol id in handshake" means that the protocols can't identify the other party type of client and version - it must be specified in frames that are sent over Internet automaticaly by client app - or for other security reasons as weak cipher or SSL/TLS version of protocol different, or other minor changes in client app, hence connection can't be established to transfer data.
Reference:
Wikipedia:
https://en.wikipedia.org/wiki/List_of_IP_protocol_numbers
https://en.wikipedia.org/wiki/Lists_of_network_protocols
https://en.wikipedia.org/wiki/OSI_model