Спонсор: Microsoft
Санкт-Петербургский государственный университет
Опубликован: 13.11.2010 | Доступ: свободный | Студентов: 6692 / 1521 | Оценка: 4.64 / 4.23 | Длительность: 45:08:00
ISBN: 978-5-9963-0495-0
Лекция 23:

Классические и современные сетевые коммуникационные протоколы

< Лекция 22 || Лекция 23: 1234 || Лекция 24 >

Сети Ethernet

Ethernet (стандарт IEEE 802.3) – наиболее распространенный метод организации сетей. Относится к физическому (physical Ethernet) уровню и уровню связывания данных, согласно 8-уровневой модели ISO (п. 23.2). Слово ether по-английски означает эфир.

Основоположник сетей Ethernet – Роберт Меткалф (R. Metcalfe 1973). Он же впоследствии основал фирму 3COM, одну из наиболее известных компаний в области сетевых технологий.

Основные идеи Ethernet - использование коаксиального кабеля (BNC) и 48-битового адреса (MAC-адреса),который присваивается каждому сетевому компьютеру и используется для идентификации источников и получателей пакетов в сетях.

Первоначально скорость сетей Ethernet составляла до 3 МБит/с. В настоящее время она увеличилась до 1 Гбит/с ( Gigabit Ethernet ).

В большинстве локальных сетей в качестве кабеля используется витая пара (twisted pair) с разъемами типа RJ 45.

Для соединений используются концентраторы (hubs) с быстродействием 10 МБит/с (10BASE-T) или переключатели (switches) с быстродействием 100 МБит/с (100BASE-T).

Ethernet-адрес каждого компьютера фиксирован, выдается при загрузке операционной системы и может быть также выведен на консоль специальными командами ОС; например, в ОС Solaris – командой banner, которая выводит на экран стартовую информацию ОС, в том числе MAC-адрес компьютера.

Протокол TCP/IP

IP-адреса. TCP/IP (Transmission Control Protocol / Internet Protocol) – наиболее распространенное семейство протоколов сетевого и транспортного уровня, используемых в Интернете. Основоположники TCP/IP – Роберт Кан (Robert Kahn) и Винтон Серф (Vinton Cerf) -1972 – 1974.

Протокол TCP/IP основан на использовании IP-адресов каждого хоста (компьютера), имеющих вид: a.b.c.d (все четыре числа – в диапазоне от 0 до 255) и обеспечивает пересылку по сети пакетов (packets) фиксированного размера, содержащих адрес получателя и номер пакета в сообщении. TCP/IP -протокол обеспечивает транспорт сетевых пакетов, деление сообщения на пакеты отправителем и сборку сообщения из пакетов получателем. IP-адрес может быть закреплен за компьютером постоянно Интернет-провайдером пользователя компьютера, либо присваивается компьютеру динамически (каждый раз – разный) при выходе в Интернет.

Более общее современное название TCP/IP - Internet Protocol Suite.Различаются более новая версия – IPv6 и более старая – IPv4. В версии IPv6 используется IP-адрес не из четырех, а из 6 чисел.

Протокол TCP/IPсинхронный, т.е. получатель ожидает получения каждого пакета и посылает отправителю подтверждение об этом. Другой вариант Интернет-протокола - UDP/IP (Universal Datagram Protocol / Internet Protocol) – асинхронный транспортный протокол, обеспечивающий обмен датаграммами – байтовыми массивами переменной длины; он считается менее надежным, чем TCP/IP, но работает быстрее, поэтому часто для быстрого обмена сообщениями в сетях предпочитают именно его.

Скорость TCP/IP не всегда удовлетворительна, ввиду огромного числа IP-узлов в Интернете. Для оптимизации связи между узлами сети применяются Distributed Hash Tables (DHT) – распределенные хеш-таблицы. В них собственная система имен узлов сети и более быстрого их поиска, чем с использованием TCP/IP протоколов, работающая "поверх" TCP/IP.

На рис. 23.4 изображены уровни протокола TCP/IP и перечислены основные протоколы прикладного уровня, работающие поверх TCP/IP и UDP/IP, - протокол передачи гипертекста (основа функционирования World Wide Web), протоколы передачи файлов, передачи электронной почты, взаимодействия с удаленным терминалом, управления сетью.

Уровни протокола TCP/IP.

увеличить изображение
Рис. 23.4. Уровни протокола TCP/IP.

Устойчивость сетей к ошибкам – обнаружение ошибок и реконфигурация сетей

Обнаружение ошибок сетевой аппаратуры достаточно сложно. Для обнаружение ошибки связи может быть использован протокол "рукопожатия" (handshake) – обмена сообщениями о каждом выполненном действии (посланном и принятом сообщении). Предположим, что система A и система B установили связь. Через фиксированные интервалы времени системы должны обмениваться сообщениями типа "я в порядке" ( I-am-up ), указывающими, что они нормально функционируют.

Если система A не получает сообщения через фиксированный интервал, то, по-видимому, либо другая система не работает, либо данное сообщение потеряно.

Система A теперь посылает сообщение вида: "Вы в порядке?" (are-you-up?) системе B.

Если система A не получает ответа, она может повторить сообщение или попробовать альтернативный маршрут к системе B

На практике используется следующий метод обнаружения, работает ли хост с именем hostname, - команда ping:

ping hostname ( или: ping A.B.C.D с указанием IP-адреса хоста )

При выполнении этой команды происходит пробный обмен сообщениями фиксированной длины с заданным хостом, трассировка отправки и получения которых выдается на консоль, после чего выдается стандартное сообщение "Host hostname alive" (хост hostname жив). Если этих сообщений нет, видимо, связь с хостом по каким-то причинам потеряна (он перезагружается, либо нарушена связь на физическом уровне, либо произошло отключение электропитания и т.д.).

Если система A не получает обязательного ответа от системы B, она заключает, что имеет место какая-либо ошибка.

Типы ошибок:

  • Система B не работает
  • Непосредственная связь между A и B не работает
  • Альтернативная связь между A и B не работает
  • Сообщение потеряно.

Однако система A не может точно определить, почему произошла ошибка.

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

  1. Если связь между A и B отказала, эта информация должна быть доведена до любой машины в сети.
  2. Если имеет место отказ машины, то любая другая машина должна быть также нотифицирована о том, что сервисы, обеспечиваемые отказавшей машиной, более не доступны.

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

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

Проектирование сетей

При проектировании сетей должен быть учтен целый ряд требований:

Прозрачность (transparency) – распределенная система должна быть представлена пользователю как обычная централизованная система.

Устойчивость к ошибкам (fault tolerance) – распределенная система должна продолжать функционировать в случае ошибок.

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

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

< Лекция 22 || Лекция 23: 1234 || Лекция 24 >
Гульжан Мурсакимова
Гульжан Мурсакимова
Василий Четвертаков
Василий Четвертаков