Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 3(сети).doc
Скачиваний:
47
Добавлен:
11.06.2015
Размер:
128.51 Кб
Скачать

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

Язык компьютеров

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

Системы счисления

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

Десятичная система

Десятичную систему счисления называют также системой счисления с основанием 10, потому что она основана на десяти цифрах (от 0 до 9), с помощью которых можно представить любое число.

В десятичном числе 342 цифра "3" представляет три сотни, "4" — четыре десятки, "2" — две единицы. Таким образом, каждая цифра представляет величину, определенную значением цифры и ее положением в числе.

Шестнадцатеричная система

Еще одна система счисления, используемая в компьютерных технологиях, — ше­стнадцатеричная (система счисления с основанием 16). Число 16 не имеет какого-либо магического значения, однако операции с ним для непосвященных могут пока­заться не менее загадочными, чем черная магия. Главная причина, по которой число 16 удостоено столь высокого звания, — его равенство целой степени двойки. Для представления шестнадцатеричных чисел используется десять цифр десятичной сис­темы и шесть символов латинского алфавита от А до F.

В шестнадцатеричной системе цифры от 0 до 9 имеют то же значение, что и в десятич­ной. Символ А (здесь он уже называется цифрой) представляет число, равное 10 в деся­тичной системе. Соответственно цифра В равна 11 и так далее вплоть до цифры F, равной 15. Дальнейшие числа уже нельзя представить одной цифрой. Десятичное число 16 в шестнадцатеричной системе записывается как 10, десятичное 17 — как 11 и т.д. Другими сло­вами в шестнадцатеричной системе, как и в десятичной (и во всех других), величина, представленная цифрой, определяется значением цифры и ее позицией в числе.

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

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

В табл. 3.1 обратите внимание на то, что некоторые шестнадцатеричные числа выглядят точно так же, как десятичные, хоть и не равны им. Как же узнать, в какой системе записа­но число, если, например, написано "12"? Ведь оно может представлять десятичное число 12, или шестнадцатеричное 18! Следовательно, нужен какой-то способ обозначения шест­надцатеричных чисел (но не десятичных, потому что люди давно уже привыкли писать де­сятичные числа, никак не отмечая, что они десятичные). Обозначать шестнадцатеричные числа принято одним из следующих двух способов:

- добавить символ "Н" в конец числа, например 12Н;

- добавить символы "Ох" в начало числа, например 0x12.

Второй способ (символы Ох) является стандартным способом обозначения шестнадцатеричных  чисел в С++ и большинстве других языков программирования.

Двоичная система

С одной стороны, двоичная система счисления чрезвычайно проста: в ней используют­ся только две цифры — 0 и 1. Однако с другой стороны, использование только двух цифр приводит к настолько быстрому росту размеров чисел, что человек не в состоянии работать с ними. Например, десятичное число 519 в двоичной системе равно 10000000111.

Английское слово binary (двоичный) происходит от латинского bi, означающего 'два". Другое название двоичной системы — система счисления с основанием 2.

Нули и единицы

Если вы никогда не работали с двоичными числами, то вас может удивить: как ложно представить любое число, используя только нули и единицы? Этот же вопрос можно задать и о десятичной системе счисления, однако нас это не удивляет, по­скольку десятичную систему мы используем всю жизнь. Для любого человека кажется совершенно нормальным использовать позицию цифры для указания представляемой этой цифрой величины. Например, в третьей позиции справа записываются сотни. Точно так же записывается и двоичное число.

Биты и байты

Двоичная цифра (0 или 1) называется битом. Один байт равен восьми битам. Байт — это строка битов, сгруппированных для удобства в группы по восемь битов. В компьютерах байт используется для представления символа, т.е. буквы, цифры или какого-либо другого символа.

Преобразование двоичного числа в десятичное

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

Каждый бит в двоичном числе "включен" или "выключен". Цифра 0 означает,  что он выключен, а 1 — включен. Как и в других системах счисления, номер позиции в числе отсчитывается справа.

