Протоколы SLIP, PPP. Протокол SLIP (Serial Line Internet Protocol)

В настоящее время аппаратные и программные платформы и технологии стремительно развиваются, непрерывно появляются все новые и новые возможности. В то же время, налицо тенденция к интероперабельности (interoperability) платформ и совместимости технологий. В этом разделе рассматриваются основные тенденции этого развития. Изучив учебный материал данного раздела, Вы: узнаете или пополните свои знания о том, каковы существующие на сегодняшний день основные программные и аппаратные платформы;узнаете или пополните свои знания об основных кроссплатформенных технологиях.

Основные аппаратные и программные платформы

Рост компьютерных и информационных технологий за сравнительно недолгое время, прошедшее с момента появления первых компьютеров (конец 1940х гг.) был невероятно стремительным и пока не проявляет никакой тенденции к замедлению. Считается, что каждые 10 лет происходит полная смена технологий в этих областях. В результате невероятно большое число аппаратных и программных технологий и платформ, которые, казалось бы, еще недавно были самыми передовыми и повсеместно используемыми, в настоящее время осталось лишь в памяти тех, кому с ними пришлось работать. Новые поколения разработчиков программного обеспечения, как правило, не знают даже техники и технологий десятилетней давности (а если и знают, то только из специальных ВУЗовских курсов), поскольку состояние дел в области компьютерных и информационных технологий успело полностью поменяться несколько раз за эти годы. Такие стремительные изменения, кстати, делают весьма неустойчивым компьютерный бизнес: на наших глазах многие фирмы-производители оборудования или программного обеспечения, имевшие, казалось бы, сверхустойчивое положение на рынке, в считанные годы проигрывали конкуренцию и иногда полностью исчезали, а на их месте появлялись новые "звезды". Так, к примеру, всего несколько лет назад произошло с одной из крупнейших в компьютерном мире фирмой DEC ,долгие годы в значительной мере определявшей пути развития вычислительной техники и программного обеспечения, и сумевшей построить вполне самобытную "цивилизацию" компьютерных и программных решений - фирмы уже больше не существует, а про ее супербрэнды PDP, VAX и соответствующее программное обеспечение помнят весьма немногие. Учитывая все сказанное, представляется практически нецелесообразным давать сколько-нибудь подробный обзор аппаратных и программных архитектур, имеющихся в настоящее время - их срок жизни весьма мал. Ограничимся поэтому лишь весьма схематическим изложением основных платформ, с которыми приходится иметь дело современному разработчику. Весьма условно можно классифицировать основные встречающиеся в наше время аппаратные платформы следующим образом.

  • Платформы на базе процессоров Intel и их аналогов (AMD ).
  • Высокопроизводительные сервера и рабочие станции SUN (на базе процессоров SunSparc ).
  • Высокопроизводительные сервера HP (на базе RISC -процессоров).
  • Платформы Apple .

Архитектура процессора: RISC или CISC ?

В 80-х годах прошлого века была предложена архитектура процессора с сокращенным набором машинных команд (RISC - Reduced Instruction Set Computer ). Дейв Паттерсон и Карло Секуин сформулировали четыре основных принципа архитектуры RISC :

  1. Любая операция должна выполняться за один такт, вне зависимости от ее типа.
  2. Система команд должна содержать минимальное количество наиболее часто используемых простейших инструкций одинаковой длины.
  3. Операции обработки данных реализуются только в формате "регистр-регистр" (операнды выбираются из оперативных регистров процессора, и результат операции записывается также в регистр; а обмен между оперативными регистрами и памятью выполняется только с помощью команд чтения/записи).
  4. Состав системы команд должен быть "удобен" для компиляции операторов языков высокого уровня

Создатели RISC -процессоров взяли набор из очень простых наиболее часто используемых команд, которые выполняются быстро, и объединили его с такими технологиями, как конвейерная обработка . В результате получился процессор , который имеет лучшую производительность для большинства приложений и теоретически стоит меньше, поскольку сам он небольшой и его производство обходится дешевле. По аналогии процессоры традиционной архитектуры стали называть CISC - Complex Instruction Set Computer .

В список основных поставщиков RISC -систем входят компании Hewlett-Packard (PA-RISC), Sun Microsystems Computers (SPARC), Digital Equipment (Alpha), Silicon Graphics - модуль MIPS (R210000) и союз IBM и Motorola (PowerPC) .

С другой стороны, семейство Pentium компании Intel продолжает реализацию более традиционной вычислительной архитектуры с полным набором машинных команд (CISC) . CISC -процессоры содержат в сотни раз больше команд, чем RISC -процессоры, и используют от 8 до 12 способов адресации памяти по сравнению с 2-3 способами в RISC .Однако технические различия между RISC и CISC в последние годы становятся все менее четкими, особенно в том, что касается общей производительности систем. Одна архитектура заимствует хорошие идеи у другой. Раньше RISC -процессоры определялись как микропроцессоры с количеством команд меньше 128, сейчас же они имеют 200 команд - сравните с набором из 300 и более команд в CISC .Сегодня CISC -процессоры используют конвейеризацию и другие современные технологии. Оба лагеря применяют большую кэш- память для повышения производительности.

Основные программные платформы можно классифицировать условно следующим образом:

  • Платформы Microsoft (Windows NT/XP/...)
  • Платформы на базе Unix .В последнее время среди версий Unix наиболее популярен Linux разных модификаций. К версиям Unix относятся и системы Solaris (для платформ Sun) ,а также весьма своеобразный "гибрид" Unix и Windows для платформ Apple - Mac OS .

Следует отметить, что операционные системы Unix и созданный вокруг них универсум программных продуктов, идей и технологий, являются одними из едва ли не самых "долгоживущих" в мире программного обеспечения. Первая система Unix ,практически ничем принципиально не отличающаяся от ее современных "клонов", была создана более 30 лет назад!

Состояние корпоративной программной среды типичной организации

В настоящее время наблюдается тенденция к унификации программных и аппаратных платформ, используемых в типовых конфигурациях.

  • Основная масса компьютеров базируется на платформе Intel или AMD ,возможно имеются несколько компьютеров Compaq, Sun и т.п.
  • Используемые операционные системы MS Windows, Linux ,другие UNIX- подобные ОС. Основная операционная система, установленная на рабочих местах пользователей - MS Windows .Большинство серверов работает также под Windows .Часть серверов работает под Linux или другими UNIX- подобными ОС.
  • Основное офисное программное обеспечение - MS Office .
  • Основная почтовая программа MS Outlook, MS Outlook Express или специальный почтовый клиент (популярность набирает Mozilla Thunderbird) .
  • Основной интернет-браузер MS Internet Explorer (сейчас набирает популярность браузер Mozilla Firefox ,иногда используется браузер Opera) .
  • Основная система документооборота работает на основе Windows и MS Exchange .
  • Основной Web-сервер Apache или IIS на платформе UNIX или Windows .
  • Основная корпоративная СУБД MS SQL Server или Oracle ,также дополнительно используется MS Access или другие СУБД ,но исключительно как локальные. В малых компаниях бывают популярны MySQL и PostgreSQL .

Выбор аппаратно-программной платформы КИС

