Спонсор: Microsoft
Лекция 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 >
Гульжан Мурсакимова
Гульжан Мурсакимова
Василий Четвертаков
Василий Четвертаков
Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989
Олег Волков
Олег Волков
Россия, Балаково, МБОУ СОШ 19