73185

Принципы построения и организационная структура Интернет. Адресация в Интернете. Базовые протоколы (IP, TCP, UDP). Назначение портов. Программы Ping, TraceRoute, NetScanner

Лекция

Информатика, кибернетика и программирование

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

Русский

2014-12-05

554 KB

2 чел.

Лекция 1

Принципы построения и организационная структура Интернет.
Адресация в Интернете. Базовые протоколы (IP, TCP, UDP).
Назначение портов. Программы Ping, TraceRoute, NetScanner.


 

Литература

  •  Телекоммуникационные технологии (Сети TCP/IP), учебное пособие, Максим Мамаев.
  •  Лабиринт Internet. Павел Храмцов, Электронинформ, 1996.
  •  Адресация в IP-сетях 
  •  Введение в IP-сети 
  •  Спецификация протокола IP, 1981 (RUS) 
  •  Спецификация протокола UDP, 1980 (RUS) 
  •  Спецификация протокола TCP, 1981 (RUS) 
  •  RFC1180 Семейство протоколов TCP/IP (RUS) 

1.1 Принципы построения и организационная структура Интернет.

1.1.1 Каким образом мы попадаем со своего компьютера на удаленный сервер? 

Маршрутизация в сети Internet - пакетная (бывает еще канальная, как в телефонии, АТС - маршрутизатор).

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

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

 

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

Маршрутизаторы объединяют отдельные сети в общую составную сеть (см. рисунок ниже). К каждому маршрутизатору могут быть присоединены несколько сетей (по крайней мере две).

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

 

1.1.2 Схема объединения отдельных сетей в общую составную сеть. 

 

Схема объединения отдельных сетей в общую составную сеть

 

1.1.3 Официальная документация по Internet 

RFC (Request for Comments) - официальная документация по Internet, можно найти по адресу http://www.rfc-editor.org/ или http://www.ietf.org/rfc.html .

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

1.2 Адресация в сети Internet. 

1.2.1 Типы адресов:

  1.  Физический (MAC-адрес)
  2.  Сетевой (IP-адрес)
  3.  Символьный (DNS-имя) 

Компьютер в сети TCP/IP может имеет адреса трех уровней (но не менее двух):

  •  Локальный адрес компьютера. Для узлов, входящих в локальные сети - это МАС-адрес сетевого адаптера. Эти адреса назначаются производителями оборудования и являются уникальными адресами.
  •  IP-адрес, состоящий из 4 байт, например, 109.26.17.100. Этот адрес используется на сетевом уровне. Он назначается администратором во время конфигурирования компьютеров и маршрутизаторов. 
  •  Символьный идентификатор-имя (DNS), например, http://www.kstu.ru/.

1.2.2 IP-адреса 

IPv4 - адрес является уникальным 32-битным идентификатором IP-интерфейса в Интернет.

IPv6 - адрес является уникальным 48-битным идентификатором IP-интерфейса в Интернет, иногда называют Internet-2, адресного пространства IPv4 уже стало не хватать, поэтому постепенно вводят новый стандарт.

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


10100000010100010000010110000011
записывается как


10100000.01010001.00000101.10000011 = 160.81.5.131

 

Перевод адреса из двоичной системы в десятичную

IP-адрес хоста состоит из номера IP-сети, который занимает старшую область адреса, и номера хоста в этой сети, который занимает младшую часть.

160.81.5.131 - IP-адрес

160.81.5. - номер сети

131 -  номер хоста

1.3 Базовые протоколы (IP, TCP, UDP) 

1.3.1 Стек протоколов TCP/IP

TCP/IP - собирательное название для набора (стека) сетевых протоколов разных уровней, используемых в Интернет. Особенности TCP/IP:

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

 

Стек протоколов TCP/IP

 

Стек протоколов TCP/IP делится на 4 уровня:

  •  прикладной,
  •  транспортный,
  •  межсетевой,
  •  физический и канальный.

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

 

Пример инкапсуляции пакетов в стеке TCP/IP

 

1.3.2 Физический и канальный уровень. 

Стек TCP/IP не подразумевает использования каких-либо определенных протоколов уровня доступа к среде передачи и физических сред передачи данных. От уровня доступа к среде передачи требуется наличие интерфейса с модулем IP, обеспечивающего передачу IP-пакетов. Также требуется обеспечить преобразование IP-адреса узла сети, на который передается IP-пакет, в MAC-адрес. Часто в качестве уровня доступа к среде передачи могут выступать целые протокольные стеки, тогда говорят об IP поверх ATM, IP поверх IPX, IP поверх X.25 и т.п.

 

1.3.3 Межсетевой уровень и протокол IP. 

Основу этого уровня составляет IP-протокол.

IP (Internet Protocol) – протокол взаимодействия сетей.

Основные задачи:

  •  адресация
  •  маршрутизация
  •  фрагментация датаграмм (инкапсулированные данные)
  •  передача данных

Cлужебная часть содержит:

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

Структура дейтограммы IP. Слова по 32 бита.

 Версия - версия протокола IP (например, 4 или 6)

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

Тип сервиса (TOS - type of service) - Тип сервиса (подробнее рассмотрен в лекции 8).

TOS играет важную роль в маршрутизации пакетов. Интернет не гарантирует запрашиваемый TOS, но многие маршрутизаторы учитывают эти запросы при выборе маршрута (протоколы OSPF и IGRP).

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

Время жизни (TTL - time to live) - каждый маршрутизатор уменьшает его на 1, что бы пакеты не блуждали вечно.

Протокол - Идентификатор протокола верхнего уровня указывает, какому протоколу верхнего уровня принадлежит пакет (например: TCP, UDP).

Коды некоторые протоколов RFC-1700 (1994)

Код

Протокол

Описание

0

-

Зарезервировано

1

ICMP

Протокол контрольных сообщений

2

IGMP

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

4

IP

IP-поверх-IP (туннели)

6

TCP

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

8

EGP

Протокол внешней маршрутизации

9

IGP

Протокол внутренней маршрутизации

17

UDP

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

35

IDRP

Междоменный протокол маршрутизации

36

XTP

Xpress транспортный протокол

46

RSVP

Протокол резервирования ресурсов канала

88

IGRP

внутренний протокол маршрутизации

89

OSPFIGP

внутренний протокол маршрутизации

97

ETHERIP

Ethernet-поверх-IP

101-254

-

не определены

255

-

зарезервировано

Протокол IP доставляет блоки данных от одного IP-адреса к другому.

 Программа, реализующая функции того или иного протокола, часто называется модулем, например, “IP-модуль”, “модуль TCP”.

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

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

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

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

 

1.3.3.1 Протоколы маршрутизации. 

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

Автономная система (AS - autonomous system) - сеть находящаяся под одним административным контролем, это может быть несколько компьютеров или большая сеть (понятие достаточно условное).

  •  RIP (Routing Information Protocol) - протокол передачи маршрутной информации, маршрутизаторы динамически создают маршрутные таблицы.
  •  OSPF (Open Shortest Path First) - протокол "Открой кротчайший путь первым", является внутренним протоколом маршрутизации.
  •  IGP (Interior Gateway Protocols) - внутренние протоколы маршрутизации, распространяет маршрутную информацию внутри одной автономной системе.
  •  EGP (Exterior Gateway Protocols) - внешние протоколы маршрутизации, распространяет маршрутную информацию между автономными системами.
  •  BGP (Border Gateway Protocol) - протокол граничных маршрутизаторов.

1.3.3.2 Протокол ICMP 

ICMP (Internet Control Message Protocol) - расширение протокола IP, позволяет передавать сообщения об ошибке или проверочные сообщения.

 

1.3.3.3 Другие служебные IP-протоколы 

IGMP (Internet Group Management Protocol) - позволяет организовать многоадресную рассылку средствами IP.

RSVP (Resource Reservation Protocol) - протокол резервирования ресурсов.

ARP (Address Resolution Protocol) - протокол преобразования IP-адреса и адреса канального уровня.

 

1.3.4 Транспортный уровень 

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

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

На транспортном уровне работают два основных протокола: UDP и TCP.

 

1.3.4.1 Протокол надежной доставки сообщений TCP 

TCP (Transfer Control Protocol) – протокол контроля передачи, нарезает файлы на пакеты, каждый из которых передается отдельно, на сервере наоборот файлы собираются. служебная часть содержит:

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

 

Структура дейтограммы TCP. Слова по 32 бита.

Длина заголовка - задается словами по 32бита.

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

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

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

URG - флаг срочности, включает поле "Указатель срочности", если =0 то поле игнорируется.

ACK - флаг подтверждение, включает поле "Номер подтверждения, если =0 то поле игнорируется.

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

RST - флаг прерывания соединения, используется для отказа в соединении

SYN - флаг синхронизация порядковых номеров, используется при установлении соединения.

FIN - флаг окончание передачи со стороны отправителя

 

 

1.3.4.2 Протокол UDP

UDP (Universal Datagram Protocol) - универсальный протокол передачи данных, отличие от TCP – он никогда не разбивает сообщение для передачи, при потере пакета запрос для повторной передачи не посылается, используется если не требуется гарантированная доставка пакетов , например для потокового видео и аудио, DNS (т.к. данные небольших размеров). Если проверка контрольной суммы выявила ошибку или если процесса, подключенного к требуемому порту, не существует, пакет игнорируется. Если пакеты поступают быстрее, чем модуль UDP успевает их обрабатывать, то поступающие пакеты также игнорируются.

Заголовок имеет простой формат и состоит всего из четырех полей:

  •  Номер порта процесса-отправителя,
  •  Номер порта процесса-получателя,
  •  Длина UDP-пакета в байтах,
  •  Контрольная сумма UDP-пакета

Структура дейтограммы UDP. Слова по 32 бита.


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

 

1.3.4.2 Протокол реального времени RTP 

RTP (Real Time Protocol) - протокол для приложений реального времени.

RTCP (Real Time Control Protocol) - протокол обратной связи для приложения RTP..

1.4 Назначение портов 

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

Номера портам присваиваются таким образом: имеются стандартные (зарезервированные) номера (например, номер 21 закреплен за сервисом FTP, 23 - за telnet, 80 - за HTTP), а менее известные приложения пользуются произвольно выбранными локальными номерами.

 Некоторые заданные порты RFC-1700 (1994)

Порт

Служба

Описание

0

-

Зарезервировано

13

Daytime

Синхронизация времени

20

ftp-data

Канал передачи данных для FTP

21

ftp

Передача файлов

23

telnet

Сетевой терминал

25

SMTP

Передача почты

37

time

Синхронизация времени

43

Whois

Служба Whois

53

DNS

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

67

bootps

BOOTP и DHCP - сервер

68

bootps

BOOTP и DHCP - клиент

69

tftp

Упрощенная передача почты

80

HTTP

Передача гипертекста

109

POP2

Получение почты

110

POP3

Получение почты

119

NNTP

Конференции

123

NTP

Синхронизация времени

137

netbios-ns

NETBIOS - имена

138

netbios-dgm

NETBIOS Datagram Service

139

netbios-ssn

NETBIOS Session Service

143

imap2

Получение почты

161

SNMP

Протокол управления

210

z39.50

Библиотечный протокол

213

IPX

IPX - протокол

220

imap3

Получение почты

443

HTTPs

HTTP с шифрованием

520

RIP

Динамическая маршрутизация

Диапазон 1024-65535

1024

-

Зарезервировано

6000-6063

X11

Графический сетевой терминал

1.5 Программа Ping - Проверка соединения с удаленным хостом.

