Сеть состоит из двух основных концепций: прикладной и коммуникационной. Сетевые разработчики стремятся разделить структуру обеих концепций на уровни или функциональные модули. Совокупность уровней составляет сетевую модель. Коммуникационная подсистема включает в себя протоколы, определяющие правила и соглашения об обмене сообщениями между сетевыми уровнями.
Управление соединением
Каждый уровень сетевой модели должен уметь установить соединение с равноправным. Поскольку компьютер решает множество задач одновременно, встает проблема идентификации. Чтобы установить соединение, процесс должен идентифицировать удаленный компьютер и равноправный процесс на нем.
Передача данных
Сетевое соединение обыкновенно состоит из двух каналов передачи для одного процесса. Один канал передает собственно данные, а другой – управляющую информацию, называемую “данные для немедленной обработки”. Примером данных для немедленной передачи может служить Esc или другое сочетание для прерывания обмена. Сеть должна передавать такие данные с повышенным, по сравнению с обычным, приоритетом. Канал передачи управляющих данных с повышенным приоритетом еще называется “данные-вне-диапазона”.
Обработка ошибок
Обнаружение и коррекция ошибок, несомненно, важно для функционирования сети. Рассмотрим проблему, возникающую при ошибках данных из-за повреждения канала связи. Если канал поврежден, может оказаться, что приемник не в состоянии уведомить передатчик о случившейся ошибке, то есть само сообщение об ошибке окажется повреждено. Еще хуже, если исчезнет сообщение об исчезновении данных. В сети быстро возникнет порочный круг. К счастью, некоторые протоколы Интернет содержат эффективную обработку ошибок данных в качестве режима сетевой службы.
Соблюдение правильной последовательности
При проектировании сети необходимо учесть доставку данных в правильной (исходной) последовательности. Необходимо обеспечить как передачу в правильной последовательности, так и возможность восстановить ее программными средствами. Протоколы Интернет имеют возможность, пользуясь специальными полями в пакетах данных, восстановить нарушенную при передаче последовательность.
Управление потоком
Проблема переполнения данных возникает на каждом уровне сетевой модели. Проблема может возникнуть как между равноправными процессами в соединенных компьютерах, так и при передаче данных между уровнями в одном и том же компьютере. Например, разные процессы могут использовать один и тот же коммуникационный канал, и данные нескольких процессов могут появиться в канале одновременно, превысив вычислительную мощность уровня — произойдет потеря данных. Сетевые протоколы должны проектироваться с учетом этой проблемы. Протоколы Интернет учитывают возможность переполнения, снимая с ваших прикладных программ необходимость управления потоком.
Фрагментация данных
Несмотря на то, что сетевые протоколы делят данные на пакеты, длина их все равно может оказаться слишком велика для какого-либо участка сети. В этом случае сеть должна уметь поделить данные на пакеты еще меньшей длины. Этот процесс называется фрагментацией.
Фрагментирование данных часто бывает обязательно, однако приводит к ухудшению надежности и производительности сети. Вероятность исчезновения маленького пакета данных более высока и часто приводит к необходимости передать исходный пакет целиком и повторить фрагментацию снова.
Опять-таки, проблема фрагментации решается на сетевом уровне, и ваши прикладные программы могут ничего не знать о ней. Понимание процесса фрагментации нужно для того, чтобы уметь “помочь” в этом сетевому протоколу и, таким образом, повысить производительность сети.