In computer networks and telecommunications networks, a relay is an abstract or real function that interconnects two separate communications domains. These domains could be similar, such as two cables or small radio transmitters at their maximum length, or different, as between a private network and the public Internet. Some relay types are associated with layers in computer networking reference models, such as routers at the Internetworking Layer of the Internet or the Network Layer of the Open Systems Interconnection Reference Model. Other relays are less pure but nonetheless necessary, such as firewalls, web caches, etc. Yet others are associated with levels of hierarchy, such as a neighborhood (i.e., end office) versus a regional versus an international telephone switch. A common hierarchical relay is the "set top box" between a broadband service provider and the computers, telephones and televisions in a house.