Можно использовать как с командной строки, так и в таких программах как CyberKit (официальный сервер - http://www.cyberkit.net/ ), скачать с локального сервера cyberkit-v2.5.zip.

 

В программе CyberKit можно установить следующие свойства:

Timeout - время ожидания ответа, в секундах

Delay - время между "пингами",  в секундах

Packet Size - размер ICMP-сообщения, в байтах

Number of Pings - число "пингов"

Resolve IP Addresses - получение IP-адреса для имени хоста

 

Получаемая информация:

Number - номер "пинга"

Address - проверяемый IP-адрес

Host Name - имя хоста (имя для этого IP-адрес)

Msg Type - тип ICMP-сообщения ответа.

TTL - значение TTL поля в IP заголовке ICMP-ответа.

Time - "время ответа", время между посылкой сообщения удаленному адресу, и получением от него ответа.

 

С командной строки можно установить следующие параметры (для Windows):

ping [-t] [-a] [-n счетчик] [-l длина] [-f] [-i ttl] [-v тип] [-r счетчик] [-s число] [[-j список_комп] | [-k список_комп]] [-w интервал] список_назн 

Параметры 

-t - Повторяет запросы к удаленному компьютеру, пока не программа будет остановлена.

-a - Разрешает имя компьютера в адрес.

-n счетчик - Передается число пакетов ECHO, заданное параметром счетчик. По умолчанию — 4.

-l длина - Отправляются пакеты типа ECHO, содержащие порцию данных заданной длины. По умолчанию — 32 байта, максимум — 65527.

-f - Отправляет пакеты с флагом запрещения фрагментации (Do not Fragment). Пакеты не будут разрываться при прохождении шлюзов на своем маршруте.

-i ttl - Устанавливает поле времени жизни пакетов TTL (Time To Live).

-v тип - Устанавливает поле типа службы (Type Of Service) пакетов.

-r счетчик - Записывает маршрут отправленных и возвращенных пакетов в поле записи маршрута Record Route. Параметр счетчик задает число компьютеров в интервале от 1 до 9.

-s число - Задает число ретрансляций на маршруте, где будет делаться отметка времени.

-j список_комп - Направляет пакеты по маршруту, задаваемому параметром список_комп. Компьютеры в списке могут быть разделены промежуточными шлюзами (свободная маршрутизация). Максимальное количество, разрешаемое протоколом IP, равно 9.

-k список_комп - Направляет пакеты по маршруту, задаваемому параметром список_комп. Компьютеры в списке не могут быть разделены промежуточными шлюзами (ограниченная маршрутизация). Максимальное количество, разрешаемое протоколом IP, равно 9.

-w интервал - Указывает промежуток времени ожидания (в миллисекундах).

список_назн - Указывает список компьютеров, которым направляются запросы.

 

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

ping 195.208.44.20

1.6 Программа TraceRoute - позволяет проверить маршрут до удаленного хоста.

Можно использовать как с командной строки, так и в таких программах как CyberKit или PingPloter (официальный сервер - http://www.pingplotter.com/ ).

HOP - промежуточный маршрутизатор

 

В программе CyberKit можно установить следующие свойства:

Timeout - время ожидания ответа, в секундах

Start From Hop - hop с которого надо проверять маршрут

Maximum Hops - максимальное количество "хопов"

Packet Size - размер ICMP-сообщения, в байтах

Resolve IP Addresses - получение IP-адреса для имени хоста

 

Получаемая информация:

Number - номер "пинга"

Address - проверяемый IP-адрес

Host Name - имя хоста (имя для этого IP-адрес)

Msg Type - тип ICMP-сообщения ответа.

Time - "время ответа", время между посылкой сообщения удаленному адресу, и получением от него ответа.

 

С командной строки можно установить следующие параметры (для Windows):

tracert. 

tracert [-d] [-h макс_узл] [-j список_компьютеров] [-w интервал] точка_назн

Параметры

-d 

Отменяет разрешение имен компьютеров в их адреса.

-h макс_узл 

Задает максимальное количество "хопов".

-j список_компьютеров 

Задает список_компьютеров для свободной маршрутизации.

-w интервал 

Задает интервал в миллисекундах, в течение которого будет ожидаться ответ.

точка_назн 

Указывает имя конечного компьютера.

1.7 NetScanner - позволяет посмотреть ответ определенного порта.

Можно использовать в таких программах как CyberKit.

 

В программе CyberKit можно установить следующие свойства:

Address Range - диапазон адресов для сканирования

Scan Ports - диапазон портов для сканирования

Resolve IP Addresses - получение IP-адреса для имени хоста

Ping Addresses - "пингование" диапазона адресов

 

Получаемая информация:

Number - номер "пинга"

Address - проверяемый IP-адрес

Host Name - имя хоста (имя для этого IP-адрес)

Port - номер порта

Protocol - протокол по которому отвечает порт

Service - служба которая отвечает по этому порту

Response Message - сообщение ответа полученное по этому порту


Адресация в IP-сетях

Типы адресов: физический (MAC-адрес), сетевой (IP-адрес) и символьный (DNS-имя)

Каждый компьютер в сети TCP/IP имеет адреса трех уровней:

  •  Локальный адрес узла, определяемый технологией, с помощью которой построена отдельная сеть, в которую входит данный узел. Для узлов, входящих в локальные сети - это МАС-адрес сетевого адаптера или порта маршрутизатора, например, 11-А0-17-3D-BC-01. Эти адреса назначаются производителями оборудования и являются уникальными адресами, так как управляются централизовано. Для всех существующих технологий локальных сетей МАС-адрес имеет формат 6 байтов: старшие 3 байта - идентификатор фирмы производителя, а младшие 3 байта назначаются уникальным образом самим производителем. Для узлов, входящих в глобальные сети, такие как Х.25 или frame relay, локальный адрес назначается администратором глобальной сети.
  •  IP-адрес, состоящий из 4 байт, например, 109.26.17.100. Этот адрес используется на сетевом уровне. Он назначается администратором во время конфигурирования компьютеров и маршрутизаторов. IP-адрес состоит из двух частей: номера сети и номера узла. Номер сети может быть выбран администратором произвольно, либо назначен по рекомендации специального подразделения Internet (Network Information Center, NIC), если сеть должна работать как составная часть Internet. Обычно провайдеры услуг Internet получают диапазоны адресов у подразделений NIC, а затем распределяют их между своими абонентами.

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

  •  Символьный идентификатор-имя, например, SERV1.IBM.COM. Этот адрес назначается администратором и состоит из нескольких частей, например, имени машины, имени организации, имени домена. Такой адрес, называемый также DNS-именем, используется на прикладном уровне, например, в протоколах FTP или telnet.

Три основных класса IP-адресов

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

128.10.2.30 - традиционная десятичная форма представления адреса,

10000000 00001010 00000010 00011110 - двоичная форма представления этого же адреса.

На рисунке 3.1 показана структура IP-адреса. Класс А

0

N сети

N узла

Класс В

1

0

N сети

N узла

Класс С

1

1

0

N сети

N узла

Класс D

1

1

1

0

адрес группы multicast

Класс Е

1

1

1

1

0

зарезервирован

Рис. 3.1. Структура IР-адреса

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

  •  Если адрес начинается с 0, то сеть относят к классу А, и номер сети занимает один байт, остальные 3 байта интерпретируются как номер узла в сети. Сети класса А имеют номера в диапазоне от 1 до 126. (Номер 0 не используется, а номер 127 зарезервирован для специальных целей, о чем будет сказано ниже.) В сетях класса А количество узлов должно быть больше 216, но не превышать 224.
  •  Если первые два бита адреса равны 10, то сеть относится к классу В и является сетью средних размеров с числом узлов 28 - 216. В сетях класса В под адрес сети и под адрес узла отводится по 16 битов, то есть по 2 байта.
  •  Если адрес начинается с последовательности 110, то это сеть класса С с числом узлов не больше 28. Под адрес сети отводится 24 бита, а под адрес узла - 8 битов.
  •  Если адрес начинается с последовательности 1110, то он является адресом класса D и обозначает особый, групповой адрес - multicast. Если в пакете в качестве адреса назначения указан адрес класса D, то такой пакет должны получить все узлы, которым присвоен данный адрес.
  •  Если адрес начинается с последовательности 11110, то это адрес класса Е, он зарезервирован для будущих применений.

В таблице приведены диапазоны номеров сетей, соответствующих каждому классу сетей.

Класс

Наименьший адрес

Наибольший адрес

A

01.0.0

126.0.0.0

B

128.0.0.0

191.255.0.0

C

192.0.1.0

223.255.255.0

D

224.0.0.0

239.255.255.255

E

240.0.0.0

247.255.255.255

Соглашения о специальных адресах: broadcast, multicast, loopback

В протоколе IP существует несколько соглашений об особой интерпретации IP-адресов:

  •  если IР-адрес состоит только из двоичных нулей,

0 0 0 0 ................................... 0 0 0 0

  •  то он обозначает адрес того узла, который сгенерировал этот пакет;
  •  если в поле номера сети стоят 0,

0 0 0 0 .......0 Номер узла

  •  то по умолчанию считается, что этот узел принадлежит той же самой сети, что и узел, который отправил пакет;
  •  если все двоичные разряды IP-адреса равны 1,

1 1 1 1 .........................................1 1

  •  то пакет с таким адресом назначения должен рассылаться всем узлам, находящимся в той же сети, что и источник этого пакета. Такая рассылка называется ограниченным широковещательным сообщением (limited broadcast);
  •  если в поле адреса назначения стоят сплошные 1,

Номер сети 1111................11

  •  то пакет, имеющий такой адрес рассылается всем узлам сети с заданным номером. Такая рассылка называется широковещательным сообщением (broadcast);
  •  адрес 127.0.0.1 зарезервирован для организации обратной связи при тестировании работы программного обеспечения узла без реальной отправки пакета по сети. Этот адрес имеет название loopback.

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

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

Отображение физических адресов на IP-адреса: протоколы ARP и RARP

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

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

Для определения локального адреса по IP-адресу используется протокол разрешения адреса Address Resolution Protocol, ARP. Протокол ARP работает различным образом в зависимости от того, какой протокол канального уровня работает в данной сети - протокол локальной сети (Ethernet, Token Ring, FDDI) с возможностью широковещательного доступа одновременно ко всем узлам сети, или же протокол глобальной сети (X.25, frame relay), как правило не поддерживающий широковещательный доступ. Существует также протокол, решающий обратную задачу - нахождение IP-адреса по известному локальному адресу. Он называется реверсивный ARP - RARP (Reverse Address Resolution Protocol) и используется при старте бездисковых станций, не знающих в начальный момент своего IP-адреса, но знающих адрес своего сетевого адаптера.

В локальных сетях протокол ARP использует широковещательные кадры протокола канального уровня для поиска в сети узла с заданным IP-адресом.

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

0 8 16 31 Т

Тип сети

Тип протокола

Длина локального адреса

Длина сетевого адреса

Операция

Локальный адрес отправителя (байты 0 - 3)

Локальный адрес отправителя (байты 4 - 5)

IP-адрес отправителя (байты 0-1)

IP-адрес отправителя (байты 2-3)

Искомый локальный адрес (байты 0 - 1)

Искомый локальный адрес (байты 2-5)

Искомый IP-адрес (байты 0 - 3)

Рис. 3.2. Формат пакета протокола ARP

В поле типа сети для сетей Ethernet указывается значение 1. Поле типа протокола позволяет использовать пакеты ARP не только для протокола IP, но и для других сетевых протоколов. Для IP значение этого поля равно 080016.

Длина локального адреса для протокола Ethernet равна 6 байтам, а длина IP-адреса - 4 байтам. В поле операции для ARP запросов указывается значение 1 для протокола ARP и 2 для протокола RARP.

Узел, отправляющий ARP-запрос, заполняет в пакете все поля, кроме поля искомого локального адреса (для RARP-запроса не указывается искомый IP-адрес). Значение этого поля заполняется узлом, опознавшим свой IP-адрес.

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

Отображение символьных адресов на IP-адреса: служба DNS

DNS (Domain Name System) - это распределенная база данных, поддерживающая иерархическую систему имен для идентификации узлов в сети Internet. Служба DNS предназначена для автоматического поиска IP-адреса по известному символьному имени узла. Спецификация DNS определяется стандартами RFC 1034 и 1035. DNS требует статической конфигурации своих таблиц, отображающих имена компьютеров в IP-адрес.

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

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

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

Корень базы данных DNS управляется центром Internet Network Information Center. Домены верхнего уровня назначаются для каждой страны, а также на организационной основе. Имена этих доменов должны следовать международному стандарту ISO 3166. Для обозначения стран используются трехбуквенные и двухбуквенные аббревиатуры, а для различных типов организаций используются следующие аббревиатуры:

  •  com - коммерческие организации (например, microsoft.com);
  •  edu - образовательные (например, mit.edu);
  •  gov - правительственные организации (например, nsf.gov);
  •  org - некоммерческие организации (например, fidonet.org);
  •  net - организации, поддерживающие сети (например, nsf.net).

Каждый домен DNS администрируется отдельной организацией, которая обычно разбивает свой домен на поддомены и передает функции администрирования этих поддоменов другим организациям. Каждый домен имеет уникальное имя, а каждый из поддоменов имеет уникальное имя внутри своего домена. Имя домена может содержать до 63 символов. Каждый хост в сети Internet однозначно определяется своим полным доменным именем (fully qualified domain name, FQDN), которое включает имена всех доменов по направлению от хоста к корню. Пример полного DNS-имени :

citint.dol.ru.

Автоматизация процесса назначения IP-адресов узлам сети - протокол DHCP

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

Протокол Dynamic Host Configuration Protocol (DHCP) был разработан для того, чтобы освободить администратора от этих проблем. Основным назначением DHCP является динамическое назначение IP-адресов. Однако, кроме динамического, DHCP может поддерживать и более простые способы ручного и автоматического статического назначения адресов.

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

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

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

DHCP обеспечивает надежный и простой способ конфигурации сети TCP/IP, гарантируя отсутствие конфликтов адресов за счет централизованного управления их распределением. Администратор управляет процессом назначения адресов с помощью параметра "продолжительности аренды" (lease duration), которая определяет, как долго компьютер может использовать назначенный IP-адрес, перед тем как снова запросить его от сервера DHCP в аренду.

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

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

Компьютер-клиент DHCP переходит в состояние "выбор" и собирает конфигурационные предложения от DHCP-серверов. Затем он выбирает одно из этих предложений, переходит в состояние "запрос" и отправляет сообщение request (запрос) тому DHCP-серверу, чье предложение было выбрано.

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

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

Однако использование DHCP несет в себе и некоторые проблемы. Во-первых, это проблема согласования информационной адресной базы в службах DHCP и DNS. Как известно, DNS служит для преобразования символьных имен в IP-адреса. Если IP-адреса будут динамически изменятся сервером DHCP, то эти изменения необходимо также динамически вносить в базу данных сервера DNS. Хотя протокол динамического взаимодействия между службами DNS и DHCP уже реализован некоторыми фирмами (так называемая служба Dynamic DNS), стандарт на него пока не принят.

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

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

Универсальный идентификатор ресурсов (URI), его назначение и составные части.

Литература 

  •  Администрирование сети и сервисов InterNet. Учебное пособие, П.Б. Храмцов, 1997.
  •  Лабиринт Internet. Павел Храмцов, Электронинформ, 1996.

 

3.1 Универсальный идентификатор ресурсов (URI), его назначение и составные части.

URI (Uniform Resource Identifier, Универсальный идентификатор ресурса) (RFC 2396, August 1998)  - компактная строка символов для идентификации абстракного или физического ресурса. Под ресурсом понимается любой объект, принадлежащий некоторому пространству. Включает и переопределяет определенные ранее URL (RFC 1738/RFC 1808) и URN (RFC 2141, RFC 2611).

URI предназначен для уникальной идентификации любого ресурса.

Некоторые подмножества URI:

URL (Uniform Resource Locator, Универсальный указатель ресурса), - подмножество схем URI, который идентифицирует ресурс по способу доступа к нему (например, его "местонахождению в сети") вместо того, чтобы идентифицировать его по названию или другим атрибутам этого ресурса.

Примеры URL:

http://www.ipm.kstu.ru/index.php

ftp://www.ipm.kstu.ru/

В HTML записывается так:

<a href="http://www.ipm.kstu.ru/index.php"></a>

URN (Uniform Resource Name, Универсальное имя ресурса) - частная URI-схема "urn:" с подмножеством "пространства имен", который должен быть уникальным и неизменным даже в том случае, когда ресурс уже не существует или недоступен.

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

 

Синтаксис:

 urn:namespace: data1.data2,more-data, где namespace (пространство имен) определяет, каким образом используются данные, указанные после второго ":".

Пример URN:

urn:ISBN: 0-395-36341-6

ISBN - тематический классификатор для издательств

0-395-36341-6 - конкретный номер тематики книги или журнала

При получении URN клиентская программа обращается к ISBN (каталогу "тематический классификатор для издательств" в Интернете). И получает расшифровку номера тематики "0-395-36341-6" (например: "квантовая химия").

URN массово используется в P2P сетях (подобных edonkey).

Пример URN указывающего на образ диска Adobe Photoshop v8.0 в сети edonkey:

urn:ed2k://|file|Adobe Photoshop v8.0.iso|940769280|b34c101c90b6dedb4071094cb1b9f2d3|/

где:

ed2k - указывает на сеть

file - файл

Adobe Photoshop v8.0.iso - название файла

940769280 - размер в байтах

b34c101c90b6dedb4071094cb1b9f2d3 - идентификатор файла (вычисляется с помощью хеш-функции)

3.2 Универсальный указатель ресурса URL

URL - Uniform Resource Locators явно описывает, как добраться до объекта.

Синтаксис:

<scheme>:<scheme-specific-part>

где:

scheme = "http" | "ftp" | "gopher" | "mailto" | "news" | "telnet" | "file" | "man" | "info" | "whatis" | "ldap" | "wais" | ... - имя схемы 

scheme-specific-part - зависит от схемы 

Имя схемы - последовательность символов [a-z0-9+.-].

В scheme-specific-part можно использовать шестнадцатеричные значения в виде: %5f. Обязательно должны кодироваться непечатные октеты: 00-1F, 7F, 80-FF. Также всегда кодируются "небезопасные" символы: " ", "<", ">", """, "#", "%", "{", "}", "|", "\", "^", "~", "[", "]", "`". Некоторые схемы резервируют и другие символы: ";","/","?",":","@","=" и "&". Их также необходимо кодировать, если хочется "обойти" их специальное трактование. Таким образом остаются [a-z0-9$-_.+!*'(),] и резервированные символы в их специальном значении для данной схемы.

 

3.3 Некоторые схемы URL

Схема HTTP. В схеме указывается ее идентификатор, адрес машины, TCP-порт, путь в директории сервера, переменные и их значения, метка.

Синтаксис:

http://[<user>[:<password]>@]<host>[:<port>][/[<url-path>][?<query>]]

http - название схемы

user - имя пользователя

password - пароль пользователя

host - имя хоста

port - номер порта

url-path - путь к файлу и сам файл

query (<имя-поля>=<значение>{&<имя-поля>=<значение>) - строка запроса

Определен в RFC 2068. По умолчанию, port=80.

Примеры:

http://ipm.kstu.ru/internet/index.php 

 

Это наиболее распространенный вид URI, применяемый в документах WWW. Вслед за именем схемы (http) следует путь, состоящий из доменного адреса машины и полного адреса HTML-документа в дереве сервера HTTP.

В качестве адреса машины допустимо использование и IP-адреса:

http://195.208.44.20/internet/index.php 

 

Если сервер протокола HTTP запущен на другой, отличный от 80 порт TCP, то это отражается в адресе:

http://195.208.44.20:8080/internet/index.php

 

При указании адреса ресурса возможна ссылка на метку внутри файла HTML. Для этого вслед за именем документа может быть указана метка внутри документа:

http://195.208.44.20/internet/index.php#metka1
 

Символ "#" отделяет имя документа от имени метки.

Переменные и их значения передаются следующим образом:

http://ipm.kstu.ru/internet/index.php?var1=value1&vard2=value2

 

Значения "var1" и "var2" - это имена переменных, а "value1" и "value2" - их значения.

 

Схема FTP. Данная схема позволяет адресовать файловые архивы FTP.

Синтаксис:

ftp://[<user>[:<password]>@]<host>[:<port>][/<url-path>]

ftp - название схемы

user - имя пользователя

password - пароль пользователя

host - имя хоста

port - номер порта

url-path - путь к файлу и сам файл

Определен в RFC 1738. По умолчанию, port=21, user=anonymous, password=email-адрес, если имя указано, а пароль нет, то он запрашивается в диалоге.

<url-path> имеет вид:
<cwd1>/<cwd2>/.../<cwdN>/<name>[;type=<typecode>],
где <typecode>:
 

<url-path> преобразуется клиентской прграммой в набор команд
CWD <cwd1>
...
CWD <cwdN>
TYPE <typecode>
RETR <name>
 

Примеры:

ftp://ipm.kstu.ru/students/name/

 

Чтобы указать имя пользователя и его пароль, надо записать так:

ftp://name:password@ftp://ipm.kstu.ru/students/name/

 

В данном случае эти параметры отделены от адреса машины символом "@", а друг от друга двоеточием. 

 

Схема MAILTO. Данная схема предназначена для отправки почты.

Синтаксис:

mailto:[<e-mail-1>{,<e-mail-2>,...}][?<query>]

mailto - название схемы

e-mail-1 (<user>@<host>)- первый адрес электронной почты

user - имя пользователя

host - имя хоста

e-mail-2 - второй адрес электронной почты

query (<имя-поля-заголовка>=<значение>{&<имя-поля-заголовка>=<значение>) - строка запроса

Примеры:

 

mailto:name@ipm.kstu.ru

 

В этой схеме передаются поля и их значения:

Пример:

 

mailto:name@ipm.kstu.ru?subject=Тема_письма&body=Текст_который _будет_вставлен_в_письмо

 

Адрес получателя можно также записывать в виде значения поля to:

 

mailto:?to=name@ipm.kstu.ru?subject=Тема_письма&body=Текст_который _будет_вставлен_в_письмо

 

Схема NEWS. Данная схема используется для просмотра сообщений системы Usenet.

Синтаксис:

news:[<article>@<group>]

news - название схемы

article - номер статьи

group - название группы

 

Пример:

news:comp.infosystems.gopher 

 

В данном случае можно получить статьи из группы "comp.infosystems.gopher" в режиме уведомления. Можно получить и текст статьи, но в этом случае указывают ее идентификатор:

news:086@comp.infosystems.gopher 

 

Заказана 86 статья из группы.

 

Схема NNTP. Это еще одна схема получения доступа к ресурсам Usenet.

Синтаксис:

nntp:[<group>/<article>]

nntp - название схемы

group - название группы

article - номер статьи

 

Пример:

В данной схеме обращение к группе comp.infosystems.gopher для получения статьи 86 будет выглядеть так:

nntp:comp.infosystems.gopher/086 

 

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

 

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

Синтаксис:

telnet://[<user>[:<password]>@]<host>[:<port>]/

telnet - название схемы

user - имя пользователя

password - пароль пользователя

host - имя хоста

port - номер порта

По умолчанию, port=23.

 

Пример:

telnet://name:password@ipm.kstu.ru

 

Схема FILE.  Для локального режима используют схему FILE.

Синтаксис:

file://<host>/<path>

file - название схемы 

host - имя хоста

port - номер порта

path - путь к файлу и сам файл


В качестве <host> обычно указывается localhost

Пример:

file:///C|/text/html/index.htm

 

С - диск файловой системы (для Windows)

Клиент запускает только программы просмотра на основе MIME-типов из заголовка сообщений сервера или по расширению файла.

Служба FTP. Протокол FTP. Протокол TFTP.

Литература 

  •  Протокол пересылки файлов FTP - Семенов Ю.А.
  •  Лабиринт Internet. Павел Храмцов, Электронинформ, 1996.
  •  Учебник по FTP 
  •  Получение файлов через FTP 
  •  Организация и администрирование почтовых и файловых серверов Internet, П.Б. Храмцов.
  •  Протокол пересылки файлов FTP 
  •  FTP: протокол передачи файлов 
  •  Служба архивов FTP 
  •  Active FTP vs. Passive FTP, a Definitive Explanation 

5.1 Служба FTP.

Служба FTP (от протокола - File Transfer Protocol) - предназначена для обмена файлами.

FTP служба построена по хорошо известной схеме "клиент-сервер".

Клиент (браузер,Windows Commander, NetVampir ...) посылает запросы серверу и принимает файлы.

Сервер FTP (vsftpd, IIS ...) обрабатывает запросы клиента на получение файла.

Взаимодействие клиент и сервера по протоколу FTP.

Служба FTP базируется на двух стандартах:

  •  URL (Universal Resource Locator) - универсальный способ адресации ресурсов в сети ;
  •  FTP (File Transfer Protocol) - протокол передачи файлов.

5.2 Протокол FTP

File Transfer Protocol - протокол передачи файлов, протокол высокого уровня (а именно, уровня приложений).
. Используется службой FTP для передачи файлов.

Первый стандарт - RFC114 (File Transfer Protocol A.K. Bhushan Apr-10-1971).

Последняя версия - RFC959 (File Transfer Protocol J. Postel, J.K. Reynolds Oct-01-1985).

FTP отличается от других приложений тем, что он использует два TCP соединения для передачи файла.

  1.  Управляющее соединение - соединение для посылки команд серверу и получение ответов от него. Для канала управления используется протокол Telnet.
  2.  Соединение данных - соединение для передачи файлов.

Схема двух каналов соединения по протоколу FTP

В старых версиях для передачи данных использовался только 20-й порт (активный режим), в современных версиях FTP-серверов порт для канала данных может назначаться сервером из нестандартных (N > 1024) портов (пассивный режим).

Протокол FTP определяет запрос-ответный способ взаимодействия между программой-клиентом и программой-сервером.

Работа FTP на пользовательском уровне содержит несколько этапов:

  1.  Идентификация (ввод имени и пароля).
  2.  Выбор каталога.
  3.  Определение режима обмена (поблочный, поточный, ascii или двоичный).
  4.  Выполнение команд обмена (get, mget, dir, mdel, mput или put).
  5.  Завершение процедуры (quit или close).

5.2.1 Различие работы пассивного режима и активного.

5.2.1.1 Активный режим

Действия сервера и клиента:

  1.  Клиент устанавливает связь и посылает запрос на 21 порт сервера с порта N (N>1024)
  2.  Сервер посылает ответ на порт N (N>1024) клиента
  3.  Сервер устанавливает связь для передачи данных по порту 20 на порт клиента N+1

Активный режим

5.2.1.2 Пассивный режим:

Действия сервера и клиента:

  1.  Клиент устанавливает связь и посылает запрос (сообщает, что надо работать в пассивном режиме) на 21 порт сервера с порта N (N>1024)
  2.  Сервер посылает ответ и сообщает номер порта для канала данных P (P>1024) на порт N (N>1024) клиента
  3.  Клиент устанавливает связь для передачи данных по порту N+1 на порт сервера P (P>1024)

Пассивный режим

Активный FTP выгоден для FTP-сервера, но вреден для стороны клиента. FTP сервер пытается соединиться со случайными высокими (по номеру) портами на клиенте, такое соединение наверняка будет блокировано брандмауэром на стороне клиента.

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

5.2.1.3 Примеры

Ниже приведены примеры запроса клиента и ответа сервера:

5.2.1.3.1 Пример запроса на чтение каталога

Установка соединения
Connecting to ftp.ru ...
Connected to ftp.ru [194.87.5.52]


сервер: 220 megillah.demos.su FTP server (Version wu-2.4) ready. - // код ошибки, имя хоста, протокол, версия сервера, только для чтения
клиент: USER anonymous - // имя пользователя
сервер: 331 Guest login ok, send your complete e-mail address as password.- //код ошибки, имя пользователя корректно, нужен пароль
клиент: PASS ****** - // пароль клиента
сервер: 230 Guest login ok, access restrictions apply. - //код ошибки, пользователь идентифицирован, продолжайте
клиент: CWD / - // переход к корневой директории
сервер: 250 CWD command successful. - // команда выполнена успешно
клиент: TYPE A - // передавать информацию в текстовом виде
сервер: 200 Type set to A. - // текстовый тип установлен
клиент: PASV - // сервер должен определить нестандартный порт данных, начать его слушать
сервер: 227 Entering Passive Mode (194,87,5,52,9,75) - // сервер возвращает ip-адрес (194.87.5.52) и номер порта (2383)
клиент: LIST - // передать по соединению данных список имен файлов в директории
сервер: Data connection established - // установлено соединение данных
клиент: 150 Opening ASCII mode data connection for /bin/ls. - // татус файла правилен, подготавливается открытие канала 

Передача информации по каналу данных
сообщение: Data transfer started - // начало передачи информации
сообщение: DATA connection closed by remote server - // закрытие канала передачи данных

Информирование клиентом пользователя
сообщение: Received 1 428 bytes in 0:00:00 (35 700 bytes/s) - // сколько байт получено (1 428), за какое время (ч.мм.сс) и с какой средней скоростью (35 700 bytes/s)
сообщение: JOB COMPLETED SUCCESSFULLY - // работа завершена

5.2.1.3.2 Пример запроса файла

Установка соединения
Connecting to ftp.ru ...
Connected to ftp.ru [194.87.5.52]


сервер: 220 megillah.demos.su FTP server (Version wu-2.4) ready. - // код ошибки, имя хоста, протокол, версия сервера, только для чтения
клиент: USER anonymous - // имя пользователя
сервер: 331 Guest login ok, send your complete e-mail address as password. - // имя пользователя корректно, нужен пароль
клиент: PASS ****** - // пароль клиента
сервер: 230 Guest login ok, access restrictions apply. - // пользователь идентифицирован, продолжайте
клиент: CWD /www.FAQ.win - // сменить каталог на /www.FAQ.win
сервер: 550 /www.FAQ.win: Not a directory. - // директория /www.FAQ.win не найдена
клиент: TYPE I - // передавать файл в бинарном виде
сервер: 200 Type set to I. - // бинарный тип установлен
клиент: STAT /www.FAQ.win - // запрос информации о файле /www.FAQ.win
сервер: 211-status of /www.FAQ.win: - // начало передачи информации
сервер: -rw-r--r-- 1 root root 31368 Jan 18 1999 /www.FAQ.win - // продолжение передачи информации
сервер: 211 End of Status - // конец передачи информации
клиент: PASV - // сервер должен определить нестандартный порт данных, начать его слушать
сервер: 227 Entering Passive Mode (194,87,5,52,9,79) - // сервер возвращает ip-адрес (194.87.5.52) и номер порта (2383)
клиент: REST 64 - // начать докачку файла, пропустив первые 64 байта
сервер: Data connection established - // установлено соединение данных
сервер: 350 Restarting at 64. (null) - // команда принята
клиент: REST 0 - // начать докачку файла, пропустив первые 0 байтов
сервер: 350 Restarting at 0. (null) - // команда принята
клиент: RETR /www.FAQ.win - // выдать файл www.FAQ.win
сервер: 150 Opening BINARY mode data connection for /www.FAQ.win (31368 bytes). - // статус файла правилен, подготавливается открытие канала данных, размер файла 31 368 байт

Передача информации по каналу данных
сообщение: Data transfer started - // начало передачи файла
сообщение: DATA connection closed by remote server - // закрытие канала передачи данных 

Информирование клиентом пользователя
сообщение: Received 31 368 bytes in 0:00:02 (10 477 bytes/s) - // сколько байт получено (31 368), за какое время (ч.мм.сс) и с какой средней скоростью (10 477 bytes/s)
сообщение: JOB COMPLETED SUCCESSFULLY - // работа завершена

5.2.1.4 Некоторые команды

управления доступом
USER - имя пользователя
PASS - пароль
CWD - имя новой рабочей директории
CDUP - перейти на один уровень директории вверх
QUIT - выход

установки параметров передачи
PORT ip1,ip2,ip3,ip4,p1,p2 - IP адрес клиента (ip1,ip2,ip3,ip4) и порт (p1,p2) (расчет порта p1*256+p2=номер порта)
Пример:
Entering Passive Mode (194,87,5,52,9,79)

194.87.5.52 - IP адрес
2383 - номер порт, расчет порта 9*256+79=2383
PASV - сервер должен определить нестандартный порт данных, начать его слушать и вернуть ip-адрес и номер порта в формате PORT
TYPE { { A | E } [ N | T | C ] } | I | L размер-байта (по умолчанию - A N) - специфицирует тип информации

действия
RETR - имя файла (взять файл)
STOR - имя файла (передать файл)
REST - маркер (для докачки уже частично скаченного файла - обычно указывается смещение в байтах)
DELE - имя удаляемого файла
RMD - имя удаляемой директории
MKD - имя создаваемой директории
PWD - в ответе указать имя текущей директории
LIST [имя директории или файла] - передать по соединению данных список имен файлов в директории или информацию о файле
SYST - ответ должен содержать тип ОС сервера и др. полезную информацию
STAT - ответ содержать информацию о текущем состоянии сервера; если команда выдана в процессе передачи файла и предварена посылкой сигналов telnet-а IP и Synch, то ответ д. содержать информацию о состоянии пересылки
STAT имя файла - ответ должен содержать информацию о файле

прочее
HELP [имя команды] - описание работы данной команды
NOOP - пустая команда

5.2.1.5 Некоторые типы данных:

  •  ASCII (TYPE A ) - передача текстовой информации
  •  IMAGE (TYPE I ) - передача бинарных файлов

5.2.1.6 Коды возврата

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

Первая цифра:
1yz - предварительный положительный ответ: команда принята, но не завершена
2yz - действие успешно завершено
3yz - команда принята, сервер ждет дополнительную информацию
4yz - временная неудача, повторить через некоторое время
5yz - фатальная ошибка

Вторая цифра:
x0z - синтаксис
x1z - ответ на запрос информации
x2z - ответ относится к состоянию управляющего соединения или соединения данных
x3z - аутентификация и учет
x4z - смысл не определен
x5z - состояние файловой системы сервера

5.2.1.6 Некоторые коды возврата

110 Комментарий

120 Функция будет реализована через nnn минут

125 Канал открыт, обмен данными начат

150 Статус файла правилен, подготавливается открытие канала

200 Команда корректна

211 Системный статус или отклик на справочный запрос

212 Состояние каталога

213 Состояние файла

214 Справочное поясняющее сообщение

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

221 Благополучное завершение по команде quit

225 Канал сформирован, но информационный обмен отсутствует

226 Закрытие канала, обмен завершен успешно

230 Пользователь идентифицирован, продолжайте

250 Запрос прошел успешно

331 Имя пользователя корректно, нужен пароль

332 Для входа в систему необходима аутентификация

421 Процедура не возможна, канал закрывается

425 Открытие информационного канала не возможно

426 Канал закрыт, обмен прерван

450 Запрошенная функция не реализована, файл не доступен, например, занят

451 Локальная ошибка, операция прервана

452 Ошибка при записи файла (не достаточно места)

500 Синтаксическая ошибка, команда не может быть интерпретирована (возможно, она слишком длинна)

501 Синтаксическая ошибка (неверный параметр или аргумент)

502 Команда не используется (нелегальный тип MODE)

503 Неудачная последовательность команд

504 Команда не применима для такого параметра

530 Система не загружена (not logged in)

532 Необходима аутентификация для запоминания файла

550 Запрошенная функция не реализована, файл не доступен, например, не найден

552 Запрошенная операция прервана, недостаточно выделено памяти

5.2.1.7 Соединение к FTP с помощью Telnet

Подсоединимся к командному порту FTP (21):

>telnet ipm.kstu.ru 21

5.3 Протокол TFTP

TFTP - тоже протокол FTP, но поверх протокола UDP (т.е. протокол без гарантированной доставки). Может использоваться в локальной сети, где скорость передачи важнее. На практике используется редко.

5.4 Программы клиенты

FTP - программа запускается с командной строки.

Windows Comander - может работать как FTP-клиент. Позволяет работать с удаленными каталогами также как с локальными.

NetVampire - Специализированный FTP-клиент, который позволяет качать большие файлы и качать по плохим каналам.

Служба WWW. Протокол HTTP.

Литература 

  •  WWW Семенов Ю.А. (ГНЦ ИТЭФ)
  •  Гипертекстный протокол HTTP Семенов Ю.А. (ГНЦ ИТЭФ)
  •  Лабиринт Internet. Павел Храмцов, Электронинформ, 1996
  •  Описание протокола HTTP 
  •  HTTP -- CGI 
  •  HTTP - Hypertext Transfer Protocol Overview - официальная документация 

6.1 Служба WWW

Служба WWW (World Wide Web) - предназначена для обмена гипертекстовой информацией.

Проект был предложен в 1989 году. В 1993 появился первый браузер.

WWW построена по схеме "клиент-сервер".

Браузер (Internet Explorer, Opera ...) является мультипротокольным клиентом и интерпретатором HTML. И как типичный интерпретатор, клиент в зависимости от команд (тегов) выполняет различные функции. В круг этих функций входит не только размещение текста на экране, но обмен информацией с сервером по мере анализа полученного HTML-текста, что наиболее наглядно происходит при отображении встроенных в текст графических образов.

Сервер HTTP (Apeche, IIS ...) обрабатывает запросы клиента на получение файла (в самом простом случае).

Взаимодействие клиент и сервера по протоколу HTTP.

В начале служба WWW базировалась на трех стандартах:

  •  HTML (HyperText Markup Lan-guage) - язык гипертекстовой разметки документов ;
  •  URL (Universal Resource Locator) - универсальный способ адресации ресурсов в сети ;
  •  HTTP (HyperText Transfer Protocol) - протокол обмена гипертекстовой информацией.

Позже добавили:

  •  CGI (Common Gateway Interface) - универсальный интерфейс шлюзов. Создан для взаимодействия HTTP - сервера с другими программами, установленными на сервере (например, СУБД).

6.2 Протокол HTTP

Первый документ (но не стандарт) - RFC1945 (Hypertext Transfer Protocol -- HTTP/1.0 T. Berners-Lee, R. Fielding, H. Frystyk May 1996)

Последняя версия - RFC2616 (Hypertext Transfer Protocol -- HTTP/1.1 R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee June 1999)

Hypertext Transfer Protocol - протокол передачи гипертекста, протокол высокого уровня (а именно, уровня приложений).
. Используется службой WWW для передачи Web-страниц.

Протокол HTTP определяет запрос-ответный способ взаимодействия между программой-клиентом и программой-сервером в рамках технологии World Wide Web. Ниже приведены примеры запроса клиента и ответа сервера:

Листинг запроса и ответа HTTP

Установка соединения
Connecting to ipm.kstu.ru ...
Connected to ipm.kstu.ru [195.208.44.20]

Запрос клиента:
GET /internet/index.php HTTP/1.1 - (запрос файла и указание протокола HTTP/1.1)
Connection: close - (
закрыть соединение после отправки файла)
Host: ipm.kstu.ru - (
указание адреса сервера)
Accept: */* - (
предпочтение типов данных)
Cache-Control: no-cache - (
не кешировать)
Referer: http://ipm.kstu.ru/internet/ - (
от куда пришел клиент)
User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 95) - (
название программы клиента)

Ответ сервера
HTTP/1.0 200 OK - (
какой протокол используется, 200 - означает, что файл найден)
Date: Wed, 23 Oct 2002 08:32:31 GMT - (
дата и время ответа)
Server: Apache/1.3.26 (Unix) PHP/4.1.2 rus/PL30.15 - (
название, версия и модули http-сервера)
X-Powered-By: PHP/4.1.2 - (
чем создана страница)
Connection: close - (
закрыть соединение после получения файла)
Content-Type: text/html; charset=windows-1251 - (
тип данных html, кодировка windows-1251)

Дальше идет содержимое файла (тело запроса).

Работа по протоколу HTTP происходит следующим образом: программа-клиент устанавливает TCP-соединение с сервером (стандартный номер порта-80) и выдает ему HTTP-запрос. Сервер обрабатывает этот запрос и выдает HTTP-ответ клиенту.

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

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

Запрос в главной строке состоит из трех частей, разделенных пробелами:

1) Метод (иначе говоря, команда HTTP):

GET - Метод GET служит для получения любой информации, в соответствии URI-запроса.

HEAD - запрос заголовка документа. Отличается от GET тем, что выдается только заголовок запроса с информацией о документе. Сам документ не выдается.

POST - этот метод применяется для передачи данных CGI-скриптам. Сами данные следуют в последующих строках запроса в виде параметров.

PUT - поместить документ на сервере. Запрос с этим методом имеет тело, в котором передается сам документ.


DELETE - используется для удаления ресурсов, идентифицированных с помощью URI-запроса

2) Ресурс - это путь к определенному файлу на сервере (называется URI), который клиент хочет получить (или разместить - для метода PUT). Если ресурс - просто какой-либо файл для считывания, сервер должен по этому запросу выдать его в теле ответа. Если же это путь к какому-либо CGI-скрипту, то сервер запускает скрипт и возвращает результат его выполнения. Кстати, благодаря такой унификации ресурсов для клиента практически безразлично, что он представляет собой на сервере.

3) Версия протокола - версия протокола HTTP, с которой работает клиентская программа.

Строки после главной строки запроса имеют следующий формат:

Параметр: значение.

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

6.2.1 Некоторые параметры HTTP-запроса: 

Connection (соединение) - может принимать значения Keep-Alive и close. Keep-Alive ("оставить в живых") означает, что после выдачи данного документа соединение с сервером не разрывается, и можно выдавать еще запросы. Большинство браузеров работают именно в режиме Keep-Alive, так как он позволяет за одно соединение с сервером "скачать" html-страницу и рисунки к ней. Будучи однажды установленным, режим Keep-Alive сохраняется до первой ошибки или до явного указания в очередном запросе Connection: close.
close ("закрыть") - соединение закрывается после ответа на данный запрос.

User-Agent - значением является "кодовое обозначение" браузера, например:

Mozilla/4.0 (compatible; MSIE 5.0; Windows 95; DigExt)

Accept - список поддерживаемых браузером типов содержимого в порядке их предпочтения данным браузером, например:

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*

Это, очевидно, нужно для случая, когда сервер может выдавать один и тот же документ в разных форматах.

Значение этого параметра используется в основном CGI-скриптами для формирования ответа, адаптированного для данного браузера.

Referer - URL, с которого перешли на этот ресурс.

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

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

6.2.2 Формат HTTP-ответа:

Формат ответа очень похож на формат запроса: он также имеет заголовок и тело, разделенное пустой строкой.

Заголовок также состоит из основной строки и строк параметров, но формат основной строки отличается от таковой в заголовке запроса.

Основная строка запроса состоит из 3-х полей, разделенных пробелами:

Версия протокола - аналогичен соответствующему параметру запроса.

6.2.3 Код возврата (ошибки, состояния) - кодовое обозначение "успешности" выполнения запроса.

Например, код 200 означает "все нормально" (OK).

Значения кодов возврата по первой цифре:
1xx: Информационный - Не используется, но зарезервирован для использования в будущем
2xх: Успех - Запрос был полностью получен, понят, и принят к обработке.
3xx: Перенаправление - Клиенту следует предпринять дальнейшие действия для успешного выполнения запроса. Необходимое дополнительное действие иногда может быть выполнено клиентом без взаимодействия с пользователем, но настоятельно рекомендуется, чтобы это имело место только в тех случаях, когда метод, использующийся в запросе безразличен (GET или HEAD).
4xx: Ошибка клиента - Запрос, содержащий неправильные синтаксические конструкции, не может быть успешно выполнен. Класс 4xx предназначен для описания тех случаев, когда ошибка была допущена со стороны клиента. Если клиент еще не завершил запрос, когда он получил ответ с Статус-Кодом- 4xx, он должен немедленно прекратить передачу данных серверу. Данный тип Статус-Кодов применим для любых методов, употребляющихся в запросе.
5xx: Ошибка Сервера - Сервер не смог дать ответ на корректно поставленный запрос. В этих случаях сервер либо знает, что он допустил ошибку, либо не способен обработать запрос. За исключением ответов на запросы HEAD, сервер посылает описание ошибочной ситуации и то, является ли это состояние временным или постоянным, в Содержание-Ответа. Данный тип Статус-Кодов применим для любых методов, употребляющихся в запросе.

Наиболее часто встречающиеся:
"200"; OK - документ отправлен.
"404"; Not Found - документ не найден (ошибка URL), клиент должен проверить правильность написания URL, если не помогает, значит, документ уже удален.
"500"; Internal Server Error - внутренняя ошибка сервера, клиент исправить не может, только администратор сервера.

Словесное описание ошибки - "расшифровка" предыдущего кода. Например, для 200 это OK, для 500 - Internal Server Error.

Таблица кодов возврата

Код

Название

Описание

100

Продолжайте

Клиент должен продолжать передачу запроса.

101

Переключение протоколов

Сервер предлагает изменить протокол на указанный в поле заголовка отклика Update. Обычно это предложение о переходе на более новую версию HTTP.

110

Отклик мог устареть

Отклик является устаревшим (используется в заголовке Warning).

111

Обновление не удалось

Отклик от кэша не является свежим, т. к. попытка обновить его закончилась неудачей (используется в заголовке Warning).

112

Разрыв соединения

Кэш был умышленно отсоединен от остальной сети на некоторое время (используется в заголовке Warning).

113

Эвристическое устаревание

Кэш эвристически выбрал период обновления, больший 24 часов, и возраст отклика более 24 часов (используется в заголовке Warning).

199

Различные предупреждения

Дополнительные предупреждения, не содержащиеся в данном списке (используется в заголовке Warning).

200

OK

Запрос был успешно обработан. Содержимое отклика зависит от типа запроса.

201

Создано

Запрос был успешно обработан и в результате был создан новый ресурс. Его URI указан в поле заголовка отклика Location.

202

Принято

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

203

Неавторитетная информация

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

204

Нет содержимого

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

205

Сброс содержимого

Сервер выполнил запрос, и обозреватель должен сбросить отображение документа.

206

Частичное содержимое

Сервер выполнил частичный запрос GET для ресурса.

214

Применено преобразование

Применено преобразование, изменившее кодировку или тип MIME отклика (используется в заголовке Warning).

299

Различные настойчивые предупреждения

Дополнительные предупреждения, не содержащиеся в данном списке (используется в заголовке Warning).

300

Несколько вариантов

Запрошенный ресурс имеет несколько представлений, и клиент должен выбрать одно из них.

301

Ресурс перенесен

Запрошенный ресурс сменил свой URI. Его новый URI указан в поле заголовка отклика Location.

302

Найдено

Запрошенный ресурс временно сменил свой URI.

303

Смотри другое

Отклик на данный запрос может быть найден под другим URI, указанным в поле заголовка отклика Location.

304

Не изменено

Клиент выполнил условный запрос GET, доступ разрешен, но документ не был изменен.

305

Используйте прокси

Доступ к запрошенному ресурсу возможен только через прокси-сервер, указанный в поле заголовка отклика Location.

306

зарезервирован 

307

Временное перенаправление

Запрошенный ресурс временно находится под другим URI, указанном в поле заголовка отклика Location.

400

Неверный запрос

Запрос не был понят сервером из-за его неверного синтаксиса.

401

Нет права доступа

Запрос требует авторизации доступа, тип которой указан в поле заголовка отклика WWW-Authenticate.

402

Требуется платеж

Зарезервировано для следующих версий HTTP.

403

Запрещено

Сервер понял запрос, но отказался его выполнять.

404

Не найдено

Ресурс, заданный в URI запроса, не найден.

405

Недопустимый метод

Данный тип запроса не применим к ресурсу, заданному в URI запроса.

406

Неприемлемо

Ресурс, заданный в URI запроса, может генерировать только отклики, не приемлемые для клиента.

407

Прокси требует авторизации доступа

Прокси-сервер требует авторизации доступа, тип которой указан в поле заголовка отклика Proxy-Authenticate.

408

Таймаут запроса

Клиент не послан ни одного запроса в течение отведенного ему интервала.

409

Конфликт

Запрос не может быть выполнен из-за конфликта с текущим состоянием ресурса.

410

Ресурс исчез

Запрошенного ресурса больше нет на сервере, и сервер не знает его нового URI.

411

Требуется длина запроса

В запросе не задано поле заголовка Content-Length.

412

Условие ложно

Условие, заданное в заголовке условного запроса, не может быть выполнено.

413

Слишком длинное тело запроса

Тело запроса длиннее, чем допускает сервер.

414

Слишком длинное URI запроса

URI запроса длиннее, чем допускает сервер.

415

Не поддерживаемый тип устройства

Формат тела запроса не поддерживается данным ресурсом для данного типа запроса.

416

Запрошенный диапазон пуст

Запрошенный ресурс не содержит значений в диапазоне, заданном в поле заголовка запроса Range.

417

Предположение не оправдалось

Предположение, указанное в поле заголовка запроса Expect, отвергнуто сервером.

500

Внутренняя ошибка сервера

Запрос не исполнен из-за неожиданной ошибки сервера.

501

Не реализовано

Сервер не поддерживает данный тип запросов.

502

Плохой шлюз

Сервер, выступающий в роли шлюза или прокси-сервера, получил неверный отклик от следующего сервера.

503

Служба недоступна

Сервер временно не может исполнить запрос из-за перегрузки.

504

Таймаут шлюза

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

505

Версия HTTP не поддерживается

Сервер не поддерживает версию HTTP, указанную в заголовке запроса.

6.2.3 Некоторые параметры http-ответа:

Connection - этот ответ аналогичен соответствующему параметру запроса.

Если сервер не поддерживает Keep-Alive (есть и такие серверы), то значение Connection в ответе всегда close.

Content-Type - содержит обозначение типа содержимого ответа в MIME.

В зависимости от значения Content-Type браузер воспринимает ответ как HTML-страницу, картинку gif или jpeg, как файл, который надо сохранить на диске, или как что-либо еще и предпринимает соответствующие действия.

Некоторые типы содержимого:

text/html - текст в формате HTML (веб-страница);
text/plain - простой текст (аналогичен "блокнотовскому");
image/jpeg - картинка в формате JPEG;
image/gif - то же, в формате GIF;

Также может передавать кодировку для текстовых данных.

Например:

charset=windows-1251

charset=koi8-rus

Content-Length - длина содержимого ответа в байтах (размер файла).

Last-Modified - дата и время последнего изменения документа.

6.2.4 Соединение к HTTP с помощью Telnet

Подсоединимся к командному порту HTTP (80), и запросим файл robots.txt:

6.3 Программа TeleportPro.

Бывают ситуации, когда необходимо работать с информацией с локального диска, например:

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

Для создания локальной копии сайта или части сайта, существуют специальные программы. Одна из них TeleportPro. Сервер разработчика http://www.tenmax.com/ .

Некоторые возможности программы:

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


 

А также другие работы, которые могут Вас заинтересовать

67369. ПРАВОВОЙ НИГИЛИЗМ И ПРАВОВОЙ ИДЕАЛИЗМ 245.5 KB
  Проблема правового нигилизма и правового идеализма в учебной литературе по теории государства и права до сих пор не рассматривалась. Современное российское общество характеризуется множеством различных противоречий среди которых наблюдается и такое как причудливое переплетение...
67370. Перевантаження операторів введення-виведення даних 85.5 KB
  У розглянутих раніше прикладах програм для виконання операції введення або виведення «класових» даних створювалися функції-члени класів, призначення яких полягало тільки у тому, щоб ввести або вивести ці дані. Незважаючи на те, що у такому вирішенні цих питань немає нічого неправильного, проте у мові...
67371. МЕХАНИЗМ ПРАВОВОГО РЕГУЛИРОВАНИЯ 118.5 KB
  Право — многогранное явление, призванное регулировать общественные отношения. Его можно рассматривать с разных сторон. В роли социального феномена цивилизации, элемента культуры, меры свободы и справедливости право в большей степени...
67372. Форматування даних за допомогою функцій-членів класу ios 645 KB
  Дотепер під час введення або виведення інформації в наведених вище прикладах програм діяли параметри форматування, які за замовчуванням використовує С++-система введення-виведення. Але програміст може сам керувати форматом представлення даних, причому двома способами.
67373. СТИМУЛЫ И ОГРАНИЧЕНИЯ В ПРАВЕ 118.5 KB
  Правовое регулирование не имеет ни вещественной, ни энергетической формы, а осуществляется преимущественно на информационном уровне. Однако информация бывает разная: описательного характера (дескриптивная) и сугубо управленческая, нормативная, предписывающая (прескриптивная).
67374. Створення власних маніпуляторних функцій 532 KB
  Програміст може самостійно створювати власні маніпуляторні функції. Існує два типи маніпуляторних функцій – ті, що приймають (параметризовані) і не приймають аргументи (непараметризовані). Для створення параметризованих маніпуляторів використовуються підходи...
67375. ЛЬГОТЫ И ПООЩРЕНИЯ В ПРАВЕ 162 KB
  Находит новое отражение в законодательстве и учет особых интересов субъектов средством которого выступают правовые льготы. Льготы есть прежде всего социальная мера в этом проявляется их общественная ценность. Кроме того льготы все активнее используются в российской правовой системе...
67376. ИНДИВИД И ЛИЧНОСТЬ 98 KB
  Проблема nостоянства или тождества личности одна из важнейших и наиболее разработанных проблем философии психологии и социологии. Религиозная концепция личности также настаивает на бессмертии и бесконечной ответственности постоянного ядра личности но либо допускает перевоплощение душ...
67377. ЗАКОННОСТЬ И ПРАВОПОРЯДОК 136.5 KB
  Проблема законности одна из центральных в общей теории государства и права. В свете этих изменений существующая в литературе интерпретация законности обладает рядом принципиальных недостатков. Вопервых содержание данной категории не отражает всего многообразия явлений формирующих представления о ней...