An application layer is an abstraction layer that specifies the shared communication protocols and interface methods used by hosts in a communications network.[1] An application layer abstraction is specified in both the Internet Protocol Suite (TCP/IP) and the OSI model.[2] Although both models use the same term for their respective highest-level layer, the detailed definitions and purposes are different.[3]