Какой протокол устанавливает правила построения пакета
Перейти к содержимому

Какой протокол устанавливает правила построения пакета

  • автор:

Урок 3
§4. Глобальная сеть Интернет

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

Используя дополнительные источники, найдите ответы на вопросы.
— Когда было разработано семейство протоколов TCP/IP?
— От каких иностранных выражений образованы сокращения TCP и IP? Что они означают?

С помощью протокола TCP компьютер устанавливает соединение с другим компьютером и обеспечивает доставку данных. Блок данных, который нужно передать, разбивается на пакеты (размер пакета обычно не превышает 1,5 Кбайта).

IP-протокол устанавливает правила построения пакета и систему IP-адресов, с помощью которой маршрутизаторы определяют маршруты движения пакетов.

Кроме TCP и IP службы Интернета (например, Всемирная паутина, электронная почта и др.) используют свои протоколы «верхнего уровня», но об этом мы поговорим чуть позже.

Следующая страница IР-адреса

Cкачать материалы урока

Протоколы сетевого взаимодействия TCP/IP

Протоколы сетевого взаимодействия TCP/IP являются результатом эволюционного развития протоколов глобальной вычислительной сети ARPANET.

Работы по созданию сети ARPANET были начаты рядом университетов США и фирмой BBN в 1968 г. В 1971 г. сеть была введена в регулярную эксплуатацию и обеспечивала для всех своих узлов три основные услуги:

  • интерактивный вход пользователя на удаленный узел;
  • передача файлов между узлами сети;
  • электронная почта.

Все эти средства базировались на транспортных услугах предоставляемых программой управления сети NCP (Network Control Program), реализующей свой внутренний набор протоколов.

Накопленный к 1974 г. опыт эксплуатации сети ARPANET выявил многие недостатки протоколов NCP и позволил определить основные требования к новому набору протоколов, получившему название TCP/IP:

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

Широко используемая ныне версия 4 протоколов TCP/IP была стандартизирована в 1981 г. в виде документов, называемых RFC (Request For Comment). Полный переход сети ARPANET на новые протоколы был завершен в 1982 г. Эта сеть сыграла роль «зародыша» всемирной сети Internet, построенной на базе протоколов TCP/IP.

Реализация протоколов TCP/IP оказалась наиболее удачной в версиях BSD4.2 и BSD4.3 операционной системы UNIX. Эта реализация является эталоном (станартом «de facto») для всех последующих.

Примечание. Первичным сервером хранения всех RFC является узел nisc.sri.com (доступ через анонимный FTP).

1. Соотношение между OSI/ISO и TCP/IP

В 1984 г. международная стандартизирующая организация ISO предложила модель взаимодействия открытых систем OSI (Open System Interconnection), являющуюся удобным средством описания стеков протоколов.

На рис. 1.1 представлено соотношение четырехуровневой архитектуры протоколов TCP/IP и семиуровневой архитектуры OSI.

Модель OSI/ISO TCP/IP +-------------------+ - - - +-----------------------------+ | Прикладной | | | +-------------------+ - - - | Прикладной | | Представительский | | (Application) | +-------------------+ - - - | | | Сеансовый | | | +-------------------+ - - - +-----------------------------+ | Транспортный | | Транспортный (Transmission) | +-------------------+ - - - +-----------------------------+ | Сетевой | | Межсетевой (Internetwork) | +-------------------+ - - - +-----------------------------+ | Канальный | | Сетевой | +-------------------+ - - - | (Network) | | Физический | | | +-------------------+ - - - +-----------------------------+ Рис. 1.1

Объединение канального и физического уровней модели OSI в единый сетевой уровень TCP/IP было обусловлено требованием независимости от используемой среды передачи данных. Дело в том, что функции протоколов канального и физического уровней реализуются в настоящее время , как правило, едиными техническими средствами (сетевыми контроллерами).

Согласно терминологии TCP/IP элементы сетевого уровня называются подсетями (subnetworks). Идеология TCP/IP допускает, чтобы в качестве «подсетей» выступали реальные сети с их собственными стеками протоколов, узлами, шлюзами и т.п.

Внимание. Далее в данном учебном пособии для обозначения уровней стека протоколов используется терминология TCP/IP, а не OSI/ISO (если это не оговорено особо).

Внимание. В данном учебном пособии термин «шлюз» используется как обобщающий для понятий «маршрутизатор» (router), «мост» (bridge) и, собственно, «шлюз» (gateway).

2. Архитектура протоколов TCP/IP

На рис. 2.1 представлена архитектура основных протоколов TCP/IP, используемых на трех нижних уровнях стека.

Транспортный +-------+ +-------+ уровень | TCP | | UDP | +-------+ +-------+ Межсетевой +------+ +--------+ уровень | IP | | ICMP | +------+ +--------+ Сетевой +----------+ +------+ +------------+ уровень | Ethernet | | X.25 | | Token Ring | . . . +----------+ +------+ +------------+ Рис. 2.1

Краеугольным камнем всей архитектуры является межсетевой протокол IP ( Internet Protocol ). С его помощью реализуется адресация узлов сети и доставка данных. Межсетевой протокол управляющих сообщений ICMP ( Internet Control Message Protocol ) предназначен для передачи диагностической информации и сообщений об ошибках в работе сети.

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

Двумя основными протоколами транспортного уровня являются надежный протокол управления передачей данных TCP ( Transmission Control Protocol ) и быстрый протокол дэйтаграмм пользователя UDP ( User Datagram Protocol ). TCP реализует сетевое взаимодействие в режиме с установлением логического (виртуального) соединения, а UDP — без оного.

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

Внимание. На каждом уровне стека протоколов TCP/IP обмен данными ведется блоками данных конечной длины. К сожалению, отсутствует устоявшаяся терминология в обозначении этих блоков. В данном учебном пособии названия блоков данных зависят от уровня стека протоколов, как это показано ниже.

Уровень | Название -----------------+----------- Транспортный | Пакет Межсетевой | Сегмент Сетевой | Кадр

3. Межсетевой протокол IP

Межсетевой протокол IP специфицирован в RFC 791. Его основные характеристики перечислены ниже:

  • реализует обмен информации пакетами, которые будем называть IP-сегментами (максимальный размер IP-сегмента — 65535 байт);
  • является протоколом взаимодействия без установления логического соединения;
  • для адресации узлов сети используется адрес длиной 4 байта;
  • обеспечивает в случае необходимости фрагментацию IP-сегментов;
  • IP-сегменты имеют конечное время жизни в сети;
  • не гарантирует надежность доставки IP-сегментов адресату;
  • не имеет средств управления интенсивностью передачи IP-сегментов посылающей стороной (flow control);
  • не гарантирует правильную последовательность IP-сегментов на принимающей стороне.

3.1. Заголовок IP-сегмента

На рис. 3.1 приведен формат заголовка IP-сегмента.

0 3 7 15 18 23 31 +------+-------+---------------+-----+---------+---------------+ |Версия| Длина | Тип | Длина | | |заг-ка | обслуживания | сегмента | +------+-------+---------------+-+-+-+---------+---------------+ | Идентификатор | |D|M| Смещение | | | |F|F| фрагмента | +--------------+---------------+-+-+-+-------------------------+ | Время | Транспорт | Контрольная сумма | | жизни | | заголовка | +--------------+---------------+-------------------------------+ | Адрес | | источника | +--------------------------------------------------------------+ | Адрес | | приемника | +----------------------------------------------+---------------+ | Дополнительные | Данные | | данные заголовка | выравнивания | +----------------------------------------------+---------------+ Рис. 3.1

4-хбитовое поле, содержащее номер версии протокола IP (номер текущей версии равен 4);

4-хбитовое поле, содержащее длину заголовка IP-сегмента в 32-битных словах. Минимальная (и типичная) длина заголовка — пять слов.

байт, содержащий набор критериев, определяющих тип обслуживания IP-сегментов. Детальное описание отдельных битов дано ниже:

  • биты 0. 2 — приоритет (precedence — предпочтение) данного IP-сегмента;
  • бит 3 — требование ко времени задержки (delay) передачи IP-сегмента (0 — нормальная, 1 — низкая задержка);
  • бит 4 — требование к пропускной способности (throughput) маршрута, по которому должен отправляться IP-сегмент (0 — низкая, 1 — высокая пропускная способность);
  • бит 5 — требование к надежности (reliability) передачи IP-сегмента (0 -нормальная, 1 — высокая надежность);
  • биты 6. 7 — зарезервированы.

На практике в большинстве реализаций протокола IP данное поле почти всегда равно 0, в UNIX-реализациях это поле не используется вовсе.

двухбайтовое поле, содержащее длину (в байтах) всего IP-сегмента, включая длину заголовка. Максимальная длина IP-сегмента (включая заголовок) — 65535 байт. Спецификация IP протокола устанавливает, что что любой узел сети должен быть способен обрабатывать IP-сегменты длиной, по крайней мере, не менее 576 байт (что соответствует 512 байтам данных при возможной длине заголовка до 64 байт). На практике же узлы сети могут обрабатывать IP-сегменты много длинее, чем 576 байт (как правило, допустимая длина IP-сегмента связана с максимальной длиной кадра нижележащего сетевого уровня).

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

биты, используемые при обработке фрагментированных IP-сегментов.

Если бит DF (Don’t Fragment) установлен в 1, то это означает, что IP-сегмент не может быть разбит на фрагменты ни при каких условиях (даже, если он не может быть передан без этого далее к адресату и должен быть уничтожен).

Бит MF (More Fragments) указывает, является (MF=0) или нет (MF=1) данный IP-«подсегмент» последним в цепочке IP-«подсегментов», в которую был преобразован (фрагментирован) исходный IP-сегмент.

Алгоритм фрагментации описан ниже в разделе «Фрагментация IP-сегментов».

13-битное поле, используемое только в IP-сегменте, являющемся фрагментом (IP-фрагментом) другого (исходного) IP-сегмента. Это поле содержит смещение данных, содержащихся в IP-фрагменте, по отношению к началу данных исходного IP-сегмента. Смещение измеряется в восьмибайтных единицах, поэтому 13 битов достаточно для представления смещения в IP-сегменте максимальной возможной длины (8 * 2^13 — 1 = 65535).

однобайтовое поле, заполняемое создающим IP-сегмент узлом сети количеством единиц времени жизни IP-сегмента в сети. RFC 791 специфицирует в качестве этих единиц секунды и требует, чтобы каждый транзитный узел сети, через который проходит IP-сегмент, уменьшал содержимое этого поля по крайней мере на 1 (даже при условии, что обработка сегмента на самом деле заняла меньше одной секунды). Таким образом, на практике, время жизни ( TTL — Time To Live) — это максимальное количество узлов, которое может пройти до своего уничтожения IP-сегмент.

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

В UNIX-реализациях, как правило, это поле заполняется источником IP-сегмента числом из диапазона 15. 30.

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

--------+-------------+------------------------------------------ Иденти- : Сокращенное : Имя протокола фикатор : название : --------+-------------+------------------------------------------ 1 ICMP Межсетевой протокол управляющих сообщений 2 IGMP Межсетевой протокол группового управления 3 GGP Протокол "шлюз-шлюз" 6 TCP Протокол управления передачей 8 EGP Протокол "внешних" шлюзов 17 UDP Протокол дейтаграмм пользователя 27 RDP Протокол надежных данных 28 IRTP Протокол межсетевой надежной передачи 29 ISO TP4 Транспортный протокол ISO 4 класса 80 ISO IP Межсетевой протокол ISO 89 OSPF Протокол "кратчайший путь первым" -------+--------------+------------------------------------------

Контрольная сумма заголовка

двухбайтовое поле, содержащее контрольную сумму заголовка IP-сегмента (обращаем внимание, что для данных IP-сегмента контрольная сумма не подсчитывается; контролировать данные — задача протоколов транспортного уровня).

Поскольку заголовок IP-сегмента содержит поле «время жизни», изменяющее свое значение в каждом узле, через который следует IP-сегмент, то для вычисления контрольной суммы должен использоваться эффективный (а, следовательно, простой алгоритм). Во всех протоколах, входящих в архитектуру TCP/IP, используется так называемая Internet-контрольная сумма, которая представляет собой дополнение 16-битной суммы всех 16-битных слов контролируемой информации.

Адрес источника и адрес приемника

четырехбайтовые IP-адреса узлов сети. Подробно структура IP-адреса описана ниже в «IP-адрес».

Дополнительные данные заголовка

последовательность полей произвольной длины, описывающих необязательные данные заголовка. Такие данные используются для специальных целей (управление сетью, секретность и т.п.) и кратко описаны ниже в «Дополнительные данные IP-заголовка».

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

3.2. IP-адрес

