Термины (дополнительно)
Исходный код — программа, написанная на языке программирования, в текстовом формате. А также текстовый файл, содержащий исходный код.
Компилятор — программа, выполняющая компиляцию (неожиданно! не правда ли?). На данный момент среди начинающих наиболее популярными компиляторами C/C++ являются GNU g++ (и его порты под различные ОС) и MS Visual Studio C++ различных версий.
Компиляция — преобразование исходного кода в объектный модуль.
Объектный модуль— двоичный файл, который содержит в себе особым образом подготовленный исполняемый код, который может быть объединён с другими объектными файлами при помощи редактора связей (компоновщика) для получения готового исполняемого модуля, либо библиотеки.
Компоновщик (редактор связей, линкер, сборщик) — это программа, которая производит компоновку («линковку», «сборку»): принимает на вход один или несколько объектных модулей и собирает по ним исполнимый модуль.
Исполняемый модуль (исполняемый файл) — файл, который может быть запущен на исполнение процессором под управлением операционной системы.
Препроцессор — программа для обработки текста. Может существовать как
отдельная программа, так и быть интегрированной в компилятор. В любом случае, входные и выходные данные для препроцессора имеют текстовый формат. Препроцессор преобразует текст в соответствии с директивами препроцессора. Если текст не содержит директив препроцессора, то текст остаётся без изменений. IDE (англ. Integrated Development Environment) — интегрированная среда разработки. Программа (или комплекс программ), предназначенных для упрощения написания исходного кода, отладки, управления проектом, установки параметров компилятора, линкера, отладчика. Важно не путать IDE и компилятор. Как правило, компилятор самодостаточен. В состав IDE компилятор может не входить. С другой стороны с некоторыми IDE могут быть использованы различные компиляторы.
Билет 8.2 Перечислите основные характеристики TCP протокола Internet.
Протокол T2CP (Transmission Control Protocol, Протокол контроля передачи) обеспечивает сквозную доставку данных между прикладными процессами, запущенными на узлах, взаимодействующих по сети.
Структура пакета tcp
Структура заголовка |
||||
Бит |
0 — 3 |
4 — 9 |
10 — 15 |
16 — 31 |
0 |
Порт источника, Source Port |
Порт назначения, Destination Port |
||
32 |
Порядковый номер, Sequence Number (SN) |
|||
64 |
Номер подтверждения, Acknowledgment Number (ACK SN) |
|||
96 |
Длина заголовка |
Зарезервировано |
Флаги |
Размер Окна |
128 |
Контрольная сумма |
Указатель важности |
||
160 |
Опции (необязательное, но используется практически всегда) |
|||
160/192+ |
Данные |
Функции протокола TCP:
Управление потоком
Базовая передача данных
Обеспечение достоверности
Разделение каналов
Управление соединениями
Подробнее о каждом из пунктов.
Базовая передача данных: Модуль TCP выполняет передачу непрерывных потоков данных между своими клиентами в обоих направлениях. Клиентами TCP являются прикладные процессы, вызывающие модуль TCP при необходимости получить или отправить данные процессу-клиенту на другом узле.
Обеспечение достоверности: Модуль TCP обеспечивает защиту от повреждения, потери, дублирования и нарушения очередности получения данных. Также для каждого сегмента вычисляется контрольная сумма, позволяющая обнаружить повреждение данных.
Разделение каналов: Протокол TCP обеспечивает работу одновременно нескольких соединений. Каждый прикладной процесс идентифицируется номером порта. Заголовок TCP-сегмента содержит номера портов процесса-отправителя и процесса-получателя. При получении сегмента модуль TCP анализирует номер порта получателя и отправляет данные соответствующему прикладному процессу.
Управление соединениями: Соединение - это совокупность информации о состоянии потока данных, включающая сокеты, номера посланных, принятых и подтвержденных октетов, размеры окон.
Каждое соединение уникально идентифицируется в Интернет парой сокетов.
Управление потоком: Для ускорения и оптимизации процесса передачи больших объемов данных протокол TCP определяет метод управления потоком, называемый методом скользящего окна, который позволяет отправителю посылать очередной сегмент, не дожидаясь подтверждения о получении в пункте назначения предшествующего сегмента.
Как организован механизм скользящего окна в пакете TCP?
|
Как работает возможность «push» TCP?
PSH — (англ. Push function) инструктирует получателя протолкнуть данные, накопившиеся в приёмном буфере, в приложение пользователя (это управляющий флаг)
Иногда пользователям бывает необходимо убедиться в том, что все данные, переданные ими протоколу TCP, уже отправлены. Для этой цели определена функция проталкивания (push). Чтобы убедиться в том, что данные, отправленные протоколу TCP, действительно переданы, отправитель указывает, что их следует протолкнуть к получателю.
Как реализована возможность «urgent data» TCP?
TCP также обеспечивает способ информирования принимающей стороны о наличии в потоке, который принимается в настоящее время, данных, требующих срочной обработки (urgent data). TCP не пытается задать, что конкретно должен делать пользователь при получении уведомления о срочных данных, но в общем случае принимающий процесс будет предпринимать попытки максимально быстрой обработки таких данных.
В заголовках: