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

Автор работы: Пользователь скрыл имя, 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 Кб (Скачать документ)

            fprintf(stderr, "Ошибка: не могу удалить файл %s: %s\n", filename, strerror(errno));

                  exit(1);  }

            /* Удаляем запись  элемента из хэш-таблицы. */

            hash_table[cache_table[i].hash_value] = NULL; 

            /* Если это последний  элемент в кэш-таблице, просто  отнимем 1. */

            if (i == cache_count-1)

                  cache_count--;

            else {

                  /* Двигаем последний  элемент в кэш-таблице на эту  позицию. */

                  hash_table[cache_table[cache_count-1].hash_value] = &cache_table[i];

                  memcpy(&cache_table[i], &cache_table[cache_count-1], sizeof(cache_table[i]));

                  cache_count--;  } } 

      /* Возвращаем новое количество  элементов в кэше. */

      return(cache_count);

     } 

     Простнйшая функция рассчета хэша(Б. Кернингэн, Д. Ричи «Язык программирования С», с.144).

unsigned calculate_hash(char* s) { 

      unsigned hashval; 

      for(hashval = 0; *s != '\0'; s++)

            hashval = *s + 31 * hashval;

      return(hashval % HASH_SIZE);} 

 

  1. Краткая инструкция пользователя.
 
 

   Для запуска приложения запустите файл “ProxySRV.exe”.

   При первом запуске в папке содержащей файл запуска создается папка  «cache». В этой папке будут храниться все скэшированные файлы с префиксом «prx.». По умолчанию, число записей кэша составляет 100 000.

  В случае переполнения файлов, старые будут удалены.

   Следующие аргументы доступны при запуске  приложения:

-h – данный аргумент выводит список комманд с пояснениями

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

-p [порт] – данный аргумент указывает порт прослушивания сервера. По умолчанию используется порт 3128.

-t  [временная папка] – данный аргумент позволяет задать имя для папки, где хранятся скэшированные элементы.

-a [максимальное время жизни файла] – данный аргумент позволяет задавать максимальное время жизни файла.

      В случае, если приложение запускается  без аргументов, то будут использованы значения по умолчанию и будет показана справка: 

Использование: ProxySRV.exe [-h] [-d] [-p порт] [-t временная папка] [-a возраст]. 

   После запуска приложения начинается функционирование прокси сервера.

   После закрытия программы необходимо очищать  содержимое папки кэш. 
 

   Для подключение клиентских рабочий  станций необходимо в настройках обозревателя указать адрес и порт прокси-сервера. Для этого откройте «Панель управления» и запустите «Свойства обозревателя»(рис.2)

 Рисунок  2. Панель управления Windows 7. Выделен пункт «Свойства обозревателя» 
 
 
 

     В открывшемся окне перейдите на вкладку «Подключения» и нажмите кнопку «Настройка сети»

            

         Рисунок 3. Свойства обозревателя – Подключения. 

 

     Здесь включите «Использовать прокси-сервер для локальных подключений» и  введите адрес и порт прокси-сервера.

         Рисунок 4. Настройка параметров локальной сети.

 

Заключение 

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

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

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

 

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

     Мэтью, Н. - Основы программирования в Linux: пер. с англ. /Н. Мэтью, Р. Стоунс – 4-е изд., перераб. и доп. – СПб.:БХВ-Петербург, 2009.

     Снейдер, Й. - Эффективное программирование TCP/IP. Библиотека программиста. - СПб.: Питер, 2002

     Пахомов, Б. - C/C++ и MS Visual C++ 2008 для начинающих – СПб.:БХВ-Петербург, 2009

     Фостер, Дж., Прайс, М. – Защита от взлома: сокеты, эксплойты, shell-код: Пер. с англ. Слинкина А.А. – М.: Издательский Дом ДМК-пресс, 2006

     Dawsom, A. - UNIX Custom Application Migration Guide. Volume 3 - Migrate Using Win32 - Win64 .: MSDN, 2006

     RFC 2616 «Протокол передачи гипертекста - HTTP/1.1» 2008

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

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

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