Цель работы: изучение принципов работы транспортных протоколов Интернет, разработка прикладных программ, осуществляющих взаимодействие между собой на основе этих протоколов.
Для выполнения лабораторной работы требуется написать программу, которая выполняется под управлением ОС типа Windows или UNIX и использует для взаимодействия с другими программами заданный протокол сети Интернет. Для разработки программы рекомендуется использовать среду Delphi версии 3.0 или старше под управлением ОС типа Windows 95/98 или Windows NT/2000.
Краткие теоретические сведения
Транспортный протокол TCP сети Internet
TCP (Transmission Control Protocol) – это один из самых широко распространенных протоколов транспортного уровня. Главная функция TCP заключается в доставке сообщений без потерь, чего не может гарантировать протокол более низкого уровня IP (Internet Protocol). Для доставки сообщений предварительно устанавливается соединение между процессом-отправителем и процессом-получателем. Данное соединение осуществляет надежную доставку дейтаграмм. Протокол TCP производит повторную передачу искаженного или утерянного пакета.
Выделение всех функций, необходимых для надежной доставки сообщений, в отдельный уровень освобождает разработчиков прикладных программ и утилит от решения задач управления потоком дейтаграмм. Протокол обеспечивает сквозную передачу данных от отправителя к получателю. Поскольку TCP ориентирован на установление соединения, то адресат, получивший дейтаграмму, должен уведомить отправителя об этом. Подразумевается, что между отправителем и получателем устанавливается виртуальный канал, где они обмениваются сообщениями, часть из которых есть подтверждения о получении данных либо коды ошибок. Виртуальный канал на самом деле может подразумевать несколько реальных физических каналов передачи данных, поскольку сообщение может проходить через один или несколько шлюзов.
Когда некоторое приложение (процесс) прикладного уровня отправляет сообщение другому приложению с помощью TCP, предполагается, что сообщение является потоком, т.е. представляет собой поток байтов, передаваемых асинхронно. TCP получает поток байтов и собирает его в пакеты (сегменты), добавляя заголовки в начало сегментов. Длина сегмента обычно определяется протоколом или выбирается администратором системы.
Процесс обмена данными начинается с передачи запроса на установление соединения от машины-отправителя к машине-получателю. В запросе содержится специальное целое число, называемое номером сокета (socket). В ответ получатель посылает номер своего сокета. Номера сокетов отправителя и получателя однозначно определяют соединение (конечно, соединение также не возможно без указания IP-адресов отправителя и