Энциклопедия мобильной связи

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

Протокол SLIP (Serial Line IP) стал первым промышленным стандартом де-факто, который позволил устройствам, соединенным последовательным низ­коскоростным интерфейсом связи, работать по протоколам TCP/IP. Этот Internet-протокол разрешает в качестве линий связи использовать обычные те­лефонные линии. Протокол был создан в начале 80-х годов и согласно RFC-1055 впервые был включен в качестве средства доступа к IP-сети в пакет фирмы 3COM - UNET. В 1984 г. протокол SLIP был встроен Риком Адамсом (Rick Adams) в операци­онную систему 4.2 Berkley Unix. Позднее SLIP был поддержан в других верси­ях Unix и реализован в программном обеспечении для ПК. Ввиду своей функциональной простоты, SLIP использовался и используется в основном на коммутируемых линиях связи, которые не характерны для от­ветственных и скоростных сетевых соединений. Тем не менее, коммутируе­мый канал отличается от некоммутируемого только более низким качеством и необходимостью выполнять процедуру вызова абонента, поэтому SLIP вполне применим и на выделенных каналах. Протокол SLIP выполняет единственную функцию - он позволяет в потоке бит, которые поступают по выделенному (или коммутируемому) каналу, рас­познать начало и конец IP-пакета. Другие протоколы сетевого уровня SLIP не поддерживает. Программное обеспечение, реализующее работу с протоколом SLIP, прини­мает символы, приходящие с устройства последовательной передачи данных (модема, последовательного порта и т. д.); рассматривает и толкует их как составляющие IP-пакета; укладывает полученные данные в полнокровный нор­мальный IP-пакет и передает этот пакет далее - соответствующей програм­ме, которая обрабатывает IP-пакеты, например модулю TCP. На обратном пути SLIP получает от программы (сетевого уровня), посылающей IP-пакеты, IP- пакет, вычленяет его содержимое, соответствующим образом переформати­рует, затем делит на символы и отправляет его через устройство последова­тельной передачи по последовательной линии в сеть - соседнему узлу Internet. Структура кадра протокола SLIP. Протокол SLIP предназначен для пе­редачи IP-пакетов через асинхронные линии связи. Поскольку асинхронная пе­редача является байт-ориентированной, то перед транспортировкой средства­ми SLIP пакет разделяется на октеты (байты), которые передаются один за другим. Как известно, в сети Ethernet IP-пакет может иметь длину до 1500 байт, что обусловливает необходимость его сегментации - разбиения на более короткие пакеты. SLIP делает это довольно примитивно. Он не анализирует поток дан­ных и не выделяет какую-либо информацию в этом потоке. Для распознавания границы IP-пакетов, протокол SLIP предусматривает использование специаль­ного символа END, значение которого в шестнадцатеричном представлении равно (С0) А. Для разделения SLIP-кадров между ними вставляется служебный байт-разделитель - символ ESC (DB) A . Применение специального символа может породить конфликт: если байт пересылаемых данных тождественен символу END, то он будет ошибочно оп­ределен как признак конца пакета. Чтобы такой байт, встретившийся внутри IP-пакета, не воспринимался как разделитель, предусмотрен механизм встав­ки байта (byte staffing). Таким образом, собственно служебной информации в протоколе SLIP до­вольно мало: на IP-пакет добавляется один байт-разделитель (между пакета­ми они не дублируются), а иногда появляется несколько дополнительных бай­тов, вставляемых по процедуре вставки байта.

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