IP-адрес представляет собой четырехбайтовое число, старшие (крайние левые) биты которого определяют класс IP-адреса. Для классов A , B и C четыре байта адреса делятся между идентификатором (номером) сети и идентификатором (номером) узла в сети как это показано на рис. 3.2.

| 0 7| 15 23 31 +-+---------+-------------+-------------+-------------+ |0| | : : | Класс A +-+---------+-------------+-------------+-------------+ | +-------------+ 15| +-+-+-------+-------------+-------------+-------------+ |1|0| : | : | Класс B +-+-+-------+-------------+-------------+-------------+ | +-------------+ 23| +-+-+-+-----+-------------+-------------+-------------+ |1|1|0| : : | | Класс C +-+-+-+-----+-------------+-------------+-------------+ | Идентификатор сети | Идентификатор узла Рис. 3.2

Сети классов A, B и C абсолютно равноправны и отличаются лишь допустимым количеством узлов в них. Идентификаторы узлов, состоящие из одних нулевых или единичных битов имеют специальный смысл:

  • IP-адрес с нулевым идентификатором узла используется для обозначения сети в целом;
  • IP-адрес с идентификатор узла в виде единичных битов является широковещательным (broadcast) адресом.

IP-адреса принято записывать в так называемой «точечной нотации» — в виде последовательности разделенных точками четырех десятичных (или шестнадцатиричных с префиксом 0x) чисел, представляющих значения отдельных байтов.

Каждый узел в сети имеет, по крайней мере, один уникальный IP-адрес.

Кроме классов A, B и C существуют еще два класса IP-адресов — D и E (см. рис. 3.3).

+-+-+-+-+------+------------+------------+------------+ |1|1|1|0| Идентификатор группы узлов | Класс D +-+-+-+-+------+------------+------------+------------+ +-+-+-+-+------+------------+------------+------------+ |1|1|1|1| : : : | Класс E +-+-+-+-+------+------------+------------+------------+ Рис. 3.3

Класс D используется для организации многопунктового ( multicast ) режима посылки сообщений: IP-сегмент, посылаемый по по IP-адресу класса D, доставляется всем узлам сети, имеющим указанный идентификатор группы узлов. Описание данного режима дано в RFC 1112.

Примечание. Не все современные реализации протоколов TCP/IP поддерживают многопунктовое вещание.

Для обеспечения гибкости при создании и администрировании сетей различного размера в 1985 г. было введено понятие «подсеть» (RFC 950), позволяющее использовать один и тот же IP-адрес классов A,B или C для разных подсетей.

Такая возможность обеспечивается специальной битовой маской (netmask) , ассоциированной с IP-адресом и определяющей распределение битов IP-адреса между идентификатором подсети и идентификатором узла.

Пусть, например, IP-адрес класса C 194.85.36.0 планируется использовать для организации четырех подсетей. Это потребует выделения двух битов из части IP-адреса, относящейся к идентификатору узла. Такое «перепланирование» структуры IP-адреса реализуется сетевой маской 255.255.255.192, где десятичное 192 — это двоичное 11000000.

Эта сетевая маска формирует IP-адрес не из двух, а из трех комронент:

  • идентификатор сети (24 бита);
  • идентификатор подсети (2 бита);
  • идентификатор узла (6 бит).

Каждая из четырех образованных подсетей может иметь до 62 узлов с идентификаторами от 1 до 62, идентификатор узла с номером 63 является широковещательным идентификатором для подсети.

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

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

Примечание. Некоторые современные реализации протоколов маршрутизации для TCP/IP позволяют выделять «подподсети» в подсетях.

3.3. Фрагментация IP-сегментов

Для того, чтобы существовала возможность передачи IP-сегментов через сети различного типа, межсетевой протокол обеспечивает адаптацию их размера к требованиям каждой сети. Это дает возможность, например, IP-сегментам, порожденным в сети на базе Ethernet (максимальный размер кадра — 1526 байт), беспрепятственно перемещаться до адресата по сети на базе X.25 (максимальный размер кадра — 128 байт). Изменение размера IP-сегмента в процессе перемещения по сети может быть связано и с соображениями эффективности передачи.

Изменение размера IP-сегмента реализуется механизмом, называемым фрагментацией. IP-модуль на любом узле сети должен иметь возможность:

  1. разбивать полученный им IP-сегмент на IP-фрагменты необходимого размера перед их передачей через конкретную сеть;
  2. восстанавливать исходный IP-сегмент из получаемых им IP-фрагментов.

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

IP-фрагменты в своих заголовках содержат поле «Смещение фрагмента», описывающее смещение данных IP-фрагмента в данных исходного IP-сегмента. Это поле позволяет корректно восстановить данные исходного IP-сегмента в принимающем IP-фрагменты узле даже в ситуации, когда IP-фрагменты приходят в порядке, от порядка их посылки (такое вполне возможно, т.к. IP-фрагменты могут следовать от источника к адресату по разным маршрутам).

Рассмотрим процесс фрагментации более подробно на следующем примере. IP-модуль на некотором узле получил IP-сегмент с идентификатором 9876 и данными длиной 300 байт (при этом бит запрета фрагментации DF установлен в 0). Этот IP-сегмент должен быть передан дальше к адресату через сеть, максимальный размер кадра которой равен 128 байтам.

Рис. 3.4 схематично представляет разбиение исходного IP-сегмента на 3 IP-фрагмента.

Исходный IP-сегмент +-----------+--------------------------------------+ | Заголовок | Данные (300 байт) | +-----------+--------------------------------------+ : : : : : : : : IP-фрагмент 1 : : : : +-----------+-------------+ : : | Заголовок | 104 байта | : : +-----------+-------------+ : : IP-фрагмент 2 : : : +-----------+-------------+ : | Заголовок | 104 байта | : +-----------+-------------+ : IP-фрагмент 3 : : +-----------+----------+ | Заголовок | 92 байта | +-----------+----------+ Рис. 3.4

IP-фрагмент 1 содержит в своем заголовке следующую информацию:

  1. идентификатор — 9876;
  2. длина заголовка — 5 (четырехбайтных слов);
  3. длина сегмента — 124 (байт);
  4. бит MF — 1;
  5. смещение фрагмента — 0 (восьмибайтных единиц).

IP-фрагмент 2 содержит в своем заголовке следующую информацию:

  1. идентификатор — 9876;
  2. длина заголовка — 5 (четырехбайтных слов);
  3. длина сегмента — 124 (байт);
  4. бит MF — 1;
  5. смещение фрагмента — 13 (восьмибайтных единиц).

IP-фрагмент 3 содержит в своем заголовке следующую информацию:

  1. идентификатор — 9876;
  2. длина заголовка — 5 (четырехбайтных слов);
  3. длина сегмента — 112 (байт);
  4. бит MF — 0;
  5. смещение фрагмента — 26 (восьмибайтных единиц).

Заметим, что т.к. смещение фрагмента измеряется в восьмибайтных единицах, то длина данных в каждом IP-фрагменте (кроме последнего в цепочке) обязательно должна быть кратна 8. Вот почему в нашем примере это 104 байта (13 восьмибайтных единиц), а не 108, как допускает максимальная длина кадра в 128 байт (128 — 20 = 108, где 20 — длина заголовка).

IP-модуль на принимающем IP-фрагменты узле в ситуации, когда он должен транслировать IP-сегмент далее по сети, имеет три варианта действий с фрагментами:

  1. переслать IP-фрагменты далее неизменными;
  2. разбить (если в этом есть необходимость) полученные IP-фрагменты на более короткие IP-фрагменты;
  3. восстановить исходный IP-сегмент из фрагментов.

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

3.4. Дополнительные данные IP-заголовка

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

список IP-адресов узлов сети, через которые должен следовать до адресата IP-сегмент. Предписываемый маршрут может быть «строгим» или «мягким». В первом случае IP-сегмент должен следовать строго только по указанным в списке узлам сети, во втором — допустимо прохождение через любые промежуточные узлы, не указанные в списке.

список IP-адресов узлов сети, которые посетил IP-сегмент по пути к адресату. Каждый транзитный узел, через который следует IP-сегмент, помещает в этот список свой IP-адрес.

Временные метки (time stamp)

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

указание на обработку IP-сегмента в соответствии с требованиями безопасности (RFC 1038). Эта возможность имеется только в нескольких (военных) реализациях TCP/IP.

указание на завершение дополнительных данных IP-заголовка.

Каждый элемент дополнительных данных представляет собой

  • либо однобайтовый идентификатор дополнительных данных (например, «флаг окончания»);
  • либо комбинацию однобайтового идентификатора, поля длины и данных (например, «предписываемый маршрут»).

Для дополнительных данных, пополняемых в ходе продвижения IP-сегмента по сети (например, «пройденный маршрут»), источник IP-сегмента должен зарезервировать место необходимого объема в IP-заголовке. Такой подход обеспечивает упрощение (а, следовательно, и ускорение) обработки IP-сегмента в узлах маршрута.

RFC 1063 (1988 г.) предлагает механизм определения оптимального размера IP-сегмента, при посылке его к определенному адресату. Этот механизм использует дополнительные данные IP-заголовка, называемые probe MTU (probe Maximum Transfer Unit — тестовый максимальный блок передачи). Каждый узел в маршруте IP-сегмента, содержащего такие дополнительные данные, сравнивает MTU следующей по маршруту сети с MTU, содержащемся в заголовке, и заменяет в нем старое значение на новое, если новое оказывается меньше. Конечный адресат IP-сегмента возвращает определенное таким образом значение источнику IP-сегмента. Использование в дальнейших посылках найденного размера IP-сегментов, позволяет избежать их фрагментации. Этот механизм широкого распространения еще не получил.

Примечание. Понятие MTU подробно рассматривается в «Протоколы сетевого уровня» .

4. Протокол управления передачей TCP

Протокол управления передачей TCP (Transmission Control Protocol) является протоколом транспортного уровня и базируется на возможностях, предоставляемых межсетевым протоколом IP. Основная задача TCP — обеспечение надежной передачи данных в сети. Его транспортный адрес в заголовке IP-сегмента равен 6. Описание протокола TCP дано в RFC 793.

Его основные характеристики перечислены ниже:

  • реализует взаимодействие в режиме с установлением логического (виртуального) соединения;
  • обеспечивает двунаправленную дуплексную связь;
  • организует потоковый (с точки зрения пользователя) тип передачи данных;
  • дает возможность пересылки части данных, как «экстренных»;
  • для идентификации партнеров по взаимодействию на транспортном уровне использует 16-битовые «номера портов»;
  • реализует принцип «скользящего окна» (sliding window) для повышения скорости передачи;
  • поддерживает ряд механизмов для обеспечения надежной передачи данных.

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

4.1. Заголовок TCP-пакета

На рис. 4.1 приведен формат заголовка TCP-пакета.

0 3 9 15 23 31 +------+-----------+-----------+---------------+---------------+ | Порт | Порт | | источника | приемника | +------------------------------+-------------------------------+ | Номер | | в последовательности | +--------------------------------------------------------------+ | Номер | | подтверждения | +------+-----------+-+-+-+-+-+-+-------------------------------+ |Смеще-| Зарезер- |U|A|P|R|S|F| Размер | | ние | вировано |R|C|S|S|Y|I| окна | |данных| |G|K|H|T|N|N| | +------+-----------+-+-+-+-+-+-+-------------------------------+ | Контрольная | Указатель | | сумма | | +------------------------------+---------------+---------------+ | Дополнительные | Данные | | данные заголовка | выравнивания | +----------------------------------------------+---------------+ Рис. 4.1

Порт источника и порт приемника

16-битовые поля, содержащие номера портов, соответственно, источника и адресата TCP-пакета. Подробное описание понятия «номер порта» дано в «Номер порта».

Номер в последовательности (sequence number)

32-битовое поле, содержимое которого определяет (косвенно) положение данных TCP-пакета внутри исходящего потока данных, существующего в рамках текущего логического соединения.

В момент установления логического соединения каждый из двух партнеров генерирует свой начальный «номер в последовательности», основное требование к которому — не повторяться в промежутке времени, в течение которого TCP-пакет может находиться в сети (по сути, это время жизни IP-сегмента). Партнеры обмениваются этими начальными номерами и подтверждают их получение. Во время отправления TCP-пакетов с данными поле «номер в последовательности» содержит сумму начального номера и количества байт ранее переданных данных.

Номер подтверждения (acknowledgement number)

32-битовое поле, содержимое которого определяет (косвенно) количество принятых данных из входящего потока к TCP-модулю, формирующему TCP-пакет.

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

бит, установленное в 1 значение которого означает, что TCP-пакет содержит важные (urgent) данные. Подробно о данных этого типа сказано в «Важные данные».

