|
|
|
Урок 1.
Зачем нужен протокол.
Термин протокол вам, несомненно, знаком. Имея опыт работы в Internet, вы знаете, что порядок взаимодействия между узлами сети определяется протоколом обмена. Вам известно что в Internet используется семейство протоколов TCP/IP, а URL документа, представленного в Internet, начинается с идентификатора протокола (http://…, ftp://… и т.д.). Однако, если вы работали в сети лишь в качестве пользователя, вы вряд ли хорошо представляете себе, какую роль играют протоколы в процессе сетевого обмена.
Чтобы ответить на этот вопрос, рассмотрим два компьютера, соединенных между собой линией связи. Предположим, что один из них должен передать другому битовую последовательность определенной длины. Как сделать это?
На первый взгляд может показаться, что, передавая данные байт за байтом, можно переслать на принимающий узел всю последовательность. Даже если компьютеры соединены абсолютно надежной линией связи, подобный подход вряд ли позволит добиться успеха. Приступая к решению этой задачи, вам придется найти ответы на ряд вопросов.
- Как сообщить принимающему компьютеру длину битовой последовательности? Другими словами, как он узнает о том, что очередной байт - последний в передаваемой последовательности?
- Как определить, правильно ли принят очередной байт? Ведь идеальных линий связи в природе не существует, а при передаче данных по реальным каналам время от времени возникают ошибки. Если ошибку удастся выявить, то надо знать, как ее исправить.
- И, наконец, необходимо найти способ передать данные так, чтобы они были приняты именно тем компьютером, которому они предназначены.
Очевидно, что процессом передачи информации необходимо управлять. Кроме данных, входящих в состав битовой последовательности, компьютеры должны обмениваться служебной информацией, которая позволит, во-первых, определить момент окончания передачи, во-вторых, выявить ошибки, возникающие в процессе обмена, в-третьих, идентифицировать компьютер, которому предназначены передаваемые данные.
Определить, правильно ли переданы данные по линии связи, можно различными способами. Самый простой из них - использование контрольных сумм.
Если в процессе передачи данных выявлена ошибка, необходимо предпринять меры для ее исправления. Существуют способы кодирования, позволяющие исправлять одиночные ошибки, однако в большинстве случаев при возникновении ошибки данные передаются повторно. Если линия связи достаточно надежна, ошибки в процессе обмена возникают редко, и для их исправления можно повторно передать всю битовую последовательность. Но что делать, если вероятность погрешности при передаче велика? В этом случае при передаче снова возникает ошибка, для исправления которой битовую последовательность придется передать снова. В результате пересылка информации растягивается на неопределенный срок.
Выход из данной ситуации - разбить исходную последовательность данных на фрагменты и передавать их независимо друг от друга. Длина фрагмента выбирается так, чтобы вероятность ошибки при его передаче была сравнительно не большой. Каждый фрагмент должен сопровождаться управляющей информацией, в состав которой входят такие сведения.
- Идентификатор компьютера, которому предназначены данные. Этот идентификатор принято называть адресом назначения.
- Длина передаваемого фрагмента.
- Средства контроля передаваемых данных (контрольная сумма).
- Расположение фрагмента в исходной битовой последовательности.
- Признак окончания битовой последовательности.
Подобный фрагмент называется информационным пакетом, а управляющая информация, сопровождающая передаваемые данные, заголовком пакета. Набор правил, регламентирующих передачу данных, называется протоколом обмена, или просто протоколом. Протокол определяет порядок разбиения исходных данных на информационные пакеты, структуру заголовка пакета, назначение полей заголовка, одним словом, дает ответы на все вопросы, которые могут возникнуть при передаче данных.
На этом первый урок закончен. До следующего урока!
Вы также можете подписаться на рассылку и получать по e-mail все уроки
по мере их выхода. Подписаться можно здесь.
|
|