Computer networks have many uses, both for companies and for individuals, in the home and while on the move. Companies use networks of computers to ( ) corporate information, typically using the ( ) model with employee desktops acting as clients accessing powerful servers in the machine room. For individuals, networks offer access to a variety of ( ) and entertainment resources, as well as a way to buy and sell products and services. Individuals often access the Internet via their phone or cable providers at home, though increasingly wireless access is used for laptops and phones.
Network software is built around ( ), which are rules by which processes communicate. Most networks support protocol hierarchies, with each layer providing services to the layer above it and insulating them from the details of the protocols used in the lower layers. Protocol stacks are typically based either on the OSI model or on the TCP/IP model. Both have link, network, ( ), and application layers, but they differ on the other layers. Design issues include reliability, resource allocation, growth, security, and more.