In this chapter, we covered the basic characteristics to be aware of when choosing a network transport for an application. Knowledge of these characteristics is vital when it comes to successfully developing a network application based on a particular protocol. We also looked into programmatically obtaining a list of transport providers installed on a system and how to query for a particular property. Finally, we learned how to create a socket for a given network transport by specifying the correct parameters to either the WSASocket function or the socket function, and also by querying for the catalog entry using WSAEnumProtocols and passing in a WSAPROTOCOL_INFO structure to WSASocket. In the next chapter, we will investigate the addressing methods for each of the major protocols.