бит, установленное в 1 значение которого означает, что TCP-пакет содержит в поле «номер подтверждения» верные данные.

бит, установленное в 1 значение которого означает, что данные содержащиеся в TCP-пакете должны быть немедленно переданы прикладной программе, для которой они адресованы. Подтверждение для TCP-пакета, содержащего единичное значение во флаге PSH, означает, что и все предыдущие TCP-пакеты достигли адресата.

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

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

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

16-битовое поле, содержащее количество байт информации, которое может принять в свои внутренние буфера TCP-модуль, отправляющий партнеру данный TCP-пакет. Данное поле используется принимающим поток данных TCP-модулем для управления интенсивностью этого потока: так, установив значение поля в 0, можно полностью остановить передачу данных, которая будет возобновлена только, когда размер окна примет достаточно большое значение. Максимальный размер окна зависит от реализации, в некоторых реализациях максимальный размер может устанавливаться системным администратором (типичное значение максимального размера окна — 4096 байт). Определение оптимального размера окна — одна из наиболее сложных задач реализации протокола TCP (см. «Исключение малых окон»).

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

0 7 15 31 +-----------+-----------+-----------------------+ | IP-адрес источника | +-----------+-----------+-----------------------+ | IP-адрес приемника | +-----------+-----------+-----------------------+ | Нули | Транспорт | Длина IP-сегмента | +-----------+-----------+-----------------------+ Рис. 4.2

16-битовое поле, содержащее указатель (в виде смещения) на первый байт в теле TCP-пакета, начинающий последовательность важных (urgent) данных. Данные этого типа и механизм их обработки описаны в «Важные данные».

Дополнительные данные заголовка

последовательность полей произвольной длины, описывающих необязательные данные заголовка. Протокол TCP определяет только три типа дополнительных данных заголовка:

  • конец списка полей дополнительных данных;
  • пусто (No Operation);
  • максимальный размер пакета.

Дополнительные данные последнего типа посылаются в TCP-заголовке в момент установления логического соединения для выражения готовности TCP-модулем принимать пакеты длиннее 536 байтов. В UNIX-реализациях длина пакета обычно определяется максимальной длиной IP-сегмента для сети.

4.2. Номер порта

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

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

Взаимодействие прикладных программ, использующих транспортные услуги протокола TCP (или UDP), строится согласно модели «клиент-сервер» , которая подразумевает, что одна программа (сервер) всегда пассивно ожидает обращения к ней другой программы (клиента). Связь программы-клиента и сервера идентифицируется пятеркой:

  1. используемый транспортный протокол (TCP или UDP);
  2. IP-адрес сервера;
  3. номер порта сервера;
  4. IP-адрес клиента;
  5. номер порта клиента.

Для того, чтобы клиент мог обращаться к необходимому ему серверу, он должен знать номер порта, по которому сервер ожидает обращения к нему («слушает сеть»). Для прикладных программ, получивших наибольшее распространение в сетях на основе TCP/IP, номера портов фиксированы и носят название «хорошо известных номеров портов» (well-known port numbers). В UNIX-системах такие номера портов содержатся в файле /etc/services. Ниже приводятся примеры хорошо известных номеров портов для некоторых серверов (служб).

Служба Номер порта Протокол --------------------------------- ftp-data 20 TCP ftp 21 TCP telnet 23 TCP smtp 25 TCP time 37 TCP time 37 UDP finger 79 TCP portmap 111 TCP portmap 111 UDP exec 512 TCP login 513 TCP shell 514 TCP who 513 UDP talk 517 UDP route 520 UDP Xserver 6000 TCP

Примечание. Обратите внимание, что некоторые серверы (такие, например, как для службы portmap с номером порта 111) могут работать как по протоколу TCP, так и по протоколу UDP.

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

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

Средства разработки сетевых приложений на базе транспортных протоколов TCP и UDP описаны в «Сетевое программирование».

4.3. Принцип «скользящего окна»

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

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

В протоколе TCP используется более совершенный принцип «скользящего окна» (sliding window) , который заключается в том, что каждая сторона может отправлять партнеру максимум столько байт, сколько партнер указал в поле «размер окна» заголовка TCP-пакета, подтверждающего получение предыдущих данных.

Принцип «скользящего окна» обеспечивает «опережающую» посылку данных с «отложенным» их подтверждением. Следует отметить недостаток этого механизма: если в течение некоторого времени не будет получено «отсроченное» подтверждение ранее отправленного пакета, то отправляющий TCP-модуль будет вынужден повторить посылку всех TCP-пакетов, начиная с неподтвержденного.

Размер окна, как правило, определяется объемом свободного места в буферах принимающего TCP-модуля.

4.4. Важные данные

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

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

Для индикации наличия в TCP-пакете важных данных используется флаг URG TCP-заголовка, местоположение важных данных в теле TCP-пакета определяется полем «Указатель» TCP-заголовка — оно задает смещение (в стиле языка программирования C) первого байта важных данных в теле TCP-пакета. Рис. 4.3 иллюстрирует расположение важных данных в теле TCP-пакета.

+---------------------------+ | | | v +-------+-----|-----++-------------------+-------------------+ | URG=1 | Указатель || Данные потока | Важные данные | +-------+-----------++-------------------+-------------------+ TCP-заголовок Тело TCP-пакета Рис. 4.3.

Примечание. Протокол TCP предусматривает передачу важных (urgent) данных в рамках общего потока данных («in-band»). Существуют протоколы (например, ISO), поддерживающие режим передачи важных (expedited) данных вне общего потока данных («out-band»), что в общем случае быстрее.

4.5. Этапы TCP-взаимодействия

Взаимодействие партнеров с использованием протокола TCP строится в три этапа:

  • установление логического соединения;
  • обмен данными;
  • закрытие соединения.

Ниже с помощью трех рисунков дается описание каждого из этапов. Рисунки иллюстрируют последовательность обмена TCP-пакетами двумя TCP-модулями: A и B. TCP-пакеты представлены тремя полями TCP-заголовка («Номер в последовательности», «Номер подтверждения», «Флаги») и числом, характеризующим длину данных, составляющих тело TCP-пакета (заметим, что реально поля длины данных в TCP-заголовке нет). Стрелками показаны направления пересылки пакетов.

Номер в Номер Флаги Длина TCP A последовательности подтверждения данных TCP B +------------------+-------------+---------+------+ ---> | 1000 | | SYN | 0 | +------------------+-------------+---------+------+ +------------------+-------------+---------+------+ | 5000 | 1001 | SYN,ACK | 0 | | 1001 | 5001 | ACK | 0 | +------------------+-------------+---------+------+ Рис. 4.4

Рис. 4.4 иллюстрирует этап установления соединения, реализуемый как «трехшаговое рукопожатие» (three-way handshake). На первом шаге TCP-модуль A, играя роль клиента, посылает TCP-модулю B пакет с установленным флагом SYN и начальным значением номера в последовательности равным 1000. TCP-модуль B, будучи готов со своей стороны установить соединение, отвечает TCP-пакетом, подтверждающим правильный прием запроса (поле «Номер подтверждения» на 1 больше начального номера в последовательности для TCP-модуля A и среди флагов есть установленный в 1 флаг ACK) и информирующим о готовности установить соединение (взведен флаг SYN и установлен в 5000 начальный номер в последовательности). На третьем шаге TCP-модуль A подтверждает правильность приема TCP-пакета от B.

Примечание. Некоторые протоколы транспортного уровня (но не TCP) допускают обмен данными уже на этапе установления логического соединения.

Номер в Номер Флаги Длина TCP A последовательности подтверждения данных TCP B +------------------+-------------+---------+------+ ---> | 1001 | 5001 | ACK | 50 | +------------------+-------------+---------+------+ +------------------+-------------+---------+------+ | 5001 | 1051 | ACK | 80 | | 1051 | 5081 | ACK | 0 | +------------------+-------------+---------+------+ Рис. 4.5

Рис. 4.5 иллюстрирует этап двустороннего обмена данными между TCP-модулями A и B. TCP-модуль, принимающий адресованные ему данные, всегда подтверждает их прием, вычисляя значение поля «Номер подтверждения» в заголовке ответного TCP-пакета как сумму пришедшего «Номера в последовательности» и длины правильно принятых данных. Отметим, что посылка данных к партнеру и подтверждение принятых от него данных реализуются в рамках одного TCP-пакета.

Номер в Номер Флаги Длина TCP A последовательности подтверждения данных TCP B +------------------+-------------+---------+------+ ---> | 1051 | 5081 | ACK,FIN | 0 | +------------------+-------------+---------+------+ +------------------+-------------+---------+------+ | 5081 | 1052 | ACK | 0 | | 1052 | 5121 | ACK | 0 | +------------------+-------------+---------+------+ +------------------+-------------+---------+------+ | 5121 | 1052 | ACK,FIN | 0 | | 1052 | 5122 | ACK | 0 | +------------------+-------------+---------+------+ Рис. 4.6

Рис. 4.6 иллюстрирует закрытие соединения по инициативе TCP-модуля A, посылающего партнеру TCP-пакет с установленным флагом FIN. Прием запроса на закрытие соединения TCP-модуль B подтверждает пакетом, содержащем в своем заголовке поле «Номер подтверждения», значение которого (1052) на 1 больше значения принятого «Номера в последовательности» (1051). После этого посылка каких-либо данных TCP-модулем A становится невозможной, однако модуль B имеет данные для передачи, которые он отправляет TCP-модулю A и получает подтверждение на их прием. Затем TCP-модуль B формирует пакет с флагом FIN, после подтверждения его приема соединение считается закрытым.

Примечание. Обратите внимание на то обстоятельство, что при подтверждении TCP-пакетов, содержащих единичные флаги SYN или FIN, значение поля «Номер подтверждения» на 1 больше значения соответствующего поля «Номер в последовательности», несмотря на то, что никакие данные в подтверждаемых TCP-пакетах не передаются.

Примечание. Рассмотренный пример не включает в себя ситуации, связанные с «потерей» TCP-пакетов в сети, и их обработку, связанную с повторной передачей данных.

4.6. Таймеры
4.6.1. Таймер повторной передачи

Данный таймер взводится значением RTO ( Retransmission TimeOut — интервал до повторной передачи) в момент посылки TCP-пакета адресату. Если таймер окажется сброшенным в ноль до момента получения подтверждения пакета, то этот пакет должен быть послан вновь.

Ясно, что величина RTO не может быть фиксированной, т.к. TCP-пакеты до разных адресатов следуют по различным маршрутам через сети, скорость передачи данных в которых может различаться более чем в тысячи раз. Для вычисления «оптимального» значения RTO в каждом логическом соединении используется специальная процедура, специфицированная в RFC 793.

Согласно этой процедуре, для каждого TCP-пакета измеряется величина RTT ( Round Trip Time — интервал времени от момента посылки TCP-пакета до момента получения подтверждения на него). На основе измеренных RTT вычисляется величина SRTT ( Smoothed RTT — сглаженный RTT) по следующей формуле:

SRTT = k*SRTT + (1 - k)*RTT,

где k — сглаживающий коэффициент (например, 0.9).

Примечание. Приведенная формула обеспечивает фильтрацию нетипичных (пиковых) значений измеренной величины RTT.

«Оптимальное» значение RTO вычисляется по формуле:

RTO = min(U, max(L, p*SRTT)),

U — ограничение сверху на значение RTO (например, 30 секунд);

L — ограничение снизу на значение RTO (например, 1 секунда);

p — коэффициент «запаса» (например, 2).

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

4.6.2. Таймер возобновления передачи

В ходе взаимодействия двух TCP-модулей ( A и B ) вполне возможна следующая ситуация:

  • TCP-модуль B уведомляет TCP-модуль A о невозможности приема от него данных, определяя размер окна равным 0;
  • TCP-модуль A, имея данные для передачи, переходит в состояние ожидания от TCP-модуля B пакета с ненулевым размером окна;
  • TCP-модуль B, у которого освободилось некоторое пространство в буферах, посылает модулю A TCP-пакет с ненулевым размером окна;
  • адресованный модулю A пакет «теряется» по какой-либо причине и оба TCP-модуля переходят в состояние бесконечного ожидания.

Средством выхода из такого тупикового состояния и служит таймер возобновления передачи ( persistence timer — «настойчивый» таймер). Он взводится в момент получения TCP-пакета с нулевым значением поля «Размер окна» в его заголовке (типичное начальное значение для этого таймера — 5 секунд). Если до момента обнуления таймера не будет получено разрешение на возобновление передачи данных, то ожидающий разрешения TCP-модуль отправляет партнеру пакет, содержащий всего лишь 1 байт данных. По реакции партнера, возвращающего пакет с нулевым/ненулевым значением размера окна, TCP-модуль продолжает ожидание или возобновляет посылку данных.

