Взаимодействие клиент-серверных сетевых ресурсов

Архитектура сервиса WWW. Адресация веб-ресурсов URL, URN, URI. Язык гипертекстовой разметки HTML. Программное обеспечение. Сетевые протоколы. Связывание сокетов, язык программирования. Анализ модели взаимодействия клиент-серверных сетевых процессов.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид дипломная работа
Язык русский
Дата добавления 03.05.2018
Размер файла 2,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Введение

веб сервис разметка программирование

Ни для кого не секрет, что компьютерный мир глобализируется на основе коммуникаций и сетевых протоколов. Интернет становится обязательным в жизни человека. Появляется множество приложений, ориентированных на сеть: это сетевые игры, серверы баз данных, различные сетевые протоколы, WEB-серверы, CGI-скрипты и т.д. Сеть - это уже компьютер в том случае, когда используется распределенная архитектура вычислений.

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

Программа или процесс, инициирующие установление связи, называется клиентским процессом, а программа, ожидающая инициации связи, называется серверным процессом. Клиент и сервер вместе образуют распределенную систему. Связь между клиентским и серверным процессами может быть или на основе соединений (TCP) или без соединений (UDP-датаграмм).

В данной работе будут рассмотрены клиент-серверная архитектура, ее составляющие, которые участвую в реализации этой структуры, также проанализирована ее работа, составлены выводы по различным способам клиент-серверного взаимодействия.

1. Архитектура сервиса WWW

1.1 История развития

В отличие от самой сети Internet, возникшей в 1983 г., World Wide Web имеет вовсе недолгую историю.

Исследователи из CERN (Европейская лаборатория физики элементарных частиц) в 1989 г. поставила перед фактом задачу создать систему, предоставляющую научным группам, работающих в разных странах и городах, удобный и легкий способ доступа к совместно используемой информации. Возглавил эту работу Тим Бернерс-Ли, - человек, давший отсчет World Wide Wed, и перевернувший тем самым мир. В начале девяностых годов он, работая в европейской лаборатории физики элементарных частиц, для построения будущей информационной среды выбрал идею гипертекста. Лаборатория CERN была поистине уникальным мстом, одним из наиболее важных центров сети Internet тех годов.[1]

В исследованиях CERN участвовали коллективы, работающие в различных научных центрах и заинтересованные в постоянном обмене информацией.

При использовании традиционных средств Internet выполнение простого действия, как просмотр графического изображения или текста, требовало поиска местоположения нужного документа, установления соединения с нужным (удаленным) компьютером, где он содержится, и перемещения на локальный компьютер документам. Также, для выполнения этих действий нужно было работать с несколькими программами, такими как Telnet, Ftp, программы просмотра графических изображений.

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

В течение года были определены основные концепции проекта, и работа началась. К концу 1990 г. исследователи CERN располагали программой просмотра, работающей в текстовом режиме, a также графической программой просмотра для компьютеров семейства NeXT. В 1991 г. система WWW стала широко использоваться в CERN. Первоначально пользователям WWW предоставлялся доступ только к гипертекстовым документам и к статьям телеконференций UseNet. По мере продвижения проекта добавился интерфейс к другим видам сервиса Internet (WAIS, анонимных FTP, Telnet и Gopher). [1]

В 1992г. информацию о проекте WWW начала широко распространять лаборатория CERN. Осознание мировым сообществом Internet больших возможностей этой системы привело к созданию многочисленных WWW-серверов, дающей доступ к самой разнообразной информации.[1]

Несмотря на то, что концепция функционирования сервера WWW уже существовала, практическое применение этого сервиса пользователями Internet было невозможно до февраля 1993г., когда в Суперкомпьютерном центре Иллинойского университета была создана альфа-версия NCSA Mosaic - самой первой программы просмотра документов на серверах WWW. Именно с этого момента начался лавинообразный рост Internet.[1]

1.2 Общая архитектура WWW

Интернет -- это глобальная компьютерная сеть, объединяющая в общее информационное поле сотни миллионов компьютеров. Интернет предлагает свою инфраструктуру для прикладных сервисов различного назначения, самым популярным из которых является Всемирная Паутина - World Wide Web (www).

World Wide Web (Всемирная Паутина) -- распределенная информационная система, предоставляющая доступ по протоколу HTTP к гипертекстовым документам. [1]

WWW -- сетевая технология прикладного уровня стека TCP/IP, построенная на архитектуре клиент-сервер и использующая инфраструктуру «Интернет» для взаимодействия между сервером и клиентом (рисунок 1.1).

Серверы www (веб-серверы) -- это хранилища гипертекстовой информации, управляемые специальным программным обеспечением.

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

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

Рисунок 1.1 - Архитектура сервиса WWW

В основе www -- взаимодействие между браузерами и веб-серверами по протоколу HTTP (HyperText Transfer Protocol). Веб-сервер -- это программа, запущенная на сетевом компьютере и ожидающая клиентские запросы по протоколу HTTP. Браузер может обратиться по доменному имени к веб-серверу или по ip-адресу, передавая идентификатор требуемого ресурса в запросе. Получив запрос от клиента, сервер находит необходимый ресурс на локальном устройстве хранения и отправляет его как ответ. Браузер принимает ответ и обрабатывает его нужным образом, в зависимости от типа ресурса (показывает изображения, отображает гипертекст, сохраняет полученные файлы и т.п.). [1]

Веб-приложение исполняется одновременно на двух машинах клиент и сервер. Веб-клиенты работают на компьютере потребителя, в подавляющем большинстве случаев веб-клиентом является браузер. На сегодняшний день очень популярными стали мобильные приложения, зачастую мобильные приложения являются клиентами веб-технологий, то есть в качестве веб клиента выступает мобильное приложение, а протоколы используются те же самые, но в подавляющем большинстве случаев, веб-клиентом являются браузеры. В задачу клиента входит загрузка документа по сети и его отображения, а так же отображение ресурсов (изображений, скриптов, видео и т.д.). Веб-сервер работает, как правило, на одном из серверов, который находится в дата центре и принадлежит автору приложения. Взаимодействие между клиентом и сервером осуществляется с помощью сетевых протоколов.