Существенна и избыточ­ность, порождаемая самим асинхронным методом передачи на интерфейсе ПК- модем (минимум 20 % на дополнительные стартовый и столовый биты на каж­дый байт). Но с этим ничего поделать нельзя, поскольку все персональные компьютеры имеют только асинхронные порты. Для установления связи по протоколу SLIP компьютеры должны иметь ин­формацию об IP-адресах друг друга. В протоколе SLIP нет механизмов, обес­печивающих возможность обмениваться адресной информацией, так как в структуре кадра не предусмотрено поле адреса и его специальная обработка. Поэтому компьютерам, взаимодействующим по протоколу SLIP, должны быть назначены IP-адреса заранее. Каждый раз после установления SLIP-соедине­ния компьютер превращается в полноправный хост Internet со своим собствен­ным IP-адресом. Если провайдер использует динамическое присвоение 1Р-ад- ресов, то при каждом новом соединении компьютер будет получать новый IP-адрес. Следовательно, другие компьютеры в сети будут вынуждены искать его под неизвестно каким адресом. Другим недостатком протокола SLIP является отсутствие в нем индикации типа протокола, пакет которого инкапсулируется в SLIP-кадр. Поэтому через последовательную линию по протоколу SLIP можно передавать трафик лишь одного сетевого протокола. SLIP не позволяет различать пакеты по типу про­токола, например, IP или DECnet. При работе по протоколу SLIP предполага­ется использование только протокола IP, что определено его названием Serial Line IP. При работе с реальными телефонными линиями, зашумленными и поэтому искажающими информацию при пересылке, необходимы процедуры обнаруже­ния и коррекции ошибок. В протоколе SLIP такие процедуры не предусмотре­ны. Эти функции обеспечивают вышележащие протоколы: протокол IP прово­дит тестирование целостности пакета по заголовку IP, а один из двух транспортных протоколов (UDP или TCP) проверяет целостность всех данных по контрольным суммам. В стандартном SLIP не предусмотрено сжатие данных, но существуют его варианты со сжатием, например С SLIP. Большинство современных модемов, поддерживающих стандарты V.42bis и MNP5, осуществляют эту операцию ап­паратно. Низкая пропускная способность последовательных линий связи заставляет сокращать время передачи пакетов, уменьшая объем содержащейся в них слу­жебной информации. Эта задача решается с помощью протокола Compressed SLIP (CSLIP), поддерживающего сжатие заголовков IP-пакетов. Протокол CSLIP был создан в Lawrence Berkeley Labs (LBL) Ван Якобсо­ном как средство повышения эффективности последовательной передачи и уровня сервиса прикладных программ, использующих TCP/IP на медленных линиях. Протокол CSLIP, по сравнению с протоколом SLIP, использует в шесть раз меньше избыточной информации (в виде заголовков). На низких скоростях передачи данных эта разница заметна только при работе с IP-пакетами, несу­щими малые объемы информации, такие пакеты формируются, например, при работе telnet или rlogin. На больших же скоростях CSLIP дает меньший выиг­рыш и почти никакого выигрыша для пакетов с большими объемами данных, например ftp-пакетов. Появление CSLIP объясняет тот факт, что при использовании программ типа telnet, rlogin и других для пересылки одного байта данных требуется переслать 40 байт служебной информации. При сжатии заголовков 20 октетов заголовка IP и 20 октетов заголовка TCP (итого 40 байт) заменяются 3-7 октетами. CSLIP для сжатия - распаковки и проверки правильности пересылки пакета (и заголовка) использует информацию из предыдущего пакета, т.е. передача име­ет структуру цепочки. Первый пакет в цепочке - несжатый. Если какой-либо пакет теряется, то цепочка рвется, нельзя этот же пакет запросить в самом конце передачи, его нужно пересылать заново тут же, т.е. прекращать процесс передачи и начинать новую цепочку. Таким образом, эта технология при пропа­же или искажении пакетов приводит к большим потерям времени, чем обыч­ный SLIP. Это происходит из-за задержек на останов и передачу нового несжа­того пакета. Так как в протоколе SLIP процедуры обнаружения и коррекции ошибок не предусмотрены, то нежелательно совместное использование дейтаграммного протокола UDP и SLIP. Это объясняется тем, что в протоколе UDP не обяза­тельно применение контрольных сумм. Дальнейшим развитием протокола SLIP является протокол РРР (RFC 1331), в котором устранены некоторые недостатки протокола SLIP. Необходимо по­мнить что SLIP и РРР - протоколы канального уровня.

Мы ранее рассматривали вхождение в сети через локальный интерфейс Ethernet. Рассмотрим использование в сети телефонной линии. Существует соответственное программное обеспечение.

Компьютер подключается к телефонной линии через модем или другое аналогичное устройство.

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

SLIP-протокол

SLIP (Serial Line IP) –.протокол последовательной передачи данных. Протокол SLIP позволяет компьютеру использовать IP в осуществлении связи в сети через телефонные линии и модемы, а также непосредственно через интерфейс RS-232.

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

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

Символ SLIP END – соответствующий байту с децимальным кодом 192, который маркирует конец датаграммы. Когда принимающий SLIP получает байт с таким кодом, он определяет, что это конец датаграммы и передаёт её IP уровню.

Символ SLIP ESC – соответствующий байту с децимальным кодом 219. этот символ предназначен для исключения из последовательности SLIP-управляющих символов. Если передающий SLIP распознаёт в выводимой информации байт со значением эквивалентным SLIP END, то он преобразует этот символ в двух байтовую последовательность байт. Эти 2-х байтные последовательности, он преобразовывает их обратно в однобайтовые значения.

Протокол SLIP очень простой. Он не организует проверки правильности передачи, не умеет управлять параметрами соединения и т.д., что сильно ограничивает его применимость.

Протокол PPP

Учитывая недостатки SLIP, был разработан протокол PPP – the point-to-point protocol. Этот протокол разработан группой IETF (Internet Engineering Task Force) как часть стека TCP/IP для передачи кадров информации по последовательным глобальным каналам. Протокол PPP стал фактическим стандартом для глобальных линий связи при соединении удаленных клиентов с серверами и для образования соединений между маршрутизаторами в корпоративной сети. Протокол PPP разрабатывался с целью передачи данных для широкого круга сетевых протоколов. Протокол PPP более надёжный протокол, чем SLIP, но и более трудоёмкий в исполнении.

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

PPP протокол является 3-х-уровневым протоколом, включающим в себя:

Data link layer protocol – уровень пересылки данных использует простую модификацию версии HDLC – протокола (High-level Data Link Control). HDLC – это международный стандарт для надёжной передачи данных через синхронную, последовательную линию связи, т.е. протокол PPP может гарантировать надёжную доставку сообщений, через различные типы последовательных линий.

Link Control Protocol – протокол управления связью. Производит управляющую информацию для последовательной линии. Он используется для установления соединения, конфигурирования параметров соединения, проверки качества соединения, и для закрытия соединения.

Network Control Protocol – протокол управления сетью – производит конфигурацию и управляющую информацию для протоколов сетевого уровня.

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

Переговорная процедура происходит во время установления соединения. Протокол РРР основан на четырех принципах: переговорное принятие параметров соединения, многопротокольная поддержка, расширяемость протокола, независимость от глобальных служб.

Переговорное принятие параметров соединения . В корпоративной сети конечные системы часто отличаются размерами буферов для временного хранения пакетов, ограничениями на размер пакета, списком поддерживаемых протоколов сетевого уровня. Физическая линия, связывающая конечные устройства, может варьироваться от низкоскоростной аналоговой линии до высокоскоростной цифровой линии с различными уровнями качества обслуживания. Чтобы справиться со всеми возможными ситуациями, в протоколе РРР имеется набор стандартных установок, действующих по умолчанию и учитывающих все стандартные конфигурации. При установлении соединения два взаимодействующих устройства для нахождения взаимопонимания пытаются сначала использовать эти установки. Каждый конечный узел описывает свои возможности и требования. Затем на основании этой информации принимаются параметры соединения, устраивающие обе стороны, в которые входят форматы инкапсуляции данных, размеры пакетов, качество линии и процедура аутентификации. Протокол, в соответствии с которым принимаются параметры соединения, называется протоколом управления связью (Link Control Protocol, LCP) . Протокол, который позволяет конечным узлам договориться о том, какие сетевые протоколы будут передаваться в установленном соединении, называется протоколом управления сетевым уровнем (Network Control Protocol, NCP) . Внутри одного РРР - соединения могут передаваться потоки данных различных сетевых протоколов. Одним из важных параметров РРР - соединения является режим аутентификации. Для целей аутентификации РРР предлагает по умолчанию протокол РАР (Password Authentication Protocol), передающий пароль по линии связи в открытом виде, или протокол CHAP (Challenge Handshake Authentication Protocol), не передающий пароль по линии связи и поэтому обеспечивающий большую безопасность сети. Пользователям также разрешается добавлять и новые алгоритмы аутентификации. Дисциплина выбора алгоритмов компрессии заголовка и данных аналогична.

Протокол DNS

7.6.1 Описание протокола DNS

В первые годы Internet имел небольшое число узлов. До 1980 года в сети ARPANET входило несколько сотен компьютеров. Соответствие между их именами и IP-адресами хранились в текстовом файле hosts.txt, но он хранился на компьютере Информационного центра сети в Стэнфордском исследовательском институте г. Мейло-Парк в Калифорнии (SRI-NIC – Stanford Research Institute’s Network Inform Center).

Другие компьютеры подключенные к сети ARPANET, по мере необходимости копировали этот файл с компьютера SRI-NIC. Обновление происходило один два раза в неделю. С ростом числа машин стали возникать проблемы:

Файл hosts.txt стал слишком большим;

Обновление необходимо проводить несколько раз в день;

Весь трафик сети, связанный с разрешением имён, проходил через SRI-NIC, и поддержка файла hosts.txt стала узким местом всей сети;

Файл hosts.txt использовал линейное пространство имён.

Эти и другие проблемы заставили руководство ARPANET искать механизм замены файла hosts.txt. В результате была создана доменная система имён – DNS.

DNS – это метод назначения имён путём передачи сетевым группам ответственности за их подмножество имён.

Каждый уровень этой системы называется доменом. Домены в именах отделяются друг от друга точками.

Пример: admin.isp.nsc.ru. или cyber.neic.nsk.ru.

Первым в имени стоит название рабочей машины – реального компьютера с IP-адресом.

Затем в имени стоит имя группы (например: neic –имя института, либо имя группы, которая поддерживает множество имён машин).

Группа входит в более крупное объединение (например: nsc – Сибирское отделение, nsk – г.Новосибирск).

Объединение является частью национальной сети (например: ru, su – Россия, de – Германия, pl – Польша и т.д.).

Для США наименование страны опускается, там самыми крупными объединениями является сети образовательных (.edu), коммерческих (.com), государственных (.gov), военных (.mil), других (.org) и сетевых (.net) ресурсов.

В пределах одного домена не должно быть одинаковых имён. Если группа сама занимается распределением и распознаванием своих имён она должна выделится в отдельную DNS-зону и иметь DNS-сервера (первичны и вторичный), которые ведёт информационную базу по именам компьютеров всей этой группы.

DNS – представляет собой иерархическую распределённую систему управления базой данных, основанная на архитектуре “клиент-сервер”. Назначение базы данных DNS – преобразование имён компьютеров в IP-адреса. Клиенты DNS называются определителями, а серверы – серверами имён.

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

Серверы имён разделяются на основной и резервный.

Основной сервер имён получает данные для зоны из локальных файлов. Модификация зоны – добавление (удаление) доменов или узлов – выполняется на уровне основного сервера.

Резервные серверы имён получают данные о зонах от основного сервера. Передача информации о зоне называется передачей зоны.

Сервер определяется как основной и резервный на уровне зоны. Поэтому каждый сервер может быть как основным так и резервным.

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

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

DNS-сервер имеет два файла, содержащих базу имён:

файл прямой зоны;

файл обратной зоны.

Файл прямой зоны – named.hosts используется для преобразования имён машин в IP-адреса.

Строка того файла содержит имя мащины и ее IP-адрес:

admin.isp.nsc.ru IN A 194.226.178.182

Файл обратной зоны named.rev (*.rev) преобразует IP-адрес в имя машины. Строка файла обратной зоны содержит IP-адрес машины и ее имя:

194.226.178.182 IN PTR admin.isp.nsc.ru

7.7 Протокол RIP – маршрутизации

Протокол маршрутной информации. RIP (routing information protocol) – относится к широко известному классу протоколов маршрутизации, основанных на алгоритме Беллмана-Форда. Этот протокол базируется на так называемых алгоритмах векторных расстояний.

Маршрутизация – это средство определения оптимального пути между двумя узлами в Internet. Без маршрутизации трафик был бы ограничен простой физической сетью.

Существует три наиболее общих маршрутных конфигураций:

минимальная маршрутизация – используется, когда сеть полностью изолирована от других TCP/IP сетей. Таблица минимальной маршрутизации создаётся вручную, администратором в процессе конфигурирования сети;

статическая конфигурация – используется, когда сеть имеет ограниченное число шлюзов к другим TCP/IP сетям. Таблица статической маршрутизации создаётся вручную системным администратором с помощью команды route. Таблица статической маршрутизации используется, если в структуре сети нет изменений;

динамическая маршрутизация – используется, когда в сети имеется больше, чем один маршрут к какой-либо другой машине.

Таблица динамической маршрутизации строится из обменной информации протоколов маршрутизации. Протоколы маршрутизации обеспечивают пересылку по сети информации, в которой отражается изменения в трафике сети. Протокол маршрутизации значительно быстрее и точнее определяет изменения в маршрутных ситуациях сети, чем системный администратор. Они определяют, какой маршрут лучше на основании так называемой “стоимости” передачи (количество узлов по маршруту, суммарные задержки и т.д.).

Информация о маршрутах между хостами не зависимо, каким образом она определялась – администратором вручную или протоколом маршрутизации и хранится в таблице маршрутов.

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

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

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

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

длина равняется= (длина пути, сообщённая соседом A) + (длина пути до соседа A).