4.6.3. Таймер закрытия связи

Протокол TCP предусматривает следующий простой прием предотвращения появления в сети TCP-пакетов, не имеющих адресатов: после закрытия логического соединения между партнерами номера портов, использовавшихся в этом соединении, остаются еще некоторый интервал времени действительными, что дает возможность долго блуждавшим по сети TCP-пакетам добраться до места назначения (где они будут просто проигнорированы). Величина этого интервала равна удвоенному времени жизни IP-сегмента (обычно, 2*15=30 секунд).

Примечание. Пользователи ОС UNIX могут почувствовать эффект от использования этого приема, попытавшись перезапустить некоторую прикладную программу, использующую TCP, сразу же после ее завершения.

4.6.4. Таймеры поддержки соединения

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

Каждый TCP-модуль, участвующий в логическом соединении, через фиксированный промежуток времени ( keep-alive timer ), равный обычно 45 секундам, периодически отправляет партнеру пустые (не содержащие данных) TCP-пакеты и ждет их подтверждения. Каждое полученное подтверждение говорит о ненарушенности соединения. Если же в течении определенного интервала времени ( idle timer ), равного обычно 360 секудам, не будет получено ни одного подтверждения, то логическое соединение считается оборванным.

Примечание. Очевидно, что данный механизм имеет смысл включать в работу только тогда, когда партнеры по TCP-взаимодействию приостановили по какой-либо причине обмен данных на достаточно длительный срок (более 45 секунд).

Примечание. Стандартная спецификация протокола TCP не включает в себя описанный механизм, однако он реализован во всех UNIX-системах.

4.7. Алгоритмы повышения эффективности

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

4.7.1. Задержка подтверждения

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

Пусть клиентская часть некоторого приложения (например, службы telnet) направляет серверной части некоторые данные (в случае telnet — строку символов, представляющих команду OC UNIX, которая должна быть выполнена на удаленном узле сети). Серверная часть, получив данные и обработав их, должна вернуть клиенту результат (в случае с telnet — это стандартный вывод исполненной команды).

В ситуации без задержки TCP-модуль на стороне сервера, приняв пакет с данными и разместив их в своем буфере, сразу же отвечает подтверждающим пакетом, содержащим в своем заголовке и некоторый (уменьшенный) размер окна для приема последующих данных. Спустя некоторое (обычно, очень короткое) время данные из буфера передаются серверной части прикладной программы. Освобождение места в буфере заставляет TCP-модуль отправлять партнеру на стороне клиента TCP-пакет с новым (увеличившимся) размером окна. Тем временем прикладная программа, обработав полученные данные (часто за небольшое время), передает результат TCP-модулю для отсылки его клиенту, для чего модуль формирует еще один пакет. Итого: одна транзакция потребовала от TCP-модуля на стороне сервера посылки трех TCP-пакетов.

Введение же задержки при отсылке подтверждающего TCP-пакета позволяет в ряде случаев уменьшить количество пакетов с трех до одного, содержащего сразу подтверждение, новый размер окна и результирующие данные. Экспериментальные исследования показали, что во многих случаях «оптимальным» значением задержки является 0.2 секунды.

Для того, чтобы введение задержки сказывалось минимальным образом на приложения, предъявляющие жесткие требования к пропускной способности сети, задержка устанавливается нулевой при условии, что размер окна изменяется более чем на 35% или (в абсолютном исчислении) на удвоенный максимальный размер TCP-пакета.

4.7.2. Исключение малых окон

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

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

  1. свободное место в буфере принимающего данные TCP-модуля увеличилось по крайней мере на четверть размера этого буфера;
  2. свободное место увеличилось по крайней мере на максимальный размер TCP-пакета.

Кроме того TCP-модуль, отправляющий данные, должен делать это большими порциями.

4.7.3. Исключение коротких TCP-пакетов

«Засорение» сети короткими TCP-пакетами возможно и в ситуации, когда прикладная программа, отправляющая данные партнеру по взаимодействию, делает это короткими порциями (типичный пример — любая программа, использующая графическую систему X Window System).

Для борьбы с этим используется следующий прием:

  • самая первая порция данных отправляется TCP-модулем сразу же при поступлении «коротким» TCP-пакетом;
  • все последующие накапливаются в буфере TCP-модуля, пока их общий объем не составит максимального размера TCP-пакета или не будет получено подтверждение предеыдущей посылки.

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

4.7.4. Алгоритм медленного старта

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

Для предупреждения подобной ситуации необходимо согласование темпа передачи TCP-пакетов с возможностями их приема на узле-адресате. Задачу согласования решает алгоритм медленного старта, постепенно повышающий темп передачи данных от медленного до «оптимального», при котором нет повторных передач TCP-пакетов. Алгоритм использует так называемое » окно перегруженности » ( congestion window ), используемое на передающей стороне для определения максимального объема передаваемых данных вместо размера, получаемого от принимающей стороны в поле окна подтверждающего пакета.

Размер «окна перегруженности» определяется на передающей стороне путем постепенного его увеличения до момента появления повторных передач (ясно, что размер этого окна никогда не превышает размера окна на принимающей стороне). Однажды определенный размер «окна перегруженности» остается неизменным, пока вновь не появятся повторные передачи, однако периодически делаются осторожные попытки и увеличить этот размер.

Эксперименты показали, что данный алгоритм позволяет уменьшить количество повторно передаваемых TCP-пакетов на 50% и повысить пропускную способность сети на 30%.

5. Протокол дэйтаграмм пользователя UDP

Протокол дэйтаграмм пользователя UDP (User Datagram Protocol) является протоколом транспортного уровня и базируется на возможностях, предоставляемых межсетевым протоколом IP. Основная задача TCP — обеспечение «быстрой» передачи данных в сети. Его транспортный адрес в заголовке IP-сегмента равен 17. Описание протокола UDP дано в RFC 768.

Его основные характеристики перечислены ниже:

  • реализует взаимодействие в режиме без установлением логического (виртуального) соединения;
  • организует поблочный (дэйтаграммный, пакетный) тип передачи данных;
  • для идентификации партнеров по взаимодействию на транспортном уровне использует 16-битовые «номера портов»;
  • не гарантирует надежной передачи данных (возможна как потеря UDP-пакетов, так и их дублирование);
  • не имеет средств уведомления источника UDP-пакета о правильности/ошибочности в его приеме адресатом;
  • не обеспечивает правильный порядок доставки UDP-пакетов от источника к приемнику;
  • может гарантировать целостность данных в UDP-пакете за счет использования контрольной суммы;
  • очень прост (особенно, по сравнению с протоколом TCP).

Следует отметить, что, по сути дела, протокол транспортного уровня UDP играет роль интерфейса для прикладных программ к средствам протокола межсетевого уровня IP.

На рис. 5.1 приведен формат заголовка UDP-пакета.

0 15 31 +------------------------------+-------------------------------+ | Порт источника | Порт приемника | +------------------------------+-------------------------------+ | Длина | Контрольная сумма | +------------------------------+-------------------------------+ Рис. 5.1

Порт источника и порт приемника

16-битовые поля, содержащие номера портов, соответственно, источника и адресата UDP-пакета. Понятие «номер порта» обсуждается в «Протокол управления передачей TCP».

16-битовое поле, содержащее длину (в байтах) всего UDP-пакета, включая заголовок и данные.

16-битовое поле, содержащее Internet-контрольную сумму, подсчитанную для UDP-заголовка, данных пакета и псевдозаголовка. Псевдозаголовок (такой же, как для подсчета контрольной суммы в TCP-заголовке) включает в себя ряд полей IP-заголовка и имеет показанную на рис. 5.2 структуру.

0 7 15 31 +-----------+-----------+-----------------------+ | IP-адрес источника | +-----------+-----------+-----------------------+ | IP-адрес приемника | +-----------+-----------+-----------------------+ | Нули | Транспорт | Длина IP-сегмента | +-----------+-----------+-----------------------+ Рис. 5.2

Если поле «Контрольная сумма» UDP-заголовка содержит нулевое значение, это означает, что источник UDP-пакета контрольную сумму не подсчитывал, и приемник выполнять ее проверку не должен. Некоторые реализации протокола UDP (например, в SunOS — клоне ОС UNIX от Sun Microsystems) контрольную сумму не подсчитывают в принципе, полагаясь на возможности контроля целостности данных, реализованные в протоколах сетевого уровня (например, в Ethernet).

6. Межсетевой протокол управляющих сообщений ICMP

Межсетевой протокол управляющих сообщений ICMP (Internet Control Message Protocol), специфицированный в RFC 792, играет роль транспортного протокола для управляющей и диагностической информации, которой обмениваются между собой IP-, TCP- или UDP-модули скрытно от приложений. Протокол ICMP поддерживается в обязательном порядке ка ждым IP-модулем. Его транспортный адрес в IP-заголовке равен 1.

6.1. Заголовок ICMP-пакета

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

0 7 15 31 +-----------+-----------+-----------------------+ | Тип | Код | Контрольная сумма | +-----------+-----------+-----------------------+ | Разное | +-----------------------------------------------+ : Тело пакета: : : IP-заголовок и следующие за ним 8 байт данных : : или : : тестовые данные : +-----------------------------------------------+ Рис. 6.1

однобайтовое поле, содержащее идентификатор типа ICMP-пакета. Возможные значения этого поля приведены в таблице.

-----------+-------------------------------- Поле "Тип" | Назначение -----------+-------------------------------- 0 Ответ на запрос эха 3 Адресат недоступен 4 Подавление источника 5 Перенаправление 8 Запрос эха 11 Исчерпано время жизни 12 Ошибка в параметре 13 Запрос временной метки 14 Ответ на запрос временной метки -----------+--------------------------------

однобайтовое поле, значение которого конкретизирует назначение ICMP-пакета определенного типа.

16-битовое поле, содержащее Internet-контрольную сумму, подсчитанную для всего ICMP-пакета целиком.

четырезбайтовое поле, предназначенное для хранения разнообразной информации, специфичной для ICMP-пакетов определенного типа (например, номера в TCP-последовательности, IP-адреса и т.п.).

Здесь содержится заголовок IP-сегмента, явившегося порождения данного ICMP-пакета, и первые 8 байт данных тела этого IP-сегмента. Если ICMP-пакет есть результат проявления аномалии в TCP- или UDP-взаимодействии, то эти 8 байт будут представлять собой первые восемь байтов, соответственно, TCP- или UDP-заголовка, что дает возможность определить, в частности, номера портов (а, следовательно, и использующие их прикладные программы).

Для ICMP-пакетов некоторых типов это может содержать не начало IP-сегмента, а тестовые данные.

Источниками и обработчиками ICMP-пакетов могуть быть как IP-модули, так и TCP- и UDP-модули (но никогда прикладные программы).

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

6.2. Типы ICMP-пакетов

Здесь рассматриваются 6 типов ICMP-пакетов, реализованных во всех клонах и версиях ОС UNIX.

6.2.1. Адресат недоступен

ICMP-пакет этого типа генерируется в следующих случаях:

  1. сеть, узел сети, протокол или порт являются недоступными;
  2. в ходе продвижения по сети IP-сегмента потребовалась его фрагментация, однако в заголовке сегмента установлен флаг DF, запрещающий делать это;
  3. предписываемый маршрут, указанный в поле дополнительных данных IP-сегмента, оказался недействительным (несуществующим или неактивным).

6.2.2. Подавление источника

В ситуациях, когда некоторый узел (как правило, шлюз) не имеет достаточно места в своих буферах для размещения интенсивно поступающих к нему данных, он может послать узлам-источникам ICMP-пакет данного типа ( source quench ). Узел-источник в ответ на такое уведомление обязан уменьшить темп передачи данных.

В ранних UNIX-реализациях протоколов TCP/IP ICMP-пакеты этого типа игнорировались. В TCP-реализациях, поддерживающих алгоритм медленного старта, в ответ на это сообщение уменьшается размер «окна перегруженности». UDP-модули игнорируют это сообщение, информируя при этом обслуживаемую прикладную программу о требовании приемника уменьшить интенсивность и/или размер дэйтаграмм.

6.2.3. Перенаправление

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

6.2.4. Эхо

Для реализации эха IP-модуль на узле A отправляет узлу B ICMP-пакет типа «запрос эха», содержащий в своем теле вместо IP-заголовка тестовые данные произвольной длины. Узел B, получив такой запрос, возвращает узлу A ICMP-пакет типа «ответ на запрос эха», содержащий те же данные, что и в запросе. Эхо-посылки используются для проверки достижимости удаленных узлов сети и измерения времени прохождения данных.

6.2.5. Исчерпано время жизни

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

1) исчерпано время жизни IP-сегмента;