Выбор аппаратной платформы и конфигурации системы определяется рядом общих требований, которые предъявляются к характеристикам современных вычислительных систем. К ним относятся:


  • отношение стоимость/производительность

  • надежность и отказоустойчивость

  • масштабируемость

  • совместимость и мобильность программного обеспечения.
Отношение стоимость/производительность. Появление любого нового направления в вычислительной технике определяется требованиями компьютерного рынка. Поэтому у разработчиков компьютеров нет одной единственной цели. Большая универсальная вычислительная машина (мейнфрейм) или суперкомпьютер стоят дорого. Для достижения поставленных целей при проектировании высокопроизводительных конструкций приходится игнорировать стоимостные характеристики. Суперкомпьютеры фирмы Cray Research и высокопроизводительные мейнфреймы компании IBM относятся именно к этой категории компьютеров. Другим крайним примером может служить низкостоимостная конструкция, где производительность принесена в жертву для достижения низкой стоимости. К этому направлению относятся персональные компьютеры различных клонов IBM PC. Между этими двумя крайними направлениями находятся конструкции, основанные на отношении стоимость/производительность, в которых разработчики находят баланс между стоимостными параметрами и производительностью. Типичными примерами такого рода компьютеров являются миникомпьютеры и рабочие станции.

Для сравнения различных компьютеров между собой обычно используются стандартные методики измерения производительности. Эти методики позволяют разработчикам и пользователям использовать полученные в результате испытаний количественные показатели для оценки тех или иных технических решений, и в конце концов именно производительность и стоимость дают пользователю рациональную основу для решения вопроса, какой компьютер выбрать.

Надежность и отказоустойчивость. Важнейшей характеристикой вычислительных систем является надежность. Повышение надежности основано на принципе предотвращения неисправностей путем снижения интенсивности отказов и сбоев за счет применения электронных схем и компонентов с высокой и сверхвысокой степенью интеграции, снижения уровня помех, облегченных режимов работы схем, обеспечение тепловых режимов их работы, а также за счет совершенствования методов сборки аппаратуры.

Отказоустойчивость - это такое свойство вычислительной системы, которое обеспечивает ей, как логической машине, возможность продолжения действий, заданных программой, после возникновения неисправностей. Введение отказоустойчивости требует избыточного аппаратного и программного обеспечения. Направления, связанные с предотвращением неисправностей и с отказоустойчивостью, - основные в проблеме надежности. Концепции параллельности и отказоустойчивости вычислительных систем естественным образом связаны между собой, поскольку в обоих случаях требуются дополнительные функциональные компоненты . Поэтому, собственно, на параллельных вычислительных системах достигается как наиболее высокая производительность, так и, во многих случаях, очень высокая надежность. Имеющиеся ресурсы избыточности в параллельных системах могут гибко использоваться как для повышения производительности, так и для повышения надежности. Структура многопроцессорных и многомашинных систем приспособлена к автоматической реконфигурации и обеспечивает возможность продолжения работы системы после возникновения неисправностей.

Следует помнить, что понятие надежности включает не только аппаратные средства, но и программное обеспечение. Главной целью повышения надежности систем является целостность хранимых в них данных.

Масштабируемость представляет собой возможность наращивания числа и мощности процессоров, объемов оперативной и внешней памяти и других ресурсов вычислительной системы. Масштабируемость должна обеспечиваться архитектурой и конструкцией компьютера, а также соответствующими средствами программного обеспечения.

Добавление каждого нового процессора в действительно масштабируемой системе должно давать прогнозируемое увеличение производительности и пропускной способности при приемлемых затратах. Одной из основных задач при построении масштабируемых систем является минимизация стоимости расширения компьютера и упрощение планирования. В идеале добавление процессоров к системе должно приводить к линейному росту ее производительности. Однако это не всегда так. Потери производительности могут возникать, например, при недостаточной пропускной способности шин из-за возрастания трафика между процессорами и основной памятью, а также между памятью и устройствами ввода/вывода. В действительности реальное увеличение производительности трудно оценить заранее, поскольку оно в значительной степени зависит от динамики поведения прикладных задач.

Возможность масштабирования системы определяется не только архитектурой аппаратных средств, но зависит от заложенных свойств программного обеспечения. Масштабируемость программного обеспечения затрагивает все его уровни от простых механизмов передачи сообщений до работы с такими сложными объектами как мониторы транзакций и вся среда прикладной системы. В частности, программное обеспечение должно минимизировать трафик межпроцессорного обмена, который может препятствовать линейному росту производительности системы. Аппаратные средства (процессоры, шины и устройства ввода/вывода) являются только частью масштабируемой архитектуры, на которой программное обеспечение может обеспечить предсказуемый рост производительности. Важно понимать, что простой переход, например, на более мощный процессор может привести к перегрузке других компонентов системы. Это означает , что действительно масштабируемая система должна быть сбалансирована по всем параметрам.

Совместимость и мобильность программного обеспечения. Концепция программной совместимости впервые в широких масштабах была применена разработчиками системы IBM/360. Основная задача при проектировании всего ряда моделей этой системы заключалась в создании такой архитектуры, которая была бы одинаковой с точки зрения пользователя для всех моделей системы независимо от цены и производительности каждой из них. Огромные преимущества такого подхода, позволяющего сохранять существующий задел программного обеспечения при переходе на новые (как правило, более производительные) модели были быстро оценены как производителями компьютеров, так и пользователями и начиная с этого времени практически все фирмы-поставщики компьютерного оборудования взяли на вооружение эти принципы, поставляя серии совместимых компьютеров. Следует заметить однако, что со временем даже самая передовая архитектура неизбежно устаревает и возникает потребность внесения радикальных изменений архитектуру и способы организации вычислительных систем .


    1. Перспективы развития КИС

Существует 3 наиболее весомых фактора, которые существенно влияют на развитие КИС.

Факторы, влияющие на развитие корпоративных информационных систем:


  • Развитие технологий, методов и методик управления предприятием, вызванное постоянными изменениями ситуации на рынке. Растущий уровень конкуренции вынуждает руководителей компаний искать новые методы сохранения своего присутствия на рынке и удержания рентабельности своей деятельности. Такими методами могут быть децентрализация, управление качеством и др.;

  • Развитие общих возможностей и производительности компьютерных систем. Увеличение мощности и производительности компьютерных систем, развитие сетевых технологий и систем передачи данных, широкие возможности интеграции компьютерной техники с самым разнообразным оборудованием позволяют постоянно наращивать производительность КИС и их функциональность;

  • Развитие подходов к технической и программной реализации элементов КИС. Параллельно с развитием средств технического обеспечения происходит внедрение новых более удобных и универсальных методов программно-технической реализации КИС:

  1. изменяется общий подход к программированию. С начала 90-х годов объектно-ориентированное программирование вытеснило модульное, сейчас непрерывно совершенствуются методы построения объектных моделей;

  2. в связи с развитием сетевых технологий , локальные системы уступают своё место клиент-серверным реализациям;

  3. в связи с активным развитием сетей Internet, появляются всё большие возможности работы с удалёнными подразделениями, открывают широкие перспективы электронной коммерции, обслуживания покупателей через интернет и многое другое. Использование Internet-технологий в интрасетях предприятия также даёт очевидные преимущества;

  4. использование распределённых технологий при построении ИС в наибольшей степени соответствуют существующим потребностям;

  5. развитие концепции XML обеспечивает очень удобное описание сложных структур данных в виде XML-объектов. В КИС роль таких объектов играют универсальные бизнес-объекты, которые в большинстве случаев имеют древовидную структуру. Описанные на XML бизнес-объекты также являются удобным средством для обмена информацией между различными приложениями.