Рассмотрим принцип формирования таблиц маршрутов. Пусть дана сеть, показанная на рисунке 7.7.

Рис.7.7. Пример структуры сети

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

Маршрутизатор A.

Маршрутизатор B.

Маршрутизатор C.

Рис.7.8. Таблицы маршрутов

Обмены осуществляются по состоянию, и после определённого числа получаем результат.

Так после первой итерации обменов маршрутизатор А получит данные от маршрутизатора В и скорректирует метрику до сети D. Маршрутизатор С получит данные от маршрутизатора D и скорректирует метрику до сети T.

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

Алгоритм Беллмана-Форда предусматривает диагностику обрыва линии. Если сосед соседу долго не отвечает, линии назначается метрика равная бесконечности – ∞.

Протокол RIP имеет следующие недостатки:

использование фиксированных метрик;

трудности в использовании в больших сетях, так как при расширении сети увеличивается количество изменения топологии, что требует более частой передачи маршрутной информации;

таблицы маршрутизации не учитывает возникающую загрузку каналов.

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

В настоящее время введён протокол маршрутизации нового поколения OSPF (open shortest path first).

Помимо основной функции – маршрутизации он оперативно распределяет график между равноценными маршрутами.

Составление таблиц маршрутизации может выполняться алгоритмом Беллмана-Форда. А механизм сбора и использования маршрутной информации отличается от RIP.

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

Если возникает изменение, то осуществляется рассылка информации методом лавинной маршрутизации.

7.8 NFS – сетевая файловая система

NFS – позволяет директориям и файлам быть распределёнными по сети.

Исходно NFS была разработана фирмой SON Microsystem. В настоящее время используется во всех UNIX – подобных ОС и в других не UNIX – подобных.

Через NFS пользователи и программы получают доступ к файлам, размещённым на удалённых компьютерах.

NFS имеет следующие достоинства:

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

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

NFS позволяет пользователям использовать семейство UNIX-команд, для управления удалёнными файлами. Например, для копирования файла из одной PC в другую нет необходимости использовать FTP, а можно использовать команду cp (copy).

Существует две стороны NFS – одна сторона – клиент и другая – сервер.

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

Сервер NFS – это системы, которая делает директории доступными для использования.

Присоединение удалённой директории к локальной файловой системе (функции клиента) называется примонтированием (mounting) директории.

Предоставление директории для удалённого доступа (сервер - функции) называется экспортированием (exporting) директории.

Часто ОС загружает в одной машине и сервер – функции, и клиент – функции.

Процессы (daemons), необходимые для запуска NFS, загружаются в момент загрузки компьютера в boot-файле.

7.8.1 Монтирование файловой системы

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

Монтирование файловой системы производится системным вызовом mount. В качестве аргументов передаются:

тип монтируемой файловой системы;

имя каталога, к которому подключается FS;

флаги (например, доступ к FS только для чтения);

дополнительные данные (вид зависит от реализации конкретной FS).

После монтирования файловая система может быть адресована по имени точки монтирования.

#mount –r oberon: / / USR / local.

#mount –t NFS oberon: / / USR / local

7.8.2 Блокирование доступа к файлу

NFS разрешает (в соответствии с архитектурой UNIX) нескольким процессам одновременный доступ к файлу для чтения и записи.

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

Для блокирования заданного диапазона байтов файла или записи файла служит системный вызов fcntl() и библиотечнаяфункция lockf() для блокировки всего файла на запись для чтения.

struct flock lock;

// заполним структуру lock для блокирования всего файла на запись

lock.l_type = F_RDLCK

// заблокируем файл для записи

fcntl (fd, SETLKW, & lock);

// запишем данные в файл

write (fd, record, sizeof (record));

// снимем блокирование

lock l_type = F_UNLCK;

Протокол SLIP

Протокол SLIP (Serial Line IP) был первым стандартом де-факто, позволяющим устройствам, соединенным последовательной линией связи, работать по протоколам TCP/IP. Он был создан в начале 80-х годов и в 1984 году встроен Риком Адамсом (Rick Adams) в операционную систему 4.2 Berkley Unix. Позднее SLIP был поддержан в других версиях Unix и реализован в программном обеспечении для ПК.

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

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