В двоичном числе (как и в десятичном) первая позиция справа представляет величину, равную 1. Однако на этом сходство двоичной и десятичной систем заканчивает­ся. В двоичной системе счисления вес каждой следующей позиции в два раза больше веса предыдущей (в десятичной системе — в десять раз, в шестнадцатеричной — в шестнадцать). В табл. 3.2 приведены десятичные эквиваленты каждой позиции двоич­ного числа (т.е. вес позиции, или ее значение, когда бит равен 1).

Если двоичная цифра равна 0, значит, бит в этой позиции выключен и значение позиции равно нулю. Чтобы преобразовать двоичное число в десятичное, нужно про­суммировать десятичные значения каждого бита. В табл. 3.3 показано преобразование двоичного числа 01001100 в десятичное.

Итак, чтобы получить десятичный эквивалент двоичного числа 01001100, вычис­лим сумму 64+8+4. В результате получим десятичное значение, равное 76. Этот ре­зультат можно проверить с помощью научного калькулятора Windows: введите двоич­ное число 01001100, щелкните на кнопке Dec (Преобразование в десятичное число) и убедитесь, что результат преобразования равен 76.

Почему используются двоичные числа

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

Цифровые сигналы представляют собой дискретные состояния какого-либо устрой­ства (ячейки памяти или канала связи). Проще всего реализовать устройство, у кото­рого есть только два дискретных состояния. Например, участок магнитного материа­ла, служащий ячейкой памяти, может быть или намагничен или размагничен. Если бы этих состояний было больше (например, намагничен в разных направлениях или в разной степени), то конструкция ячейки памяти была бы значительно сложнее. По­скольку для обозначения двух состояний лучше всего подходят 0 и 1, двоичная систе­ма счисления в компьютерных технологиях стала базовой.

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

Пакеты данных

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

Небольшие легкопередаваемые порции информации, на которые компьютерные дан­ные разбиваются для передачи по сети, называются пакетами. В зависимости от архитек­туры сети и этапа процесса коммуникации, пакеты могут называться кадрами или (в про­токоле TCP) сегментами.

Преимущества разбивки данных на пакеты

Разделение передаваемых данных на небольшие пакеты предоставляет ряд пре­имуществ.

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

Если в сети происходит сбой и пакет теряется, то потребуется передать заново только один небольшой пакет, а не весь файл.

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

Сбор данных из пакетов

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

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

В трейлере находится код CRC (cyclical redundancy check), представляющий собой короткую последовательность нулей и единиц. Вычисления с кодом CRC выполняют­ся дважды: перед отправкой пакета в сеть специальная процедура формирует код CRC, а после получения пакета адресатом такая же процедура вычисляет его еще раз. Если результаты этих двух вычислений отличаются, значит, данные в процессе передачи изменились. В этом случае пакет отбрасывается и посылается запрос на его повторную передачу.

Конкретное положение в пакете и размеры полей заголовка и трейлера зависят от сетевой архитектуры и протоколов. Например, в Ethernet кадр (так здесь называется пакет) может иметь размер от 64 до 1 518 байт, причем 18 байт всегда используются под заголовок и трейлер. Поэтому в одном кадре Ethernet можно передать не более 1 500 байт данных. Пакеты Token Ring немного больше — обычно в них находится 4 202 байта данных.

Многоуровневый процесс коммуникации

Компьютер преобразует данные в нули и единицы, а затем обрабатывает их. При передаче данных в другой компьютер нужно учесть, что на нем может быть загружена. Другая операционная система или установлены другие программы приложений. На­пример, нужно передать электронное письмо, созданное с помощью программы Mi­crosoft Outlook Express на компьютере с операционной системой Windows NT, причем на принимающем компьютере установлена система Apple, а электронные письма об­рабатываются программой Eudora Pro.

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

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

Процессы и протоколы

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

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