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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Типы адресов.

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

1. Физический (MAC-адрес)

2. Сетевой (IP-адрес)

3. Символьный (DNS-имя)

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

· Локальный адрес компьютера. Для узлов, входящих в локальные сети - это МАС-адрес сетевого адаптера. Эти адреса назначаются производителями оборудования и являются уникальными адресами.

· IP-адрес, состоящий из 4 байт, например, 109.26.17.100. Этот адрес используется на сетевом уровне. Он назначается администратором во время конфигурирования компьютеров и маршрутизаторов.

· Символьный идентификатор-имя (DNS), например, www.kstu.ru.

IP-адреса

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

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

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


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


10100000.01010001.00000101.10000011 = 160.81.5.131

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

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

160.81.5.131 - IP-адрес

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

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

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

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

· Открытые стандарты протоколов, разрабатываемые независимо от программного и аппаратного обеспечения;

· Независимость от физической среды передачи;

· Система уникальной адресации;

· Стандартизованные протоколы высокого уровня для распространенных пользовательских сервисов.

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

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

· Прикладной,

· Транспортный,

· Межсетевой,

· Физический и канальный.

Позже была принята 7-ми уровневая модель ISO, но она не используется.

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

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

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

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

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

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

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

TCP (Transfer Control Protocol) – протокол контроля передачи, протокол TCP применяется в тех случаях, когда требуется гарантированная доставка сообщений.

Первая и последняя версия TCP - RFC-793 (Transmission Control Protocol J. Postel Sep-01-1981).

Основные особенности:

· Устанавливается соединение.

· Данные передаются сегментами. Модуль TCP нарезает большие сообщения (файлы) на пакеты, каждый из которых передается отдельно, на приемнике наоборот файлы собираются. Для этого нужен порядковый номер (Sequence Number - SN) пакета.

· Посылает запрос на следующий пакет, указывая его номер в поле "Номер подтверждения" (AS). Тем самым, подтверждая получение предыдущего пакета.

· Делает проверку целостности данных, если пакет битый посылает повторный запрос.

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

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

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

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

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

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

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

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

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

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

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

1.3.4.2 Протокол UDP

UDP (Universal Datagram Protocol) - универсальный протокол передачи данных, более облегченный транспортный протокол, чем TCP.

Первая и последняя версия UDP - RFC-768 (User Datagram Protocol J. Postel Aug-28-1980).

Основные отличия от TCP:

· Отсутствует соединение между модулями UDP.

· Не разбивает сообщение для передачи

· При потере пакета запрос для повторной передачи не посылается

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

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


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

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

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

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

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

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

Порты могут принимать значение от 0-65535 (два байта 2^16).

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

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

Порт Служба Описание
  - Зарезервировано
  Daytime Синхронизация времени
  ftp-data Канал передачи данных для FTP
  ftp Передача файлов
  telnet Сетевой терминал
  SMTP Передача почты
  time Синхронизация времени
  Whois Служба Whois
  DNS Доменные имена
  bootps BOOTP и DHCP - сервер
  bootps BOOTP и DHCP - клиент
  tftp Упрощенная передача почты
  HTTP Передача гипертекста
  POP2 Получение почты
  POP3 Получение почты
  NNTP Конференции
  NTP Синхронизация времени
  netbios-ns NETBIOS - имена
  netbios-dgm NETBIOS Datagram Service
  netbios-ssn NETBIOS Session Service
  imap2 Получение почты
  SNMP Протокол управления
  z39.50 Библиотечный протокол
  IPX IPX - протокол
  imap3 Получение почты
  HTTPs HTTP с шифрованием
  RIP Динамическая маршрутизация
Диапазон 1024-65535
  - Зарезервировано
6000-6063 X11 Графический сетевой терминал

Программа Ping

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

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

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

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

PingPloter -рисует график маршрута (официальный сервер - http://www.pingplotter.com).

VisualRoute -рисует маршрут на карте Земли, и делает запросы whois (официальный сервер - http://www.visualroute.com/).

Для чего это нужно?

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

Например, для нашего сервера существуют следующие соответствия:


127.0.0.1 localhost
195.208.44.20 ipm.kstu.ru
195.208.44.20 www.ipm.kstu.ru

Длина имени не более 63 символов

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

Это файлы имеет название hosts, и находится в каталогах:

· Для UNIX - /etc/hosts

· Для Windows - C:\windows\system32\drivers\etc\hosts

Можете сами изменить его, например, внеся запись:

195.208.44.20 ipm

Теперь вы можете, просто набрав в браузере ipm попасть на сервер www.ipm.kstu.ru. Таким образом, вы можете записать любой сервер.

Однако такой способ присвоения символьных имен был хорош до тех пор, пока Internet был маленьким. По мере роста сети стало затруднительным поддерживать большие списки имен на каждом компьютере. Для того, что бы решить эту проблему, были придумана служба DNS (Domain Name System).

Принципы организации DNS

Первый стандарт DNS определен в RFC0883 (Domain names: Implementation specification P.V. Mockapetris Nov-01-1983) и RFC0882 (Domain names: Concepts and facilities P.V. Mockapetris Nov-01-1983)

Последняя версия RFC1034 (Domain names - concepts and facilities P.V. Mockapetris Nov-01-1987) и RFC1035 (Domain names - implementation and specification P.V. Mockapetris Nov-01-1987)

Система доменных адресов строится по иерархическому принципу. Администрирование начинается с доменов верхнего, или первого, уровня.

Первые домены верхнего уровня были рассчитаны на США:

· gov - государственные организации

· mil - военные учреждения

· edu - образовательные учреждения

· com - коммерческие организации

· net - сетевые организации

Позднее, когда сеть перешагнула национальные границы США появились национальные домены типа:

· uk - Объединенное королевство

· jp - Япония

· au - Австралия

· ch - Чехия

· su - СССР

· ru - Россия

· и т.п.

IANA - The Internet Assigned Numbers Authority (Управление назначением адресов в Internet) - организация, осуществляющая контроль над распределением доменов первого уровня. Сервер http://www.iana.org/.

Базу можно посмотреть по адресу whois.iana.org.

Через WWW-интерфейс http://whois.iana.org/

Вслед за доменами первого уровня следуют домены, либо географические (kazan.ru, tatarstan.ru), либо организации (kstu.ru). В настоящее время практически любая организация или физическое лицо может получить свой собственный домен второго уровня (сервер РосНИИРОС - www.ripn.net).

Далее идут домены третьего уровня, например:

efir.kazan.ru

ipm.kstu.ru

www.kstu.ru - тоже домен третьего уровня.

Систему доменной адресации можно представить следующим образом:

Дерево доменных имен.

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

Система доменных имен - это сервис прикладного уровня, значит, использует транспорт TCP и UDP.

Порт по умолчанию - 53.

Сервис DNS строится по схеме "клиент-сервер". В качестве клиентской части выступает процедура разрешения имен - resolver, а в качестве сервера DNS-сервер (BIND...).

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

Например, когда мы хотим обратиться к серверу ipm.kstu.ru, ваш браузер, используя resolver, поступает следующим образом:

1. ищет запись ipm.kstu.ru в файле hosts, если не находит, то,

2. посылает запрос на известный DNS-кэширующий сервер (как правило, локальный), если на этом сервере запись не найдена, то,

3. сервер DNS-кэширующий обращается к DNS-ROOT серверу с запросом адреса DNS сервера отвечающего за домен первого уровня ru, если получает адрес, то,

4. сервер DNS-кэширующий обращается к DNS серверу, отвечающего за домен первого уровня ru, с запросом адреса DNS сервера отвечающего за домен второго уровня kstu.ru, если получает адрес, то,

5. сервер DNS-кэширующий посылает запрос на DNS сервер, отвечающий за домен второго уровня kstu.ru, если получает адрес, то,

6. сервер DNS-кэширующий адрес кэширует и передает клиенту

7. клиент обращается по IP адресу - 195.208.44.20

На схеме это выглядит так:

Алгоритм разрешения имен.

Некоторые типы DNS-серверов

Первичный - сервер, содержащий полную информацию о зоне.

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

Кэширующий - содержит записи, которые уже были запрошены

Формат DNS-сообщения

Формат DNS-сообщения. Слова по 32 бита.

Флаги DNS-сообщения (подробно поле флаги)

QR - Операция:
0 Запрос
1 Отклик

Тип запроса -
0 стандартный
1 инверсный
2 запрос состояния сервера

AA - Равен 1 при ответе от сервера, в ведении которого находится домен, упомянутый в запросе.

TC - Равен при укорочении сообщения. Для UDP это означает, что ответ содержал более 512 байт, но прислано только первые 512.

RD - Равен 1, если для получения ответа желательна рекурсия.

RA - Равен 1, если рекурсия для запрашиваемого сервера доступна.

Нули - Зарезервировано на будущее..

Тип отклика -
0 нет ошибки
1 ошибка в формате запроса
2 сбой в сервере
3 имени не существует

NS - Сервер Имен

Описывает вторичные DNS-сервера или DNS-сервер которому делегируется подзона.

Синтаксис:

{name} {ttl} addr-class NS Name-servers-name

Пример описания вторичных DNS-серверов:

IN NS ns1.kstu.ru.

IN NS ns2.kstu.ru.

IN NS ns3.kstu.ru.

Пример описания DNS-сервера (ns.ipm.kstu.ru), которому делегируется подзона ipm.kstu.ru:

ipm.kstu.ru. IN NS ns.ipm.kstu.ru.

A - Адрес

Описывает имя указанного IP-адреса

Синтаксис:

{name} {ttl} addr-class A address

Пример:

ipm.kstu.ru. IN A 195.208.44.20

www.ipm.kstu.ru. IN A 195.208.44.20

HINFO - Информация о Хосте

Содержит некоторую информацию о машине, обычно - тип процессора и операционной системы.

Синтаксис:

{name} {ttl} addr-class HINFO Hardware OS

Hardware - тип процессора

OS - операционная система

Пример:

ipm.kstu.ru. IN HINFO "Celeron-600" "RedHat linux"

TXT - Текст

Запись TXT содержит текстовые данные любого вида.

Синтаксис:

name {ttl} addr-class TXT string

Пример:

ipm.kstu.ru. IN TXT "Текстовая информация"

RP - Ответственная Персона

Ответственный за хост. Почтовый адрес лица (admin@ipm.kstu.ru), ответственного за хост.

Синтаксис:

owner {ttl} addr-class RP mbox-domain-name TXT-domain-name

mbox-domain-name - это доменное имя, определяющее почтовый ящик ответственного человека

TXT-domain-name - это имя домена, для которого существует запись TXT

Пример:

www.ipm.ru. IN RP admin.ipm.kstu.ru. ipm.kstu.ru.

ipm.kstu.ru. IN TXT "tel: 34-54-34, fax: 34-54-34"

Пояснение:

www.ipm.ru. - хост за который он отвечает

admin.ipm.kstu.ru - его e-mail (admin@ipm.kstu.ru)

ipm.kstu.ru - это имя записи TXT, которая может содержать телефоны этого лица.

Программа NSLookUp.

Программа nslookup предназначена для тестирования работы DNS сервера.

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

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

·. Учебное пособие, П.Б. Храмцов, 1997.

· Лабиринт Internet. Павел Храмцов, Электронинформ, 1996.

 

Некоторые схемы 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-типов из заголовка сообщений сервера или по расширению файла.

· Лекция 5 - Служба FTP. Протокол FTP. Протокол TFTP.

· - Семенов Ю.А.

· Лабиринт Internet. Павел Храмцов, Электронинформ, 1996.

· Учебник по FTP

· Получение файлов через FTP

· Организация и администрирование почтовых и файловых серверов Internet, П.Б. Храмцов.

· Протокол пересылки файлов FTP

· FTP: протокол передачи файлов

· Служба архивов FTP

· Active FTP vs. Passive FTP, a Definitive Explanation

Служба FTP.

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

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

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

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

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

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

· URL (Universal Resource Locator) - универсальный способ адресации ресурсов в сети;

· FTP (File Transfer Protocol) - протокол передачи файлов.

Протокол 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).

Протокол TFTP

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

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

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

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

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

· Лекция 6 - Служба WWW. Протокол HTTP.

· Семенов Ю.А. (ГНЦ ИТЭФ)

· Гипертекстный протокол HTTP Семенов Ю.А. (ГНЦ ИТЭФ)

· Лабиринт Internet. Павел Храмцов, Электронинформ, 1996

· Описание протокола HTTP

· HTTP -- CGI

· HTTP - Hypertext Transfer Protocol Overview - официальная документация

Служба 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 - сервера с другими программами, установленными на сервере (например, СУБД).

Протокол 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).

Формат 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.

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



Поделиться:


Последнее изменение этой страницы: 2017-02-22; просмотров: 264; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.211.66 (0.327 с.)