Преимущества веб серверного подхода заключается в открытых протоколах (очень хорошо документированных), эти протоколы реализованы на огромном количестве различных языков и огромном количестве клиентов. Это означает, что веб-приложение которое я разрабатывал, будет очень хорошо использоваться клиентами, то есть, не ограничиваясь каким-то отдельным клиентом. Также преимуществом является использование в качестве клиента браузера, это означает, что не нужно разрабатывать сложное клиентское приложение, соответственно не нужно писать большой код. Мы используем браузер, которых существует огромное количество и все они ведут себя похожим образом, это позволяет написать приложение один раз и оно будет хорошо отображаться на разных устройствах. Третье преимущество веб-приложений это прозрачный способ взаимодействия, можно загружать различные ресурсы с других сайтов так же можно использовать Java скрипт, который будет вызывать IP стороннего сайта и таким образом полностью использовать его ресурсы. Веб-архитектура предполагает прозрачный способ взаимодействия различных веб-приложений между собой. Четвертое преимущество это распределенная и масштабируемая архитектура, соответственно одно веб приложение может быть запущено на нескольких серверах, когда клиент загружает документ, выбирается произвольно один из нескольких серверов, который обслуживает данный сайт и используется именно он. Это означает, что нагрузка, которая ложится на веб приложение балансируется между различными серверами, это позволяет избежать единой точки отката, то есть приложение не завязывается на один сервер.

Этот протокол реализует логику с конкретной доменной областью. НТТЗ протокол передачи файлов.

Главный тип ресурсов Всемирной паутины -- гипертекстовые страницы. Гипертекст -- это обычный текст, размеченный специальными управляющими элементами -- тегами. Браузер считывает теги и выдает их как команды форматирования при выводе информации. Теги описывают структуру документа, a специальные теги, гиперссылки и якоря, позволяют установить связи между веб-страницами и перемещаться как между сайтами, так и внутри веб-сайта.[1]

1.3 Компоненты WWW

Функционирование сервиса имеет четыре составляющие:

- URL/URI -- унифицированный способ адресации и идентификации сетевых ресурсов;

- HTML -- язык гипертекстовой разметки веб-документов;

- HTTP -- протокол для передачи гипертекста;

- CGI -- общий шлюзовой интерфейс, представляющий доступ к серверным приложениям.[1]

1.4 Адресация веб-ресурсов.URL, URN, URI

Для доступа к любым сетевым ресурсам необходимо знать, как к ним можно обратиться и где они размещены. Во Всемирной паутине для обращения к веб-документам сначала используется стандартизованная схема идентификации и адресации, учитывающую опыт адресации и идентификации таких сетевых сервисов, как telnet, е-mail, ftp и т.п. -- URL, Uniform Resource Locator. [1]

URL (RFC 1738) -- унифицированный указатель ресурсов, стандартизированный способ записи адреса ресурса в www и сети Интернет.

Адрес URL имеет расширяемую и гибкую структуру для максимально естественного указания местонахождения ресурсов в сети. Для прописи адреса используется ограниченный набор символов ASCII.

В 2002 году, в августе, RFC 3305 рассказал про устаревание URL в пользу URI (Uniform Resource Identifier), более гибкого способа адресации, (он называется унифицированным идентификатором ресурса, то есть последовательность символов показывающая физический ресурс и абстрактный ресурс) вобравшего возможности как URL, Так и URN (Uniform Resource Name, унифицированное имя ресурса). URI позволяет не только указывать местонахождение ресурса (как URL), но и идентифицировать его в заданном пространстве имен (как URN). [1]

1.5 Язык гипертекстовой разметки HTML

HTML (HyperText Markup Language) -- стандартный язык разметки документов во Всемирной паутине. Множество веб-страниц созданы при помощи языка HTML.

HTML изобретался как язык для обмена технической и научной документацией, пригодный для использования людьми, не являющимися специалистами в области создания страниц. Для этого он представляет сравнительно небольшой набор семантических и структурных элементов -- тегов. [1]

C помощью этого языка разметки документов можно легко создать относительно простой, но красиво оформленный документ. Изначально язык HTML был задуман и спроектирован как средство структурирования и форматирования документов без их привязки к средствам отображения. В лучшем случае, текст с разметкой HTML должен единообразно воспроизводиться на различном оборудовании (монитор ПК, экран органайзера, ограниченный по размерам экран мобильного телефона, медиа-проектор). Однако современное применение HTML очень далеко от его изначальной задачи. Со временем основная идея платформ независимости языка HTML стала жертвой коммерциализации WWW и потребностей в мультимедийном и графическом оформлении.[1]

1.6 Протокол HTTP

HTTP (HyperText Transfer Protocol) -- протокол передачи гипертекста, текущая версия HTTP/1.1 (RFC 2616). Этот протокол изначально был предназначен для обмена гипертекстовыми документами, сейчас его возможности существенно расширены в сторону передачи двоичной информации.

Особенностью протокола HTTP является возможность указать в запросе и ответе способ представления одного и того же ресурса по различным параметрам: формату, кодировке, языку и т. д. Именно благодаря возможности указания способа кодирования сообщения клиент и сервер могут обмениваться двоичными данными, хотя данный протокол является символьно-ориентированным.

HTTP -- протокол прикладного уровня, но используется также в качестве «транспорта» для других прикладных протоколов, в первую очередь, основанных на языке XML.[1]

1.7 Общий шлюзовой интерфейс CGI

CGI (Common Gateway Interface) -- механизм доступа к программам на стороне веб-сервера. Спецификация CGI была разработана для расширения возможностей сервиса www за счет подключения различного внешнего программного обеспечения. При использовании CGI веб-сервер представляет браузеру доступ к исполнимым программам, запускаемым на серверной стороне через стандартные потоки ввода и вывода.[1]

CGI служит для связи веб-сервера с внешней прикладной программой. Обычно веб-сервера возвращают статистическую информацию (соответственно при записи некоторого URL подразумевается получение информации), они анализируют запрос и выдают нам то, что мы хотели получить. Есть недостаток в этой структуре, дело в том, что информация, которую посылает сервер, по своей природе статична, сервер не может выслать больше того, что у него есть на данный момент запроса. Для этого и был введен стандарт CGI, он расширяет возможности WEB-сервера. Информация, поступающая от веб-сервера, принимает характер динамики. Делается это так: нужно в URL указывать не статический ресурс, а специальную программу (CGI-скрипт), сервер, сделав анализ такого запроса, запустит ее, а она в свою очередь выдаст некоторую динамическую информацию

Интерфейс CGI применяется для создания динамических веб-сайтов, например, если веб-страницы формируются из результатов запроса к базе данных. На данный момент популярность CGI снизилась, т.к. воявились более совершенные альтернативные решения ( например, модульные расширения веб-серверов).[1]

1.8 Программное обеспечение сервиса WWW

Веб-серверы.

Веб-сервер -- это сетевое приложение, обслуживающее HTTP-запросы от клиентов, обычно веб-браузеров. Веб-сервер принимает запросы и возвращает ответы, обычно вместе с HTML-страницей, изображением, файлом, медиа-потоком или другими данными.

Созданием программного обеспечения веб-серверов занимаются многие разработчики, но наибольшую популярность имеют такие программные продукты, как Apache (Apache Software Foundation), IIS (Microsoft), Google Web Server (GWS, Google Inc.) и nginx.

Apache -- свободное программное обеспечение, распространяется под совместимой c GPL лицензией.

IIS (Internet Information Services) -- набор серверов для нескольких служб Интернета, разработанный Майкрософт и распространяемый c серверными операционными системами семейства Windows.

Основным компонентом IIS является веб-сервер, также поддерживаются протоколы FTP, POP3, SMTP, NNTP.

Google Web Server (GWS) -- разработка компании Google на основе веб-сервера Apache.

nginx [engine x] -- это HTTP-сервер, совмещенный с кэширующим прокси-сервером. [1]

Браузеры.

Браузер, веб-обозреватель (web-browser) -- клиентское приложение для доступа к веб-серверам по протоколу HTTP и просмотра веб-страниц. Как правило браузеры дополнительно поддерживают и ряд других протоколов (например ftp, file, mms, pop3). Самые популярные браузеры: google chrome, opera, mozilla, яндекс браузер, internet explorer.

Браузер - это программа, которая преобразует исходный код страницы в графический интерфейс, так называемое «окно в интерфейс». В настоящее время браузер из простого обозревателя перешел в нечто большее. Теперь это универсальный тонкий клиент для различных сервисов сети. Теперь прямо в нем можно общаться в режиме реального времени, смотреть видео, слушать музыку и т.д.

По мнению людей, самым безопасным является браузер Mozilla Firefox.

Без браузера, не было бы возможности пользоваться Интернетом. На данный момент в мире создано огромное количество браузером, но большинство из них не популярны, самые часто используемые приведены выше.

Работает браузер таким образом: после того, как сделан запрос, в адресной строке, на нужный сайт, идет передача страницы на обработку обозревателя и выводится на экран монитора

Первые HTTP-клиенты были консольными и работали в текстовом режиме, позволяя читать гипертекст и перемещаться по ссылкам. Сейчас консольные браузеры (такие, как lynx, w3m или links) практически не используются рядовыми посетителями веб-сайтов. Тем не менее такие браузеры весьма полезны для веб-разработчиков, так как позволяют «увидеть» веб-страницу «глазами» поискового робота.

Наряду с браузерами, ориентированными на пользователя, существуют и специализированные клиенты-роботы («пауки», «боты»), подключающиеся к веб-серверам и выполняющие различные задачи автоматической обработки гипертекстовой информации [1].

2. Сетевые протоколы (TCP/IP, DNS)

2.1 Протокол TCP/IP

Протокол TCP/IP - протокол управления передачей/протокол интернета. Стек протоколов TCP/IP - набор сетевых протоколов передачи данных, используемых в сетях, включая Интернет.

С самого начала в TCP/IP было заложено несколько важных свойств для служб работы с приложениями:

- терминальный доступ к любому хосту

- возможность копирования файлов с одного хоста на другой

- обмен сообщениями электронной почты между любыми двумя пользователями

С течением времени в наборе протоколов TCP/IP появились и другие возможности, очень важные для приложений:

- печать на удаленном принтере

- работа с сетевой файловой системой(NFS)

- сетевые новости

- WWW

Кроме того, расширился набор утилит администрирования и обслуживания сети. Среди новых средств можно назвать:

- службу каталогов для отображения содержательных сетевых имен хостов на их физические сетевые адреса

- протокол динамического конфигурирования(DHCP)

- сетевое управление хостами, маршрутизаторами и другими сетевыми устройствами

TCP/IP обладает уникальными характеристиками, которые обеспечивают долговечность этих протоколов. Архитектура TCP/IP позволяет объединять сетевые кластеры, формируя то, что называется «интернетом». Для пользователя интернет выглядит как одна большая сеть, сформированная из всех хостов, подключенных к отдельным сетевым кластерам[2].

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

На рисунке 2.1 показано, как c помощью TCP/IP могут взаимодействовать различные системы, локальные и региональные сети.

Рисунок 2.1 - TCP/IP -- окружение для оборудования от различных производителей и различных сетей

Протокол TCP отвечает в TCP/IP за надежные коммуникации c

созданием соединения по принципу «равный c равным». Сеанс регистрации c

терминала и пересылка файлов выполняется c помощью TCP.

Протокол IP не реализует надежную доставку данных, и он позволяет передавать данные между двумя ПК, нам же нужно передавать данные между программами. Каждый компьютер в локальной сети имеет свой уникальный адрес, так же как человек имеет свой почтовый адрес. Именно по этим адресам компьютеры находят друг друга в сети. Разумеется, что двух одинаковых адресов в одной сети быть не должно. Формат адреса стандартный и определен протоколом IP, поэтому адреса компьютеров называются IP-адресами. IP-адрес компьютера состоит из четырех полей, разделяемых точкой. Каждое поле содержит число, значение которого лежит в пределах от 0 до 255. Такой формат называется точечно-десятичной нотацией. Для хранения данных, в вычислительной технике используются двоичные числа, поэтому IP-адрес можно представить и в двоичном виде. В двоичном формате IP-адрес состоит из 32 битов, которые разбиты на четыре октета (поля по 8 бит). Чтобы точно указывать местонахождение компьютера в сети, IP-адрес разделяется на две части, одна содержит номер сети, другая номер компьютера в этой сети. Аналогично наш почтовый адрес указывает улицу и дом на ней. Есть небольшая разница, дело в том, что на WEB-сервере может быть запущено множество разных программ, когда мы передаем какие-то данные, необходимо указать, для какой именно программы мы передаем данные. Для решения этих задач и создан протокол TCP[2].

TCP обеспечивает двустороннюю передачу данных как клиент серверу, так и сервер клиенту. Так же обеспечивает защиту управления буфером, при передаче данных важна синхронизация, отправитель должен передавать столько информации, сколько получатель может потребить, иначе будет происходить переполнение буфера, данные будут теряться либо отбрасываться. TCP порты. Номер порта - это адрес открытого соединения в пределах одной машины. Таким образом, на машине может быть несколько портов и соответственно несколько tcp соединений. Следовательно, каждый порт связан с какой-то программой, и операционная система знает с какой программой он связан. Адрес порта это просто целое число, под которое отводится 2 байта в протоколе TCP, поэтому это число не может быть больше 65535. Порты которые ниже нумерации 1024 системе UNIX считаются привилегированными, то есть должны быть права администратора. Адреса выбираются произвольным образом. Но есть такие порты, которые закреплены определенным службам, таким как

- 20,21 - FTP

- 22 - SSH

- 25 - SMTP

- 80 - HTTP

- 443 - HTTPS

При установлении TCP соединений клиент и сервер обмениваются 3-мя пакетами, сначала браузер отправляет TCP сегмент с специальным флагом SYN, в этом пакете он отправляет специальный порядковый номер пакета, то число, с которого будет нумерация. Сервер отвечает клиенту специальными TCP сегментами флагами SYN и ACK это два флага, ACK означает то, что он принял от клиента пакет SYN и открывает обратное соединение, отправляет порядковый номер своего потока, на что клиент отвечает сегментом ACK. После тройного рукопожатия, у клиента и сервера есть два числа это порядковые номера передачи. Они могу приступать к передачи данных. От начала установления соединения до того, как может передаваться информация, проходит некоторое время, время установления соединения.

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

Стек протоколов TCP/IP включает в себя четыре уровня:

- прикладной уровень (application layer),

- транспортный уровень (transport layer),

- сетевой уровень (Internet layer),

- канальный уровень (link layer) [2].

Коммуникационная модель обмена данными OSI строго соответствует структуре TCP/IP. Уровни и терминология модели OSI стали стандартной частью коммуникационной структуры обмена данными. На рисунке 2.2 показаны уровни OSI и TCP/IP

Рисунок 2.2 - Уровни TCP/IP и OSI

На рисунке 2.3 представлено соотношение между отдельными компонентами набора протоколов TCP/IP [3].

Рисунок 2.3 - Соотношение между компонентами набора протоколов TCP/IP

2.2 Система доменных имен DNS

DNS (Domain Name System - система доменных имён) - компьютерная распределенная система для получения информации о домене. Используется для получения IP - адреса по имени хоста (компьютера или устройства), получения информации o маршрутизации почты, обслуживающих узлах для протоколов в домене. [2]

Для создания соединения с хостом имя хоста должно быть преобразовано в его цифровой адрес. Первоначально каждый хост TCP/IP хранил полный список всех имен и адресов для хостов сети. Однако при стремительном расширении Интернета это стало невозможным, поскольку число хостов стало измеряться тысячами и миллионами. [2]

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

Обработка DNS запроса происходит следующим образом. Для того чтобы обратиться к ресурсу сервера, доменное имя которого вводится в адресную строку браузера, необходимо преобразовать доменное имя в IP-адрес. Операционной системе известен DNS сервер провайдера. Клиент делает запрос на DNS сервер для получения IP-адреса, например, horosho.mail.ru, В случае отсутствия записи на сервере, DNS делает запрос на корневой сервер DNS. Корневой сервер знает кто обслуживает зону .ru, следовательно, корневой сервер возвращает IP-адрес обслуживающей зоне .ru. DNS сервер провайдера повторяет свой запрос, но уже к одному из серверов рунета, сервера рунета не знают адреса этого запроса, но они знают адреса mail.ru, следовательно, они возвращают адрес домену серверов, домену mail.ru, и в 3 раз DNS сервер провайдера повторяет запрос но уже конкретному серверу DNS, который обслуживается компанией mail.ru этот сервер знает адрес сайта horosho.mail.ru и его возвращает пользователю, то есть возвращается конкретно IP-адрес. Таким образом, этот IP-адрес попадает в браузер и браузер может осуществлять ответ.

Зона DNS сервера содержит:

- А - IPv4 адрес для данного домена

- АААА - IPv6 адрес

- NS - адрес DNS серверов обслуживающих данную зону.

- MX - адрес почтовых серверов для данного домена

DNS обладает следующими характеристиками[3]:

- распределённость администрирования.

- распределённость хранения информации.

- кэширование информации.

- иерархическая структура.

- резервирование.

3. Сокеты

3.1 Связывание и создание сокетов

Для обеспечения сетевых коммуникаций используются сокеты. Сокет - это конечная точка сетевых коммуникаций. Каждый использующийся сокет имеет тип и ассоциированный c ним процесс. Сокеты существуют внутри коммуникационных доменов. Домены это абстракции, которые подразумевают конкретную структуру адресации и множество протоколов, которое определяет различные типы сокетов внутри домена. Примерами коммуникационных доменов могут быть: UNIX домен, Internet домен, и т.д.

И у клиента, и y сервера есть socket. Socket связан c определенным IP адресом и номером порта. Обе «стороны» соединения используют socket'ы, и они (socket'ы) платформенно-независимы. Это значит, что машина c Windows может «общаться» по сети c Unix машиной, используя сокеты. По socket'ам данные могут передаваться и приниматься.

Выделяют два типа TCP socket'ов: потоковый socket (SOCK_STREAM) и, так называемый, дейтаграммный socket (datagram socket, SOCK_DGRAM).

Потоковый вариант разработан для приложений, нуждающихся в надежном соединении и часто использующем продолжительные потоки данных. Протокол, использующийся для данного типа socket'ов - TCP. [3]

Дейтаграммные socket'ы используют UDP протокол и имеют низкий сигнал соединения и большой размер буфера данных. Они применяются в приложениях, которые отправляют данные малых размеров и не нуждаются в идеальной надежности. В отличии от потоковых socket'ов, дейтаграммные socket'ы не гарантируют стопроцентной передачи данных получателю, как и не гарантируют передачи данных в нужном порядке. [3]

Дейтаграммный тип socket'ов полезнее для приложений, где надежность не является высоким приоритетом, таким как скорость (например аудио или видео трансляция). В приложениях, которые нуждаются в надежности, целесообразней использовать потоковые сокеты.

Связывание (binding) socket'ов

Связать socket значит «прикрепить» определенный адрес (IP адрес и номер порта) к данному socket'у.

Соединение

Способ использования socket'ов зависит от того, где их необходимо использовать: на клиентской или серверной части.

Клиентская часть создает соединение путем создания socket'а и вызовом соединяющей функции c определенной адресной информацией. До того как socket не соединится, он не будет связан c адресом.

Это связано c тем, что клиент может использовать любой адрес (IP адрес и номер порта) для соединения c сервером. [3]

Прослушивание

На «стороне» сервера дела обстоят немного иначе. Сервер ждет входящих соединений и клиенту необходимо знать IP адрес и номер порта сервера, чтобы установить соединение. Чтобы упростить дело, на сервере всегда используется фиксированный номер порта (обычно это - порт, предусмотренный протоколом по умолчанию).

Ожидание входящего соединения по определенному адресу называется прослушиванием (listening). Обычно, перед тем как «войти» в режим прослушивания, socket должен быть связан c определенным адресом. Когда номер порта этого адреса установлен и зафиксирован (т.е. не изменится), сервер начинает ждать входящие соединения по этому порту. [3]

Например, 80 порт (порт по умолчанию для HTTP) прослушивается большинством серверов.

Когда клиент запрашивает соединение c сервером, сервер разрешит ему (или нет) и породит новый socket, который будет конечной точкой связи. Благодаря этому, socket, по которому происходило прослушивание, не используется для передачи данных и может находиться в режиме прослушивания дальше, «принимая» новых клиентов.

3.2 Принципы сокетов

Каждый процесс может создать слушающий сокет (серверный сокет) и привязать его к какому-нибудь порту операционной системы (в UNIX непривилегированные процессы не могут использовать порты меньше 1024). Слушающий процесс обычно находится в цикле ожидания, то есть просыпается при появлении нового соединения. При этом сохраняется возможность проверить наличие соединений на данный момент, установить тайм-аут для операции и т.д. [3]

Каждый сокет имеет свой адрес. ОС семейства UNIX могут поддерживать много типов адресов, но обязательными являются INET-адрес и UNIX-адрес. Если привязать сокет к UNIX-адресу, то будет создан специальный файл (файл сокета) по заданному пути, через который смогут сообщаться любые локальные процессы путём чтения/записи из него (IPC-сокет). Сокеты типа INET доступны из сети и требуют выделения номера порта.

В программе сокет идентифицируется дескриптором - это просто переменная типа int. Программа получает дескриптор от операционной системы при создании сокета, a затем передает его сервисам socket API для указания сокета, над которым необходимо выполнить то или иное действие.

Сокеты представляют собой индустриальный стандарт унифицированного интерфйса, ориентированного на межпроцессорное взаимодействие, и поддерживаемого практически всеми операционными системами, Причем, с точки зрения сокета, ему все равно где находится соседний процесс - на локальной машине или на другом конце Земли. В общем случае, сокет представляет собой комбинацию IP-адреса и порта(например: 192.168.7.3:20), а так же набор функций для установки соединения и обмена данными.

Сырой сокет (raw) - разновидность сокетов, позволяющих собирать TCP/IP-пакеты, контролируя каждый бит заголовка и отправляя в сеть нестандартные пакеты.

Данные сокеты позволяют получить доступ к базовому протоколу передачи данных, это дает нам большие возможности создания таких сетевых утилит как Ping, Traceroute, a также для организации IP Spoofing, DDoS, ICMP-flood. Сырые сокеты выгодно отличаются тем, что позволяют собирать TCP/IP пакеты вручную, контролируя каждый бит заголовка, отправляя в сеть нестандартные пакеты, к приему которых операционная система ни морально, ни физически не готова. Сырые TCP/UDP сокеты работают намного медленнее обычных (что особенно хорошо заметно при открытии большого количества соединений или интенсивном трафике), а потому применять их следует тогда и только тогда, когда стандартными средствами поставленная задача не решается. [3]

4. Python, синтаксис

4.1 Определение языка программирования Python и его синтаксис

Python - высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода. [4]

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

- Python поддерживает несколько моделей программирования, в том числе структурное, объектно-ориентированное, функциональное императивное и аспектно-ориентированное.

Основные архитектурные черты:

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

- код в Python организовывается в функции и классы, которые могу объединяться в модули (они в свою очередь могут быть объединены в пакеты).

Сценарии исходного кода Python состоят из так называемых строк, каждая из которых в свою очередь состоит из физических строк. Для обозначения комментариев используется символ #. Комментарии и пустые строки интерпретатор игнорирует.

В Python нет символа, который бы отвечал за отделение выражений друг от друга в исходном коде, как, например, точка c запятой (;) в C++ или Java. Точка c запятой позволяет разделить несколько инструкций, если они находятся на одной физической строке. Так же отсутствует такая инструкция как фигурные скобки {}, позволяющая объединить группу инструкций в один блок. [4]

Физические строки разделяются самим символом конца строки, но если выражение слишком длинное для одной строки, то две физических строки можно объединить в одну логическую. Для этого необходимо в конце первой строки ввести символ обратного слеша (\), и тогда следующую строку интерпретатор будет трактовать как продолжение первой, однако при этом нельзя, чтобы на первой строке за символом \ находились бы другие символы, например, комментарий c #. Для выделения блоков кода используются исключительно отступы. Логические строки c одинаковым размером отступа формируют блок, и заканчивается блок в том случае, когда появляется логическая строка c отступом меньшего размера. Именно поэтому первая строка в сценарии Python не должна иметь отступа. [4]

Язык обладает четким и последовательным синтаксисом, продуманной модульностью и масштабируемостью, благодаря чему исходный код написанный на Python программ легко читаем. При передаче аргументов в функции Python используется вызов по соиспользованию (call-by-sharing). [4]

Синтаксис:

- конец строки является концом инструкции (точка c запятой не требуется)

- вложенные инструкции объединяются в блоки по величине отступов. Отступ бывает любым, главное, чтобы в пределах одного вложенного блока отступ был одинаков. Так же не стоит забывать про читаемость кода. Отступ в 1 пробел не лучшее решение. Использовать лучше 4 пробела, либо знак табуляции.

- вложенные инструкции в Python записываются в соответствии c одним и тем же шаблоном, когда основная инструкция завершается двоеточием, вслед за которым располагается вложенный блок кода, обычно c отступом под строкой основной инструкции.

Основная инструкция:

- вложенный блок инструкций

Несколько специальных случаев:

- иногда можно записать несколько инструкций в одной строке, разделяя их точкой c запятой:

A = 1; b = 2; print (а, b)

Но не стоит это делать слишком часто т.к. это неудобно.

- допустимо записывать одну инструкцию в нескольких строках. Достаточно ее заключить в пару круглых, квадратных или фигурных скобок:

If (а == 1 and b == 2 and

C == 3 and d == 4): #не стоит забывать про двоеточие

Print (`spam' * 3)

- тело составной инструкции может располагаться в той же строчке, что и тело основной, если тело составной инструкции не содержит составных инструкций.

If x > y: print (x) [4]

4.2 Обоснование выбора языка программирования

Язык программирования Python с каждым годом набирает популярность из-за своего простого синтаксиса и быстроты обработки данных. Сфера использования данного языка обширна: начиная с программирования простых математических моделей, заканчивая построением сложных моделей для машинного обучения и нейронных сетей. Python - это объектно-ориентированный язык, не типизированный, что позволят абстрагироваться от учёта типа данных и размера буфера. Данные плюсы способствуют быстрому развитию различных библиотек и Фреймворков, которые облегчают и унифицируют работу программистов. Например, Фреймворки Flask и Jingo, используемые при написании дипломной работы, позволяют абстрагироваться от деталей взаимодействия клиента и сервера через сетевой и транспортный уровни, и позволяют программисту сосредоточится на написании WEB-форм и обработки сервером принятых данных. Python очень удобный в использовании.

5. Анализ модели взаимодействия клиент-серверных сетевых процессов

5.1 Анализ взаимодействия клиент-серверной системы

Язык программирования Python позволяет создавать удобные модели взаимодействия сервера и клиента в сети с использованием различного вида сокетов и отображением принципов взаимодействия с веб-сервером.

Для использования модели сокетов необходимо подключить модули языка Python: os, socket.

На рисунках 5.1 и 5.2 - представлены модели сервера и клиента использующие для взаимодействия UNIX адрес и сокет типа SOCK_DGRAM (дейтаграммный сокет)

Рисунок 5.1 - модель сервера с дейтаграммным сокетом UNIX

Рисунок 5.2 - модель клиента с дейтаграммным сокетом UNIX

UNIX-адрес в качестве сокета использует файл, через который общаются клиент и сервер посредством чтения/записи в этот файл. При взаимодействии через дейтаграммный сокет передача данных осуществляется без установки предварительного соединения в одностороннем режиме от клиента к серверу. Для организации обратного взаимодействия (от сервера к клиенту) необходимо чтобы сервер переключился в режим клиента, а клиент в режим сервера. Для организации такого типа взаимодействия используется следующие средства языка Python:

для сервера:

- проверка на существование такого же сокета (if os.path.exists (SOCKET_FILE): os.remove (SOCKET_FILE));

- формирование сокета (server=socket.socket(socket.AF_UNIX, socket.SOCK_STREAM));

- связывание сокета с файлом (server.bind(SOCKET_FILE));

- получение данных от клиента (datagram=conn.recv(1024));

- разрыв соединения и удаление сокета(server.close(), os.remove(SOCKET_FILE));

для клиента:

- проверка существования файла-сокета (if os.path.exists (SOCKET_FILE));

- формирование сокета (client=socket.socket(socket.AF_UNIX, socket.SOCK_STREAM));

- установление соединения с сервером (client.connect(SOCKET_FILE));

- отправка данных с кодированием (client.send(x.encode('utf-8')));

- разрыв соединения (client.close()).

На рисунках 5.3 и 5.4 - представлены модели клиента и сервера использующих UNIX адрес и сокет SOCK_STREAM (потоковый сокет).

Рисунок 5.3 - Модель сервера c потоковым сокетом

Рисунок 5.4 - Модель клиента c потоковым сокетом

При взаимодействии через потоковый сокет устанавливается соединение клиент и сервер могут передавать и получать друг от друга данные. Для организации такого типа взаимодействия используется следующие средства:

для сервера:

- проверка на существование такого же сокета (if os.path.exists (SOCKET_FILE): os.remove (SOCKET_FILE));

- формирование сокета (server=socket.socket(socket.AF_UNIX, socket.SOCK_STREAM));

- связывание сокета c файлом (server.bind(SOCKET_FILE));

- прослушивание сокета (server.listen(1));

- принятие запроса на установку соединения (conn, addr = server.accept());

- получение данных от клиента (data=conn.recv(1024));

- оправка данных с кодированием (conn.send(answer.encode('utf-8')));

- разрыв соединения и удаление сокета(server.close(), os.remove(SOCKET_FILE));

для клиента:

- проверка существования файла-сокета (if os.path.exists (SOCKET_FILE));

- формирование сокета (client=socket.socket(socket.AF_UNIX, socket.SOCK_STREAM));

- установление соединения c сервером (client.connect(SOCKET_FILE));

- отправка данных с кодированием (client.send(x.encode('utf-8')));

- получение данных от сервера и отображение в UTF-8 (serv_answer=client.recv(1024), print(serv_answer.decode('utf-8')));

- разрыв соединения (client.close()).

На рисунках 5.5 и 5.6 - представлены модели клиента и сервера использующих TCP адрес и сокет SOCK_STREAM (потоковый сокет).

Рисунок 5.5 - Модель сервера c потоковым INET-сокетом

Рисунок 5.6 - Модель клиента c потоковым INET-сокетом

INET-адрес в качестве сокета использует IP-адрес и порт для взаимодействия клиента и сервера. Для потокового сокета соединение организуется как и в UNIX-адресе. Для организации такого типа взаимодействия используется следующие средства:

для сервера:

- формирование сокета (TCP_IP='127.0.0.1', TCP_PORT=5010, s=socket.socket(socket.AF_INET, socket.SOCK_STREAM));

- связывание сокета с файлом (s.bind(TCP_IP, TCP_PORT));

- прослушивание сокета (s.listen(1));

- принятие запроса на установку соединения (conn, addr = s.accept());

- получение данных от клиента (data=conn.recv(1024));

- оправка данных с кодированием (conn.send(answer.encode('utf-8')));

- разрыв соединения и удаление сокета(conn.close());

для клиента:

- формирование сокета (TCP_IP='127.0.0.1', TCP_PORT=5010, s=socket.socket(socket.AF_INET, socket.SOCK_STREAM));

- установление соединения с сервером (s.connect(TCP_IP, TCP_PORT));

- отправка данных с кодированием (s.send(MESSAGE.encode('utf-8')));

- разрыв соединения (s.close()).

На рисунках 5.7 и 5.8 - представлены модели клиента и сервера использующих IP-адрес и сокет SOCK_STREAM (потоковый сокет).

Рисунок 5.7 - Модель сервера c дейтаграммным-сокетом

Рисунок 5.8 - Модель клиента c дейтаграммным INET-сокетом

Дейтаграммный INET-сокет не устанавливает соединение. Для организации такого типа взаимодействия используется следующие средства:

для сервера:

- формирование сокета (UDP_IP='127.0.0.1', UDP_PORT=5010, sock=socket.socket(socket.AF_INET, socket.SOCK_DGRAM));

- связывание сокета c файлом (sock.bind((UDP_IP, UDP_PORT)));

- получение данных от клиента (data, addr=sock.recvfrom(1024));

для клиента:

- формирование сокета (UDP_IP='127.0.0.1', UDP_PORT=5010, sock=socket.socket(socket.AF_INET, socket.SOCK_DGRAM));

- отправка данных с кодированием (s.sendto(MESSAGE.encode('utf-8'), (UDP_IP, UDP_PORT)).

Представленные модели отображают механизм взаимодействия через различные сокеты. При этом клиент - это программа использование которой обычным пользователем недостаточно удобно т.к. требует особых знаний. На самом деле в качестве клиента выступает обычный пользователь, использующий ресурсы удаленного сервера, по запросу через интернет браузер. При этом пользователь использует удобный графический интерфейс, не вдаваясь в механизм установления соединения и получения данных. Для реализации получения пользователем информации подобным образом из сети на стороне веб сервера работает механизм доступа к программам сервера CGI, который позволяет организовать доступ к какому-либо приложению, подключая графическое оформление, представленное программой в HTML-коде. В реальности именно так работает сеть Интернет.

На рисунках 5.9, 5.10 и 5.11 - представлены простейшие модели реализации взаимодействия клиента по средствам интернет браузера с сервером через CGI.

Рисунок 5.9 - Модель CGI сервера.

Рисунок 5.10 - Модель CGI сценария.

Рисунок 5.11 - Модель HTML-страницы.

Для реализации такого взаимодействия на языке Python необходимо подключить следующие модули: os, sys, http.server, cgi. Запускается сценарий CGI-сервера. В интернет браузере, в адресной строке вводится IP-адрес и порт сервера (либо доменное имя). Появляется HTML-страница, отображающая оформление CGI-сценария.

На основе проведенного анализа создана тестовая программа, работающая по принципу модели с использованием CGI.

5.2 Описание работы с тестовой программой

Код для обработки данных на сервере содержится в двух файлах.

1) test.py

2) my_form.py

Для реализации программы в виде теста используются следующие библиотеки Python:

- Flask - Фреймворк, для работы с WEB-формами и HTML страницами. Данный инструмент обеспечивает согласование работы клиента и сервера, позволяет абстрагироваться от деталей взаимодействия на уровнях, ниже, чем прикладной, согласно модели OSI. А так же, обеспечивает представление информации пользователю и обработку принятых данных от клиента на стороне сервера.

- Re - библиотека для работы c регулярными выражениями. Данная библиотека помогает автоматизировать универсальный процесс формирования вопросов.

- Random - библиотека для генерации псевдо-случайных последовательностей. В дипломной работе несёт роль генератора случайной последовательности вопросов в тесте.

- Os - библиотека для взаимодействия c окружающей средой операционной системы. Используется для доступа к переменным окружающей среды и возможностям операционной системы.

- Time - библиотека для работы co временем. В данном проекте используется для логирования даты и времени прохождения теста.

Текст кода программы приведен в приложении А.

Шаблоны загруженных страниц.

1) autentification.html

2) base.html

3) exit.html

4) test.html

Файл для отображения стилей на страницах stylesheet.css.

Тексты шаблонов и файлы отображения стилей приведены в приложении Б.

Файл test.txt , c которого считываются вопросы, приведен в приложении В.

Тестовые задания содержат вопросы различных типов:

- RADIO (радио точка) - вариант выбора одного ответа.

- STRING - ввод ответа в строку.

- CHECKBOX - выбор нескольких ответов.

- SELECT - выбор соответствия.[2]

Тестовое задание содержит 30 вопросов. Критерии оценки: 28-30 правильных ответов - «отлично», 21-27 правильных ответов - «хорошо», 15-20 правильных ответов - «удовлетворительно», 0-14 правильных ответов - «неудовлетворительно».

Тестовая программа запускается на сервере командой python ./test.py

Для начала работы c программой необходимо запустить веб-браузер, ввести в адресной строке 127.0.0.1:5000

Рисунок 5.12 - Адресная строка браузера

Откроется страница приглашения ввода группы и фамилии студента, необходимо ввести эти параметры и нажать кнопку «Test begin»

Рисунок 5.13 - Страница ввода фамилии и группы

Тест запущен. Появляется первый вопрос, выбираем правильный вариант ответа.

Рисунок 5.14 - Вопрос типа «RADIO»

Для перехода к следующему вопросу нажать «Test begin». Появляется второй вопрос, где снизу показано, что вопрос выбран правильный.

Рисунок 5.15 - Вопрос типа «STRING»

В программе не предусмотрен возврат к предыдущим вопросам, можно только выйти, нажав exit. По времени тест не ограничен.

По прохождении теста появляется результат отображающий количество правильных ответов и оценку.

Рисунок 5.16 - Страница с выводом результата

6. Безопасность жизнедеятельности

6.1 Организация рабочих мест в аудитории 255

Выпускная квалификационная работа связана c анализом модели взаимодействия клиент-серверных сетевых процессов в инфокоммуникационных системах. Так как в дипломной работе используются персональные электронно-вычислительные машины (ПЭВМ), важно правильно организовать работу студентов в лаборатории.

Аудитория 255 имеет следующие размеры:

- Длина - 16м;

- Ширина - 6 м;

- Высота - 3,3 м.

Для того, чтобы вычислить количество рабочих мест для студентов, необходимо знать, что минимальная площадь одного рабочего места для пользователей ПЭВМ с видео дисплейными терминалами на базе электронно-лучевой трубки должна составляет 6 м2, a c видео дисплейными терминалами на базе дискретных экранов - 4,5 м2.

Найдем площадь данной аудитории по формуле 1:

(6.1)

Где S - площадь аудитории,

а - длина аудитории,

b - ширина аудитории.

Поскольку на одно рабочее место потребуется (на базе плоских дискретных экранов) 4,5 м2, то можно определить общее количество рабочих мест в аудитории 255:

В аудитории 255 можно разместить 21 рабочее место.

Так же в аудитории 255 используются ПЭВМ c экранами на базе электроннолучевой трубки (ЭЛТ). Поскольку на одно рабочее место потребуется 6 м2 , то определим общее количество мест в аудитории 255

В аудитории 255 можно разместить 16 рабочих мест.

При размещении рабочих мест c ПЭВМ расстояние между рабочими столами c видеомониторами (в направлении тыла поверхности одного видеомонитора и экрана другого видеомонитора), должно быть не менее 2,0 м, a расстояние между боковыми поверхностями видеомониторов - не менее 1,2 м.

Так как в лаборатории размещено 12 компьютеров можем сделать вывод, что нормы соблюдены. Требования приведены в части 6.2 «Требования к санитарно-гигиеническим параметрам рабочего места».

С учетом того, что в аудитории 255 используются ЖК мониторы и видео дисплейные терминалы на базе электронно-лучевой трубки, можно принять во внимание требование СанПиН 2.2.2/2.4. 1340-03 по минимальному расстоянию между ПЭВМ. [5]

Схему организации рабочих мест изобразим на рисунке 6.1.

Рисунок 6.1 - схема организации рабочих мест в аудитории 255

6.2 Требования к санитарно-гигиеническим параметрам

Помещение для работы должно быть достаточно просторным и хорошо проветриваться. При использовании ПЭВМ на базе ЭЛТ без вспомогательных устройств - принтер, сканер и других устройств, отвечающих требованиям международных стандартов безопасности компьютеров c продолжительностью работы менее 4 часов в день допускается минимальная площадь 4.5 м2 на одно рабочее место пользователя (взрослого и учащегося высшего профессионального образования). Не допускается размещать рабочие места во всех образовательных и культурно-развлекательных учреждениях для детей и подростков в подвальных и цокольных помещениях. [5]

Помещения должны иметь естественное и искусственное освещение. Естественное должно осуществляться через окна, ориентированные преимущественно на север и северо-восток, и обеспечивать коэффициент естественной освещенности (КЕО) не ниже 1,2 в зонах c устойчивым снежным покровом и не ниже 1,5 на остальной территории. Оконные проемы должны быть оборудованы регулируемыми устройствами типа: жалюзи, занавески, внешних козырьков и других устройств. Эксплуатация ПЭВМ в помещениях без естественного освещения допускается только при соответствующем обосновании и наличии положительного санитарно-эпидемиологического заключения, выданного в установленном порядке.

...

Подобные документы

  • Сетевые модели: одноранговые, комбинированные, с централизованным управлением. Технология клиент-сервер. Системы управления базами данных. Принцип построения сетевых соединений: шина, кольцо, звезда. Основные сетевые архитектуры: Ethernet, Token Ring.

    презентация [268,9 K], добавлен 25.06.2013

  • Концепция интеллектуальной сети как одна из определяющих концепций развития современных сетей связи. Модульность и многоцелевое назначение сетевых функций. Эффективное использование сетевых ресурсов. Правила и элементарная схема предоставления услуг.

    презентация [211,2 K], добавлен 02.08.2013

  • Разработка клиент-серверного приложения для передачи данных с использованием среды программирования Microsoft Visual Studio 2005. Архитектура клиент/сервер. Сокеты и библиотека WinSock. Разработка системы передачи данных в локальной вычислительной сети.

    курсовая работа [479,1 K], добавлен 23.06.2012

  • Общие сведения о сетевых анализаторах, особенности их применения. Виды и анализ конвергентных (мультисервисных) сетей. Обратная сторона использования и сущность анализаторов сетевых протоколов. Принцип действия и работа системы мониторинга безопасности.

    курсовая работа [3,5 M], добавлен 01.03.2013

  • Разработка информационно-вычислительной сети для магазина бытовой техники. Создание системы программ "клиент-сервер", осуществляющих взаимодействие посредством сети с использованием среды визуального программирования Microsoft Visual Studio C++ 2010.

    курсовая работа [896,8 K], добавлен 23.06.2012

  • Классификация систем управления (СУ) машиностроительным оборудованием. Архитектура СУ на базе микропроцессорных комплектов фирм DEC и Motorola. Программное обеспечение СУ и программируемых контроллеров. Графический язык программирования Ladder Diagram.

    курс лекций [374,5 K], добавлен 22.11.2013

  • Базовые типы и масштабы сетевых операционных систем. Программные и аппаратные средства вычислительной сети. Характеристика коаксиального кабеля, преимущества "витой пары", методы их подключения. Топология и архитектура сети; обеспечение совместной работы.

    презентация [1,2 M], добавлен 31.01.2014

  • Характеристика устройства глобальных сетей с коммутацией каналов. Описание принципа архитектуры "клиент-сервер". Ознакомление со структурой стека TCP\IP. Изучение технологии многопротокольной коммутации по меткам. Функции сетевых команд Windows XP.

    реферат [1,2 M], добавлен 01.02.2011

  • Архитектура терминальных устройств. Тонкий клиент и толстый клиент. Бездисковая рабочая станция. Организация терминального доступа средствами Windows 2003 Server. Лицензирование терминальных служб. Технические характеристики терминальных устройств.

    дипломная работа [98,7 K], добавлен 02.03.2009

  • Разработка программы "twitter-клиент", обладающей функционалом социальной сети Twitter и написанной на языке C+ в среде разработки Visual Studio 2010. Опции новостной ленты и вывод сообщений пользователей. Действия для кнопок "Mentions" и "My tweets".

    курсовая работа [1,1 M], добавлен 24.12.2012

  • Ознакомление со структурой микроконтроллера семейства MCS-51. Характеристика программно доступных ресурсов и организации памяти. Анализ прямого, непосредственного, регистрового способов адресации операндов. Описание программной модели битового процессора.

    курсовая работа [405,5 K], добавлен 22.08.2010

  • Интернет как открытая мировая коммуникационная структура. Системы адресации и протоколы передачи данных. Архитектура экспертных систем, ее этапы разработки, классификация и назначение. Использование программ-обозревателей для путешествия по Интернету.

    контрольная работа [25,2 K], добавлен 28.02.2009

  • Подключение и установка Web-камеры. Устройство и принцип работы, возможности и функции. Подключение Web-камеры к сети. Управляющее программное обеспечение: эксклюзивные программы для Web-камер. Разработка программы на языке программирования Basic.

    контрольная работа [206,0 K], добавлен 12.10.2009

  • Краткое описание Регионального центра эксплуатации "Сибирь". Организация работы центра и его оборудование. Разработка структурной схемы прибора для поиска повреждений и трассировки сетевых кабелей. Организация ремонта средств вычислительной техники.

    дипломная работа [479,2 K], добавлен 10.12.2013

  • Функции и характеристики сетевых адаптеров. Особенности применения мостов-маршрутизаторов. Назначение и функции повторителей. Основные виды передающего оборудования глобальных сетей. Назначение и типы модемов. Принципы работы оборудования локальных сетей.

    контрольная работа [143,7 K], добавлен 14.03.2015

  • Сетевой фильтр и его использование. Параметры фильтров-удлинителей, фильтров кондуктивных электромагнитных и синфазных помех, сетевых фильтров. Варисторы. Защита от намеренного силового воздействия (НСВ) по цепям питания. Степень варисторной защиты.

    курсовая работа [688,8 K], добавлен 25.01.2009

  • Создание сетевой игры "Кости". Протоколы, используемые в сетевой игре: IPX предоставляет возможность программам обмениваться пакетами данных без подтверждения; протоколы SPX и NETBIOS сделаны на базе IPX и поэтому требуют дополнительных ресурсов.

    курсовая работа [67,2 K], добавлен 27.05.2008

  • Устройства записи и хранения информации. Преимущества сетевых систем цифрового видеонаблюдения перед аналоговыми. Устройства, необходимые для работы компьютерной сети. Программные платформы систем видеонаблюдения. Сетевые устройства хранения NAS.

    курсовая работа [2,6 M], добавлен 30.01.2016

  • Анализ сети телекоммуникаций города Гомеля, предпосылки модернизации оборудования АТС-57. Виды мультисервисных сетей. Архитектура и технические характеристики коммутационной системы Alcatel 1000 S12. Надежность аппаратуры связи, программное обеспечение.

    дипломная работа [1,9 M], добавлен 01.12.2016

  • Функции системного программного обеспечения. Системы программирования – программные средства, обеспечивающие автоматизацию разработки и отладки программ. Состав и назначение операционной системы (ОС). Сервисные программы, расширение возможностей ОС.

    реферат [17,2 K], добавлен 25.04.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.