Two Types of Socket:
UNIX Socket: Communicate between processes within a single local host. No networking capabilities
Berkeley Socket: Communicate between hosts via ports. Creating a Berkeley Socket creates a port and binds to it and the OS subsequently redirects all packages to that port to the bound process.