Каждый уровень OSI взаимодействует с соответствующим ему уровнем на другом конце линии связи и выполняет свой набор функций. Это достигается использованием на каждом уровне протоколов, состоящих из регламентированных обменов точно специфицированными командами и ответами на них.
Для реализации такого взаимодействия в сетевой архитектуре каждый уровень добавляет к посылаемому сообщению заголовок в соответствии с принятым протоколом. Этот заголовок будет обрабатываться эквивалентным ему на другом конце линии связи.
Заголовок уровня N не просматривается уровнем N-1, так как для него он эквивалентен другим данным, передающимся по сети. Каждый уровень является замкнутым и его поведение не зависит от работы других уровней. Этим обеспечивается то, что любые изменения в процессе эволюции сети (замена сетевых адаптеров, увеличение скорости передачи информации, изменение адресации) не будут влиять на ранее написанное программное обеспечения.
В то же время, использование слоеной архитектуры увеличивает накладные расходы. Отсюда увеличение числа передаваемых битов и выполняемых на каждом уровне команд. Решение этой проблемы заключается в передачи функции обработки протоколов с программного уровня на аппаратный, реализуемый с помощью СБИС.
При разработке сетевого программного обеспечения необходимо обеспечить высокий уровень "прозрачности" сети для программного обеспечения. В принципе пользователь может обращаться из своих прикладных программ к протоколам любого уровня, но наибольшая степень "прозрачности" достигается при использовании самого высокого уровня. В этом случае не существует никакой разницы между программой использующей сеть и программой, не использующей сеть: команды в обоих случаях одни и те же. Обращение к сетевому файлу осуществляется так же, как и к файлу находящемуся на жестком диске(Open, Close, Get,Put).