Protocal actually does not depend on a computer. Protocols are just an abstraction over the ultimate transfer of bits (0s and 1s). Most of the lower level abstractions (the bottom 4) layers of the OSI stack are handled by the OS the top three are normally handled by the application. Any computer that has the abililty transfer bits can support any protocol. Of cousre, some protocol require large bandwitdh some can work on low bandwidth as well. Java APIs only provide you the abstraction of TCP and UDP, so you can only use them and build your protocol over them. If you work in c/c++, you can work with lower level protocols like IP. To go futher down...say Data Link Layer, you'll need to work at the kernel level. So, if you want your computer to support say SNA protocol suite, you'll have to install the s/w that implements the protocol.