Выводы по главе:


  1. Основная задача проектирования и внедрения корпоративных информационных систем, как результата системной интеграции, - комплексная деятельность по решению бизнес-задач средствами современных информационных технологий.

  2. Этапы проектирования КИС: анализ, проектирование, разработка, интеграция и тестирование, внедрение и сопровождение.

  3. Наиболее значимыми характеристиками КИС являются: архитектура информационной системы, сетевые технологии, функциональная структура управления , организационная форма хранения информации, пропускная способность системы и т.д.

  4. Существуют 3 основных архитектуры КИС: двухуровневая клиент-серверная архитектура, трехуровневая клиент-серверная архитектура и распределённая архитектура системы.

  5. Требования, предъявляемые к КИС: использование архитектуры клиент-сервер с возможностью применения большинства промышленных СУБД, поддержку распределенной обработки информации, модульный принцип построения из оперативно-независимых функциональных блоков с расширением за счет открытых стандартов, обеспечение поддержки технологий internet/intranet, гибкость, надёжность, эффективность и безопасность.

ЗАКЛЮЧЕНИЕ

Корпоративная информационная система - это совокупность технических и программных средств предприятия, реализующих идеи и методы автоматизации . Главная задача КИС - эффективное управление всеми ресурсами предприятия (материально-техническими, финансовыми, технологическими и интеллектуальными) для получения максимальной прибыли и удовлетворения материальных и профессиональных потребностей всех сотрудников предприятия.

Крупному промышленному предприятию целесообразно использовать КИС, которая соответствует законам управления МRР II. Такие КИС способны предоставить руководителю необходимую информацию о возможности выполнения заявок на поставку продукции. Другими КИС являются интегрированные системы управления предприятием, так называемые ERP-системы.

Применение КИС в определенной степени меняет роль функциональных финансовых подразделений, повышая роль ответственности их руководителей. Происходит это еще и потому, что руководители предприятия получают возможность непосредственного контроля над любыми результатами деятельности каждого подразделения.

Корпоративные информационные системы можно разделить на два класса: финансово-управленческие и производственные. Также различают виды КИС, такие как заказные (уникальные) и тиражируемые КИС. Используется также следующая классификация. КИС делятся на три (иногда четыре) большие группы: простые («коробочные»); среднего класса; высшего класса.

Таким образом, можно сделать вывод о том, что информационная структура фирмы должна быть описана характерными законами управления, регламентирующими управляющие воздействия на систему.

СПИСОК ИСПОЛЬЗОВАННЫХ ИНФОРМАЦИОННЫХ ИСТОЧНИКОВ


  1. Автоматизированные информационные технологии в экономике / под ред. проф. Г. А. Титоренко. ― М.: Компьютер, 2009. ― 400 с.

  2. Баранов Владимир «Что даёт внедрение КИС?»; Санкт-Петербург, 2009г.

  3. Гагарский, В. А. Проблемы внедрения корпоративных информационных систем / В. А. Гагарский // Дело. ― 2010. ― № 12. ― С. 23-25.

  4. Исаев Г. Н. Информационные системы в экономике/ Издательство «Омега-Л», 2013.

  5. Исакова А. И., Исаков М. Н. Информационные технологии/ Издательство «Эль Контент», 2012. – 174 с.

  6. Малютин А. Г. Корпоративные информационные системы: Конспект лекций / А. Г. Малютин; Омский гос. ун-т путей сообщения. Омск, 2011. 39 с.

  7. Новикова Г. М. Корпоративные информационные системы: Учеб. пособие. – М.: РУДН, 2008. – 94 с.

  8. Олейник П. П. Корпоративные информационные системы/ Издательство «Питер», 2012. – 176 с.

  9. https://ru.wikipedia.org

  10. http://www.erp-online.ru/
Приложение.

Благодаря применению шаблонов по сравнению с RISC-архитектурой удаляются соответствующие декодеры. Кроме того, применение шаблонов позволяет упростить аппаратуру распределяющего коммутатора, т.к. некоторые типы «маршрутизации» команд в принципе невозможны.

Использование в IA-64 стекирования регистров и вращения регистров требует наличия аппаратуры, отображающей виртуальные номера регистров в физические, что осуществляется на стадии REN. Для этого Itanium имеет набор сумматоров и мультиплексоров. Так, логика стекирования требует только одного 7-разрядного сумматора, а всего требуется 98 сумматоров и 42 мультиплексора, которые занимают площадь менее 0,25 кв. мм.

Для автоматического сохранения/восстановления регистров в памяти при «переполнении/переизбытке» стека работает аппаратура RSE (Register Stack Engine). Она просто приостанавливает выполнение команд, ждущих соответствующие регистры; перезаполнение конвейера при этом не требуется.

Архитектура IA-64 характеризуется очень большими емкостями файлов регистров. Файл регистров общего назначения GR в IA-64 имеет емкость 128 строк. В Itanium он имеет 8 портов чтения и 6 портов записи. Эти порты позволяют поддерживать одновременно 2 Моперации и 2 I-операции за такт. Файл регистров с плавающей запятой FR имеет ту же емкость и обеспечивает одновременную работу двух М-операций и двух команд FMAC («умножить-и-сложить»). Наконец, PRF - файл однобитных регистров-предикатов (их всего 64) имеет 15 портов чтения и 11 портов записи.

Стадии выполнения

Эффективность работы функциональных устройств увеличена за счет возможности прямой подачи результата выполнения на вход другой команды, минуя запись в регистры (техника «scoreboard»). Другая важнейшая особенность Itanium - неблокирующийся кэш. В результате конвейер встает только тогда и там, когда и где требуется реально отсутствующие данные, и возобновляет свою работу, как только они станут доступны.

«Целочисленное исполнительное ядро» имеет 4 порта - 2 порта памяти и 2 собственно целочисленных порта. Все 4 порта могут выдавать на выполнение арифметические команды, команды сдвига, логические команды, команды сравнения и большинство целочисленных мультимедийных портов SIMD.

М-порты могут также «выполнять» команды загрузки регистров/записи в память, а Iпорты - более редкие целочисленные команды: проверку бит, поиск нулевого байта и некоторые виды сдвигов.

Условные переходы могут выполняться на стадии DET, что требует возможности чтения сразу трех предикатов.

Поскольку предикаты генерируются исполнительным ядром микропроцессора, и могут использоваться почти сразу в последующих командах, требуется их по возможности быстрая доставка в аппаратуру, которая будет использовать их. Для повышения эффективности работы с предикатами в Itanium предусмотрена возможность их применения «на лету». Для этого кроме файла PRF используется файл спекулятивных предикатных регистров SPRF, и как только предикат рассчитан, его значение помещается в SPRF, откуда оно может сразу использоваться.

