Кэширующий прокси-сервер

Автор работы: Пользователь скрыл имя, 10 Октября 2011 в 19:40, дипломная работа

Описание

Данный вид прокси-серверов так же используется и провайдерами. Как говорилось выше, Интернет состоит из большого количества серверов. Некоторые из них содержат веб-сайты, а некоторые являются лишь транспортными узлами, перенаправляющими трафик от пользователя к веб-сайту и обратно. Провайдеры заинтересованы в уменьшении объема трафика. Для этого они применяют технологию кэширования на своих серверах, чтобы отвечать на часть пользовательских запросов, не пересылая их дальше внутренней сети. Данный метод описан в RFC 2616, позволяющий сообщить прокси-серверам, что содержимое желательно кэшировать (Cache-Control: public).

Содержание

Введение………………….………………………………………………………3

1.ПОСТАНОВКА ЗАДАЧИ……………………………………………………..5

2.ОБЗОР СЕТЕЙ И ПРОКСИ-СЕРВЕРОВ…………………………………….6

2.1. Локальная сеть………………………………………………………..6

2.2. Функции различных прокси-серверов………………………………8

2.3. Сравнение «Кэширующего прокси-сервера» с другими прокси-серверами……………..……………………………………………….…..22

2.3.1. Squid………………………………………………………….22

2.3.2. DeleGate……………………...……………...………………..24

2.3.3. WinGate…………………………………………………........26

2.3.4. UserGate………………………………………………………27

2.3.5. Traffic Inspector……………………………………………....28

3. АРХИТЕКТУРА ПРИЛОЖЕНИЯ…………………………………………....30

3.1. Обоснование выбора языка программирования…………………….30

3.2. Протокол TCP…………………………………………………………31

3.3. Формат заголовка HTTP……………………………………………...35

3.4. Сокеты…………………………………………………………………38

3.5. Разработка структуры приложения………………………………....40

4.СОЗДАНИЕ ПРОГРАММЫ «КЭШИРУЮЩИЙ ПРОКСИ-СЕРВЕР» ...…42

4.1 Библиотеки и компоненты, которые использовались при разработке программы……………..……………………………………………….....42

4.2 Реализация функций программы «Кэширующий прокси-сервер»...47

5. КРАТКАЯ ИНСТРУКЦИЯ ПОЛЬЗОВАТЕЛЯ…………………...………...56

Заключение……………………………………………………………………….60

Список литературы…..…………………………………………………………..61

Работа состоит из  2 файла

Диплом-текст.doc

— 873.50 Кб (Скачать документ)

 

2.3 Сравнение «Кэширующего прокси-сервера» с другими прокси-серверами.

         2.3.1. Squid

      Squid — программный пакет, реализующий функцию кэширующего прокси-сервера для протоколов HTTP, FTP, Gopher и (в случае соответствующих настроек) HTTPS. Разработан сообществом как программа с открытым исходным кодом (распространяется в соответствии с GNU GPL). Все запросы выполняет как один неблокируемый процесс ввода/вывода.

     Используется  в UNIX-like системах и в ОС семейства Windows NT. Имеет возможность взаимодействия с Active Directory Windows Server путём аутентификации через LDAP, что позволяет использовать разграничения доступа к интернет ресурсам пользователей, которые имеют учётные записи на Windows Server, также позволяет организовать «нарезку» интернет трафика для различных пользователей. Используется вместе с движками Mediawiki на wiki хостингах. Использование кэширующего прокси-сервера становится выгодно примерно с 2000 посетителей в сутки.

     Squid имеет возможность переписывать  запрашиваемые URL. Squid может быть  сконфигурирован так, чтобы пропускать входящие URL через процесс редиректора выполняемого как внешний процесс (подобно dnsserver), который возвращает новый URL или пустую строку, обозначающую отсутствие изменений. Редиректор не является стандартной частью пакета Squid. Редиректор предоставляет администратору контроль за передвижениями пользователей. Использование редиректора в сочетании с прозрачным проксированием дает простой, но эффективный контроль, над доступом к нежелательным ресурсам (например к развлекательным ресурсам и социальным сетям в корпоративной сети, порнографии). Программа-редиректор должна читать URL (один на строку) со стандартного входа и записывать измененные URL или пустые строки на стандартный выход. Нужно заметить, что программа-редиректор не может использовать буферизированный ввод/вывод. Squid дописывает дополнительную информацию после URL, которую редиректор может использовать для принятия решения.

      Главным достоинством squid является его модульность. Существует множество надстроек, которые существенно повышают степень надежности соединения и безопасности.

  • SQUID Account Management System(SAMS) - программное средство для администрирования доступа пользователей к прокси-серверу SQUID, сбора статистики и генерации отчетов о потреблении трафика.

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

  • NeTAMS позволяет контролировать расходы на использование сети Интернет сотрудниками, получать статистику по трафику, устанавливать ограничения.

И многие другие… 
 

К недостаткам  SQUID можно отнести:

  • Отсутствие полной функциональности в среде ОС семейства Windows, т.е. многие компоненты невозможно установить.
  • Негибкие настройки. В случае внесения изменений в конфигурацию необходимо перезапускать службу (а в отдельных случаях и весь сервер)
  • Усложненная настройка правил.

     В программе «Кэширующий прокси-сервер»  файлы правил достаточно просты для  понимания.

         2.3.2. DeleGate

DeleGate - Многоцелевой прокси-сервер, работающий с различными TCP-, UDP-протоколами, такими как HTTP, HTTPS, FTP, NNTP, SMTP, SOCKS, IMAP, ICP и т. д. Delegate работает как прокси уровня приложения (application-level), который пропускает через себя различные протоколы, производя необходимые изменения в данных. Также Delegate может быть использован как прокси для передачи любых данных между клиентом и сервером по протоколам TCP, UDP. Являясь прокси уровня приложения, Delegate обеспечивает виртуальное представление ресурсов, расположенных на различных серверах. В случаях HTTP, FTP, NNTP, Delegate может выступать самостоятельным сервером. Поддерживается фильтрация данных. Для фильтрации используется собственный интерфейс CFI (Common Filtering Interface). В качестве фильтров могут быть использованы как внутренние средства Delegate, так и обычные внешние приложения (sed, awk...), работающие со стандартным вводом/выводом. В случае когда Delegate выступает в качестве HTTP прокси-сервера, для хранения объектов может быть использован постоянный кэш, размещенный на диске. Поддержка протокола ICP позволяет эффективнее взаимодействовать с другими кэш-серверами. Авторизация пользователей, если она необходима, происходит через PAM и собственную службу авторизации DGAuth.

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

     Тем не менее функциональности для кэширующего  прокси недостаточно.

     Прозрачное HTTP-проксирование поддерживается не полностью, поскольку реализация опирается только на данные «Host:» HTTP-заголовка, а он не всегда присутствует. Не поддерживаются протоколы WCCP, CARP. Вместо стандартного протокола ICAP поддерживается свой собственный интерфейс фильтрации, что затрудняет встраивание стандартных сервисов фильтрации и аудита. Не поддерживаются схемы авторизации NTLM, MSNT, что затрудняет интеграцию в сеть, построенную на технологии Windows.

     Скажем  несколько слов об архитектуре Delegate. Сервер каждого протокола работает в отдельном процессе и при каждом соединении с пользователем порождает новый процесс.

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

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

     Большинство офисных ПК работают под управлением  ОС семейства Windows(как правило, Windows XP SP3), именно поэтому данный продукт не подойдет для данных сетей. «Кэширующий прокси-сервер» способен  обслуживать как ПК под управлением Windows, так и UNIX-подобных систем.

         2.3.3. WinGate

WinGate - один из популярных прокси-серверов, позволяющий нескольким пользователям локальной сети получить доступ в Интернет.

 К  положительным сторонам Wingate относятся  его стабильность и простота  установки, настройки и использования. Реализована поддержка всех новейших протоколов и возможностей.

     К недостаткам можно отнести:

  • Невозможность работы в корпоративных сетях.
  • Слабая защищенность пользователей от внешних угроз

     Данный  прокси-сервер не может корректно работать с запросами более чем  25 машин и число коллизий возрастает до 10%. В «Кэширующем прокси-сервере» эта проблема решена путем расширения таблиц кэширования. 
 
 

     2.3.4. UserGate

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

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

      UserGate состоит из нескольких частей: сервер, консоль администрирования  («UserGate Administrator») и несколько дополнительных  модулей. Сервер UserGate (процесс usergate.exe) - это основная часть прокси - сервера,  в которой реализованы все его функциональные возможности. Сервер UserGate предоставляет доступ в сеть Интернет, осуществляет подсчет трафика, ведет статистику работы пользователей в сети и выполняет многие другие задачи. Консоль администрирования UserGate - это программа, предназначенная для управления сервером UserGate. Консоль администрирования UserGate связывается с серверной частью по специальному протоколу поверх TCP/IP, что позволяет выполнять удаленное администрирование сервера.

      UserGate включает четыре дополнительных  модуля: «Статистика UserGate», «Веб-статистика», «Клиент авторизации UserGate» и модуль «Контроль приложений».

     Данный  прокси-сервер является весьма популярным программным продуктом на IT-рынке

     К недостаткам можно отнести:

  • Достаточно высокая стоимость программного продукта.
  • Сложность настройки NAT.

     UserGate является отличным решением для однородных сетей Windows. Однако его стоимость достаточно высока, и не каждый руководитель может себе позволить себе оплатить расходы на ее эксплуатацию. «Кэширующий прокси сервер» задумывался как бесплатное ПО с открытым кодом.

         2.3.5. Traffic Inspector

Traffic Inspector  - позволяет решить большинство задач, возникающих при подключении к Интернет по выделенному каналу: обеспечение доступа в сеть Интернет из внутренней сети; авторизация и разграничение доступа пользователей; билинг ( тарификация пользователей, подсчет трафика и блокировка доступа при перерасходе); обеспечение пользователей средствами экономии трафика и предоставление возможности самостоятельно контролировать свою работу в Интернет; сетевая защита (Firewall), позволяющая закрыть сервер доступа и внутреннюю сеть от несанкционированного доступа извне; подробный анализ сетевого трафика, потребляемого у провайдера; динамическое ограничение скорости работы пользователей или их групп; Advanced Routing (Policy Routing или Source Routing) — возможность гибкой настройки перенаправления разных пользователей и видов трафика на разные каналы доступа; отключение пользователей от сети Интернет при заражениях сетевыми вирусами и др. 

 

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

 

  1.   Архитектура приложения.
 
    1. Обоснование выбора языка программирования

     Программный продукт «Кэширующий прокси-сервер» был разработан в среде Code::Blocks на языке программирования C. Так же были использованы сторонние библиотеки POSIX для реализации некоторых функций присущих только UNIX-подобным системам.

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

       Язык С не связан с какими-либо определенными аппаратными средствами или  системами,  и на  нем легко писать программы, которые можно пропускать без изменений на любой ЭВМ, имеющей С-компилятор.

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

     Язык  С - это язык относительно "низкого  уровня".   Это означает,  что Си имеет дело с объектами того же вида, что и большинство ЭВМ, а именно, с символами, числами и адресами. Они  могут  объединяться  и пересылаться посредством обычных арифметических и логических операций, осуществляемых  реальными ЭВМ.

          В языке Си отсутствуют операции,  имеющие  дело  непосредственно   с составными объектами, такими как строки символов, множества, списки или с массивами, рассматриваемыми как целое. Здесь, например, нет никакого аналога операциям PL/1, оперирующим с массивами и строками.  Язык  не  предоставляет никаких других возможностей распределения памяти, кроме статического определения и  механизма  стеков,  обеспечиваемого локальными переменных функций.  Сам по себе язык С не обеспечивает никаких возможностей ввода-вывода.  Все  эти  механизмы высокого уровня должны обеспечиваться явно вызываемыми функциями.

Титульный лист.doc

— 30.00 Кб (Открыть документ, Скачать документ)

Информация о работе Кэширующий прокси-сервер