стартовой строке запроса необходимо указать HTTP метод, URI документа и версию HTTP. В заголовке Host – имя хоста. Это был минимальный запрос. Если убрать заголовок Host, сервер скажет «Bad request».
Ответ начинается со стартовой строки «HTTP/1.1 200 OK», что означает, что наш запрос обработан успешно. Нам присылают желанный документ, содержимое которого находится в теле HTTP ответа. Именно его мы увидим, если нажмем в браузере кнопку «Исходный код страницы». Среди заголовков, обратите внимание на Content-Length – здесь указан размер тела сообщения в байтах.
Пустая строка означает, что заголовки закончились и начинается тело сообщения. Именно поэтому мы нажимали Enter дважды в конце запроса.
Результат пересылки наблюдаем на рис.1.
…
Рис.1. Ответ сервера на HTTP – запрос
…
Рис. 2. Передача пакетов по сети.
При установлении связи клиент отправляет пакет по протоколу TCP с установленным флагом SYN, на что сервер отвечает ему подтверждением (флаги SYN, ACK). Связь осуществляется между портами:клиент-порт 1039 и сервер-80. Могут применяться в некоторых случаях для расширения протокола. Поле Options иногда используются для тестирования. На данный момент в опции включены 2 байта NOP (в данном случае 0x01), 4 байта Maximum segment size(максимальная длина сегмента TCP) - вычислить длину поля опции можно через значение поля смещения. И TCP SACK Permitted Option: true означает, что Выборочное подтверждение(Selective Acknowledgement), одно из расширений TCP-протокола, включено. Подтверждения в обычном TCP (без SACK) действуют строго накопительно— — подтверждение N означает, что был принят N-й байт и все предыдущие. Зато получатель с SACK может передать ACK для 1-го пакета, а также дополнение SACK для пакетов с 3-го по N-й. Эта дополнительная информация помогает отправителю определить, что потери минимальны, и повторно передать требуется лишь малую часть данных. Без этой дополнительной информации требовалось бы передавать намного больше данных и замедлять скорость отправки для приспособления к сети с большими потерями.
При приеме данных приемник высылает подтверждение по протоколу TCP с флагом ACK:
Далее происходит обмен служебной информации, при завершении которого начинается обмен пользовательской. Данные передаются в открытом виде и их можно зафиксировать в анализаторе трафика. Передача пакетов с данными осуществляется по проколу HTTP, с установленными флагами PSH и ACK на те же порты, что и при установлении соединения.
Sequence number отвечает за номер последовательности. Номер последовательности выполняет две задачи:
1. Если установлен флаг SYN, то это начальное значение номера последовательности — ISN (Initial Sequence Number), и первый байт данных, которые будут переданы в следующем пакете, будет иметь номер последовательности, равный ISN + 1.
2. В противном случае, если SYN не установлен, первый байт данных, передаваемый в данном пакете, имеет этот номер последовательности.
Если установлен флаг ACK, то поле Ack содержит номер последовательности, ожидаемый получателем в следующий раз. Помечает этот сегмент как подтверждение получения.
После обмена пользовательской информацией происходит разрыв соединения. Клиент отсылает пакет по протоколу TCP серверу с установленным флагом FIN и ACK.
На что сервер отвечает подтверждением (ACK):
В случае, когда TCP-соединение остутствует:
Выставлен флаг RST(Resettheconnection) — Оборвать соединения, сбросить буфер (очистка буфера).
3.2. Активное подключение по протоколу ftp к адресу ftp.neva.ru
Кратко об ftp: это протокол, предназначенный для передачи файлов в компьютерных сетях. FTP позволяет подключаться к серверам FTP, просматривать содержимое каталогов и загружать файлы с сервера или на сервер; кроме того, возможен режим передачи файлов между серверами.
Для выполнения данного пункта исследования в окне терминала набираем команду ftp ftp.neva.ru. Используем логин ftp и любой пароль для анонимного входа. Пересылаемые при выполнении данных операций пакеты, зарегистрированные WireShark, продемонстрированы на рис.2.
Рис. 2. Пересылаемые по сети пакеты
В учебной лаборатории подключиться к ftp-серверу через активное соединение не удалось. Скорее всего, это вызвано тем, что без специальных прав доступа фаервол или NAT блокирует нужный нам сервер.
Повторим попытку в другой сети:
………………………
Первое соединение идет от клиента на сервер, а второе от сервера
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.