CCIE за год. Цикл 2. Тема 11. Вопросы.

1. Назовите самое оптимальное время загрузки веб-страницы.

Чем быстрее скорость загрузки страницы – тем лучше. Комфортные для пользователя — 2-5 секунд (зависит от конкретной страницы и ее содержимого).

2. Дайте полное объяснение работе HTTP.

Классическая схема HTTP-сеанса выглядит так:

  • Установление TCP-соединения
  • Запрос клиента
  • Ответ сервера
  • Разрыв TCP-соединения

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

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

  • Строка состояния
  • Поля заголовка
  • Пустая строка
  • Тело запроса

Строка состояния имеет следующий формат:

метод_запроса URL_pecypca версия_протокола_НТТР

Метод, указанный в строке состояния, определяет способ воздействия на ресурс, URL которого задан в той же строке. Метод может принимать значения GET, POST, HEAD, PUT, DELETE и т.д.
Версия протокола HTTP, как правило, задается в следующем формате: HTTP/версия.модификация
Поля заголовка, следующие за строкой состояния, позволяют уточнять запрос, т.е. передавать серверу дополнительную информацию.

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

  • Строка состояния
  • Поля заголовка
  • Пустая строка
  • Тело ответа

Ответ сервера клиенту начинается со строки состояния, которая имеет следующий формат:

Версия_протокола Код_ответа Пояснительное_сообщение

Версия_протокола задается в том же формате, что и в запросе клиента, и имеет тот же смысл.

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

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

HТТР/1.0 200 ОК

Как видно, за версией протокола HTTP 1.0 следует код 200. В этом коде символ 2 означает успешную обработку запроса клиента, а остальные две цифры (00) — номер данного сообщения.

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

1 — специальный класс сообщений, называемых информационными. Код ответа, начинающийся с 1, означает, что сервер продолжает обработку запроса. При обмене данными между HTTP-клиентом и HTTP-сервером сообщения этого класса используются достаточно редко.
2 — успешная обработка запроса клиента.
3 — перенаправление запроса. Чтобы запрос был обслужен, необходимо предпринять дополнительные действия.
4 — ошибка клиента. Как правило, код ответа, начинающийся с цифры 4, возвращается в том случае, если в запросе клиента встретилась синтаксическая ошибка.
5 — ошибка сервера. По тем или иным причинам сервер не в состоянии выполнить запрос.

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

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

Поле с именем Content-type может встречаться как в запросе клиента, так и в ответе сервера. В качестве значения этого поля указывается MIME -тип содержимого запроса или ответа. MIME -тип также передается в поле заголовка Accept, присутствующего в запросе.

Спецификация MIME (Multipurpose Internet Mail Extension — многоцелевое почтовое расширение Internet) первоначально была разработана для того, чтобы обеспечить передачу различных форматов данных в составе электронных писем. Однако применение MIME не исчерпывается электронной почтой. Средства MIME успешно используются в WWW и, по сути, стали неотъемлемой частью этой системы.

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

В соответствии со спецификацией MIME, для описания формата данных используются тип и подтип. Тип определяет, к какому классу относится формат содержимого HTTP-запроса или HTTP-ответа. Подтип уточняет формат. Поскольку в подавляющем большинстве случаев в ответ на запрос клиента сервер возвращает исходный текст HTML-документа, то в поле Content-type ответа обычно содержится значение text/html.

3. Какой командой можно проверить настройки HTTP клиента?

show ip http client { all | cache | connection | history | secure status | session-module | statistics }

4. Какой командой можно проверить настройки HTTP сервера?

show ip http server { all | status | session-module | connection | statistics | history }

5. Дайте полное объяснение работе FTP.

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

В активном режиме клиент устанавливает управляющее соединение на порт 21 сервера и передает специальную команду PORT, в которой указывает свой адрес и порт для передачи данных. Получив данную команду, сервер устанавливает соединение с 20 порта на указанный в команде порт клиента. Для работы в активном режиме клиенту требуется выделенный IP-адрес. Также определенные сложности будут возникать при нахождении клиента за firewall или NATом.

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

6. Какие проблемы могут возникнуть при использовании FTP?

Проблема с firewall
Проблема с NAT

7. Дайте полное объяснение работе TFTP.

TFTP (Trivial File Transfer Protocol — простой протокол передачи файлов). Основан на транспортном протоколе UDP.

Протокол TFTP использует 3 типа передач:

  • NetASCII — «USA Standart Code for Information Interchange», c модификациями, определенными в «Telnet Protocol Specification»
  • Octet — Ранее использовался термин «Binary»
  • Mail — Практически то же самое, что и NetASCII, с той небольшой поправкой, что вместо имени файла пишется адрес пользователя

TFTP имеет 5 видов пакетов:

  1. Read Request (RRQ)
  2. Write Request (WRQ)
  3. Данные (DATA)
  4. Подтверждение (ACK) — Acknowlegment
  5. Ошибка (ERROR)

Любая передача начинается с запроса на чтение или на запись, который одновременно служит для запроса на соединение. Если сервер положительно реагирует на запрос, то соединение открывается и файл пересылается в стандартных блоках по 512 байт. Каждый пакет данных содержит один блок данных и его получение должно быть подтверждено перед высылкой следующего пакета. Пакет данных размером меньше, чем 512 байт (0..511) означает конец передачи.Если пакет потеряется в сети, то пакет, подтверждающий прием не будет выслан. В этом случае высылающий компьютер, не получив подтверждения в течение установленного времени, должен повторно выслать пакет с данными. Передающий компьютер должен держать в памяти только один пакет данных до тех пор, пока не получит подтверждения его получения. Следует отметить, что обе машины — и передающая, и принимающая, — занимаются как приемом, так и передачей пакетов. Одна пересылает данные и получает подтверждающие пакеты, а другая посылает подтверждения и получает данные.

Большая часть ощибок вызывает разрыв соединения. Сообщение об ошибке высылается при помощи ERROR-пакета. Прием этого пакета не подтверждается и не передается повторно (что вполне понятно, т.к. пользователь или сервер могут закончить работу сразу после высылки сообщения об ошибке), таким образом получатель этого пакета может его и не получить.В этом случае конец соединения можно определить по timeout. Ошибки возникают в трех случаях:

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

 

Дополнительный материал:

  1. HTTP 1.1 Web Server and Client
  2. Cisco IOS HTTP Services Command Reference
  3. Using the Cisco Web Browser User Interface
  4. Configuring Basic File Transfer Services