Обновление «архитектурного» файла PRF (чтение из которого происходит на более ранней стадии конвейера) осуществляется позднее.

Особый интерес представляет собой и аппаратная реализация в Itanium спекулятивного выполнения и обработки отложенных прерываний, что предусмотрено архитектурой IA-64.

Плавающая запятая

Функциональные устройства с плавающей запятой (FPU) предполагают возможность работы с 82-разрядным представлением. Это обеспечивает, в частности, форматы чисел с плавающей запятой одинарной, двойной и расширенной точности. Некоторым базовым примитивом FPU можно считать команды FMAC, которые выполняются соответствующими FMAC-устройствами. Таких устройств в Itanium два, и каждая FMAC-команда за такт выполняет две операции с плавающей запятой двойной точности - умножение и сложение.

В результате Itamium имеет пиковую производительность в 4 операции

Первым стандартом канального уровня, обеспечивающим работу терминалов пользователей (TCP/IP) по линиям связи, реализующих последовательную передачу символов, стал протокол SLIP (Serial Line Internet Protocol - протокол Internet для последовательного канала).

Ввиду функциональной простоты, SLIP использовался и используется в основном на коммутируемых линиях связи, которые не характерны для ответственных и скоростных сетевых соединений. Тем не менее, коммутируемый канал отличается от некоммутируемого только более низким качеством и необходимостью выполнять процедуру вызова абонента, поэтому SLIP вполне применим и на выделенных каналах.

Протокол SLIP выполняет единственную функцию - он позволяет в потоке бит, которые поступают по выделенному (или коммутируемому) каналу, распознать начало и конец IP-пакета. Помимо протокола IP, другие протоколы сетевого уровня SLIP не поддерживает.

Протокол SLIP характеризуется тем, что он обеспечивает возможность подключаться к сети INTERNET через стандартный интерфейс RS-232, имеющийся в большинстве компьютеров. В настоящее время SLIP широко используется в оконечных компьютерах, подключенных к линиям связи, которые имеют пропускную способность 1, 2…28,8 Кбит/с.

Псевдоструктура протокола SLIP (логическая характеристика протокола). По сути, кадр SLIP структуры не имеет, он только предусматривает разграничение последовательно передаваемых пакетов IP (пакеты сетевого уровня) и тем самым обеспечивает синхронный ввод пакетов в канал связи (физический уровень). Для этого в протоколе SLIP используется специальный символ “END” (рисунок 7), значение которого в шестнадцатеричном представлении равно “С0” (11000000). В случае если в пакете IP имеется байт, тождественный символу “END”, то он заменяется двухбайтовой последовательностью, состоящей из специальных символов “ESC”(“DB”-11011011) и “DC” (11011100). Применяемый в протоколе SLIP символ “ESC” не равен символу “ESC” в коде ASCII, поэтому обозначают его “SLIP ESC”. Если же байт данных тождествен символу “SLIP ESC”, то он заменяется двухбайтовой последовательностью, состоящей из собственно символа “SLIP ESC” и символа “DD” (11011101). После последнего байта пакета IP передается символ “END”.

Механизм формирования кадра показан на рисунке 8, здесь приведены стандартный пакет IP, один байт которого тождествен символу “END”, а другой - символу “SLIP ESC”, и соответствующий ему кадр SLIP, который больше на четыре байта.

Вставка символа END перед началом кадра позволяет принимающей стороне избавиться от любого шума на линии связи. Однако такими мерами все способности SLIP определить и тем более исправить ошибки данных исчерпываются. Протокол возлагает задачу по определению и исправлению пакетов данных и сообщений полностью на вышележащие протоколы, то есть на сетевой и транспортный уровень ТСР/IP.

Рисунок 8 - Соответствие между кадром SLIP и пакетом IP

Протокол SLIP не определяет максимально допустимую длину “информационного поля” передаваемого “кадра”, однако реальный размер “вкладываемого в кадр” пакета IP не должен превышать 1006 байтов. Данное ограничение связано с первой реализацией протокола SLIP в соответствующей ОС Berkley Unix, и поэтому соблюдение его необходимо для обеспечения требуемой совместимости разных реализаций (версий) SLIP (большинство современных реализаций позволяют администратору самому установить размер пакета, а по умолчанию используют размер 1500 байт).

Популярность протокола SLIP объясняется тем, что он дал возможность подключаться к сети Internet посредством стандартного порта RS - 232, имеющегося в большинстве компьютеров. Программа управления SLIP загружается и выгружается по мере надобности. Большинство программ управления SLIP имеют возможность набирать телефонный номер провайдера. Программное обеспечение, реализующее работу с протоколом SLIP (TCP-manager), выполняет функции управления сетевым устройством, то есть является драйвером (специальная программа, управляющая сетевым устройством) сетевого устройства, такого, как модем. Можно загружать и выгружать программу управления SLIP по мере надобности. Сетевое устройство принимает IP - пакеты от программы (точнее процесса), посылающей их (от программы сетевого уровня), обкладывает своей служебной информацией и передаёт устройству последовательной передачи данных (модему, в последовательный порт и т.п.). На другом конце последовательной линии аналогичная программа принимает символы, приходящие с устройства последовательной передачи данных, освобождает от служебной информации и передаёт то, что получилось, а должны получаться при этом IP -пакеты, соответствующие программе (сетевого уровня), которая обрабатывает IP -пакеты.

Для установления связи по протоколу SLIP компьютеры должны иметь информацию об IP-адресах друг друга. Однако возможна ситуация, когда, скажем, при осуществлении соединения между хостом и маршрутизатором, последнему понадобится передать хосту информацию о его IP-адресе. В протоколе SLIP нет механизмов, дающих возможность обмениваться адресной информацией. Это один из недостатков протокола.

Соединение по протоколу SLIP- это наиболее экономичный и простой способ подключить компьютер к Интернет. SLIP можно использовать, если локальная сеть не имеет прямого доступа к Интернет или при присоединении отдельного компьютера. Для работы протокола необходимо, чтобы поставщик услуг Интернет также обеспечил протокол SLIP на своем компьютере (хосте Интернет).

Установив SLIP-соединение, компьютер превращается в узел Интернет и становится полноправным членом сети с собственным IP-адресом и именем. Все это без затрат на дополнительное оборудование. Нужен лишь компьютер и модем.

Недостатки SLIP:

Во-первых, протокол SLIP не обеспечивает обмен адресной информацией. Это ограничение не позволяет использовать SLIP для некоторых видов сетевых услуг. Например, каждый раз после установления SLIP -соединения компьютер превращается в полноправный хост Internet со своим собственным IP -адресом. Если провайдер использует динамическое присвоение IP -адресов, то при каждом новом соединении компьютер будет получать новый IP адрес. Следовательно, другие компьютеры в сети, будут вынуждены искать его под неизвестно каким адресом;

Во-вторых, отсутствие индикации типа протокола, пакет которого “вкладывается” в кадр SLIP. Поэтому через последовательную линию по протоколу SLIP можно передавать трафик лишь одного сетевого протокола - IP. Эти функции обеспечивают:

либо вышележащие протоколы, например, в стеке TCP/IP протокол IP проводит тестирование целостности пакета по заголовку IP, а один из двух транспортных протоколов (UDP или TCP) проверяет целостность всех данных по контрольным суммам. Однако в протоколе UDP не обязательно использование контрольных сумм, поэтому совместное использование UDP и SLIP нежелательно;

либо нижележащие протоколы. Поскольку для установления соединения по протоколу SLIP обычно используется модем, работающий по телефонной линии и подключенный к асинхронному, последовательному порту. Два компьютера, установившие такое соединение, обмениваются данными с паузами переменной длины. К сожалению, в телефонной линии всегда присутствуют помехи, иначе называемые шумом, поэтому модемы, подключаемые к телефонной сети, отличают данные от возможных помех, пользуясь различными параметрами связи. При использовании модема и программного обеспечения для обмена данными настраиваются определенные параметры связи, такие как скорость, размер данных, контроль четности. Для успешного взаимодействия двух модемов оба они должны быть одинаково настроены.

Но, несмотря на это, для повышения эффективности работы протоколу SLIP не помешало бы иметь собственный механизм (пусть даже простейший) коррекции ошибок.

В-третьих, в протоколе SLIP не предусмотрены процедуры обнаружения и коррекции ошибок. Эти функции обеспечивают протоколы вышележащих уровней: протокол IP проводит тестирование целостности пакета по заголовку IP, а один из двух транспортных протоколов (UDP или TCP) проверяет целостность всех данных по контрольным суммам.

Низкая пропускная способность последовательных линий связи вынуждает сокращать время передачи пакетов, уменьшая объем содержащейся в них служебной информации. Эта задача решается с помощью протокола CSLIP (Compressed SLIP).

Протокол сжатия служебной информации CSLIP (Compressed SLIP). Для повышения эффективности использования пропускной способности последовательных линий связи используются алгоритмы сжатия данных (например, за счет уменьшения объема служебной информации, содержащейся в заголовках пакетов IP). Такую задачу решает протокол CSLIP. При использовании протоколов типа TELNET для доставки одного байта данных требуется переслать 20-байтовый заголовок пакета IP и 20-байтовый заголовок пакета TCP (итого 40 байтов). Протокол CSLIP обеспечивает сжатие 40-байтового заголовка до 3 - 5 байтов. Поэтому большинство реализаций протокола SLIP поддерживают спецификацию CSLIP. Протокол сжимает только заголовки пакетов. Для увеличения эффективности линий надо либо увеличить количество данных в пакете, либо уменьшить размер заголовков. Алгоритм CSLIP концентрирует внимание на уменьшении размеров заголовков пакетов. Кроме того, протокол соблюдает требования интерактивной реакции системы. Интерактивность реакции системы - это просто ее свойство убедить пользователя в том, что все работает. Например, когда пользователь нажимает клавишу, он, вполне понятно, хочет увидеть, как введенный символ отобразится на его мониторе. Если работа сети приводит к ощутимым задержкам при передаче пакета, пользователь расценит интерактивность сети как неудовлетворительную.

Таким образом, протокол SLIP выполняет работу по выделению из последовательности передаваемых по последовательному каналу бит границ IP-пакета. Протокол не имеет механизмов передачи адресной информации, идентификации типа протокола сетевого уровня, определения и коррекции ошибок.

Пользователи Интернета, работающие через поставщиков услуг Интернета, представляют очень существенный сегмент сети. Прием и передача данных ведется при помощи модема, подключенного через последовательный порт компьютера к обычной телефонной линии. Для работы с сетью через модем используется один из двух существующих протоколов для работы по последовательным линиям связи: PPP или SLIP. Для того чтобы писать сетевые приложения, необходимо хорошо представлять себе ключевые моменты и различия между ними. Необходимо также иметь представление о производном от SLIP-протоколе, который называется SLIP с компрессией (обеспечивающий сжатие данных). В данной статье рассматриваются вопросы, связанные с первым протоколом - SLIP и его модификацией CSLIP (описаны в документах RFC 1055 и RFC 1144).

Для установления соединения по протоколу SLIP обычно используется модем, работающий по телефонной линии и подключенный к асинхронному, последовательному порту. Два компьютера, установившие такое соединение, обмениваются данными с паузами переменной длины. К сожалению, в телефонной линии всегда присутствуют помехи (шум), поэтому устройства, подключаемые к телефонной сети, отличают данные от возможных помех, пользуясь различными параметрами связи.

Соединение по протоколу SLIP

В первые годы существования Интернета протокол SLIP пользовался наибольшей популярностью для входа в Интернет начинающих пользователей с их домашних или рабочих компьютеров. Чтобы использовать SLIP, вы должны иметь соответствующее программное обеспечение, способное установить соединение по этому протоколу между вашим компьютером и хостом Интернета. Программное обеспечение такого рода (оно часто называется TCP-manager) выполняет функции управления сетевым устройством, то есть является драйвером сетевого устройства, такого как модем. Вы загружаете и выгружаете программу управления SLIP по мере надобности.

Соединение по протоколу SLIP - это наиболее экономичный и простой способ подключить ваш компьютер к Интернету. SLIP можно использовать, если ваша локальная сеть не имеет прямого доступа к Интернету, или вы хотите соединить отдельный компьютер. Для работы SLIP необходимо, чтобы ваш поставщик услуг Интернета также обеспечил протокол SLIP на своем узловом компьютере (хосте Интернета).

Известно, что каждый уровень стека протоколов TCP/IP инкапсулирует (вставляет) данные в том формате, в котором они требуются для передачи окружающим уровням. При "путешествии" данных через стек протоколов TCP/IP они последовательно окружаются дополнительной информацией (инкапсулируются) для следующего на пути уровня. Для того чтобы послать IP-датаграмму через сетевой уровень, вышележащий уровень соединения должен соответствующим образом инкапсулировать данные, оформить их в кадр, как того требует стандарт сетевого уровня протокола TCP/IP. Например, уровень соединения для сети Ethernet инкапсулирует данные в кадр Ethernet. Для сети token-ring, соответственно, это будут кадры стандарта token-ring.

Стандарты передачи данных по последовательному каналу связи, SLIP и CSLIP просто определяют другой способ инкапсуляции. SLIP и CSLIP подготавливают данные для передачи по последовательному каналу (обычно это интерфейс RS-232) в Интернет. Протокол РРР также инкапсулирует данные для этой же цели. Однако РРР использует более сложный метод инкапсуляции и интерфейс с Интернетом, нежели SLIP. Однако канал передачи для них всех по-прежнему последовательный и двухточечный. Логически, SLIP и РРР находятся между последовательным портом компьютера и его программным стеком TCP/IP.

Что такое SLIP?

Протоколы семейства TCP/IP могут работать, пользуясь широким спектром разнообразных сетевых технологий. Большинство сетевых технологий требуют применения четко определенной структуры кадра данных. Институт электрической и электронной инженерии (IEEE), основанный в 1963 году и имеющий в своем составе более 300 000 членов, описал набор различных стандартов, облегчающих производителям ПО и оборудования разработку и применение совместимых друг с другом стандартов по передаче данных, в том числе и в локальных компьютерных сетях. Как и большинство создающих стандарты организаций, IEEE нумерует исходящие документы. Группа стандартов IEEE 802 посвящена локальным компьютерным сетям. Например, стандарт IEEE 802.1 посвящен методам управления сетью, IEEE 802.3 и IEEE 802.5 описывают физические уровни для сетей Ethernet и token-ring, IEEE 802.2 содержит спецификацию уровня соединения для сетей типа Ehternet, token ring и ряда других технологий.

