- •2. Разработка мультимедийного курса
- •1. Содержание курса «администрирование информационнх систем»
- •1.1. Принципы построения открытых системы и «клиент-серверных» технологий. Модель iso/osi
- •1.1.1 Открытые системы и открытые спецификации
- •1.1.2 Технологии «клиент-сервер»
- •1.1.3 Модель iso/osi, функции протоколов каждого из уровней
- •1.2. Стек tcp/ip и его протоколы
- •1.2.1 Структура стека tcp/ip
- •1.2.2 Краткая характеристика протоколов
- •1.2.3 Надежность протоколов
- •1.2.4 Инкапсуляция
- •1.2.5 Протокол ip и его основные функции
- •1.2.6 Фрагментация
- •1.2.7 Формат заголовка пакета Ipv4
- •1.2.8 Протокол iPv6
- •1.2.9 Протокол icmp
- •1.2.10. Протокол udp
- •1.2.11 Протокол tcp и формат его заголовка
- •1.2.12 Окно передачи в tcp
- •1.3. Адресация в ip сетях
- •1.3.1 Адресация в ip-сетях
- •1.3.2 Типы адресов: физический (mac), сетевой (ip) и символьный (dns)
- •1.3.3 Соглашения о специальных адресах
- •1.3.4 Отображение физических адресов на ip-адреса: протоколы arp и rarp
- •1.4. Принципы работы dns
- •1.4.1 Отображение символьных адресов на ip-адреса: служба dns
- •1.4.2. Основные домены верхнего уровня
- •1.4.3 Система доменных имен bind
- •1.4.4 Автоматизация процесса назначения ip-адресов узлам сети - протокол dhcp
- •1.5. Принципы и основные протоколы маршрутизации в Интернет
- •1.5.1 Основные принципы ip-маршрутизации
- •1.5.2 Разбиения адресного пространства сети на подсети
- •1.5.3 Маскирование
- •1.5.4 Таблицы маршрутизации в ip-сетях
- •1.5.5 Фиксированная маршрутизация
- •1.5.6 Простая маршрутизация
- •1.5.7 Адаптивная маршрутизация
- •1.5.8. Дистанционно-векторный алгоритм маршрутизации (на примере rip)
- •1.5.9 Алгоритм состояния связей (на примере ospf)
- •1.5.10 Комбинирование различных протоколов обмена
- •1.5.11 Протоколы egp и bgp сети Internet
- •1.6. Протоколы прикладного уровня
- •1.6.1 Основные сервисы Интернет и соответствующие протоколы
- •1.6.2 Порты и сокеты
- •1.6.3 Http, ftp и др. Протоколы прикладного уровня
- •1.6.4 Mime, типы и расширения
- •1.6.5 Этапы транзакции http
- •1.6.6 Понятия uri, url
- •1.6.7 Схемы http-сеанса
- •1.6.8 Структура Запроса клиента
- •1.6.9 Структура ответа сервера
- •1.6.10 Cookie
- •1.7. Программирование в Интернет
- •1.7.1 Программирование в Интернет
- •1.7.2 Серверное и клиентское по
- •1.7.3 Программы, выполняющиеся на клиенте (JavaScript, Java-аплеты)
- •1.7.4 Программы, выполняющиеся на сервере
- •1.7.5 Спецификация cgi
- •1.7.6 Perl
- •1.7.7 Isapi
- •1.8. Администрирование в Unix и в Windows. Управление web-сервером.
- •1.8.1 Администрирование в Unix и в Windows
- •1.8.2 Управление web-сервером
- •1.8.3 Построение isp
- •1.8.4 Архитектура сервера Apache
- •1.8.5 Архитектура сервера Internet Information Server
- •1.9. Интернет-экономика. Модели назначения цен. Сетевая коммерция.
- •1.9.1. Экономика информационных сетей.
- •9.2. Интернет-экономика (иэ): основные понятия иэ
- •1.9.3. Составляющие расходов на предоставление услуг Интернет
- •1.9.4. Межсоединения и распределенная экономика: ip-транспорт; структура цены и экономика соглашений о межсоединениях; разделение распределенной стоимости
- •1.9.5. Модель назначения цен. Оценка потребления: тарифы и цены в иэ; методы оценивания стоимости коммуникаций
- •1.9.6. Категории электронного бизнеса
- •1.9.7. Сетевая коммерция: услуги общественного и частного потребления; электронные службы; электронные платежные системы
- •1.9.8. Экономическая эффективность сетей типа Интернет
- •1.10. Перспективы развития глобальных информационных систем
- •2. Разработка мультимедийного курса
1.6.2 Порты и сокеты
За передачу данных в сети Интернет отвечают два протокола транспортного уровня - UDP (User Datagram Protocol) и TCP (Transmission Control Protocol). Данные передаются программами-приложениями этим протоколам, помещаются в "конверты" с набором соответствующих заголовков и только после этого передаются по сети.
UDP - это не очень надежная служба передачи данных. Отправитель данных не получает подтверждения их доставки получателю. Этот протокол не упорядочивает передаваемые пакеты, некоторые из них могут быть потеряны или, наоборот, возможно дублирование пакетов без попыток уведомления об ошибках отправителя данных. Протокол IP ведет себя так же. Единственное достоинство UDP - это поддержка номеров портов, что обеспечивает абсолютную идентификацию конкретных программ - приложений, работающих на компьютере, подключенном к сети, и подсчет контрольной суммы для простейшего контроля над ошибками. Но UDP работает быстрее, чем TCP (ведь заголовки пакетов у него в пять раз короче - 8 против 40 байт!), и используется приложениями, которым не нужен надежный транспорт, например управляющими сетью, службой определения сетевых адресов либо приложениями со встроенной надежностью. Каждая программа, которая использует в качестве транспорта протокол UDP, должна сама позаботиться о подтверждении получения данных и об упорядочивании и сортировке пакетов принимающей стороной.
Протоколы транспортного уровня имеют свой заголовок, и его формат не зависит от других протоколов. Вот общий вид заголовка UDP пакета:
Длина сообщения - это сумма размера заголовка (8 байт) и передаваемого блока данных. Минимальный размер пакета UDP равен восьми байтам, размеру заголовка. Если контрольная сумма не используется, значение этого поля может быть равным нулю.
Протокол транспортного уровня (UDP или TCP) получает данные от программы-приложения, форматирует их (формирует заголовок) и передает их IP протоколу для передачи по сети. Если UDP получает данные от сети (от IP протокола), то в зависимости от порта назначения он передает их соответствующему приложению.
Обратимся к сетевым стандартам (а конкретно - к RFC 814). Так как различные сетевые приложения могут выполняться на одном компьютере, имеющем один IP адрес, возникает необходимость в способе адресации пакетов данных этим приложениям. Один IP адрес и много приложений? Как разобраться, какому приложению адресовать какой пакет???
Может быть, раздать уникальные IP адреса всем приложениям и сетевым процессам или изменить саму систему адресации в сети Интернет и включить в нее указатель - идентификатор приложения? Вместо этого, протоколы UDP и TCP предлагают понятие, известное как "номер порта", port number. Комбинация IP адреса компьютера и номера порта позволяет абсолютно точно идентифицировать любую программу или приложение, выполняемую на любом компьютере, подключенном к сети.
Существует три вида номеров портов:
- назначенные ( assigned)
- зарегистрированные ( registered)
- динамические ( dynamic)
Назначенные и зарегистрированные номера портов регламентируются отдельным серьезным документом - RFC 1700. Первые 1024 номера (с 0 по 1023) отведены под назначенные и не могут использоваться другими приложениями, кроме тех, за которыми они закреплены. Оставшаяся область делится между зарегистрированными и динамическими номерами (отведенные на номер порта 16 бит дают возможность использовать всего 65535 виртуальных портов). А следит за порядком в этой области специальная организация - IANA (Internet Assigned Numbers Authority). Именно к ее услугам прибегают все компании-производители сетевого программного обеспечения, когда хотят зарезервировать за своим продуктом определенный номер порта.
Примеры назначенных номеров портов:
Когда любой компьютер хочет вступить во взаимодействие с любым удаленным приложением, он должен идентифицировать это приложение в своих пакетах с запросом на получение информации.
Например, если рабочая станция хочет использовать простой протокол передачи файлов, известный как TFTP (Trivial File Transfer Protocol), на компьютере с адресом 192.1.1.1, то пакеты будут адресованы этому компьютеру, но с указанием номера порта назначения (69 для протокола TFTP) в заголовке UDP пакета.
Порт источника будет указывать на приложение, работающее на этой рабочей станции и отправившее запрос на передачу файла, и все пакеты, полученные из сети для этого приложения, будут идентифицированы по этому номеру порта. Обычно номер порта источника выбирается случайным образом из диапазона динамических номеров. Если порт источника не используется его значение равно "0".
Недостаток при использовании динамических номеров портов может проявиться при широковещательной рассылке по сети пакетов данных, в которых в качестве порта назначения используется динамический адрес. Ведь этот порт может уже использоваться любой программой на любом компьютере в локальной сети и пакет будет доставлен "не по адресу".
Случай это весьма редкий, но все же иногда происходит.
Динамические номера портов назначаются сетевыми программами - приложениями на компьютере - рабочей станции, причем различные приложения на различных компьютерах могут использовать одни и те же номера портов, так как любое приложение на любом компьютере может быть идентифицировано при помощи комбинации IP адреса компьютера и номера порта программного приложения.
Вот эта комбинация и называется сокетом (socket), например, 192.1.1.1:25 - это адрес SMTP сервера на компьютере с адресом 192.1.1.1.
Если для упрощения провести аналогию между взаимодействием двух компьютеров по сети и телефонным соединением, то сокет выступает в роли телефонной линии, а номер порта заменяет номер телефона.