Автоматизированная система учета материальных средств в аэропорту
Федеральное государственное образовательное
учреждение
высшего профессионального образования
ульяновское высшее авиационное училище
гражданской авиации (институт)
кафедра УКАС
КУРСОВОЙ
ПРОЕКТ
по
дисциплине Сети электронно-вычислительных машин и средства коммуникации
на
тему Автоматизированная система учета материальных средств в аэропорту
Выполнил
курсант УК-09-01
Никифорова Ю.В.
Ульяновск
2011
Задание 11. Автоматизированная
система учета материальных средств в аэропорту
Ввод данных по учету материальных средств в
аэропорту осуществляется на 10 компьютерах. Отчеты передаются на сервер.
Интенсивность поступления заявок с компьютера равна трем заявкам в секунду.
Компьютеры объединены в сеть, построенной по технологии Ethernet.
Выполнить анализ структуры сети компьютеров,
выдать рекомендации по повышению ее пропускной способности. Разработать
клиент-серверное приложение, передавать данные методом датаграмм с
использованием возможностей протокола UDP.
Содержание
Введение
.
Анализ технологий, применяемых для построения современных ЛВС
.
Разработка модели и моделирование функционирования локальной вычислительной
сети
2.1
Построение модели в программной среде имитационного моделирования AnyLogic
.2
Определение затрат на приобретение оборудования
2.3
Технико-экономическое обоснование разработки
.
Разработка клиент-серверного приложения
.1
Разработка алгоритмов
3.1.1 Разработка и описание алгоритма клиентской
части - схема связи классов
.1.2 Разработка и описание алгоритма серверной
части
4.
Разработка программ
.1
Разработка серверной части программы
.2
Разработка клиентской части программы
Заключение
Список
литературы
Приложение
1
Приложение
2
Введение
Локальные сети (Local
Area Networks,
LAN) - это объединения
компьютеров, сосредоточенных на небольшой территории, обычно в радиусе не более
1 -2 км, хотя в отдельных случаях локальная сеть может иметь и более
протяженные размеры, например; несколько десятков километров. В общем случае
локальная сеть представляет собой коммуникационную систему, принадлежащую одной
организации.
На первых порах для соединения компьютеров друг
с другом использовались нестандартные сетевые технологии.
Сетевая технология - это согласованный набор
программных и аппаратных средств пример, драйверов, сетевых адаптеров, кабелей
и разъемов) и механизмов передачи данных по линиям связи, достаточный для
построения вычислительной сети.
В середине 80-х годов утвердились стандартные
сетевые технологии объединения компьютеров в сеть - Ethernet,
ArcNet, Token
Ring, Token
Bus, несколько позже -
FDDI.
Хронология важнейших событий на пути появления
первых компьютерных сетей
Конец 60-х гг. Первые глобальные связи
компьютеров, первые эксперименты с пакетными сетями. Начало передач по
телефонным сетям голоса в цифровой форме.
Начало 70-х гг. Появление больших интегральных
схем, первые мини-компьютеры. Первые нестандартные локальные сети.
г. Создание сетевой архитектуры IBM
SNA. Стандартизация
технологии Х.25.
Начало 80-х гг. Появление персональных
компьютеров, создание Интернета в современном виде, установка на всех узлах
стека TCP/IP.
Середина 80-х гг. Появление стандартных
технологий локальных сетей (Ethernet
- 1980 г., Token
Ring - 1985 г., FDDI
-1985 г.)
Конец 80-х гг. Начало коммерческого
использования Интернета.
г. Изобретение Web.
.
Анализ технологий, применяемых для построения современных ЛВС
Ethernet
- это самый распространенный на сегодня стандарт локальных сетей.
Существует несколько вариантов этой технологии,
в которую входят также Fast
Ethernet, Gigabit
Ethernet, 10G
Ethernet.
В технологии Ethernet
в качестве алгоритма разделения среды применяется метод случайного доступа. И,
хотя, его трудно назвать совершенным - при росте нагрузки полезная пропускная
способность сети резко падает, он благодаря своей простоте послужил основной
причиной успеха технологии Ethernet.
Метод случайного доступа является одним из
основных методов захвата разделяемой среды. Он основан на том, что узел, у
которого есть кадр для передачи, пытается его отправить без какой бы то ни было
предварительной процедуры согласования времени использования разделяемой среды
с другими узлами сети.
Этот метод является децентрализованным, он
требует наличия в сети специального узла, который играл бы роль арбитра,
регулирующего доступ к среде. Результатом этого является высокая вероятность
коллизий, т.е. случаев одновременной передачи кадра несколькими станциями.
Таким образом, случайная пауза в технологии Ethernet
может принимать значения от 0 до 52.4 мс.
Максимально возможное расстояние между станциями
сети, которое обеспечивает надежное распознавание коллизий - не превышает
2500м.Коллизия - ситуация, когда 2 станции одновременно пытаются передать кадр
данных по общей среде.
Форматы кадров технологии Ethernet
-Кадр Ethernet
DIX,появился в
результате работы трех фирм Digital,
Intel,Xerox;
Кадр Raw
802.3 появился в результате усилий компании Novell;
Кадр Ethernet
SNAP стал результатом
деятельности комитета 802.2 по приведению предыдущих форматов кадров к
некоторому общему стандарту;
Кадр Novell
802.2.
Технология Fast
Ethernet отличается от Ethernet
на физическом уровне. Максимальный диаметр сети Fast
Ethernet равен
приблизительно 200м.,а более точные значения зависят от специфики физической
среды.
В домене коллизий Fast
Ethernet допускается не
более одного повторителя класса 1 и не более двух повторителей класса 2.
Повторители класса 1 поддерживают только
какой-нибудь один тип кодирования.
Организация физического уровня технологии Fast
Ethernet использует 3
варианта кабельных систем:
волоконно - оптический многомодовый кабель (2
волокна)
витая пара категории 5 (2 пары)
витая пара категории 3 (4 пары)
На небольших расстояниях витая пара категории 5
позволяет передавать данные с той же скоростью, что и коаксиальный кабель, но
сеть получается более дешевой и удобной в эксплуатации.
Технологии Fast
Ethernet позволяет при
работе навитой паре за счет процедуры автоаереговоров двум портам выбрать
наиболее эффективный режим работы - скорость 10 Мбит\с или 100Мбит\с.
Технология Gigabit
Ethernet добавляет в
иерархию семейства Ethernet
новую ступень в 1000 Мбит\с. Эта ступень позволяет эффективно строить крупные
локальные сети, в которых серверы и магистрали нижних уровней сети работают на
скорости 100Мбит\с, а магистраль Gigabit
Ethernet объединяет их,
обеспечивая достаточно большой запас пропускной способности.
Разработчики технологии Gigabit
Ethernet сохранили большую
степень преемственности с технологиями Ethernet
Fast и Ethernet.В
Gigabit Ethernet
те же форматы кадров, что и в предыдущих версиях Ethernet;
Gigabit Ethernet
работает в дуплексном и полудуплексном режиме, поддерживая на разделяемой среде
тот же метод доступа CSMA\CD
с минимальными изменениями.
Специальная рабочая группа разработала вариант Gigabit
Ethernet категории. Для
обеспечения скорости в 1000 Мбит\с используется: одновременная передача данных
по 4 неэкранизированным витым парам; метод кодирования PAM
- 5, передача информации в дуплексном режиме с выделением принимаемого сигнала
из общего с помощью процесса DSP.
Технология Token
Ring была разработана
компанией IBM в 1984
году, а затем передана в качестве проекта стандарта в комитет 1ЕЕЕ 802, который
на ее основе принял в 1985 году стандарт 802.5. Компания IBM
в течение долгого времени использовала технологию Token
Ring как свою основную
сетевую технологию построения локальных сетей на основе компьютеров различных
классов - мэйнфреймов, мини-компьютеров и персональных компьютеров. Однако в
последнее время даже в продукции компании IBM
доминируют представители семейства Ethernet.
Сети Token
Ring работают с двумя
битовыми скоростями - 4 и 16 Мбит/с. Смешение в одном кольце станций,
работающих на разных скоростях, не допускается. Сети Token
Ring, работающие со
скоростью 16 Мбит/с, имеют некоторые усовершенствования в алгоритме доступа по
сравнению со стандартом 4 Мбит/с.
Технология FDDI
(Fiber Distributed
Data Interface
- распределенный интерфейс передачи данных по оптоволокну) - это первая
технология локальных сетей, в которой в качестве среды передачи данных стал
применяться волоконно-оптический кабель. Работы по созданию технологий и
устройств локальных сетей, использующих волоконно-оптические каналы, начались в
80-е годы, вскоре после начала промышленной эксплуатации подобных каналов в
территориальных сетях. Проблемная группа ХЗТ9.5 института ANSI
разработала в период с 1986 по 1988 гг. начальные версии стандарта FDDI,
который описывает передачу кадров со скоростью 100 Мбит/с по двойному
волоконно-оптическому кольцу длиной до 100 км.
Технология 10G
Ethernet
Стандарт 100 Ethernet
определяет только дуплексный режим работы, поэтому он используется
исключительно в коммутируемых локальных сетях.
Формально этот стандарт имеет обозначение IEEE
802. За е и является поправкой к основному тексту стандарта 802.3. Этот
документ описывает семь новых спецификаций физического уровня, которые
взаимодействуют с уровнем MAC
с помощью нового варианта подуровня согласования. Этот подуровень обеспечивает
для всех вариантов физического уровня 10G
Ethernet единый интерфейс XGMII
(extended
Gigabit Medium
Independent
Interface - расширенный
интерфейс независимого доступа к гигабитной среде), который предусматривает
параллельный обмен четырьмя байтами, образующими четыре потока данных.
Существуют три группы физических интерфейсов стандарта 10G
Ethernet: 10GBase-X,
10GBase-R
и 10GBase-W.
Они отличаются способом кодирования данных: в варианте 10Base-X
используется код 8В/10В, а в остальных двух - код 64В/66В. Все они задействуют
оптическую среду для передачи данных.
Проанализируем три технологии Ethernet,
Fast Ethernet
и Gigabit Ethernet,
рассмотрим аппаратные средства применяемые в этих технологиях в Таблице 1.
Таблица 1. Сравнительный анализ технологий
№
п/п
|
1
|
2
|
3
|
Наименование
технологии
|
Ethernet
|
Fast Ethernet
|
Gigabit Ethernet
|
Стандарт
|
IEEE 802.3
|
IEEE 802.3u
|
IEEE 802.3z
|
Используемый
сетевой
адаптер
|
Ether Power 10/100
|
3CSOHO100-TX
|
SMC9452TX
|
Используемый
тип
кабеля
|
10Base
- 5 коаксиальный
|
100
Base TX
Витая пара категории 5 UTP
|
1000
BASE-SX многомодовое
оптоволокно
|
Метод
доступа к каналу
|
CSMA/CD
|
CSMA/CD
|
CSMA/CD
|
Номинальная
пропускная способность(Мб/c)
|
10
|
100
|
1000
|
Длина
кадра/поля данных (байт)
|
46-1500
|
46-1500
|
46-1500
|
Длина
сегмента ЛВС (максимальное удаление от коммутационного устройства)
|
500м
|
100м
|
550м
|
Тип
используемых коммутационных устройств, дополнительное оборудование
|
Повторитель,
Т-коннекторы терминаторы
|
Коммутационные
шнуры, панели, концентраторы
|
Коммутаторы,
модули, панели
|
локальный сеть клиент серверный
.
Разработка модели функционирования локальных вычислительных сетей и расчет ее
основных параметров
Для разработки модели используются основные
положения теории массового обслуживании. ЛВС представляется в виде системы
массового обслуживания (СМО) (рис. 1):
Рисунок 1. Представление ЛВС в
виде СМО
От источников заявок (ПК) заявки поступают в
сеть в случайные моменты времени с интенсивностями λn.
Поступившие заявки обрабатываются в обслуживающем приборе с интенсивностью µ.
Обслуживающий прибор - канал передачи данных ЛВС. Функция распределения
интервалов времени между поступлениями заявок и функция распределения времени
обработки заявки в обслуживающем приборе соответствуют показательному закону
распределения:
- функция распределения интервалов
времени между поступлениями заявок.
- функция распределения времени
обработки заявки в обслуживающем приборе, где λ - интенсивность
поступления заявок - расчет по формуле 1.
, (1)
где Vопф - объем
передаваемого файла, Lдк - длина
кадра, Тпф - требуемое время передачи файла.
µ - интенсивность обработки заявок в
приборе - расчет по формуле 2.
, (2)
где Uнс
- номинальная скорость передачи данных в канале; b
- скорость передачи одного бита данных в канале;
Сэ - эффективная скорость передачи
данных в канале ЛВС - расчет по формуле 3.
, (3)
где Lдпд - длина
поля данных пакета.
Ср - реальная скорость
передачи данных в моделируемом канале ЛВС. - расчет по формуле 4.
, (4)
где Lдпдi - длина
поля данных кадра, переданного в канале модели ЛВС; Тм - время
моделирования работы сети, заданное в модели; m - число
переданных кадров в канале - определяется в результате моделирования работы
сети в среде AnyLogic.
Кисп - коэффициент
использования канала передачи данных ЛВС - расчет по формуле 5.
(5)
Данные формулы нужны для того чтобы
произвести расчеты, которые будут внесены в Таблицу 2, где:
λ - интенсивность поступления
заявок - расчет по формуле (1);
µ - интенсивность обработки заявок в
приборе - расчет по формуле (2);
Сэ - эффективная скорость
передачи данных в канале ЛВС - расчет по формуле (3).
Таблица 2. Расчет основных
параметров модели
U- номинальная
скорость (Мбит/с)
|
L - длина поля
данных кадра (байт)
|
Сэ
- эффективная скорость
|
b
|
λ
|
µ
|
Cр- реальная
скорость в канале
|
Кисп
- коэффициент использования канала
|
10
|
46
|
6,7647
|
0,1
|
0,025
|
0,0184
|
0,6364
|
0,7113
|
|
100
|
8,1967
|
0,1
|
0,013
|
0,0201
|
0,8134
|
0,8454
|
|
500
|
9,5785
|
0,1
|
0,0032
|
0,0024
|
0,9443
|
0,7554
|
|
1000
|
9,7847
|
0,1
|
0,0016
|
0,0012
|
0,8347
|
0,8012
|
|
1497
|
9,8552
|
0,1
|
0,0011
|
0,00082
|
0,9755
|
0,7856
|
100
|
46
|
67,6471
|
0,01
|
0,025
|
0,1838
|
0,6471
|
0,
8976
|
|
100
|
81,9672
|
0,01
|
0,013
|
0,1025
|
0,7818
|
0,9014
|
|
500
|
95,7854
|
0,01
|
0,0032
|
0,0239
|
0,9515
|
0,8765
|
|
1000
|
97,8474
|
0,01
|
0,0016
|
0,0122
|
0,9655
|
0,8434
|
|
1497
|
98,5517
|
0,01
|
0,0011
|
0,0082
|
0,9815
|
0,
9596
|
1000
|
46
|
676,4706
|
0,001
|
0,025
|
1,8382
|
0,6755
|
0,9791
|
|
100
|
819,6721
|
0,001
|
0,013
|
1,0246
|
0,8176
|
0,9743
|
|
500
|
957,8544
|
0,001
|
0,0032
|
0,2395
|
0,9578
|
0,9653
|
|
1000
|
978,4736
|
0,001
|
0,0016
|
0,1223
|
0,9774
|
0,
9876
|
|
1497
|
985,5168
|
0,001
|
0,0011
|
0,0823
|
0,9856
|
0,
9892
|
Для нахождения Ср (реальная скорость
передачи данных в моделируемом канале ЛВС) и Кисп (коэффициент
использования канала передачи данных ЛВС) построим модель в программной среде
имитационного моделирования AnyLogic.
2.1 Построение модели в программной среде
имитационного моделирования AnyLogic
Модель
Рисунок 2. Соединение элементов модели
AnyLogic - первый и единственный инструмент
имитационного моделирования, объединивший методы системной динамики,
"процессного" дискретно-событийного и агентного моделирования в одном
языке и одной среде разработки моделей. Гибкость AnyLogic позволяет отражать
динамику сложных и разнородных экономических и социальных систем на любом
желаемом уровне абстракции. AnyLogic включает набор примитивов и библиотечных
объектов для эффективного моделирования производства и логистики,
бизнес-процессов и персонала, финансов, потребительского рынка, а также
окружающей инфраструктуры в их естественном взаимодействии.
Объектно-ориентированный подход, предлагаемый AnyLogic, облегчает итеративное
поэтапное построение больших моделей.
Основное средство процессного моделирования в
AnyLogic - это библиотека Enterprise Library. В эту библиотеку вошли объекты
для определения "потока" процесса (process workflow): Source
(источник), Sink (выход из системы), Delay (задержка), Queue (очередь), Service
(обслуживание), SelectOutput (выбор пути), и т.д., а также задействованных в
процессе ресурсов. Все объекты гибкие и настраиваемые: пераметры могут
изменяться динамически, действия могут зависеть от атрибутов заявок, и т.д.
Рисунок 3. График значений параметров модели
График получен в процессе моделирования по
технологии Ethernet
с U (номинальная
скорость) 10 Мбит/с и с L
(длина поля данных кадра) 46 байт
Рисунок 4. График значений параметров модели
График получен в процессе моделирования по
технологии Ethernet
с U (номинальная
скорость) 10 Мбит/с и с L
(длина поля данных кадра) 100 байт
Рисунок 5. График значений параметров модели
График получен в процессе моделирования по
технологии Ethernet
с U (номинальная
скорость) 10 Мбит/с и с L
(длина поля данных кадра) 500 байт
Рисунок 6. График значений параметров модели
График получен в процессе моделирования по
технологии Ethernet
с U (номинальная
скорость) 10 Мбит/с и с L
(длина поля данных кадра) 1000 байт
Рисунок 7. График значений параметров модели
График получен в процессе моделирования по
технологии Ethernet
с U (номинальная
скорость) 10 Мбит/с и с L
(длина поля данных кадра) 1497 байт
Рисунок 8. График значений параметров модели
График получен в процессе моделирования по
технологии Fast
Ethernet с U
(номинальная скорость) 100 Мбит/с и с L
(длина поля данных кадра) 46 байт
Рисунок 9. График значений параметров модели
График получен в процессе моделирования по
технологии Fast
Ethernet с U
(номинальная скорость) 100 Мбит/с и с L
(длина поля данных кадра) 100 байт
Рисунок 10. График значений параметров модели
График получен в процессе моделирования по
технологии Fast
Ethernet с U
(номинальная скорость) 100 Мбит/с и с L
(длина поля данных кадра) 500 байт
Рисунок 11. График значений параметров модели
График получен в процессе моделирования по
технологии Fast
Ethernet с U
(номинальная скорость) 100 Мбит/с и с L
(длина поля данных кадра) 1000 байт
Рисунок 12. График значений параметров модели
График получен в процессе моделирования по
технологии Fast
Ethernet с U
(номинальная скорость) 100 Мбит/с и с L
(длина поля данных кадра) 1497 байт
Рисунок 13. График значений параметров модели
График получен в процессе моделирования по
технологии Gigabit
Ethernet с U
(номинальная скорость) 1000 Мбит/с и с L
(длина поля данных кадра) 46 байт
Рисунок 14. График значений параметров модели
График получен в процессе моделирования по
технологии Gigabit
Ethernet с U
(номинальная скорость) 1000 Мбит/с и с L
(длина поля данных кадра) 100 байт
Рисунок 15. График значений параметров модели
График получен в процессе моделирования по
технологии Gigabit
Ethernet с U
(номинальная скорость) 1000 Мбит/с и с L
(длина поля данных кадра) 500 байт
Рисунок 16. График значений параметров модели
График получен в процессе моделирования по
технологии Gigabit
Ethernet с U
(номинальная скорость) 1000 Мбит/с и с L
(длина поля данных кадра) 1000 байт
Рисунок 17. График значений параметров модели
График получен в процессе моделирования по
технологии Gigabit
Ethernet с U
(номинальная скорость) 1000 Мбит/с и с L
(длина поля данных кадра) 1497 байт
.2 Определение затрат на приобретение
оборудования
В результате проделанной выше
работы мы нашли Кисп - коэффициент использования канала для каждой из выбранных
нами трех технологий. В результате самые высокие коэффициенты это - 0, 9892 -
по технологии Gigabit
Ethernet с U
(номинальная скорость) 1000 Мбит/с и с L
(длина поля данных кадра) 1497 байт, и 0, 9596 - по технологии Fast
Ethernet с U
(номинальная скорость) 100 Мбит/с и с L
(длина поля данных кадра) 1497 байт. На основе этих двух технологий
составляется Таблица 3. Для этого построим схему проекта с указанием типа и
количества оборудования, проведем анализ цен на момент выполнения работы с
расчетом затрат.
Таблица 3. Аппаратные средства
|
Fast Ethernet
|
Gigabit
Ethernet
|
Тип
кабеля
|
Кабель
витая пара UTP, lev.5e (100м.) 10 Base TX
|
1000
Base-SX
многомодовое оптоволокно (100м)
|
Цена,
р.
|
1200
|
23909
|
Сетевой
адаптер
|
Сетевая
карта D-Link DFE-520TX PCI, 10/100Mb (10 шт.)
|
Сетевая
карта ASUS NX1101, PCI, 10/100/1000Mb (10 шт.)
|
Цена,
р.
|
1800
|
5500
|
Разъем
для подключения кабеля к сетевой карте
|
Вилка
RJ-45
(20
шт.)
|
Вилка
RJ-45 (20 шт.)
|
Цена
|
60
|
60
|
Дополнительное
оборудование
|
Коммутатор
|
Коммутатор
D-Link DES-1008D/E 8port 10/100 Mb
|
Коммутатор
D-Link DES-3010G, L2 8ports 10/100Mb, 1port GigaUTP, 1port SFP
|
Цена,
р.
|
780
|
5900
|
Итого
|
3840
|
35369
|
2.3 Технико-экономическое
обоснование разработки
По результатам моделирования
развертывать ЛВС (локально вычислительную сеть) рекомендуется по технологии Fast
Ethernet, так как здесь
достаточно высокий коэффициент использования канала и приемлемая стоимость
аппаратных средств. Такая сеть будет удовлетворять техническим и экономическим
требованиям задания.
3. Разработка клиент-серверного
приложения
.1 Разработка алгоритмов
.1.1 Разработка и описание
алгоритма клиентской части - схема связи классов
Клиент-сервер (англ. Client-server)
- вычислительная или сетевая архитектура, в которой задания или сетевая
нагрузка распределены между поставщиками услуг (сервисов), называемых
серверами, и заказчиками услуг, называемых клиентами. Нередко клиенты и серверы
взаимодействуют через компьютерную сеть и могут быть как различными физическими
устройствами, так и программным обеспечением.
Рис 18. Схема взаимосвязи
классов
Рисунок 19. Алгоритм
функционирования приложения клиента
Пошаговое описание:
Начало алгоритма
На шаге 1 производится выполнение действия Ввод host
port file
На шаге 2 происходит проверка логического
условия «Все данные введены?», если утверждение верно то мы переходим на шаг 3,
если нет, то на шаг 8
На шаге 3 производится выполнение действия
«Получить номер порта соединения»
На шаге 4 производится выполнение действия
«Получить имя файла, копируемого с сервера»
На шаге 5 производится выполнение действия
«Создание объекта Сокета sock»
На шаге 6 производится выполнение действия
«Создание объекта управления символьным выводом в сокет Pw»
На шаге 7 производится выполнение действия
«Создание объекта управления символьным вводом из сокета br»
На шаге 8 который ответвляется от шага 2
осуществляется вывод «Нет исходных данных» в этом случает алгоритм завершается
На шаге 9 производится выполнение действия «Считать
ответ от сервера из сокета»
На шаге 10 производится выполнение действия
«Считать ответ от сервера из сокета»
На шаге 11 производится выполнение действия
«Определить число токенов в сообщении st.countTokens ()»
На шаге 12 происходит проверка логического
условия «countTokens()>=2», если утверждение верно то мы переходим на шаг 13
если нет, то алгоритм завершается
На шаге 13 происходит проверка логического
условия «st.nextTokens()!=
“200”» утверждение верно то мы переходим на шаг 14 если нет, то на шаг 15
На шаге 14 осуществляется вывод результатов «
File not found»
На шаге 15 происходит проверка логического
условия « br.readLine()!= null» утверждение верно то мы переходим на шаг 16
если нет, то алгоритм завершается
На шаге 16 осуществляется вывод результатов
«Значение файла»
Конец алгоритма
.1.2 Разработка и описание алгоритма серверной
части
Рисунок 20. Алгоритм
функционирования серверного приложения
Пошаговое описание:
Начало алгоритма
На шаге 1 производится выполнение действия
«Создание объекта типа сервера установить номер порта 8083»
На шаге 2 происходит проверка логического
условия «Поступил запрос от клиента?» если утверждение верно то мы переходим на
шаг 3, если нет, то на шаг 8
На шаге 3 производится выполнение действия
«Активизация соединение с клиентом по сокету, установить ему приоритет»
На шаге 4 производится выполнение действия
«Создание объекта управления символьным выводом в сокет pw»
На шаге 5 производится выполнение действия
«Создание объекта управления символьным вводом из сокета br»
На шаге 6 производится выполнение действия
«Считать запрос от клиента из сокета»
На шаге 7 производится выполнение действия
«Определить число токенов в сообщении.countTokens()»
На шаге 8 (левая ветвь этапа 2) производится
выполнение действия «проверить сокет и ждать вызова от клиента»
На шаге 9 происходит проверка логического
условия «st.countTokens()>=2» если утверждение верно то мы переходим на шаг
10, если нет, то на ветвь ведущую к шагу 15
На шаге 10 происходит проверка логического
условия «st.nextToken().equals("POST"))», если утверждение верно то
мы переходим на шаг 11, если нет, то на ветвь ведущую к шагу 15
На шаге 11 происходит проверка логического
условия «st.nextToken()).endsWith("/")», если утверждение верно то мы
переходим на шаг 12, если нет, то на левую ветвь ведущую на шаг 14
На шаге 12 происходит проверка логического
условия «req.equals("")», если утверждение верно то мы переходим на
шаг 13, если нет, то на шаг 14
На шаге 13 производится выполнение действия
«Передать index.html»
На шаге 14 производится выполнение действия
«Передать запрашиваемый файл»
На шаге 15 осуществляется вывод результатов
«Значение файла»
Конец алгоритма
.
Разработка программ
4.1 Разработка серверной части программы
package
server_program;
// объявление пакета, к которому привязываются разрабатываемые классы
import
java.net.*;
//подключения методов класса java.net
и его дочерних классов
import
java.io.*;
// потоки и файлы произвольного доступа. Аналог библиотеки стандартного
ввода-вывода
import
java.util.*;
// классы-контейнеры (Dictionary, HashTable, Stack) и некоторые другие утилиты.
Кодирование и декодирование. Классы Date и Time.
public
class Main
{ // Программная структура, содержит в себе основные элементы такие как методы
и поля
public
static void
main(String[]
args) // главный метод,
начальные значения, передаются аргументы, описывает функцию
{
try
// содержит один или более операторов, выдает исключения
{
ServerSocket
ss = new
ServerSocket(Integer.parseInt(args[0]));
// объект класса предназначен для установки канала связи с клиентским
приложением
while
(true) //логическое
выражение, оператор цикла
new
HttpConnect(ss.accept());
// установка канала связи с клиентским приложением
}
сatch(ArrayIndexOutOfBoundsException
ae) // Перехват
исключений в Java оформляется
блоком "try-catch»,
сначало делается попытка выполнить фрагмент кода, и если генерируется
исключение, то оно обрабатывается фрагментом catch
{
System.err.println("Usage:
Server port");
// метод вывода системных сообщений
System.exit(0);
// "нормальное" завершение процесса
}
catch(IOException
e) // содержит
операторы, которые специфицируют действия при вызове исключения в блоке try
{
System.out.println(e);
// стандартный поток вывода
}
}
}
class
HttpConnect
extends Thread
// представляет собой отдельный поток управления в пределах процесса
{
private
Socket sock;
// чтобы сгладить различия в реализациях разных серверов, между сервером и
портом
HttpConnect(Socket
s) // устанавливает
соединение между локальной машиной и указанным портом узла Internet,
имя которого было передано конструктору
{
sock
= s; // присвоение значения
s переменной sock
setPriority(NORM_PRIORITY
- 1); // приоритет устанавливается на два уровня выше Thread
run();
// метод в котором задается последовательность действий, выполняемых в рамках
потока
}
public
void run()
// может объявлять переменные, вызывать другие методы и использовать другие
классы.
{
try
// содержит один или более операторов, оператор вызывающий исключения
{
PrintWriter
pw = new
PrintWriter(new
OutputStreamWriter(sock.getOutputStream()),
true); // для
форматного вывода данных различных типов с целью их визуального представления в
виде текстовой строки
BufferedReader
br = new
BufferedReader(new
InputStreamReader(sock.getInputStream()
) ); // классы которые организуют входные потоки, буферизированный ввод данных
String
req = br.readLine();
// класс создающий объект готовый разбить строки на слова
System.out.println("Request:
" + req); //
стандартный поток вывода
StringTokenizer
st = new
StringTokenizer(req);
// класс предназначен для выделения отдельных элементов из строк типа String
if
((st.countTokens()
>= 2) && st.nextToken().equals("POST"))//
оператор условия, операция возвращает в виде строки следующее слово
{
if
((req = st.nextToken()).ends
With("/")|| req.equals(""))//
оператор условия, операция возвращает в виде строки следующее слово
req
+= "index.html";
// Этот оператор используется для выполнения определённых операторов, если
логическое условие true
try
// содержит один или более операторов
{
File
f = new
File(req);
// создание нового объекта с аргументом req
BufferedReader
bfr = new
BufferedReader(new
FileReader(f));
// классы которые организуют входные потоки, буферизированный ввод данных
char[]
data = new
char[(int)f.length()];
// 16-ти разрядная переменная в виде символов, символы кодируются с помощью
юникода
bfr.read(data);
// буферизированный ввод данных
pw.println("HTTP/1.1
200 OK\n");
// выполнен принудительный переход на следующую строку
pw.write(data);
// программа выполняет серию операций по выводу в поток данных различного типа
pw.flush();//
программа выполняет серию операций по выводу в поток данных различного типа
}
catch(FileNotFoundException
fe) // содержит
операторы, которые специфицируют действия при вызове исключения в блоке try
{.println("HTTP/1.1
404 Not FoundXn");
}
catch(IOException
ioe) // содержит
операторы, которые специфицируют действия при вызове исключения в блоке try
{
System.out.println(ioe);
// стандартный поток вывода
}
}
else
pw.println("HTTP/l.l
400 Bad
RequestW"); //
необязательный блок else
для выполнения других операторов, если условие false
sock.close();
// Основной метод этого класса accept () ожидает поступления запроса. Когда
запрос получен, метод устанавливает соединение с клиентом и возвращает объект
класса socket, через который сервер будет обмениваться информацией с клиентом.
}
catch(IOException
e) // содержит
операторы, которые специфицируют действия при вызове исключения в блоке try
{.out.println(e); //
стандартный поток вывода
}
}
}
.2 Разработка клиентской части
программы
package
javaapplication33; //
объявление пакета, к которому привязываются разрабатываемые классы
import
java.net.*;
//подключения методов класса java.net
и его дочерних классов
import
java.io.*;
// потоки и файлы произвольного доступа. Аналог библиотеки стандартного
ввода-вывода
import
java.util.*;
// классы-контейнеры (Dictionary, HashTable, Stack) и некоторые другие утилиты.
Кодирование и декодирование. Классы Date и Time.
import
java.lang.Integer.*;
// каждый модуль компиляции содержит неявное импортирование этого пакета
public
class Main
{ // Программная структура, содержит в себе основные элементы такие как методы
и поля
public
static void
main(String[]
args) // главный метод,
начальные значения, передаются аргументы, описывает функцию
{
String[]
hostportfile={"127.0.0.1",
"8080", "c:/Minori
"}; // класс создающий объект готовый разбить строки на слова
if
(hostportfile.length
!= 3) // оператор условия, операция возвращает в виде строки следующее слово
{
System.err.println("Usage:
Client host
port file");
// метод вывода системных сообщений
System.exit(0);
// "нормальное" завершение процесса
}
String
host = hostportfile[0];
// класс создающий объект готовый разбить строки на слова
int
port = Integer.parseInt(hostportfile[1]);
// четырехбайтные целые числа
String
file = hostportfile[2];
// класс создающий объект готовый разбить строки на слова
try
// содержит один или более операторов, оператор вызывающий исключения
{
Socket
sock = new
Socket(host,
port); // Основной
метод этого класса accept () ожидает поступления запроса.
PrintWriter
pw = new
PrintWriter(new
OutputStreamWriter(sock.getOutputStream()),
true); // для
форматного вывода данных различных типов с целью их визуального представления в
виде текстовой строки
pw.println("POST
" + file + " HTTP/1.l\n");
// выполнен принудительный переход на следующую строку
BufferedReader
br = new
BufferedReader(new
InputStreamReader(sock.getInputStream()));//
классы которые организуют входные потоки, буферизированный ввод данных
String
line = null;
// класс создающий объект готовый разбить строки на слова
line
= br.readLine();
// присвоение значения переменной
StringTokenizer
st = new
StringTokenizer(line);
// класс предназначен для выделения отдельных элементов из строк типа String
String
code = null;
// класс создающий объект готовый разбить строки на слова
if
((st.countTokens()
>= 2) && st.nextToken().equals("POST"))
// оператор условия, операция возвращает в виде строки следующее слово
{
if
((code = st.nextToken())
!= "200") // оператор условия, операция возвращает в виде строки
следующее слово
{
System.err.println("File
not found,
code = " + code);
// метод вывода системных сообщений
System.exit
(0); // "нормальное" завершение процесса
}
}
while
((line = br.readLine())
!= null) //логическое
выражение, оператор цикла
System.out.println(line);
// стандартный поток вывода
sock.close();//
Основной метод этого класса accept () ожидает поступления запроса. Когда запрос
получен, метод устанавливает соединение с клиентом и возвращает объект класса
socket, через который сервер будет обмениваться информацией с клиентом.
}catch(Exception
e) // содержит
операторы, которые специфицируют действия при вызове исключения в блоке try
{
System.err.println(e);
// метод вывода системных сообщений
}}}
Заключение
В процессе выполнения курсовой работы были
проанализированы технологии, применяемые для построения современных локально
вычислительных сетей. Из них для более подробного анализа были выбраны: Ethernet,
Fast Ethernet
и Gigabit Ethernet.
На основе этих технологий производилась разработка модели и моделирование
функционирования локальной вычислительной сети. Самый высокий коэффициент
использования канала прослеживался в технологиях Gigabit
Ethernet и Fast
Ethernet, на основе этого
было проведено технико-экономическое обоснование разработки, рекомендована сеть
Fast Ethernet,
так как полностью отвечает всем требованиям сети APMов
и экономически более выгодна. Так же было разработано программное обеспечение,
работающее в сети APMов
и позволяющее надежно передавать данные отчета на сервер с использованием
средств протокола TCP.
Список литературы
1. Олифер В.Г. Компьютерные сети. Принципы,
технологии, протоколы: Учебник для вузов. 2-е издание / В.Г. Олифер, Н.А.
Олифер. - СПб.: Питер, 2008. - 864 с.
. Олифер В.Г. Сетевые операционные системы /В.Г.
Олифер, Н.А. Олифер. - СПб.: Питер, 2008.- 539 с.
. Единая система программной документации.
Официальное издание. - М.: Издательство стандартов, 1982. - 127 с.
. Олифер В.Г. Компьютерные сети. Принципы,
технологии, протоколы: Учебник для вузов. 3-е издание / В.Г. Олифер, Н.А.
Олифер. - СПб.: Питер, 2008. -[1] стр. 383-445.
Приложение 1. Прайс-лист
Наименование
товара
|
Цена
|
Цена
в $
|
Кабель
Bitronics 1,8м
|
70
|
1.8
|
Кабель
Bitronics 3m
|
90
|
2.49
|
Кабель
HDMI-HDMI 10.0m Luxmann (468-357-*) Ferrites
|
3380
|
101.15
|
Кабель
HDMI-HDMI 15.0m Luxmann (468-258-*) Ferrites
|
4410
|
131.77
|
Кабель
IEEE 1394 6/4pin 5.0m Luxmann (457-004-*)
|
330
|
9.84
|
Кабель
IEEE 1394 6/6pin 5.0m Luxmann (458-004-*)
|
460
|
13.57
|
Кабель
USB-USB AB v2.0, 1.8m Golden connector
|
180
|
5.26
|
Кабель
USB-USB AB v2.0, 3.0m Golden connector
|
210
|
6.09
|
Кабель
USB-USB AB v2.0, 5.0m Golden connector
|
280
|
8.23
|
Кабель
витая пара UTP, lev.5e (100м.)
|
1200
|
35.64
|
Кабель
витая пара UTP, lev.5e (305м.)
|
1970
|
58.84
|
Кабель
питания (Европа)
|
35
|
1.02
|
Кабель
питания (Европа) 3.0m
|
49
|
1.44
|
Кабель
питания для ноутбуков, аудио и видео техники 5.0м Luxmann (370-004-*)
|
410
|
12.02
|
Кабель
питания системный блок-монитор, 3м
|
47
|
1.39
|
Кабель
сигнальный SVGA Hi-Resolution 10.0m
|
440
|
12.98
|
Кабель
сигнальный SVGA Hi-Resolution 20.0m
|
830
|
24.59
|
Комплект
кабелей для переключателей CBM-300BMA (аналог DKVM-CB) 3m
|
260
|
7.6
|
Патч-корд
UTP cat 5e. 2,0 m
|
34
|
1
|
Патч-корд
телефонный 2,0 m Luxmann Silicon (540-001-6)
|
110
|
3.25
|
Переходник
SATA - PATA модель No.: PS421
|
330
|
9.64
|
Переходник
USB - 2 PS/2 (клавиатура+мышь) Rovermate Uspy (Adaptmate-048)
|
120
|
3.57
|
Переходник
для мыши COM 9pin - PS/2
|
11
|
0.3
|
Переходник
мониторный DVI - HDMI
|
100
|
2.92
|
Переходник
питания 4P - 6P для видеокарт ATI серии X1800-1900 /NVIDIA серии 8800
|
100
|
2.99
|
Переходник
питания для HDD Serial ATA
|
48
|
1.42
|
Удлинитель
SVGA Hi-Resolution 1.8m
|
120
|
3.31
|
Удлинитель
SVGA Hi-Resolution 3.0m
|
160
|
4.7
|
Удлинитель
SVGA Hi-Resolution 5.0m
|
230
|
6.63
|
Удлинитель
SVGA Hi-Resolution 10.0m
|
360
|
10.77
|
Удлинитель
USB AM/AF v2.0, 1.8m
|
36
|
1.06
|
Удлинитель
USB AM/AF v2.0, 3.0m
|
48
|
1.42
|
Удлинитель
для мыши и клавиатуры, PS/2
|
30
|
0.88
|
Шлейф
FDD
|
12
|
0.35
|
Шлейф
интерфейсный IDE UDMA 33
|
20
|
0.58
|
Шлейф
интерфейсный IDE UDMA 66/ UDMA 100
|
46
|
1.36
|
Адаптер
для соединения двух патч-кордов RJ-45
|
120
|
3.51
|
Вилка
RJ-11
|
2
|
0.05
|
Вилка
RJ-45
|
3
|
0.08
|
Интернет-шлюз
D-Link DIR-100/RU 4*10/100Mb, 1*WAN
|
1150
|
34.22
|
Коммутатор
D-Link DES-1005D/E 5port 10/100 Mb
|
540
|
16.14
|
Коммутатор
D-Link DES-1008D/E 8port 10/100 Mb
|
780
|
23.27
|
Коммутатор
D-Link DES-1016D/E 16port 10/100Mb
|
1800
|
53.66
|
Коммутатор
D-Link DES-1018DG 16х100 Mb + 2х1000 Mb ports, 19"
|
3930
|
117.42
|
Коммутатор
D-Link DES-2108, 8 ports 10/100Mb
|
2170
|
64.82
|
Коммутатор
D-Link DES-3010G, L2 8ports 10/100Mb, 1port GigaUTP, 1port SFP
|
5900
|
176.45
|
Коммутатор
D-Link DGS-1005D/GE 5port 10/100/1000Mb
|
1260
|
37.43
|
Коммутатор
D-Link DGS-1016D/GE 16port 10/100/1000Mb
|
7240
|
216.49
|
Коммутатор
TP-Link TL-SF1008D,8 ports 10/100Mb
|
590
|
17.37
|
Коммутатор
TP-Link TL-SF1016D,16 ports 10/100Mb
|
1240
|
36.84
|
Маршрутизатор
D-Link DIR-120, 4-ports 10/100 Base-TX switch and USB Printer Port
|
1510
|
45
|
Принт-сервер
D-Link DP-301P+
|
2010
|
60.07
|
Розетка
RJ-11
|
13
|
0.36
|
Сетевая
карта ASUS NX1101, PCI, 10/100/1000Mb
|
550
|
16.19
|
Сетевая
карта D-Link DFE-520TX PCI, 10/100Mb
|
180
|
5.28
|
Стяжки
капроновые 150 мм, 100 шт
|
60
|
1.74
|
Стяжки
капроновые 200 мм, 100 шт
|
70
|
2.04
|
Тестер
кабельный TrendNet TC-NT2, со звуковым генератором
|
1790
|
53.48
|
Приложение 2. Скрин NetBeans