ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
Федеральное государственное бюджетное образовательное учреждение высшего образования
МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ СВЯЗИ И ИНФОРМАТИКИ
Кафедра «Информационная безопасность и автоматизация»
ОТЧЁТ
ПО ЛАБОРАТОРНОЙ РАБОТЕ №4
по дисциплине «Методы и средства защиты информации в компьютерных сетях»
Изучение работы протокола TCP
Выполнил:
студент группы БИБ1301
Володин В.Е.
Проверил:
ассистент кафедры ИБиА
Барков В.В.
Дата:______________
Оценка:____________
Москва 2015
Цель работы
Изучить принцип работы протокола TCP, структуру TCP-сегмента.
Задание
Для выполнения работы необходим компьютер с доступом к сети Интернет.
Разработать класс TcpSegment, содержащий экземпляр класса Buffer. Класс должен хранить данный в формате, описанном в RFC 793. Класс должен представлять методы для получения и установки всех полей, описанных в RFC 793. Данные сегмента должны быть представлены классом Buffer со смещением равным длине заголовка. При возврате данных не используйте копирование.
Разработайте консольное приложение. Скопируйте из Wireshark бинарное представление TCP-сегмента. В программе создайте экземпляр класса Buffer из этих данных. Созданный экземпляр передайте в конструктор класса TcpSegment. Выполните чтение каждого поля заголовка. Выведите на экран значения всех полей и сравните с теми, которые отображаются в Wireshark. По очереди меняйте каждое поле. После каждого изменения убедитесь, что значения других полей остались прежними.
Описание структуры TCP сегмента и назначения всех его полей.
Порт источника, Порт назначения
Эти 16-битные поля содержат номера портов — числа, которые определяются по специальному списку.
Порт источника идентифицирует приложение клиента, с которого отправлены пакеты. Ответные данные передаются клиенту на основании этого номера.
Порт назначения идентифицирует порт, на который отправлен пакет.
Порядковый номер
Порядковый номер выполняет две задачи:
-
Если установлен флаг SYN, то это изначальный порядковый номер — ISN (Initial Sequence Number), и первый байт данных, которые будут переданы в следующем пакете, будет иметь номер, равный ISN + 1.
-
В противном случае, если 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)