Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билет 8.docx
Скачиваний:
20
Добавлен:
28.06.2021
Размер:
43.32 Кб
Скачать

Термины (дополнительно)

Исходный код — программа, написанная на языке программирования, в текстовом формате. А также текстовый файл, содержащий исходный код.

Компилятор — программа, выполняющая компиляцию (неожиданно! не правда ли?). На данный момент среди начинающих наиболее популярными компиляторами 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:

  1. Управление потоком

  2. Базовая передача данных

  3. Обеспечение достоверности

  4. Разделение каналов

  5. Управление соединениями

Подробнее о каждом из пунктов.

  1. Базовая передача данных: Модуль TCP выполняет передачу непрерывных потоков данных между своими клиентами в обоих направлениях. Клиентами TCP являются прикладные процессы, вызывающие модуль TCP при необходимости получить или отправить данные процессу-клиенту на другом узле.

  2. Обеспечение достоверности: Модуль TCP обеспечивает защиту от повреждения, потери, дублирования и нарушения очередности получения данных. Также для каждого сегмента вычисляется контрольная сумма, позволяющая обнаружить повреждение данных.

  3. Разделение каналов: Протокол TCP обеспечивает работу одновременно нескольких соединений. Каждый прикладной процесс идентифицируется номером порта. Заголовок TCP-сегмента содержит номера портов процесса-отправителя и процесса-получателя. При получении сегмента модуль TCP анализирует номер порта получателя и отправляет данные соответствующему прикладному процессу.

  4. Управление соединениями: Соединение - это совокупность информации о состоянии потока данных, включающая сокеты, номера посланных, принятых и подтвержденных октетов, размеры окон.

Каждое соединение уникально идентифицируется в Интернет парой сокетов.

  1. Управление потоком: Для ускорения и оптимизации процесса передачи больших объемов данных протокол TCP определяет метод управления потоком, называемый методом скользящего окна, который позволяет отправителю посылать очередной сегмент, не дожидаясь подтверждения о получении в пункте назначения предшествующего сегмента.

Как организован механизм скользящего окна в пакете TCP?

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

Протокол TCP формирует подтверждения не для каждого конкретного успешно полученного пакета, а для всех данных, от начала посылки до некоторого порядкового номера ACK SN (Acknowl­edge Sequence Number). В качестве подтверждения успешного при­ема, например первых 2000 байт, высылается ACK SN = 2000: это означает, что все данные в байтовом потоке под номерами от ISN+1= 1 до данного SN (2000) успешно получены (рис. 3). Вме­сте с посылкой отправителю ACK SN получатель объявляет также “размер окна”, например – 6000.

Это значит, что отправитель может посылать данные с порядковыми номерами от текущего ACK SN+1 =  2001 до (ACK SN + размер окна) =  8000, не дожидаясь подтверждения со стороны получателя. Допустим, в данный момент отправитель посылает тысячебайтовый сегмент с порядковым номером данных SN= 4001. Если не будет получено новое подтверждение (новый ACK SN), отправитель будет посылать данные, пока он остается в пределах объявленного окна, то есть до номера 8001. После этого посылка данных будет прекращена до получения очередного подтверждения и (возможно) нового размера окна. Од­нако размер окна выбирается таким образом, чтобы подтверждения успевали приходить вовремя и остановки передачи не происходило – для этого и предназначен метод скользящего окна. Размер окна может динамически изменяться получателем. Например, для временной остановки посылки данных достаточно объявить нулевое окно.

Как работает возможность «push» TCP?

  • PSH — (англ. Push function) инструктирует получателя протолкнуть данные, накопившиеся в приёмном буфере, в приложение пользователя (это управляющий флаг)

Иногда пользователям бывает необходимо убедиться в том, что все данные, переданные ими протоколу TCP, уже отправлены. Для этой цели определена функция проталкивания (push). Чтобы убедиться в том, что данные, отправленные протоколу TCP, действительно переданы, отправитель указывает, что их следует протолкнуть к получателю.

Как реализована возможность «urgent data» TCP?

TCP также обеспечивает способ информирования принимающей стороны о наличии в потоке, который принимается в настоящее время, данных, требующих срочной обработки (urgent data). TCP не пытается задать, что конкретно должен делать пользователь при получении уведомления о срочных данных, но в общем случае принимающий процесс будет предпринимать попытки максимально быстрой обработки таких данных.

В заголовках:

Соседние файлы в предмете Распределенные операционные системы