close

Вход

Забыли?

вход по аккаунту

?

protocol

код для вставкиСкачать
Министерство науки и образования Российской Федерации
Кафедра Математическое Обеспечение и Применение ЭВМ
ОТЧЁТ ПО ЛАБОРАТОРНОЙ РАБОТЕ № 9
по дисциплине "Программирование в сетях"
на тему "Разработка протокола прикладного уровня Internet (Application Level)"
Выполнили
студенты гр. 01ВП2
Жуков А.
Гусев Е.
Седяшев А.
Проверила: Кольчугина Е.А.
Пенза 2005г.
1. Описание логической характеристики протокола.
В соответствии с разработанным протоколом пользователь с помощью клиентской программы устанавливает соединение с сервером и после предварительной регистрации получает от сервера по запросу некоторые услуги. Запросы представляют собой команды (возможно с некоторыми параметрами), которые клиентская программа получает с консоли и отсылает в виде строк в формате ASCII серверу. Таким образом, в качестве способа кодирования передаваемых данных был выбран тестовый: данные передаются в виде связанного текста. Этот способ кодирования является удобным и легким в реализации для программ скриптовых языков. Сообщения-запросы, отсылаемые клиентом серверу, завершаются символом новой строки и имеют следующий формат
<имя_команды> [<параметр1> [<параметр2>] ...]\n
Сервер осуществляет интерпретацию и выполнение команд.
Протокол включает следующие команды.
- exit
Завершение работы клиентской программы.
- date
Получение текущей даты и времени.
- address [client|server|both]
Получение адресов сервера и/или клиента, участвующих в данном сеансе. Имеет один обязательный параметр, который может принимать одно из трех значение: client - получение адреса клиента, server - получение адреса сервера, both - получение адресов клиента и сервера.
- sendfile <path_at_client> [arab2rom|rom2arab]
Передача файла произвольного типа с клиентского компьютера на сервер и размещение их в файловой системе сервера; при этом в зависимости от заданных опций все числа, записанные в файле, переводятся из арабской записи в римскую, из римской в арабскую или остаются без изменения. Имеет 2 параметра: путь размещения файла в файловой системе клиента и режим обработки файла. Второй параметр может быть опущен, в этом случае передаваемый файл остается без изменений, либо может принимать одно из двух значений: arab2rom - перевод всех чисел в файле из арабской записи в римскую, rom2arab - перевод чисел в файле из римской записи в арабскую. Полученный сервером файл размещается в директории downloads, располагаемой в директории с серверной программой.
- recvfile <path_at_server> <destination_directory>
Получение текстовых файлов с сервера по запросу клиента. Команда имеет 2 обязательных параметра: путь размещения файла в файловой системе сервера и директория назначения в файловой системе клиента.
2. Описание процедурной части протокола в виде автоматной модели.
Рис. 1 - Автоматная модель протокола.
Рис. 2 - Автоматная модель пересылки файла от сокета 1 к сокету 2.
3. Описание последовательности выполнения операций установления соединения, передачи и обработки данных, разъединения.
При запуске клиентской программы сначала она запрашивает с консоли адрес сервера (имя хоста или IP-адрес), предоставляющего услуги согласно разработанному протоколу. Затем происходит установка соединения клиента с сервером. После этого сервер передает клиенту строку с начальным приветствием, и начинается цикл запросов команд для получения услуг сервера.
В начале каждого цикла запросов сервер отправляет клиенту строку с запросом вида "Команда?". На клиентской стороне происходит получение команды с консоли и его отправка в виде текстовой строки. Если введена команда exit, то происходит закрытие соединения на стороне клиента. Если введенная команда - это sendfile или recvfile, то начинается процедура передачи/приема файла. После этого клиент получает ответ от сервера в виде текстовой строки и выводит его на экран. На этом итерация цикла запросов завершается.
Сервер после получения команды от клиента, проводит ее интерпретацию и начинает обработку в зависимости от вида команды. Если от клиента пришла команды exit, то на серверной стороне происходит закрытие соединения с клиентом. Если это команды date или address, то формируется соответствующий ответ и отправляется клиенту. Если же полученная команда - это sendfile или recvfile, то сервер осуществляет процедуру приема/передачи файла. Если сервер обработал команду sendfile, и эта команда имеет параметр-режим модификации файла (перевод чисел в файле из арабской записи в римскую или обратно), то серверная программа осуществляет указанную обработку файла. В случае получения неизвестной команды сервер отправляет клиенту сообщение об этом. После обработки каждой команды (кроме exit) серверная программа формирует и отправляет текстовый ответ клиенту. Это либо ответ на команду (для команд date, address), либо уведомление о завершении операции обработки (для команд recvfile, sendfile).
Процедура пересылки файла от стороны А к стороне Б происходит следующим образом. Сначала сторона А отправляет противоположной стороне текстовую строку с длиной файла, а затем содержимое файла. Сторона Б соответственно вначале получает сообщение, содержащее длину файла, а затем принимает данные файла, сохраняя их в "своей" файловой системе. 
Документ
Категория
Рефераты
Просмотров
17
Размер файла
61 Кб
Теги
protocol
1/--страниц
Пожаловаться на содержимое документа