Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Володин В.Е. TCP.docx
Скачиваний:
13
Добавлен:
11.03.2016
Размер:
401.02 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

Федеральное государственное бюджетное образовательное учреждение высшего образования

МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ СВЯЗИ И ИНФОРМАТИКИ

Кафедра «Информационная безопасность и автоматизация»

ОТЧЁТ

ПО ЛАБОРАТОРНОЙ РАБОТЕ №4

по дисциплине «Методы и средства защиты информации в компьютерных сетях»

Изучение работы протокола TCP

Выполнил:

студент группы БИБ1301

Володин В.Е.

Проверил:

ассистент кафедры ИБиА

Барков В.В.

Дата:______________

Оценка:____________

Москва 2015

Цель работы

Изучить принцип работы протокола TCP, структуру TCP-сегмента.

Задание

Для выполнения работы необходим компьютер с доступом к сети Интернет.

Разработать класс TcpSegment, содержащий экземпляр класса Buffer. Класс должен хранить данный в формате, описанном в RFC 793. Класс должен представлять методы для получения и установки всех полей, описанных в RFC 793. Данные сегмента должны быть представлены классом Buffer со смещением равным длине заголовка. При возврате данных не используйте копирование.

Разработайте консольное приложение. Скопируйте из Wireshark бинарное представление TCP-сегмента. В программе создайте экземпляр класса Buffer из этих данных. Созданный экземпляр передайте в конструктор класса TcpSegment. Выполните чтение каждого поля заголовка. Выведите на экран значения всех полей и сравните с теми, которые отображаются в Wireshark. По очереди меняйте каждое поле. После каждого изменения убедитесь, что значения других полей остались прежними.

Описание структуры TCP сегмента и назначения всех его полей.

Порт источника, Порт назначения

Эти 16-битные поля содержат номера портов — числа, которые определяются по специальному списку.

Порт источника идентифицирует приложение клиента, с которого отправлены пакеты. Ответные данные передаются клиенту на основании этого номера.

Порт назначения идентифицирует порт, на который отправлен пакет.

Порядковый номер

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

  1. Если установлен флаг SYN, то это изначальный порядковый номер — ISN (Initial Sequence Number), и первый байт данных, которые будут переданы в следующем пакете, будет иметь номер, равный ISN + 1.

  2. В противном случае, если SYN не установлен, первый байт данных, передаваемый в данном пакете, имеет этот порядковый номер

Поскольку поток TCP в общем случае может быть длиннее, чем число различных состояний этого поля, то все операции с порядковым номером должны выполняться по модулю 2^32. Это накладывает практическое ограничение на использование TCP. Если скорость передачи коммуникационной системы такова, чтобы в течение MSL (максимального времени жизни сегмента) произошло переполнение порядкового номера, то в сети может появиться два сегмента с одинаковым номером, относящихся к разным частям потока, и приёмник получит некорректные данные.

Номер подтверждения

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

Длина заголовка (смещение данных)

Это поле определяет размер заголовка пакета TCP в 4-байтных (4-октетных) словах. Минимальный размер составляет 5 слов, а максимальный — 15, что составляет 20 и 60 байт соответственно. Смещение считается от начала заголовка TCP.

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

Зарезервировано (6 бит) для будущего использования и должно устанавливаться в ноль. Из них два (5-й и 6-й) уже определены:

  • CWR (Congestion Window Reduced) — Поле «Окно перегрузки уменьшено» — флаг установлен отправителем, чтобы указать, что получен пакет с установленным флагом ECE (RFC 3168)

  • ECE (ECN-Echo) — Поле «Эхо ECN» — указывает, что данный узел способен на ECN (явное уведомление перегрузки) и для указания отправителю о перегрузках в сети (RFC 3168)