Преобразование (инкапсуляция) данных для передачи по последовательным каналам связи описано в документе под названием RFC 1055, "A Nonstandard for Transmission of IP Datagrams Over Serial Lines: SLIP", Rornkey, 1988. RFC 1055 не является официальным стандартом Интернета. Он описывает стандарт де-факто. Это значит, что, хотя сообщество Интернет и не рассматривает RFC 1055 в качестве стандарта, любой желающий, чтобы его программное обеспечение обладало совместимостью с уже существующими методами передачи, должен воспользоваться рекомендациями документа в своей работе.

SLIP - это протокол инкапсуляции IP-пакетов в кадры, пригодные для передачи по последовательному каналу связи. SLIP не предоставляет возможности адресовать данные, обозначать типы кадров, корректировать или определять повреждение данных, а также сжимать пакеты. Отсутствие этих возможностей делает протокол чрезвычайно простым в реализации и, следовательно, популярным. Несмотря на популярность, фирмы и производители программного обеспечения редко используют SLIP в качестве стандартного протокола, так как он не является официальным стандартом Интернета. Как правило, в качестве такого стандарта применяется РРР. Протокол РРР - это действительно стандарт Интернета, обладающий теми же свойствами по передаче данных в последовательном двухточечном канале, что и SLIP.

Инкапсуляция данных SLIP

Каждый протокол обладает свойством инкапсулировать данные. SLIP здесь не является исключением. Он использует специальные символы для ограничения кадра данных в последовательном канале. SLIP определяет следующие два символа, служащие для этой цели: End и Esc. Символом End служит символ с кодом ASCII 192 (ОхСО), символом Esc - символ с кодом 219 (OxDB). Компьютер с протоколом SLIP передает символ End в конце каждого пакета данных. Символ Esc используется для обозначения данных, имеющих тот же номер, что и символы Esc и End внутри пакета данных. В том, что для Esc и End выбрали именно указанные коды, нет особого скрытого смысла. Просто они были выбраны, и все. Поэтому почти наверняка в потоке данных пользователя будут встречаться как символы Esc, так и End. Когда это происходит, SLIP использует Esc, чтобы сообщить приемнику, что следующий символ с кодом End на самом деле не является концом кадра. Например, когда в пакете данных попадается байт с номером ОхСО (код символа End), SLIP подставляет двухбайтную Esc-последовательность Esc OxDC. Если байт имеет код самого символа Esc, SLIP вставляет двухбайтную Esc-последовательность Esc OxDD.

Реализация SLIP на принимающей стороне совершает противоположные действия, чтобы правильно разобрать поступающий пакет данных. Если в последовательности встречается символ Esc, SLIP сразу же смотрит на следующий за Esc символ и в зависимости от его номера так или иначе интерпретирует принятую последовательность. Например, если следующий за Esc символ имеет код OxDC, SLIP заменяет два символа на один с кодом ОхСО. Если принято сочетание Esc OxDD, оно заменяется на байт с кодом OxDB. Когда SLIP видит, что пришедший байт имеет код End и перед ним нет байта с кодом Esc, это значит, что достигнут конец кадра. Далее, SLIP передает все полученные до этого данные вышележащему сетевому уровню в качестве IP-пакета.

Большинство реализаций SLIP посылают байт с кодом End также и впереди кадра данных. Строго говоря, протокол SLIP не требует этого. Однако, поступая таким образом, SLIP позволяет принимающей стороне эффективно отбросить любой мусор, принятый до передачи действительного кадра и расценивающийся как кадр. Реализация SLIP, действующая описанным образом, позволяет отбросить кадр данных нулевой длины, когда принимающая сторона получает два следующих друг за другом символа End.

Как мы уже отметили выше, вставка символа End перед началом кадра позволяет принимающей стороне избавиться от любого шума на линии связи. Однако такими мерами все способности SLIP определить и тем более исправить ошибки данных исчерпываются. SLIP возлагает задачу по определению и исправлению пакетов данных и сообщений полностью на вышележащие протоколы, то есть на сетевой и транспортный уровни TCP/IP. Протокол IP требует присутствия и проверки контрольной суммы в заголовке пакета, поэтому SLIP вполне может не обращать внимания на возможное повреждение данных - эту работу за него сделает протокол IP, который проверит пакет и отбросит его в случае повреждения. TCP-протокол таким же образом проверит контрольную сумму своего заголовка и сегмента данных и в случае повреждения поступит с пакетом надлежащим образом. Итак, мы видим, что, поскольку вышележащие протоколы и так проверяют состояние и целостность данных, нет никакой необходимости вводить дополнительный контроль данных на уровне протокола SLIP.

В предыдущем абзаце мы повторили тот факт, что IP и TCP обнаруживают и корректируют ошибки, могущие возникнуть при передаче данных к ним с нижележащих уровней, например, от протокола SLIP, который сам не обнаруживает ошибок. Поскольку в UDP не применяется контрольных сумм, никто не может гарантировать, что пакет UDP дойдет до получателя по SLIP неповрежденным, коль скоро SLIP тоже не обнаруживает ошибки. Вообразите, что вы передаете пакеты UDP по шумной телефонной линии, пользуясь SLIP. Ни один из этих протоколов не обратит внимания на возможный сбой и повреждение данных. Компьютер, получивший поврежденный пакет, с чистой совестью будет считать его нормальным, и такое поведение сможет привести к непредсказуемым последствиям. Поэтому нельзя передавать датаграммы UDP по протоколу SLIP, если только вы не используете UDP с контрольной суммой.

Недостатки SLIP

Кроме отсутствия обнаружения и коррекции ошибок, в протоколе SLIP отсутствуют еще некоторые достаточно важные для профессиональных сетевых программистов функции. Например, SLIP не в состоянии адресовать пакеты, обозначать пакеты различными типами, а также сжимать данные внутри пакета. В RFC 1055 прямо указано, что создатели SLIP разрабатывали его, когда наличие таких функций не было существенно.

Каждый раз после установления SLIP-соединения компьютер превращается в полноправный хост Интернета со своим собственным IP-адресом. Таким образом, становится возможным обслуживать и других пользователей Интернета. Поскольку ваш поставщик услуг Интернета может применять динамическое присвоение адреса (из диапазона, имеющегося у него), при каждом новом соединении ваш компьютер будет получать новый IP-адрес. Следовательно, другие компьютеры в сети будут вынуждены искать вас каждый раз под неизвестно каким адресом.

В дополнение ко всем неприятностям, отметим, что не существует метода прямо указать ваш новый IP-адрес при установлении SLIP-соединения. Каждый раз вы вынуждены вручную вводить изменившийся адрес в компьютер, поскольку один компьютер не может автоматически передать IP-адрес другому, пользуясь SLIP. Из такого положения есть только один выход: получить у поставщика услуг один, принадлежащий только вам IP-адрес компьютера. Как правило, иметь такой адрес обойдется вам дороже, чем иметь динамически присваиваемый.

На свете есть много компьютеров, в которых в одно и то же время может исполняться несколько различных сетевых протоколов. Например, компьютеры фирмы DEC могут совмещать TCP/IP и DECnet. Разумеется, работая с двумя протоколами сразу, вы захотите, чтобы они жили вместе на одном и том же проводе, соединяющем вас с внешним миром. Такая задача проста, пока вы применяете Ethernet в качестве сетевой среды. Фреймы Ethernet имеют соответствующие поля, где указывается тип передающегося пакета, однако как только вы попытаетесь перейти на SLIP, обнаружится, что у кадра SLIP такое поле отсутствует, а, следовательно, он может передать данные только для одного IP протокола.

Сети Ethernet передают информацию со скоростью до 10 миллионов бит в секунду. Соединение SLIP может работать на скоростном модеме, но даже при этом обеспечивать скорость только 19200 бит в секунду. Другими словами, Ethernet быстрее SLIP более, чем в пятьсот раз. Для увеличения производительности SLIP-соединения вы можете сжимать передаваемые по модему данные, что уменьшает необходимый трафик сети и позволяет передать больше информации за меньшее время. Предположим, требуется передать файл размером в 100 Кбайт (100х1024 байт) по модему на скорости 1200 бод. Для этого потребуется около 14 минут:
100 х 1024 = 102400 байт
102400 байт / 120 байт в секунду = 853 секунды 853 секунды / 60 секунд в минуте = 14 минут

Если передаваемые данные предварительно сжать в соотношении 1:4, объем уменьшится до 25 Кбайт. Время, нужное для передачи, сократится до четырех минут. Новые модемы используют встроенную технологию сжатия данных. Некоторые программные протоколы также используют сжатие данных при работе. Информация в заголовках пакетов TCP и IP, которая меняется редко, может быть эффективно устранена с применением простейших алгоритмов сжатия данных, когда передаются только изменяющиеся части заголовков. RFC 1055, описывающий протокол SLIP, не описывает, однако, никакого алгоритма компрессии. В следующем разделе вы познакомитесь с реализацией протокола CSLIP, обладающего возможностью сжимать заголовки TCP/IP для увеличения производительности.

Протокол SLIP со сжатием (CSLIP)

Алгоритм SLIP со сжатием заголовков данных, увеличивающий производительность сети, рассматривается в документе под названием RFC 1144, "Сжатие заголовков TCP/IP на низкоскоростных последовательных соединениях" (Compressing TCP/IP Headers for Low-Speed Serial Links, Jacobson, 1990).

Протокол CSLIP сжимает только заголовки пакетов. Сами данные пакета остаются неизменными. Точнее, CSLIP сжимает исключительно заголовки TCP и IP для сегментов данных TCP. CSLIP не затрагивает ни заголовки пакетов UDP, ни заголовки IP для них. Разработано достаточно много различных реализаций протокола CSLIP, поэтому вам скорее всего, не понадобится изобретать новую.

Предпосылки к появлению CSLIP

Чтобы понять, почему сжатие заголовков пакетов столь эффективно, давайте рассмотрим некоторые типичные сетевые задачи;

Интерактивный вход в удаленный компьютер (Telnet);

Интерактивная передача файлов (FTP);

Электронная почта с использованием Simple Mail Transfer Protocol (SMTP);

Чтение и передача новостей с использованием Network News Transfer Protocol (NNTP).

Как и любая другая линия связи, последовательная линия переносит пакеты данных пользователя, снабженные заголовками. Для увеличения пропускной способности линии не мешало бы сжимать заголовки пакетов. Способы передачи пакетов по сети делятся на две большие категории: интерактивные и неинтерактивные. Мы покажем позже, что эффективность канала связи зависит от типа передачи пакетов.

Прекрасными примерами неинтерактивной передачи пакетов служат два протокола: FTP и NNTP. Разумеется, начальная стадия работы обоих процессов включает их ручную настройку и передачу параметров. Однако все, что происходит потом, - это перекачка информации с одного сетевого хоста на другой, не требующая вашего вмешательства. При запуске ftp с вашего компьютера, вы указываете имя файла для передачи, а потом сидите и ждете, пока поток байтов, составляющих этот файл, попадет с другого хоста на ваш собственный. Точно так же вы выбираете группу новостей в приложении NNTP и ждете, пока все новости с сервера передадутся на ваш компьютер. Это примеры неинтерактивной передачи пакетов.

Типичным примером интерактивной передачи информации служит Telnet. Каждое нажатие на клавиатуре пользователя обычно приводит к посылке пакета, содержащего код введенного символа, на удаленный сетевой хост. Несмотря на то, что многие реализации Telnet умеют передавать сразу всю введенную строку символов, обычно эта возможность не используется, ибо пользователь хочет получить незамедлительную реакцию удаленного компьютера на введенный символ. Кроме того, удаленный компьютер посылает пакет-подтверждение с копией введенного символа обратно пользователю. В общем, Telnet создает двунаправленный поток данных, состоящий из маленьких пакетов.

Обыкновенно IP-заголовки имеют длину в 20 байт, заголовок TCP имеет длину также в 20 байт. Отсюда следует, что сеанс Telnet создает пакеты данных длиной в 40 байт заголовков для каждого переданного символа в один байт. Для понимания принципа работы CSLIP нужно усвоить два различных, но тесно связанных понятия: эффективность линии и интерактивная реакция системы. Эффективность линии - это коэффициент, равный длине заголовка TCP/IP-пакета, деленной на длину заголовка плюс длину данных пользователя в этом пакете. Мы сейчас вычислим эффективность линии для сеанса Telnet.

Предположим, что программа Telnet передает один пакет на одно нажатие клавиши, которое, в свою очередь, состоит из одного символа длиной в байт. Пакет данных, содержащий символ длиной в байт и снабженный TCP/IP-заголовками (еще 40 байт), будет иметь длину в 41 байт. Приемник пакета должен послать обратно подтверждение о доставке, и это будет пакет длиной в 41 байт. Теперь сосчитаем эффективность линии. Она составит менее трех процентов (процесс передачи по TCP/IP дуплексный, так как пакеты данных следуют независимо друг от друга в обоих направлениях, поэтому эффективность линии считается независимо для обоих направлений. Впрочем, в нашем случае результат одинаков как для одного, так и для другого направления).

Для увеличения эффективности линии надо либо увеличить количество данных в пакете, либо уменьшить размер заголовков. Алгоритм CSLIP концентрирует внимание на уменьшении размеров заголовков пакетов. Кроме того, CSLIP соблюдает требования интерактивной реакции системы. Интерактивность реакции системы - это просто ее свойство убедить пользователя в том, что все работает. Например, когда пользователь нажимает клавишу, он, вполне понятно, хочет увидеть, как введенный символ отобразится на его мониторе. Если работа сети приводит к ощутимым задержкам при передаче пакета, пользователь расценит интерактивность сети как неудовлетворительную.

