Протокол радиомодема серии СЕ831 Канальный уровень SLIP 1.1 Протокол представляет из себя следующую последовательность: Байт 1 … N-1 N Значение END SLIP_Data END END (0xc0) – флаг, обозначающий конец пакета, может также передаваться и в начале, чтобы гарантированно отсечь текущий пакет от предшествовавшего ему случайной последовательности, которая может быть порождена шумом в линии связи. Если в пакете встречается байт с кодом, идентичным END, то такой байт заменяется на последовательность из 2 байтов: 0xdb, 0xdc. Специальный символ 0xdb называется ESC-символом. Если в пакете встречается байт с кодом ESC-символа, он замещается 2-байтовой последовательностью 0xdb, 0xdd. 1.2 IPv2 IPv2 (Internet protocol) – уровень протокола, в котором описываются сетевые дейтаграммы. Данные по сети передаются в виде дейтаграмм, состоящих из заголовка и данных протокола вышестоящего уровня. Основные свойства IPv2: - unreliable service with best effort delivery (ненадежный сервис, успех доставки зависит от обстоятельств, но делается все возможное); - connectionless (не поддерживает соединение) – не ведется учета очередности доставки дейтаграмм и каждая обрабатывается независимо от остальных. В протоколе используется 16-ти битная адресация. № слова 1. 2. 3. 4. 5. … … Таблица – Формат заголовка сетевого пакета IPv2 № бита Байт 0 0 1 2 3 4 5 6 7 0 Version (2) Header Length Total Length O1 O2 ID Prior HLProtocol 1 2 Байт 1 3 4 Total Length + FNum NLFF 5 6 7 TTL CheckSum AddrSource AddrDest Options Data Version – Версия протокола: 0003 – протокол v2/light, 0010 – протокол v2. Протокол v2/light представляет упрощенный вариант v2 для устройств с ограниченными ресурсами. Header Length – Длина заголовка измеряется в 16-битных словах (от 4 до 15 слов). Total Length – Общая длина пакета измеряется в октетах и может иметь длину от 4 до 4 096 октетов. NLFF – Not last fragment flag: Если исходный пакет протокола вышестоящего уровня разбит на несколько пакетов сетевого уровня, то каждый фрагмент нумеруется начиная с 0-го. Номер фрагмента заносится в поле FNum (номера фрагмента), и, если передается непоследний фрагмент, выставляется признак непоследнего фрагмента. Если передается фрагмент, содержащий в себе пакет целиком, то этот фрагмент имеет номер 0 без NLFF. TTL – Time to live: поле количества непройденных участков маршрута содержит ненулевое значение в случае если пакет должен быть передан дальше по маршруту узлом, который используется в качестве ретранслятора. Каждый ретранслятор на маршруте уменьшает значение этого поля на 1. Если в полученном пакете это поле содержит 0, то либо пакет передается обработчику пакетов вышестоящего уровня (если совпадает адрес назначения), либо пакет уничтожается. Кроме того, вычитается единица каждую секунду, если пакет попал в затор в каком-либо узле. Если таблица маршрута передается вместе с пакетом, то эта таблица вставляется в поле Options. Таблица представляет собой список адресов промежуточных узлов маршрута. Узел, принявший пакет, передающийся по маршруту, проверяет соответствие адреса узла, отстоящего от конца таблицы на значение (TTL- 1), и, если он совпадает, передает пакет дальше по маршруту, уменьшив значение TTL на 1. Нулевой адрес подсети означает локальную сеть в которой данные не выходят в другие шлюзы. Адрес подсети, где все биты установлены в единицу, означает широковещательный пакет, передающийся через все шлюзы по указанному локальному адресу в каждую подсеть. Нулевой адрес узла означает собственный узел. Может использоваться как программная заглушка. Адрес узла, где все биты установлены в единицу, означает широковещательный пакет, передающийся всем узлам локальной подсети. Prior – флаг приоритета, указывающий на необходимость срочной доставки дейтаграммы. Если флаг равен 0, то дейтаграмма имеет обычный приоритет, если 1, то дейтаграмм рассматривается как особо важная, и передается через маршрутизаторы вне очереди. HLProtocol указывает, какой протокол высокого уровня использовался при создании передаваемого сообщения. CheckSum – 8-ми битовая контрольная сумма. При расчете изначально поле заполняется нулями. Сумма рассчитывается как двоичное дополнение до двух всех полей заголовка. AddrSource – адрес отправителя. AddrDest – адрес получателя. Поля AddrSource и AddrDest указывают адреса истинного источника и конечного назначения, независимо от количества промежуточных шлюзов. Data – поле данных, длина зависит от того, что посылается в дейтаграмме. Options – необязательное поле переменной длины. Поле заполняется в следующих случаях: - при передаче в поле таблицы маршрутизации; - при тестировании и отладке сетей. O1 – класс опции O2 – номер опции № п/п O1 O2 Описание 1. 0 0 Обычная работа. Поле Options не заполняется 2. 0 1 Маршрутизация дейтаграммы по пути, указанному в Options 3. 1 0 Запись временных меток по маршруту 4. 1 1 Запись маршрута в поле Options для трассировки