At the core of the network application development is writing programs that run on different end systems and communicate with each other over the network. When developing your new application, you need to write software that will run on multiple machines, not network core devices such as routers or Ethernet switches. Network core devices function at lower layers, specifically at the network layer or below. Confirming the application software to the end systems has facilitated the rapid development and deployment of a vast array of Internet applications.