Чтобы распознать границы IP-пакетов, протокол SLIP предусматривает использование специального символа END, значение которого в шестнадцатеричном представлении равно С0. Применение специального символа может породить конфликт: если байт пересылаемых данных тождественен символу END, то он будет ошибочно определен как признак конца пакета. Чтобы предотвратить такую ситуацию, байт данных со значением, равным значению символа END, заменяется составной двухбайтовой последовательностью, состоящей из специального символа ESC (DB) и кода DC. Если же байт данных имеет тот же код, что и символ SLIP ESC, то он заменяется двухбайтовой последовательностью, состоящей из собственно символа SLIP ESC и кода DD. После последнего байта пакета передается символ END.

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

Рис. 6.13. Инкапсуляция IP-пакетов в SLIP-пакеты

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

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

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

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

Низкая пропускная способность последовательных линий связи вынуждает сокращать время передачи пакетов, уменьшая объем содержащейся в них служебной информации. Эта задача решается с помощью протокола Compressed SLIP (CSLIP), поддерживающего сжатие заголовков пакетов. Появление CSLIP объясняется тем фактом, что при использовании программ типа Telnet, Riogin и других для пересылки одного байта данных требуется переслать 20-байтовый заголовок IP-пакета и 20-байтовый заголовок TCP-пакета (итого 40 байт). Спецификация CSLIP обеспечивает сжатие 40-байтового заголовка до 3-5 байт. На сегодняшний момент большинство реализации протокола SLIP поддерживают спецификацию CSLIP.

Пользователи Интернета, работающие через поставщиков услуг Интернета, представляют очень существенный сегмент сети. Прием и передача данных ведется при помощи модема, подключенного через последовательный порт компьютера к обычной телефонной линии. Для работы с сетью через модем используется один из двух существующих протоколов для работы по последовательным линиям связи: 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...

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

Конец работы -

Эта тема принадлежит разделу:

Курс лекций по дисциплине инфокоммуникационные системы и сети

Курс лекций по дисциплине.. инфокоммуникационные системы и сети.. тема основные понятия инфокоммуникационных сетей класс инфокоммуникационных сетей как открытые информационные системы..

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ:

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Возникновение понятия открытости
Развитие систем и средств вычислительной техники, расширенное их внедрение во все сферы науки, техники, сферы обслуживания и быта привели к необходимости объединения конкретных вычислительных устро

Понятие открытой системы
В настоящее время существует множество определений понятия "открытая система". Так, Ассоциация французских пользователей UNIX и открытых систем (AFUU) дает следующее определение: "От

Принципы построения
Основные требования, предъявляемые к информационной инфраструктуре, состоят в обеспечении необходимой функциональности, быстродействия, пропускной способности и безопасности. При этом исходим из то

Тема 2
МОДЕЛИ И СТРУКТУРЫ ИНФОРМАЦИОННЫХ СЕТЕЙ 2.1 Топология Способ соединения компьютеров в сети называется топологией. При выборе конкретного т

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

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

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

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

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

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

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

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

Основные элементы оптического волокна
Ядро. Ядро – светопередающая часть волокна, изготавливаемая либо из стекла, либо из пластика. Чем больше диаметр ядра, тем большее количество света может быть передано по волокну.

Метод доступа и кадры для сетей Token Ring
Адаптеры Token Ring поддерживают метод доступа Token Ring (маркерное кольцо) и обеспечивают скорости передачи 4 Мбит/с или 16 Мбит/с. Ниже перечислены основные положения этого метода: · ст

Метод доступа и кадры для сетей ARCNet
При подключении устройств в ARCNet применяют топологию шина или звезда. Адаптеры ARCNet поддерживают метод доступа Token Bus (маркерная шина) и обеспечивают производительность 2,5 Мбит/с. Этот мето

Протокол UDP (User Datagram Protocol)
Протокол UDP является одним из основных транспортных протоколов. Он работает непосредственно с IP-пакетами и осуществляет их мультиплексирование между различными программами и процессами. Основным

Протокол IP
Межсетевой протокол IP является базовым протоколом межсетевого взаимодействия при помощи которого осуществляется обмен информацией в глобальной сети. В обычной локальной сети протокол IP по возможн

Протокол TCP (Transmission Control Protocol)
Данный протокол тоже является транспортным протоколом и предназначен для доставки пакетов, называемых сегментами. Он применяется в случаях необходимости гарантированной доставки пакета. Здесь, по с

Протокол RIP (Routing Information Protocol)
Данный протокол предназначен исключительно для управления таблицей маршрутов. Его спецификация определяет то, как и когда будет обновляться таблица маршрутов. Необходимая для этого информация рассы

Протокол RARP (Reverse Adress Resolution Protocol)
При стандартной конфигурации серверов и локальных машин, обычно, IP-адреса компьютеров хранятся на локальных носителях и считываются в память во время загрузки систем. В случае, когда необходимо ин

Протокол BOOTP (BOOT strap Protocol)
Мы уже отмечали ранее, что не все сетевые компоненты (компьютеры, маршрутеризаторы, хабы и т.п.) имеют собственные локальные накопители информации, однако, каким-то образом, в них должна быть загру

Протокол ICMP (Internet Control Massage Protocol)
Хотя базовым протоколом межсетевого взаимодействия в Internet является IP, он не контролирует ошибочные состояния сетевой среды. Данную задачу решает специально разработанный протокол контроля сети

Протокол PPP (Point To Point connection)
Протокол PPP также является протоколом для соединения через последовательные порты. Как и SLIP, он "нарезает" пакеты на более мелкие куски и производит последовательную их отправку и прие

Протокол и сервис DNS (Domain Name Server)
Когда-то, достаточно давно, в Internet было сравнительно немного машин, но даже это небольшое количество трудно идентифицировалось и именовалось пользователями при помощи числовых IP-адресов. Поэто

Сервисы прикладного назначения
Протоколы и сервисы электронной почты (POP, UUCP, SMTP) Если DNS и DHCP были сервисами системного назначения и используются для систем маршрутизации и доставки пакетов (т.е. обычный пользовател

Протокол и сервис удаленного доступа Telnet
Аналогично FTP, Telnet, тоже, когда-то была всего лишь командой OC UNIX, однако, в виду ее популярности и удобства, она распространилась в виде отдельного приложения на все существующие сетевые ОС

Протокол HTTP и сервис WWW
Из всех пользовательских сервисов Internet WWW-технология (World Wide Web) или "Всемирная Паутина" распределенных информационных систем является наиболее развивающейся и прогрессирующей.

Базовая эталонная модель взаимодействия открытых систем
БЭМВОС – это концептуальная основа, определяющая характеристики и средства открытых систем. Она обеспечивает работу в одной сети систем, выпускаемых различными производителями. Разработана I

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

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

Абонентская система
Это система, которая является поставщиком или потребителем информации. АС реализуется в виде одного или нескольких устройств:

Ретрансляционная система
Это система, предназначенная для передачи данных или преобразования протоколов. Необходимость объединения нескольких сетей с разными протоколами, поставило задачу создания таких ретрансляционных си

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

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

Административные системы
Административные системы – это системы, обеспечивающие управление сетью либо её частью. На неё возлагаются следующие функции: · сбора информации и учёта работы компонентов сети (вре

Тема 5.
МОНОКАНАЛЬНЫЕ ПОДСЕТИ И МОНОКАНАЛ. КОММУНИКАЦИОННЫЕ ПОДСЕТИ. МНОГОКАНАЛЬНЫЕ ПОДСЕТИ. ЦИКЛИЧЕСКИЕ ПОДСЕТИ. УЗЛОВЫЕ ПОДСЕТИ. Моноканал – это канал, одновременно (с точностью

Моноканальная сеть
Моноканальная сеть – это локальная сеть, ядром которой является моноканал. Моноканал в соответствии с базовой эталонной моделью взаимодействия открытых систем выполняет в сети роль физичес

Тема 6.
МЕТОДЫ МАРШРУТИЗАЦИИ ИНФОРМАЦИОННЫХ ПОТОКОВ 6.1 Маршрутизаторы Довольно часто в компьютерной литературе дается следующее обобщенное определение м

Сетевые службы. Модель распределенной обработки информации. Безопасность информации. Базовые функциональные профили. Полные функциональные профили
Сетевая служба - вид сервиса, предоставляемого сетью. Сервис - процесс обслуживания объектов. Сервис предоставляется пользователям, программам, системам, уровням, функциональ

Сетевая служба EDI
Сетевая служба EDI - сетевая служба обмена электронными данными. Технология EDI, именуемая также Сервисом электронных писем ELS, представляет собой стандартный и не зависимый от пла

Сетевая служба FTAM
Сетевая служба FTAM - сетевая служба, обеспечивающая управление файлами и доступ к ним. FTAM расположена на прикладном уровне, определена Международной Организацией Стандартов (МОС)

Сетевая служба JTM
Сетевая служба JTM - сетевая служба передачи заданий и управления их выполнением. JTM работает в соответствии со стандартами ISO и оперирует с так называемыми виртуальными заданиями

Сетевая служба NMS
Сетевая служба NMS - сетевая служба, выполняющая процессы управления сетью. NMS разработана Международной Организацией Стандартов (МОС) и располагается на прикладном уровне. Обеспеч

Сетевая служба ODA
Сетевая служба ODA - сетевая служба, обеспечивающая обработку и передачу документов. ODA располагается на прикладном уровне и определяет обмен документами (письмами, служебными запи

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

Технологии распределенных вычислений
Программное обеспечение (ПО) организации распределенных вычислений называют программным обеспечением промежуточного слоя (Middleware). Новое направление организации распределенных вычислений в сетя

Распределенная среда обработки данных
(Distributed Computing Environment (DCE*)) - технология распределенной обработки данных, предложенная фондом открытого программного обеспечения. Она не противопоставляется другим те

Безопасность информации
Безопасность данных (data security) - концепция защиты программ и данных от случайного либо умышленного изменения, уничтожения, разглашения, а также несанкционированного использования.

Базовые функциональные профили
Функциональный профиль - иерархия взаимосвязанных протоколов, предназначенная для определенного круга задач обработки и передачи данных. В документах ISO и ITU определен широкий наб

Коллапсный функциональный профиль
Коллапсный функциональный профиль - псевдо-полный функциональный профиль, в котором отсутствует один либо несколько уровней. Коллапсным называют профиль, в котором функции отсутству

Открытая сетевая архитектура
Открытая сетевая архитектура - полный функциональный профиль, разработанный фирмой British Telecom.& British Telecom на всех семи уровнях использует в ONA (Open Network Architec

Тема 8.
Методы коммутации информации. Протоколы реализации 8.1 Коммутация. Коммутация каналов Когда, сняв телефонную трубку, абонент или компьютер набира

Применяемое оборудование
Маршрутизаторы Маршрутизатор (router) можно упрощенно рассматривать как некое устройство, обеспечивающее: · физическое подключение к себе каналов определен

Время реакции
Обычно в качестве временной характеристики производительности сети используется такой показатель как время реакции. Термин «время реакции» может использоваться в очень широком смысле, поэтом

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

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

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

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

Еthernet- кабель
Ethernet-кабель также является коаксиальным кабелем с волновым сопротивлением 50 Ом. Его называют еще толстый Ethernet (thick) или желтый кабель (yellow cable). Он использует 15-контактное стандарт

Показатели трех типовых сред для передачи
Показатели Среда передачи данных Двух жильный кабель - витая пара Коаксиальный кабель

Ошибки в кадрах, связанные с коллизиями
Ниже приведены типичные ошибки, вызванные коллизиями, для кадров протокола Ethernet: - Локальная коллизия (LocalCollision). Является результатом одновременной передачи двух или более узлов

Диагностика коллизий
Средняя интенсивность коллизий в нормально работающей сети должна быть меньше 5%. Большие всплески (более 20%) могут быть индикатором кабельных проблем. Если интенсивность коллизий больше 10%, то у

Ошибки кадров Ethernet, связанные с длиной и неправильной контрольной суммой
- Укороченные кадры (Shortframes). Это кадры, имеющие длину, меньше допустимой, то есть меньше 64 байт. Иногда этот тип кадров дифференцируют на два класса - просто короткие кадры (short), у которы

Ошибки кадров Ethernet в стандарте RMON
Стандарт RMON определяет следующие типы ошибок кадров Ethernet: etherStatsCRCAlignErrors -общее число полученных пакетов, которые имели длину (исключая преамбулу) между 64

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

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

Потери пакетов
Регулярные потери пакетов или кадров могут иметь очень тяжелые последствия для локальных сетей, так как протоколы нижнего уровня (канальные протоколы) рассчитаны на качественные кабельные каналы св

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

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

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

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

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

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

Прикладные программы сети
Важным требованием к большинству современных пакетов прикладных программ (ППП) является их способность работать в условиях локальных сетей, то есть выполнять функции прикладных программ сети (ППС).

Специализированные программные средства
В эпоху internet требуется огромное количество специализированных программных средств, выполняющих конкретные задачи. В качестве при­меров можно привести: · браузеры (Internet Explorer, Op

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



Понравилась статья? Поделитесь с друзьями!
Была ли эта статья полезной?
Да
Нет
Спасибо, за Ваш отзыв!
Что-то пошло не так и Ваш голос не был учтен.
Спасибо. Ваше сообщение отправлено
Нашли в тексте ошибку?
Выделите её, нажмите Ctrl + Enter и мы всё исправим!