2) исчерпано допустимое время на сборку фрагментированного IP-сегмента.

6.2.6. Неверный параметр

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

7. Протоколы сетевого уровня

Ниже кратко описывается реализвция стека протоколов TCP/IP на базе ряда протоколов сетевого уровня.

7.1. Ethernet

Протокол Ethernet был разработан в начале 1970-х годов совместно фирмами Xerox, DEC и Intel. На его базе в 1982 г. был принят международный стандарт IEEE 802.3 .

Использование протокола сетевого уровня Ethernet совместно с протоколами TCP/IP регламентируется RFC 894.

Основными характеристиками протокола Ethernet являются следующие:

  • шинная логическая топология сети;
  • скорость передачи данных 10 мегабит в секунду;
  • используется для построения локальных вычислительных сетей;
  • обмен данными между узлами сети осуществляется кадрами;
  • для разделения шины между многими узлами используется механизм CSMA/CD;
  • обеспечивает широковещательную (broadcast) и многопунктовую (multicast) рассылку данных.

В качестве физической среды передачи данных Ethernet использует:

  • «толстый» коаксиальный кабель (так называемый 10base5 Ethernet);
  • «тонкий» коаксиальный кабель (10base2);
  • оптоволоконный кабель;
  • витая пара (10baseT).

В первых трех случаях физическая топология сети реально является шинной, в последнем — физическая топология сети представляет собой «звезду».

Примечание. Существуют современные версии Ethernet, обеспечивающие скорость передачи в 100 мегабит в секунду.

Примечание. Ethernet позволяет объединить в локальную сеть узлы, расположенные друг от друга на расстоянии от нескольких десятков метров (10baseT) до нескольких километров (сегменты 10base5, связанные повторителями).

Механизм CSMA/CD (Carrier Sense Multiple Acces with Collision Detection — Множественный Доступ с Контролем Носителя и Обнаружением Столкновений) подразумевает следующий алгоритм получения узлом сети доступа к шине:

  1. прослушивание шины (sense carrier) на предмет наличия в ней сигналов передачи данных другими узлами;
  2. если шина занята, то отложить передачу, если свободна — начать передачу данных;
  3. в течение первых 47 микросекунд передачи кадра данных вести проверку столкновений (collisions) в шине, связанных с возможным одновременным началом передачи данных и другими узлами сети;
  4. при обнаружении столкновения прекратить передачу данных и перейти в состояние ожидания на период времени случайной длины, а потом возобновить попытки передачи кадра.

Обмен данными по протоколу Ethernet всегда реализуется программно-аппаратно с помощью двух компонентов:

  • сетевого контроллера (чаще всего имеющего вид печатной платы, вставляемой в корпус ЭВМ), подключаемого к шине (коаксиальному кабелю, оптоволокну или витой паре медных проводов);
  • драйвера сетевого контроллера, обеспечивающего интерфейс сетевого программного обеспечения (например, IP-модуля) с контроллером.

Примечание. В ОС UNIX сетевой контроллер и его драйвер принято называть » сетевым интерфейсом «.

7.1.1. Формат кадра данных Ethernet

На рис. 7.1 представлен формат кадра данных протокола Ethernet. Для иллюстративных целей показана вложенность в кадр IP-сегмента (содержащего, в свою очередь, TCP-пакет).

+-----------+ | Преамбула | | (64 бита) | +-----------+ | Адрес | | приемника | | (48 бит) | +-----------+ | Адрес | | источника | | (48 бит) | +-----------+ | Тип кадра | | (16 бит) | IP-сегмент +-----------+ - - +--------------+ | | | IP-заголовок | | Тело | | (>= 20 байт) | TCP-пакет | кадра | +--------------+ - - +---------------+ | (область | | | | TCP-заголовок | | данных) | | Тело | | (>= 20 байт) | | | | IP-сегмента | +---------------+ | | | (TCP-, UDP- | | Тело | | (максимум | | или ICMP- | | TCP-пакета | | 1500 байт)| | пакет) | | (данные | | | | | | пользователя) | +-----------+ - - +--------------+ - - +---------------+ | Контроль- | | ная сумма | | (32 бита) | Рис. 7.1 +-----------+

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

Адрес приемника и адрес источника

48-битовые поля, содержащие Ethernet-адреса принимающего и передающего кадр узлов сети.

Каждый Ethernet-контроллер в мире имеет уникальный 6-байтовый адрес. Ethernet-адрес принято записывать в виде последовательности шести разделенных символом «двоеточие» двузначных шестнадцатиричных чисел, где каждое число представляет собой значение одного байта адреса, напрмер, f1:e2:d3:c4:b5:a6.

Примечание. Как правило, Ethernet-адрес жестко «зашит» в контроллере, однако существуют контроллеры, допускающие его изменение программным путем.

16-битовое поле, содержащее идентификатор протокола вышележащего уровня, использующего данный Ethernet-кадр. Т.е. поле определяет принадлежность содержимого тела кадра. Наличие данного поля в кадре обеспечивает возможность функционирования в одной сети на базе Ethernet одновременного нескольких различных стеков протоколов, а не только одного TCP/IP.

Примерами значений данного поля являются следующие:

  • 0x0800 — протокол IP;
  • 0x0806 — протокол ARP.

содержит данные, передаваемые в кадре протоколом вышележащего уровня (на рисунке это IP-сегмент, тело которого используется для пересылки TCP-пакета).

Максимальная длина тела кадра протокола сетевого уровня обозначается как MTU (Maximum Transmission Unit) и для Ethernet составляет 1500 байтов.

32-битовое поле, содержащее CRC-контрольную сумму, подсчитанную для всего кадра.

Минимальная длина Ethernet-кадра составляет 64 байта (512 бит). Такое ограничение связано с тем, что контроль столкновений различных кадров в Ethernet-шине согласно алгоритму CSMA/CD выполняется на интервале времени в 47 микросекунд. За это время осуществляется передача 470 бит (при скорости 10 мегабит в секунду), так что 512 — это округление 470 до числа, являющегося степенью 2.

В ситуациях, когда длина данных, передаваемых в теле кадра, недостаточна для формирования кадра длиной не менее 64 байтов, драйвер Ethernet-контроллера искусственно дополняет тело пакета до необходимой длины.

Примечание. Интересно, что согласно стандарту IEEE 802.3 рассмотренное выше 16-битовое поле типа кадра на самом деле является полем длины (в байтах) тела Ethernet-кадра. Для идентификации типа содержимого тела кадра предлагается использовать специальный протокол LLC (Logic Link Control — протокол управления логической связью), занимающий промежуточное положение между Ethernet и вышележащими протоколами. Однако протокол LLC в среде UNIX (а, значит, и в большинстве других ОС) реализован не был: стандартом «de facto» остаются спецификации RFC 894. Хотя надо отметить, что выбор значений идентификаторов типа кадра (0x0800 и больше) не исключает возможности использования этого поля одновременно и для идентификации типа, и для хранения длины тела кадра (максимум 1500).

7.1.2. Протоколы трансляции адресов

Ethernet подобно другим протоколам сетевого уровня обладает собственной системой адресации узлов сети, отличной от системы адресации, принятой в TCP/IP. Это приводит к необходимости взаимной трансляции адресов «IP-адрес в Ethernet-адрес» и обратно.

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

Для поддержания таблицы трансляции в актуальном состоянии, отражающем текущий состав узлов Ethernet-сети, используется протокол ARP (Address Resolution Protocol) , описанный в RFC 826.

Структура ARP-сегмента приведена на рис. 7.2.

0 7 15 31 +--------------+---------------+-------------------------------+ | Hardware | Идентификатор протокола | +--------------+---------------+-------------------------------+ | Длина | Длина | Операция | | HW-адреса | адреса | | +==============+===============+===============================+ | Ethernet-адрес источника (байты 0. 3) | +------------------------------+-------------------------------+ | Ethernet-адрес источника | IP-адрес источника | | (байты 4. 5) | (байты 0. 1) | +------------------------------+-------------------------------+ | IP-адрес источника | Ethernet-адрес приемника | | (байты 2. 3) | (байты 0. 1) | +------------------------------+-------------------------------+ | Ethernet-адрес приемника (байты 2. 5) | +--------------------------------------------------------------+ | IP-адрес приемника (байты 0. 3) | +--------------------------------------------------------------+ Рис. 7.2

Поле «Hardware» содержит идентификатор типа адреса на сетевом уровне (в нашем случае — Ethernet).

Поле «Идентификатор протокола» определяет протокол межсетевого уровня (в нашем случае — IP).

Поля длин задают длину адресов ( в нашем случае: «Длина HW-адреса» равна 6, а «Длина адреса» равна 4).

Поле «Операция» содержит идентификатор типа ARP-сегмента (запрос или ответ).

Примечание. Как видно из структуры ARP-сегмента протокол ARP может быть использован для совместной работы TCP/IP не только с протоколом Ethernet, но и с другими протоколами сетевого уровня, когда в этом есть необходимость.

Алгоритм использования протокола ARP для построения таблицы трансляции на некотором узле сети (назовем его А) выглядит следующим образом.

  1. На узле А IP-модуль передает сетевому интерфейсу сегмент для его пересылки узлу Б (в сегменте присутствует IP-адрес узла Б). Сетевой интерфейс просматривает свою таблицу трансляции адресов, пытаясь по известному IP-адресу узла Б определить его Ethernet-адрес. Если необходимая строка в таблице есть, то сетевой интерфейс формирует Ethernet-кадр и передает его в сеть.
  2. Если нужной строки в таблице нет, то сетевой интерфейс строит ARP-сегмент, содержащий IP-адрес узла Б, упаковывает его в Ethernet-кадр. Этот кадр в качестве Ethernet-адреса приемника содержит широковещательный адрес, что обеспечит получение этого кадра всеми узлами локальной сети.
  3. Все узлы локальной сети получают данный Ethernet-кадр, а в нем ARP-сегмент. IP-адрес из ARP-сегмента сравнивается с собственным IP-адресом и, если они совпадают (это должно иметь место только на узле Б), то собственный Ethernet-адрес возвращается узлу А в ответном ARP-сегменте.
  4. Получив ответный ARP-сегмент, сетевой интерфейс на узле А добавляет в таблицу трансляции новую строку, содержимое которой и будет использовано для посылки IP-сегмента к узлу Б.

Для того, чтобы таблица трансляции адресов с малым временем реакции отслеживала изменения в сети, ее строки периодически (через 1. 20 минут) принудительно очищаются.

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

Задачу построения строк таблицы трансляции по известному Ethernet-адресу решает протокол RARP (Reverse ARP), описанный в RFC 903 и использующий сегмент той же структуры, что протокол ARP. Определение IP-адреса по известному Ethernet-адресу требуется в момент начальной загрузки бездисковых ЭВМ, подключенных к сети.

Примечание. Использование протоколов ARP и RARP может быть отключено системным администратором.

7.2. Протокол SLIP

Протокол SLIP (Serial Line Internet Protocol) обеспечивает соединение двух ЭВМ через последовательный интерфейс (например, V.24 ). Протокол SLIP описан в RFC 1055.

Протокол очень прост. Все SLIP-кадры начинаются со служебного символа 0xEB, называемого ESC, а заканчиваются служебным символом 0xC0, называемым END. Между этими символами располагаются передаваемые данные.

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

RFC 1055 не специфицирует максимальной длины кадра (MTU), но существующие реализации протокола ориентированы на значение MTU равное 1006 байт.

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

7.3. Протокол PPP

Протокол PPP (Point-to-Point Protocol) также может быть использован для соединения двух ЭВМ по последовательному интерфейсу. Протокол PPP (RFC 1331) разработан позднее протокола SLIP, поэтому в нем ликвидированы некоторые недостатки протокола SLIP, в частности:

  • поддерживаются различные протоколы вышележащего уровня (а не только IP);
  • используются контрольные суммы.

Для идентификации границ PPP-кадра используется служебный символ 0x7E.

Передаче данных по протоколу PPP предшествует этап тестирования и конфигурирования соединения с помощью протокола LCP (Link Control Protocol), являющегося частью PPP. LCP используется и для завершения соединения.

Кроме того, для обмена управляющей информацией используется протокол NCP (Network Control Protocol). Каждый протокол, лежащий выше PPP, имеет свою версию протокола NCP. NCP, определенный для протокола IP, носит название IPCP (Internet Protocol Control Protocol).

План урока по теме: «Глобальные сети» (9 класс)

Компьютерные сети§ 4. Глобальная сеть Интернет1

2 слайд Что такое Интернет?
2
InterNet = Interconnected Networks
Интернет – это глобальная сеть, объединяющая компьютерные сети.
взаимосвязанные сети
распределённая сеть
маршрутизаторы в узлах сети
Данные хранятся на серверах (клиент-сервер).
Провайдер – это фирма, предоставляющая пользователям выход в Интернет через её локальную сеть.

оптическая сеть (PON)Подключение к Интернету3ИнтернетЛокальная сеть провайдер.

3 слайд оптическая сеть (PON)
Подключение к Интернету
3
Интернет
Локальная
сеть провайдера
кабельная линия
телефонная станция
ADSL-модем
сплиттер
ADSL-модем
сплиттер

Подключение через мобильную связь4ИнтернетЛокальная сеть оператора мобильной.

4 слайд Подключение через мобильную связь
4
Интернет
Локальная
сеть оператора мобильной
связи
USB-модем
3G (3rd generation = 3-е поколение) – до 10 Мбит/с
4G (4th generation) – до 1 Гбит/с
EDGE – до 474 кбит/с
5G (5th generation) – до 35 Гбит/с (Мегафон, тестирование)

Протоколы Интернета (TCP/IP)5TCP (Transmission Control Protocol) – протокол у.

5 слайд Протоколы Интернета (TCP/IP)
5
TCP (Transmission Control Protocol) – протокол управления передачей данных
установка соединения
разбивка файла на пакеты (около 1,5 Кбайт)
доставка данных
сборка файла из пакетов
IP (Internet Protocol) – межсетевой протокол
правила построения пакета
система IP-адресов

IP-адреса6 Каждый узел имеет уникальный адрес!!3232262259 =11000000101010000.

6 слайд IP-адреса
6
Каждый узел имеет уникальный адрес!
!
3232262259
=110000001010100001101000011100112
11000000.10101000.01101000.011100112
192.168.104.115
IP-адрес содержит номер сети и код узла в этой сети.
Каков интервал чисел в IP-адресе?
?
Сколько байтов занимает IP-адрес?
?
0…255
4

IP-адреса7 IP-адресов не хватает!!IP-адрес версии 6 (IPv6): 128-битные адрес.

7 слайд IP-адреса
7
IP-адресов не хватает!
!
IP-адрес версии 6 (IPv6): 128-битные адреса
2001:0DB8:11A3:09D7:1F34:8A2E:07A0:765D
Компьютер может иметь несколько IP-адресов!
!
IP-адрес присваивается не узлу, а каналу связи (интерфейсу).
кабельная сеть
192.168.104.11
Wi-Fi
195.35.120.153
маршрутизатор
домашняя сеть
192.168.0.1
сеть провайдера
10.12.130.55

Доменные имена81984 г. DNS = Domain Name System, система доменных имёнwww.goo.

8 слайд Доменные имена
8
1984 г. DNS = Domain Name System, система доменных имён
www.google.ru
173.194.71.94
ru
уровень 1
com
edu
org
net
ua
by
mail
уровень 2
spb
msk
www
уровень 3
news
list
.
корневой домен
Домен – это группа символьных адресов в Интернете.

Домены верхнего уровня9

9 слайд Домены верхнего уровня
9

Преобразование адресов10Сервер DNS преобразует доменный адрес в IP-адрес.www.

10 слайд Преобразование адресов
10
Сервер DNS преобразует доменный адрес в IP-адрес.
www.google.com
запрос серверу DNS для получения IP-адреса сайта www.google.com
ожидание ответа
запрос Web-страницы по полученному IP-адресу
172.194.71.104
DNS-сервер
193.124.85.210

Преобразование адресов11173.194.71.99 173.194.71.103 173.194.71.104 173.194.7.

11 слайд Преобразование адресов
11
173.194.71.99
173.194.71.103
173.194.71.104
173.194.71.105
173.194.71.106
173.194.71.147
ycad-ba.narod.ru
csmsoft.narod.ru
opera-site.narod.ru
detki-help.narod.ru
seasoft.narod.ru

2ip.ru/domain-list-by-ip
193.109.247.225
www.google.com
2ip.ru/lookup
Зачем?
?
Зачем?
?

12Задание на дом:§ 4, стр. 21-27, по желанию подготовить сообщение по темам.

12 слайд 12
Задание на дом:
§ 4, стр. 21-27,
по желанию подготовить сообщение по темам на стр. 27
Выводы, стр. 26 учебника.
Подводя итог урока, я бы хотел узнать:
— что нового вы сегодня узнали
— какие моменты урока вам особенно запомнились
Итоги урока:

Источники иллюстраций13techlearning.com www.hp.com technotactics.in www.dlink.

13 слайд Источники иллюстраций
13
techlearning.com
www.hp.com
technotactics.in
www.dlink.ru
dlink.com.ru
www.texnooffice.ru
hitechworldwide.net
ru.wikipedia.org
fotosearch.com
magicjack.com
map.yandex.ru
keenetic.com
www.innopvaticecomputers.in
иллюстрации художников издательства «Бином»
авторские материалы

Рабочие листы
к вашим урокам

Выбранный для просмотра документ Урок 4. Глобальные сети 9 класс.docx

Урок 4. Глобальные сети. §4 (9 класс)

Цель урока — познакомиться с принципами работы гло­бальной сети Интернет.

Если в 7-м классе при изучении сети Интернет основное внимание уделялось практическим навыкам её использования, на этом уроке нужно познакомить учащихся с основными прин­ципами построения и работы глобальной сети.

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

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

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

Мотивированным учащимся будут интересны следующие нюансы:

• один компьютер может иметь несколько IP -адресов (если у него несколько внешних интерфейсов — сетевых карт, Wi — Fi адаптеров);

• один IP -адрес может быть связан с несколькими доменными именами (при размещении нескольких сайтов на одном фи­зическом сервере);

• одно доменное имя может быть связано с несколькими IP — адресами (для распределения запросов в высоконагружен­ных сервисах, таких как поисковые системы).

При нехватке времени выполнение онлайн-теста № 4 мож­но включить в домашнее задание.

Задачи: систематизировать знания и умения учащихся

развивать коммуникативные навыки общения и умения говорить, слушать и слышать

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

Тип урока: изучение нового материала

Оборудование: учебник, тетрадь, презентация, интерактивная панель.

Организационный момент

Домашнее задание.

Тест 3. Локальные сети

Устная работа

Объяснение нового материала.

Ключевые слова:

маршрутизатор

Протоколы TCP / IP

IP -адрес

Система доменных имён

1. Что такое Интернет (вопросы учащимся)

Вы уже знаете, что Интернет — это глобальная компьютерная сеть. Слово «Интернет» (англ. Internet) возникло как сокращение от Interconnected Networks — «объединённые сети» или «сеть сетей».

Первая версия сети была построена в 60-х годах XX века американскими военными . Перед разработчиками поставили задачу: создать сеть, которая осталась бы работоспособной при разрушении 70% узлов (в случае ядерной войны). У такой сети не должно быть центра, от которого зависит её работа. В то же время невозможно соединить каждый компьютер с каждым — на это нужно слишком много линий связи. В результате было найдено решение: сделать сеть, состоящую из ячеек, как рыболовная сетка (рис. 1.10). Такие сети называются распределёнными.

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

Если же этот канал связи вышел из строя, то пакет будет отправлен по более длинному, но работающему пути.

В Интернете нет единого центра управления . Если бы он существовал, то для разрушения всей сети было бы достаточно уничтожить этот центр.

Информация в Интернете хранится на серверах, связанных скоростными линиями связи (оптоволоконными, спутниковыми). Практически все услуги Интернета основаны на использовании технологии «клиент-сервер»: программа-клиент на компьютере пользователя запрашивает данные, сервер возвращает ответ.

2. Как подключиться к Интернету?

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

Существует несколько способов подключения к провайдеру:

• с помощью ADSL-модема, который использует телефонную линию, скорость передачи данных из Интернета к пользователю может достигать 25 Мбит/с;

• через кабельную локальную сеть провайдера (если она существует в вашем доме);

• с помощью оптических сетей с высокой пропускной способностью (англ. PON: Passive Optical Network — пассивная оптическая сеть); в таких сетях для передачи данных со скоростью до 2,5 Гбит/с используются оптоволоконные кабели и оптические разветвители, которые не требуют питания и обслуживания;

• с помощью беспроводных модемов (USB-модемов — рис. 1.11), которые используют сети сотовых операторов и работают везде, где доступна мобильная связь; скорость передачи данных для сетей 3-го поколения (англ. 3G : 3 rd generation) достигает 10 Мбит/с, а в сетях 4-го поколения (4G) — до 1 Гбит/с;

• с помощью беспроводных каналов связи по технологии Wi-Fi (со скоростью до 54 Мбит/с).

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

3. Протоколы Интернета

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

С помощью протокола TCP компьютер устанавливает соединение с другим компьютером и обеспечивает доставку данных. Блок данных, который нужно передать, разбивается на пакеты (размер пакета обычно не превышает 1,5 Кбайта).

IP-протокол устанавливает правила построения пакета и систему IP-адресов, с помощью которой маршрутизаторы определяют маршруты движения пакетов .

4. IР-адреса

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

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

Такие адреса (их называют IP-адресами, потому что они используются IP-протоколом) представляют собой 32-битные числа, например

3232262259 = 110000001010100001101000011100112

Для удобства обычно разбивают это число на группы из 8 двоичных разрядов (октеты):

11000000.10101000.01101000.01110011

и записывают каждую группу в десятичной системе счисления:

192.168.104.115

В IP-адресе закодированы номер сети и номер компьютера в сети . Такая структура чем-то напоминает обычный почтовый адрес: индекс определяет номер почтового отделения, а адрес — конкретные улицу, дом и квартиру.

Определите, в каком диапазоне должно находиться каждое из четырёх чисел, составляющих IP-адрес. Как вы рассуждали?

Какие последовательности не могут быть IР-адресами?

101.123.278.211 156.21.0.1 257.212.100.1

112.345.0.43 23.32.12.11 101.1.201.2

IP-адрес присваивается не компьютеру, а каналу связи (интерфейсу). Поэтому один компьютер может иметь несколько IP-адресов, например, если у него есть сетевая карта и адаптер Wi-Fi или две сетевые карты.

5. Доменные имена

В отличие от компьютеров человеку неудобно работать с числовыми адресами . Поэтому в 1984 году была разработана система доменных имён (DNS), которая позволила использовать символьные имена сайтов, например: www.mail.ru.

Домен — это группа символьных адресов в Интернете . Домены образуют многоуровневую структуру (иерархию, дерево), вкладываются друг в друга, как матрёшки (рис. 1.12).

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

Точка в корне дерева — это корневой домен. Домены верхнего уровня могут обозначать страну, каждая страна имеет свой двухбуквенный домен. Например, домены ru, рф и su принадлежат России.

Существуют и «общие» домены верхнего уровня, не принадлежащие никакой стране, например: com, net, org, biz, info, name, museum и др.

Используя дополнительные источники, найдите ответы на вопросы.

— Какие восемь общих доменов верхнего уровня появились в 1984 году?
— Какие домены верхнего уровня были добавлены в 2001 году?
— Каково назначение доменов верхнего уровня edu, name, eco, jobs, mobi, travel?

Закрепление полученных знаний. Формирование умений и навыков

Ответить на вопросы к параграфу

Тест №4., Составить интеллект-карту (если останется время)

Итоги урока.

Выводы, стр. 26 учебника. Рефлексия

Домашнее задание

§ 4, стр. 21-27, по желанию подготовить сообщение по темам указанным на стр. 27

Какой протокол устанавливает правила построения пакета

Занятие 1. Основные понятия компьютерных сетей.
Курс «Системный администратор компьютерной сети».
vsit, Thursday 16 August 2012 — 14:51:04

