În modelul client-server, echipamentul care solicită informație este denumit client, iar echipamentul care răspunde este denumit server. Procesele clientului și serverului sunt considerate că se află în layer-ul aplicație. Clientul începe interschimbarea solicitând date de pe server, acesta răspunde trimițând unul sau mai multe streamuri de date clientului. Protocoalele layer-ului aplicație descriu formatul solicitărilor și al răspunsurilor dintre clienți și servere. În plus față de transferul actual de date, această interschimbare ar putea solicita și autentificarea utilizatorului și identificarea unui fișier de date care trebuie transferat.

Un exemplu de rețea client-server folosește serviciul de email al ISP-ului pentru a trimite, primi și stoca email. Clientul de email al unui calculator de domiciliu trimite o cerere către serverul de email al ISP-ului pentru orice mail necitit. Serverul răspunde prin trimiterea mesajului de poștă electronică solicitat de client.

Deși de obicei datele se transmit de la server la client, există situații în care acestea se transmit și de la client la server. Fluxul de date ar putea fi egal în ambele direcții, sau ar putea fi mai mare în direcția care merge de la client la server. De exemplu, un client ar putea transfera un fișier către server pentru depozitate. Așa cum se arată în figură, transferul de date de la client la un server se numește upload, iar cel de la server la client download.