In networks using the Internet Protocol, a middlebox is a function that introduces a controlled violation of the end-to-end principle.[1] Names for various middlebox functions include network address translator, firewall, virtual private network concentrator, load balancer, etc.
In the first IP networks, all addresses were reachable, but their environment was one of high trust and small user populations. As needs for security increased, so did the need to isolate some addresses, or at least inspect traffic destined for them. Increasing network size and workload could lead to address shortages, or needs for application-level information to regulate IP-level load distribution.