В RFC 1144 рассматривается, каким образом особенности передачи заголовков пакетов сетевых данных могут влиять на восприятие ситуации пользователем. Предположив, что каждый введенный символ приводит к появлению двух пакетов длиной в 41 байт, получим, что для обеспечения задержки эха не более чем на 200 миллисекунд, необходимо, чтобы скорость обмена составляла по меньшей мере 4000 бит в секунду. Другими словами, медленная последовательная линия заставляет пользователя думать, будто скорость работы программы мала, даже если программа вполне эффективна в действительности.

Неинтерактивная передача пакетов также может влиять на интерактивную реакцию системы. Например, чтобы передача неинтерактивных пакетов обладала эффективностью более 90 процентов при длине TCP/IP-заголовков в 40 байт, необходимо сохранять максимальную длину пакета (MTU) в диапазоне от 500 до 1000 байт. Предположим далее, что ваше соединение SLIP имеет MTU 1024 байт при скорости модема 9600 бод. При этом, один пакет в одну сторону будет передаваться приблизительно в течение секунды. Любой интерактивный сеанс будет при этом ждать окончания передачи неинтерактивного пакета.

Влияние аппаратных средств

Кроме рассмотренного нами человеческого фактора, на проектирование протокола также влияют и некоторые особенности аппаратных средств. Производители модемов используют различные способы увеличения эффективности работы этих устройств. При программировании приложений нет необходимости знать досконально, что происходит внутри модема, однако нужно обратить внимание на некоторые вещи.

Теория связи оговаривает фактическую полосу пропускания между двумя устройствами. Эффективная полоса пропускания в зависимости от используемой техники позволяет увеличить (и превысить) фактическую полосу пропускания при сжатии передаваемых данных. Сжатие данных позволяет передать их больше за одно и то же время. В некоторых случаях достигаемая при этом скорость передачи превышает теоретический предел скорости канала связи.

В дуплексном протоколе, характерном для модема, данные следуют в обоих направлениях одновременно. Однако для обоих направлений редко применяется одна и та же полоса пропускания, так как одна из сторон, участвующих в соединении, скорее всего, передает больше данных, чем другая. Именно для нее отводится большая полоса пропускания за счет противоположной стороны. Распределение полосы пропускания происходит прозрачно для пользователя и управляется самим модемом.

Чтобы определить, какая из сторон в соединении требует большей полосы, производители модемов считают, что одной из сторон всегда является человек, и именно она требует наибольшей полосы. Модем, однако, должен самостоятельно догадаться об этом. За отправную точку берется скорость в 300 бит в секунду. Большинство людей не могут печатать со скоростью, превышающей указанную. К сожалению, ситуация меняется, как только мы начинаем передавать пакеты TCP/IP с заголовками из сорока байт на каждый введенный символ. Скорость увеличивается в соотношении 40:1 и заставляет модем часто менять полосы в противоположных направлениях. IP-пакет размером в 41 байт состоит из 328 бит, что выходит за пределы, предписанные для узнавания человека модемом. При покупке модема следует обращать внимание на такие тонкости, как поддерживаемые типы сжатия данных и другие возможности по передаче данных. Покупка хорошего в этих отношениях модема позволит вам значительно увеличить производительность сетевого соединения.

Цели проектирования

Современная архитектура модемов позволяет сократить потребность в скорости передачи нажатий клавиш до 300 бит в секунду и даже меньше. Если мы рассматриваем десятибитовую последовательность на один символ (восемь бит данных плюс старт- и стоп-биты), 300 бит в секунду образуют полосу пропускания в 30 байт данных в секунду. Обычная скорость печати на клавиатуре составляет 5 символов в секунду. Таким образом, для передачи заголовков остается 25 байт (30 - 5) при условии сохранения выбранной максимальной полосы пропускания в 300 бит в секунду. Другими словами, на один передаваемый символ допустимо передать еще и пятибайтовый заголовок. Кроме того, такая передача сохраняет хорошую интерактивность системы, так как пауза между нажатием и получением эха у нас не превысит 200 миллисекунд при скорости 4096 бит в секунду.

Реализация SLIP

В RFC 1144 обсуждаются методы, служащие для сокращения необходимой длины передаваемых заголовков с 40 байт на пакет до всего лишь трех-пяти. Джекобсон показывает, что на протяжении TCP-соединения около половины информации заголовка остается неизменной. Протокол CSLIP требует, чтобы после установки TCP-соединения хостами, они хранили у себя копии последнего принятого и переданного пакетов, и в дальнейшем, храня у себя номер текущего соединения, просто передает изменения в заголовках, позволяя собирать реальный заголовок на основе имеющейся неизменной части и принятого изменения.

Как только появляется новый CSLIP-пакет, сетевое ПО по идентификатору устанавливает, к какому соединению он относится и восстанавливает его в нормальном виде. Как видим, по CSLIP не передаются настоящие заголовки пакетов, что сокращает размер пакета сразу на 20 байт.

Далее, CSLIP не передает поле IP заголовка "Общая длина пакета" (Total Length), получая его вместо этого от сетевого уровня соединения и сокращая длину еще как минимум на два байта. В заголовке IP-пакета остается только поле контрольной суммы заголовка, однако нет никакой необходимости передавать контрольную сумму отсутствующих данных. Вместо передачи контрольной суммы заголовка CSLIP вычисляет ее на месте, в отличие от SLIP, который по-прежнему вынужден передавать контрольную сумму по каналу связи. Мы убираем контрольную сумму заголовка - и получаем еще два байта экономии.

В результате остается еще 16 байт в заголовке пакета, которые могут изменяться на протяжении сеанса TCP/IP. Разумеется, они изменяются не постоянно, а лишь иногда. В RFC 1144 отмечается, что, скажем, протокол FTP изменяет только идентификаторы пакетов (ID), номер последовательности и контрольную сумму в направлении от передатчика к приемнику. Идентификатор пакета, пакет-подтверждение, контрольная сумма и, возможно, окно передачи - вот что обычно изменяется по направлению от приемника к передатчику. Передатчик CSLIP всегда хранит копию последнего посланного пакета у себя. Таким образом, он знает, какие именно изменения произошли в следующем по счету пакете для передачи. Если передатчик шлет только изменившиеся байты, средний размер заголовка пакета становится равным примерно десяти байтам. Зная, каким образом изменяются поля в заголовке, можно достичь еще большего сокращения его размера.

Идентификатор пакета изменяется, как правило, на единицу при передаче каждого нового пакета. Что это значит? Что разность двух идентификаторов можно закодировать небольшим положительным целым числом, меньшим, чем 256 (один байт). Как правило, это число равно единице. Далее, для передатчика номер последовательности текущего пакета будет числом, полученным от сложения этого номера у предыдущего пакета с длиной предыдущего пакета. Максимальная длина IP-пакета равна 64000 байт, значит, изменение номера последовательности между двумя пакетами никогда не превысит двух байт. На этом этапе, посылая вместо реальных полей только их изменения, CSLIP экономит нам еще от трех до четырех байт дополнительно.

Итак, мы сумели сократить размер TCP/IP-заголовка с 40 байт до пяти, что и являлось поставленной целью. Детали реализации в общем случае не существенны, если только вам не хочется написать собственную реализацию CSLIP...



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: