3.1. Назначение пакетов и их структура Информация в локальных сетях, как правило, передается отдельными порциями, кусками, называемыми в различных источниках пакетами, кадрами или блоками. Использование пакетов связано с тем, что в сети, как правило, одновременно может происходить несколько сеансов связи (во всяком случае, при топологиях «шина» и «кольцо»), то есть в течение одного и того же интервала времени могут идти два или больше процессов передачи данных между различными парами абонентов. Пакеты как раз и позволяют разделить во времени сеть между передающими информацию абонентами. Если бы вся требуемая информация передавалась сразу, непрерывно, без разделения на пакеты, то это привело бы к монопольному захвату сети одним из абонентов на довольно продолжительное время. Все остальные абоненты вынуждены были бы ждать окончания передачи всей информации, что в ряде случаев могло бы потребовать десятков секунд и даже минут (например, при копировании содержимого целого жесткого диска). Чтобы уравнять в правах всех абонентов, а также примерно уравнять время доступа к сети и интегральную скорость передачи информации для всех абонентов, как раз и используются пакеты (кадры). Длина пакета зависит от типа сети, но обычно она составляет от нескольких десятков байт до нескольких килобайт. Важно также и то, что при передаче больших массивов информации становится довольно высокой вероятность ошибки из-за помех и сбоев. Например, при характерной для локальных сетей величине вероятности одиночной ошибки в 10~8 пакет длиной 10 Кбит будет искажен с вероятностью 10~4, а массив длиной 10 Мбит - с вероятностью 10"1. К тому же обнаружить ошибку в массиве из нескольких мегабайт намного сложнее, чем в пакете из нескольких килобайт. При обнаружении ошибки придется повторить передачу всего массива, что гораздо сложнее, чем повторно передать небольшой пакет. Но при повторной передаче большого массива снова высока вероятность ошибки, и процесс этот при слишком большом массиве может повторяться до бесконечности. С другой стороны, пакеты имеют преимущества и перед побайтовой (8 бит) или пословной (16 бит или 32 бита) передачей информации, так как увеличивается полезная загрузка сети за счет уменьшения требуемого количества служебной информации. Это же относится и к маленьким пакетам длиной в несколько байт. Ведь каждый передаваемый по сети пакет обязательно содержит в себе биты, относящиеся непосредственно к обмену по сети (стартовые биты, биты адресации, биты типа и номера пакета и т.д.). При маленьких пакетах доля этой служебной информации будет непозволительно высокой, что приведет к снижению интегральной (средней) скорости обмена информацией между абонентами сети. Существует некоторая оптимальная длина пакета (или оптимальный диапазон длин пакетов), при которой средняя скорость обмена информацией по сети будет максимальна. Эта длина не является неизменной величиной, она зависит и от уровня помех, и от метода управления обменом, и от количества абонентов сети, и от характера передаваемой информации, и от многих других факторов. Структура пакета определяется прежде всего аппаратурными особенностями данной сети, выбранной топологией и типом среды передачи информации, а также существенно зависит от используемого протокола (порядка обмена информацией). Строго говоря, в каждой сети структура пакета индивидуальна. Но существуют некоторые общие принципы формирования пакета, определяемые характерными особенностями обмена информацией по любым локальным сетям. Чаще всего пакет содержит в себе следующие основные поля или части (рис. 3.1): Рис. 3.1. Типичная структура пакета
Нередко в структуре пакета выделяют всего три поля:
Помимо термина «пакет» в литературе также используется термин «кадр». Иногда под этими терминами имеется в виду одно и то же, но иногда подразумевается, что кадр вложен в пакет. В этом случае все перечисленные поля кадра, кроме преамбулы и стоповой комбинации, относятся к кадру. В пакет может также входить признак начала кадра (в конце преамбулы). Такая терминология принята, например, в сети Ethernet. Но надо всегда помнить, что физически по сети передается все-таки не кадр, а пакет (если, конечно, различать два эти понятия), и именно передача пакета, а не передача кадра, соответствует занятости сети." Рис. 3.2. Пример обмена пакетами при сеансе связи В процессе сеанса обмена информацией по сети между передающим и принимающим абонентами происходит обмен информационными и управляющими пакетами по установленным правилам, называемым протоколом обмена. Пример простейшего протокола показан на рис. 3.2. В данном случае сеанс связи начинается с запроса готовности приемника принять данные. В случае, когда приемник готов, он посылает в ответ управляющий пакет «Готовность». Если приемник не готов, он отказывается от сеанса другим управляющим пакетом. Затем начинается собственно передача данных. При этом на каждый полученный пакет данных приемник отвечает пакетом подтверждения. В случае, когда пакет передан с ошибками, приемник запрашивает повторную передачу. Заканчивается сеанс управляющим пакетом, которым передатчик сообщает о разрыве связи. Существует множество стандартных протоколов, которые используют как передачу с подтверждением (с гарантированной доставкой пакета), так и передачу без подтверждения (без гарантии доставки пакета). При реальном обмене по сети используются многоуровневые протоколы, каждый из которых предполагает свою структуру кадра (свою адресацию, свою управляющую информацию, свой формат данных и т.д.). Ведь протоколы высоких уровней имеют дело с такими понятиями, как файл-сервер или приложение, запрашивающее данные у другого приложения, и вполне могут не иметь представления ни о типе аппаратуры сети, ни о методе управления обменом. Все кадры более высоких уровней последовательно вкладываются в передаваемый пакет, точнее, в поле данных передаваемого пакета (рис. 3.3). Каждый следующий вкладываемый кадр может содержать свою собственную служебную информацию, располагающуюся как до данных (заголовок), так и после данных (трейлер), причем ее назначение может быть самым различным. Естественно, доля вспомогательной информации в пакетах при этом возрастает с каждым следующим уровнем, что снижает эффективную скорость передачи данных. Поэтому для увеличения этой скорости лучше, чтобы протоколы обмена были как можно проще, и чтобы уровней этих протоколов было как можно меньше. Иначе никакая скорость передачи битов не поможет, и быстрая сеть может передавать, к примеру, какой-нибудь файл дольше, чем медленная сеть, которая пользуется более простым протоколом.
Рис. 3.3. Многоуровневая система вложения кадров
|