[newpage=Компьютерные сети] Занятие 1. Основные понятия компьютерных сетей.

  • Компьютерные сети и протоколы
  • Классификация локальных сетей
    • Одноранговые сети
    • Сети с выделенным сервером
    • Рабочие группы
    • Домены
    • Пространство доменных имен
    • IP-адреса
    • IP сети
    • Подсети и маски подсетей
    • Статические IP-адреса
    • Динамические IP-адреса
    • IP-маршрутизация.
    • Протоколы ARP и RARP.
    • Протоколы динамической маршрутизации.

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

    Широкое внедрение персональных компьютеров привело к необходимости обмена информацией, обрабатываемой на разных компьютерах. Как перенести большой объем информации с одного компьютера на другой? Как распечатать информацию, если всего один принтер? Как предоставить всем компьютерам выход в Интернет? Эти и многие другие проблемы решают компьютерные сети.

    • обмен информацией;
    • общее использование программного обеспечения;
    • общее использование оборудования (принтеры, модемы, диски и т.п.).

    Пакеты.

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

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

    Если компьютер должен передать по сети, например, текстовый файл большого размера, то сетевой адаптер этого компьютера разделит файл на фрагменты и передаст каждый фрагмент в отдельном пакете. Делается это затем, чтобы большие файлы не загружали сеть на долгое время, давая возможность другим компьютерам работать в сети. Принимающий сетевой адаптер получит все передаваемые ему пакеты, соединит их в единый файл и только после этого передаст готовый файл своему компьютеру. Таким образом, в сети один за другим передаются пакеты от разных компьютеров, не создавая «заторов».
    Пакет имеет строго определенный формат, поэтому любой компьютер, получив пакет, сможет его прочитать. Этот формат определяется сетевым протоколом, который устанавливается в настройках операционной системы. Протокол представляет собой набор правил и соглашений для передачи информации по компьютерной сети. Если на компьютерах установлен одинаковый сетевой протокол, то они смогут «понимать» друг друга. Компьютеры с разными протоколами имеют разный формат пакетов и соответственно друг друга не поймут, также как люди, говорящие на разных языках. Например, пакет Ethernet может иметь размер от 64 до 1 518 байт, из них 18 байт используется под заголовок. Поэтому в одном пакете Ethernet можно передавать не более 1 500 байт данных. Пакеты Token Ring вмещают 4 202 байта данных.
    Иногда пакет называют кадром (Frame).

    Протоколы.

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

    Есть три наиболее распространенных протокола, используемых в компьютерных сетях Microsoft — NetBEUI, TCP/IP, IPX/SPX.

    Сетевой протокол Microsoft TCP/IP особенно широко используется в сети Интернет. Поэтому для совместимости пакетов локальной сети с пакетами сети Интернет мы будем пользоваться только протоколом TCP/IP.

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

    Серверы предоставляют свои ресурсы (диски, папки с файлами, принтеры, устройство для чтения CD/DVD и т.п.) другим компьютерам сети. Как правило, это специально выделенный высокопроизводительный компьютер, оснащенный специальной серверной операционной системой (Windows Server 2003), центрально управляющий сетью.
    Рабочая станция (клиентский компьютер) — это компьютер рядового пользователя на базе Windows XP Professional, получающий доступ к ресурсам серверов.
    По типу организации работы компьютеров в сети различают

    • Одноранговые сети
    • Сети с выделенным сервером

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

    В одноранговой сети все компьютеры имеют одинаковый приоритет и независимое администрирование.
    Каждый компьютер имеет установленную операционную систему платформы Microsoft Windows любой версии или совместимую с ней. Эта операционная система поддерживает работу клиента сети Microsoft.
    Пользователь каждого компьютера самостоятельно решает вопрос о предоставлении доступа к своим ресурсам другим пользователям сети. Это наиболее простой вариант сети, не требующий особых профессиональных знаний. Установка такой сети не занимает много времени.
    Для построения одноранговой локальной сети достаточно объединить компьютеры при помощи сетевого кабеля (смонтировать кабельную систему) и установить на компьютеры, например, ОС Windows XP Professional. Мастер подключения к сети, поможет осуществить все необходимые настройки операционной системы.

    Пример одноранговой сети на базе Windows XP Professional

    Сети с выделенным сервером

    • Необходимо установить и настроить на одном из компьютеров серверную операционную систему (ОС), например Microsoft Windows Server 2003. На этом сервере создается общая база учетных записей всех пользователей, назначаются общие ресурсы, и определяется доступ к каждому для категорий или отдельных пользователей.
    • На клиентские компьютеры устанавливается сетевая операционная система Windows XP Professional, которая настраивается для работы с сервером. При подключении к сети каждый пользователь проходит регистрацию на сервере. Только пользователи, прошедшие регистрацию, т.е. зарегистрированные на сервере, могут получить доступ к сети и общим сетевым ресурсам.

    Пример сети с выделенным сервером на базе Windows Server 2003 и Windows XP Professional

    • Файловый сервер (файл-сервер) служит для хранения файлов,
    • Сервер печати (принт-сервер) предоставляют принтеры в общее пользование,
    • Сервер приложений обеспечивает работу пользователей с сетевыми приложениями,
    • Web-серверы предоставляют общий доступ к данным,
    • Маршрутизатор — для предоставления доступа к другим сетям и удаленного доступа к вашей сети,
    • Серверы электронной почты хранят почтовые ящики пользователей и организовывают доставку почты по сети, и т. д.
    • На компьютер, который выбран в качестве сервера, устанавливается специализированная сетевая операционная система. Установка, настройка и администрирование этой системы, клиентов сети, разделяемых ресурсов требует от системного администратора дополнительных знаний.
    • При неисправности сервера доступ к сети и сетевым ресурсам становится невозможен. Работа пользователей на каждой рабочей станции может быть продолжена только в автономном режиме.

    Не требует серверного ПО

    Не нужен квалифицированный системный
    администратор

    Меньшая стоимость
    проекта.

    Сложность администрирования каждого компьютера в отдельности

    Ухудшение производительности при совместном использовании pесурсов.

    Сеть с выделенным сервером

    Легче управлять, т.к. администрирование
    централизовано

    Сложность настройки, администрирования системы, клиентов, разделяемых ресурсов

    Отсутствие доступа к сети при выходе из строя
    cервера.

    Рабочие группы

    • какие ресурсы этого компьютера будут разделяемыми (общими),
    • какие пользователи сети будут иметь доступ к этим ресурсам, с какими правами.

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

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

    Домены

    В сетях с выделенными серверами администрирование осуществляется централизованно. Для упрощения администрирования, любые компьютеры сети и разделяемые ресурсы можно объединять в группы, называемые доменами.
    Домен — это логическая группировка любых компьютеров сети под одним именем.
    Для домена создается общая база данных. В Windows Server 2003 эта база данных называется каталогом и входит в службу каталога Active Directory.

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

    Домен может объединять любые компьютеры, расположенные в локальной сети или находящиеся в разных городах, странах. Соединение компьютеров домена может быть любым, включая телефонные линии, оптоволоконные линии, спутниковую связь и другие.
    Служба каталога Active Directory разворачивается на любом сервере, входящем в состав сети. Такой сервер получает дополнительно статус контроллера домена. Администрирование сети и управление политиками безопасности осуществляется на контроллере домена.
    Доменов в сети может быть несколько, и каждый домен обязательно имеет один или несколько контроллеров домена.
    Если контроллеров домена несколько, то база данных Active Directory копируется на каждый. Это повышает отказоустойчивость и делает администрирование более удобным, т.к. все изменения, проведенные на одном контроллере домена, отображаются на других. Этот процесс называется репликацией.
    [newpage=Адресация компьютеров сети]
    Адресация компьютеров сети

    Правила взаимодействия в сети, называемые сетевым протоколом TCP/IP определяют, что каждый компьютер в сети должен иметь адрес, так называемый IP-адрес. Вид адреса — 4 числа, записанные через точку. Например, 130.51.45.2 или 192.168.0.1.
    IP-адрес компьютера-отправителя и IP-адрес компьютера-получателя указывается в пакете информации, который передается по сети.
    Компьютеры находят друг друга по IP-адресам. Если же пользователю необходимо найти компьютер в сети, он должен будет указать его IP-адрес, подобно как мы набираем номер телефона, чтобы позвонить знакомым. Знать IP-адреса всех нужных компьютеров для человека достаточно сложно. Для облегчения доступа пользователей к компьютерам сети (в том числе сети Интернет) стали использовать имена. Для поиска сервера в Интернете проще указать его имя, например, microsoft.com, чем IP-адрес, который может выглядеть как 207.46.230.219.

    Для совместимости числового IP-адреса и буквенного имени Windows XP и Windows Server 2003 имеют специальную программу (службу) DNS.

    Система доменных имен DNS дополнительно в статье.

    В операционную систему Windows Server 2003 включена служба DNS (Domain Naming System — система доменных имен).

    • организацию пространства имен;
    • обеспечение механизма разрешения, т.е. сопоставление «буквенного» адреса цифровому IP-адресу компьютера в сети.

    Пространство доменных имен

    Пространство доменных имен имеет иерархическую структуру, которая представлена на рисунке.

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

    • ru, uk и т.д. — определяют географическое положение (ru — Россия, uk – Украина)
    • com — коммерческие организации (например, microsoft.com);
    • edu — образовательные (например, mit.edu);
    • gov — правительственные организации (например, congress.gov);
    • org — некоммерческие организации (например, rfc-editor.org);
    • net — организации, поддерживающие части сети Internet (например, nsf.net).

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

    При формировании имени домена к нему добавляется имя родительского домена. Например, домен второго уровня microsoft.com, домен третьего уровня eng.microsoft.com.
    Домены ниже третьего уровня, как правило, встречаются редко.

    Имена узлов. Каждый компьютер, по другому узел или хост, в сети Internet однозначно определяется своим полным доменным именем, которое включает имя узла и имена всех доменов по направлению от узла к корню.
    Например, компьютер имеет имя WinXP. Если собрать имена трех доменов по структуре, то получится полное доменное имя узла — winxp.test.fio.ru
    Алгоритм работы службы DNS достаточно прост.

    • При установке операционной системы протокол TCP/IP настраивается на сервер имен того домена, в который входит данный компьютер.
    • Когда программе-клиенту требуется по доменному имени выяснить IP-адрес, она через протокол TCP/IP связывается с сервером имен, передавая ему свой запрос.
    • Сервер имен обрабатывает запрос. Если указанный домен входит в его базу данных, то сервер преобразует имя в IP-адрес и возвращает результат клиенту.
    • Если запрашиваемое доменное имя не входит в его базу, то он переадресует запрос вышестоящему серверу имен.

    Топология локальных сетей (физическое соединение)

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

    Все соединения производятся кабелем типа «витая пара». По принципам передачи пакетов информации такая сеть относится к типу Ethernet. Пропускная способность стандартной Ethernet не более 10 Мбит/с. В настоящее время широко используется Fast Ethernet с пропускной способностью 100 Мбит/с и Gigabit Ethernet с ограничением по скорости 1 Гбит/с.

    Тип соединения «звезда»

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

    Соединение нескольких компьютерных групп

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

    Кабельная система включает в себя две основные подсистемы: горизонтальная и вертикальная. Горизонтальная подсистема – это топология «звезда», расположенная в пределах одного этажа. Вертикальная подсистема связывает отдельные этажи здания.

    Горизонтальная подсистема делится на два типа:

    • централизованная
    • децентрализованная.

    Централизованная

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

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

    Децентрализованная

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

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

    Тему: «Многоуровневый процесс коммуникации. Сетевые компоненты.» можно посмотреть здесь[newpage=Стек протоколов TCP/IP]
    Стек протоколов TCP/IP

    Это стандартизованный набор сетевых протоколов. В настоящее время — это основной набор протоколов взаимодействия в Интернете. Более подробно об этом стеке протоколов и не только о нем можно прочитать в этой статье.

    В состав стека протоколов TCP/IP входят два основных протокола: IP, TCP и несколько вспомогательных протоколов.

    • Протокол IP (Internet Protocol) — основной протокол сетевого уровня. Определяет способ адресации на сетевом уровне.
    • Протокол TCP (Transmission Control Protocol) — протокол, обеспечивающий гарантированную доставку данных.

    Как работают эти протоколы?

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

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

    Каждой программе назначается номер TCP- порта в соответствии с ее функциональным назначением на основе определенных стандартов. Порт можно рассматривать как ячейку в почтовом отделении связи. Протокол IP определяет только адрес почтового отделения, а протокол TCP положит конверт в нужную ячейку.
    Таким образом, стек протоколов IP и TCP обеспечивают полную адресацию:

    • Номер TCP-порта позволяет однозначно идентифицировать программу на компьютере сети,
    • Компьютер в сети однозначно определяется IP-адресом.

    Следовательно, комбинация IP-адреса и номера порта позволяет однозначно идентифицировать программу в сети. Такой комбинированный адрес называется сокетом (socket).

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

    IP-адреса, IP-сети. Подсети и маски подсетей
    Более подробно об этом читаем в этой статье.
    IP-адреса

    Каждый компьютер в локальной сети имеет свой уникальный адрес, так же как человек имеет свой почтовый адрес. Именно по этим адресам компьютеры находят друг друга в сети. Двух одинаковых адресов в одной сети быть не должно. Формат адреса стандартный и определен протоколом IP.

    IP-адрес компьютера записывается в 32 разрядах (4 октета). Каждый октет содержит десятичное число от 0 до 255 (в двоичном виде запись представляет последовательность 0 и 1). IP-адрес представляет собой четыре числа, разделяемых точкой. Например, компьютер с IP-адресом 192.168.3.24. Общее число IP-адресов составляет 4,2 млрд., все адреса уникальны.
    IP-адрес может быть присвоен не только компьютеру, но и другим сетевым устройствам, например, принт-серверу или маршрутизатору. Поэтому все устройства в сети принято называть узлами или хостами.
    Одно и тоже физическое устройство (компьютер или др.) может иметь несколько IP-адресов. Например, если в компьютер установлено несколько сетевых адаптеров, то каждый адаптер должен иметь свой уникальный IP-адрес. Такие компьютеры используются для соединения нескольких локальных сетей и называются маршрутизаторами.

    IP сети

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

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

    Для удобства, компьютеры с одним номером сети группируются в логические сети IP-сети.
    Связь между логическими IP-сетями осуществляют маршрутизаторы, отвечающие за передачу данных. А сам процесс передачи данных — маршрутизацией.
    Процесс целенаправленной доставки данных между IP-сетями, связанный с обеспечением безопасности передаваемых данных, преобразование адресов, фильтрацию и т.п., осуществляют другие специальные устройства – шлюзы.

    Подсети и маски подсетей

    Введение адреса сети упростило проблемы маршрутизации, но не решило их до конца (например, в больших локальных сетях). Поэтому большую IP-сеть разбивают на несколько подсетей, присвоив каждой из них свой адрес.
    Подсети — это отдельные, самостоятельно функционирующие части сети, имеющие свой идентификатор.
    Для адреса подсети, в IP-адресе, выделяется пространство из адреса узла.
    Для определения адреса сети и подсети используется маска подсети. Формат записи маски подсети такой же, как и формат IP-адреса, это четыре поля, разделяемых точкой. Значения полей маски задаются следующим образом:

    • все биты, установленные в 1, соответствуют идентификатору сети;
    • все биты, установленные в 0, соответствуют идентификатору узла.

    Если все биты октета установлены в 1, то это эквивалентно числу 255. Маска рассматривается только в паре с IP-адресом. Например, маска подсети 255.255.255.0 и адрес 192.168.100.5 говорят о том, что 192.168.100 — это номер сети, а 5 — номер компьютера в этой сети.
    Просматривая адрес IP через маску подсети IP-протокол, определяет адрес сети, адрес подсети и номер узла.

    Таким образом, в паре с IP-адресом компьютеров обязательно указывается маска подсети.

    Статические и динамические IP-адреса. DHCP

    Все IP-адреса должны быть уникальны во всем пространстве сети. Есть два способа задать эти адреса компьютерам сети.

    Статические IP-адреса

    Статический IP-адрес присваивается компьютеру вручную. Он прописывается администратором сети в настройках протокола TCP/IP на каждом компьютере сети и жестко закрепляется за компьютером.
    Важное преимущество: постоянное соответствие IP-адресов определенным компьютерам. Это позволяет, например, запретить определенному компьютеру выходить в Интернет, или определить, с какого компьютера выходили в Интернет и т.п.
    В присвоении статических адресов компьютерам есть определенные неудобства:

    • Администратор сети должен вести учет всех используемых адресов, чтобы исключить повторы
    • При большом количестве компьютеров в локальной сети установка и настройка IP-адресов отнимают много времени

    Динамические IP-адреса

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

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

    Сети с выделенным сервером

    В сетях, управляемых сервером, динамический IP-адрес назначается специальной серверной службой DHCP, входящей в состав Windows Server 2003. В параметрах службы DHCP администратором сети прописывается IP-диапазон, адреса из которого, будут выдаваться другим компьютерам сети.
    Сервер, на котором работает эта служба, называется DHCP-сервер. Компьютер, получающий IP-адрес из сети, называется DHCP-клиент.

    Одноранговые сети

    В одноранговой сети нет DHCP-сервера, а на каждом компьютере установлен (по умолчанию) DHCP-клиент. Во время загрузки операционной системы DHCP-клиент пытается найти в сети доступный DHCP-сервер для получения IP-адреса. После неудачной попытки получить IP-адрес, DHCP-клиент данного компьютера включает встроенную функцию IANA (Internet Assigned Numbers Authority), которая назначает компьютеру IP-адрес и маску подсети, используя один из зарезервированных адресов. При этом служба IANA отслеживает уникальность адресов в сети.

    Зарезервированные адреса назначаются из диапазона 169.254.0.0 до 169.254.255.255 с маской подсети 255.255.0.0. Последние два поля адреса представляют уникальный идентификатор клиента.

    Автоматическое назначение IP-адреса проводится последовательно на всех компьютерах сети.

    Маршрутизаторы и шлюзы.

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

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

    В качестве маршрутизатора может работать компьютер под управлением операционной системой Windows 2003 Server или Windows XP Professional. Функции маршрутизации входят в состав этих операционных систем.

    Маршрутизатор является шлюзом для каждой сети, которые он объединяет. Точнее шлюзом для локальной сети является сетевой адаптер, установленный в маршрутизаторе, и подключенный к этой сети. Например, рабочая станция локальной сети хочет подключиться к рабочей станции из другой сети. Она отправляет запрос в свою сеть с целью найти нужный IP-адрес. Если адрес не был найден в сети, то запрос отправляется в шлюз этой сети, т.е. на маршрутизатор, который в свою очередь перенаправляет запрос в другую сеть. Если во второй сети компьютер был найден, то они связываются через маршрутизатор.

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

    Наиболее распространенные протоколы маршрутизации, входящие в состав стека протоколов TCP/IP:

    Address Resolution Protocol, ARP. Протокол разрешения адресов, сопоставляет IP-адрес с адресом физического оборудования MAC-адресом. Посмотреть соответствие адресов из ARP-таблицы можно набрав в командной строке arp и указав IP-адрес.
    *Routing Information Protocol, RIP. Протокол маршрутной информации, который используется для обратной совместимости с существующими RIP-сетями.
    *Open Shortest Path First, OSPF. Протокол выбора кратчайшего маршрута.

    IP-маршрутизация.

    IP-Маршрутизация — процесс выбора пути для передачи пакета из одной сети в другую. Под путем (маршрутом) понимается последовательность маршрутизаторов, через которые проходит пакет по пути к узлу-назначению. IP-маршрутизатор — это специальное устройство, предназначенное для передачи пакетовиз одной сети в другую и обеспечивающее определение пути прохождения пакетов в составной сети. Маршрутизатор должен иметь несколько IP-адресов с номерами сетей, соответствующими номерам объединяемых сетей.

    Маршрутизация осуществляется на узле-отправителе в момент отправки IP-пакета, а затем на IP-маршрутизаторах.

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

    Протоколы ARP и RARP.

    Основным функциональным достоинством IP-адресации является полная логическая независимость IP-адресов от физических адресов. Однако чтобы средства канального уровня могли осуществить доставку данных, необходимо знание физического адреса получателя. Механизм определения по IP-адресу физического адреса узла-получателя обеспечивает протокол ARP (Address Resolution Protocol, Протокол Разрешения Адреса).

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

    Наличие на каждом узле ARP-таблицы позволяет снизить объем широковещательной рассылки, поскольку запрос направляется в сеть только в случае, если нужное соответствие не найдено в ARP-таблице.

    В ряде случаев может оказаться необходимым определить IP-адрес по MAC-адресу. Для этого используется протокол RARP (Reverse Address Resolution Protocol). Функционально RARP схож с протоколом ARP.

    Протоколы динамической маршрутизации

    Протоколы динамической маршрутизации предназначены для автоматизации процесса построения маршрутных таблиц маршрутизаторов. Принцип их использования достаточно прост: маршрутизаторы с помощью устанавливаемого протоколом порядка рассылают определенную информацию из своей таблицы маршрутизации другим и корректируют свою таблицу на основе полученных от других данных.
    Такой метод построения и поддержки маршрутных таблиц существенно упрощает задачу администрирования сетей, в которых могут происходить изменения (например, расширение) или в ситуациях, когда какие-либо маршрутизаторы и/или подсети выходят из строя.
    Следует отметить, что использование протоколов динамической маршрутизации не отменяет возможность «ручного» внесения данных в таблицы маршрутизаторов. Внесенные таким образом записи называют статическими, а записи, полученные в результате обмена информацией между маршрутизаторами — динамическими. В любой таблице маршрутизации всегда присутствует, по крайней мере, одна статическая запись — маршрут по умолчанию.
    Современные протоколы маршрутизации делятся на две группы: протоколы типа «вектор-расстояние» и протоколы типа «состояние канала».
    В протоколах типа «вектор-расстояние» каждый маршрутизатор рассылает список адресов доступных ему сетей («векторов»), с каждым из которых связано параметр «расстояния» (например, количество маршрутизаторов до этой сети, значение, основанное на производительности канала и т.п.). Основным представителем протоколов данной группы является протокол RIP (Routing Information Protocol, протокол маршрутной информации).
    Протоколы типа «состояние канала» основаны на ином принципе. Маршрутизаторы обмениваются между собой топологической информацией о связях в сети: какие маршрутизаторы с какими сетями связаны. В результате каждый маршрутизатор имеет полное представление о структуре сети (причем это представление будет одинаковым для всех), на основе которого вычисляет собственную оптимальную таблицу маршрутизации. Протоколом этой группы является протокол OSPF (Open Shortest Path First, «открой кратчайший путь первым»).

    Протокол RIP.

    Протокол RIP (Routing Information Protocol, протокол маршрутной информации) является наиболее простым протоколом динамической маршрутизации. Он относится к протоколам типа «вектор-расстояние».
    Под вектором протокол RIP определяет IP-адреса сетей, а расстояние измеряется в переходах («хопах», hope) — количестве маршрутизаторов, которое должен пройти пакет, чтобы достичь указанной сети. Следует отметить, что максимальное значение расстояния для протокола RIP равно 15, значение 16 трактуется особым образом «сеть недостижима». Это определило основной недостаток протокола — он оказывается неприменимым в больших сетях, где Возможны маршруты, превышающие 15 переходов.
    Протокол RIP версии 1 имеет ряд существенных для практического использования недостатков. К числу важных проблем относятся следующие:

    • Оценка расстояния только с учетом числа переходов. Протокол RIP не учитывает реальную производительность каналов связи, что может оказаться неэффективным в гетерогенных сетях, т.е. сетях, объединяющих каналы связи различного устройства, производительности, в которых используются разные сетевые технологии.
    • Проблема медленной конвергенции. Маршрутизаторы, использующие протокол RIP. Рассылают маршрутную информацию каждые 30 с, причем их работа не синхронизирована. В ситуации, когда некоторый маршрутизатор обнаружит, что какая-либо сеть стала недоступной, то в худшем случае (если проблема была выявлена сразу после очередной рассылки) он сообщит об это соседям через 30 с. Для соседних маршрутизаторов все будет происходить также. Это означает, что информация о недоступности какой-либо сети может распространятся маршрутизаторам в достаточно долго, очевидно, что сеть при этом будет находиться в нестабильном состоянии.
    • Широковещательная рассылка таблиц маршрутизации. Протокол RIP изначально предполагал, что маршрутизаторы рассылают информацию в широковещательном режиме. Это означает, что отправленный пакет вынуждены получить и проанализировать на канальном, сетевом и транспортном уровне все компьютеры сети, в которую он направлен.

    Частично указанные проблемы решаются в версии 2 (RIP2).

    Протокол OSPF

    Протокол OSPF (Routing (Open Shortest Path First, «открой кратчайший путь первым») является более новым протоколом динамической маршрутизации и относится к протоколам типа «состояние канала».

    Функционирование протокола OSPF основано на использовании всеми маршрутизаторами единой базы данных, описывающей, как и с какими сетями связан каждый маршрутизатор. Описывая каждую связь, маршрутизаторы связывают с ней метрику — значение, характеризующее «качество» канала. Например, для сетей Ethernet со скоростью обмена 100 Мбит/с используется значение 1, а для коммутируемых соединений 56 Кбит/с — значение 1785. Это позволяет маршрутизаторам OSPF (в отличие от RIP, где все каналы равнозначны) учитывать реальную пропускную способность и выявлять эффективные маршруты. Важной особенностью протокола OSPF является то, что используется групповая, а не широковещательная рассылка.
    Указанные особенности, такие как групповая рассылка вместо широковещательной, отсутствие ограничений на длину маршрута, периодический обмен только короткими сообщениями о состоянии, учет «качества» каналов связи позволяют использовать OSPF в больших сетях. Однако такое использование может породить серьезную проблему — большое количество циркулирующей в сети маршрутной информации и увеличение таблиц маршрутизации. А поскольку алгоритм поиска эффективных маршрутов является, с точки зрения объема вычислений, достаточно сложным, то в больших сетях могут потребоваться высокопроизводительные и, следовательно, дорогие маршрутизаторы. Поэтому возможность построения эффективных таблиц маршрутизации может рассматриваться и как достоинство, и как недостаток протокола OSPF.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *