Прокси сервер



Жұмыс түрі:  Курстық жұмыс
Тегін:  Антиплагиат
Көлемі: 18 бет
Таңдаулыға:   
Курстық жұмыс
Прокси-сервер

Мазмұны

Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Прокси сервер ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ... ... ..
TCP ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
Сокеты ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
SOCKS ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
Жүзеге асыру ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Функциялары ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Негізгі алгоритмі ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... .
Шектеу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Қосымша 1.Блок-схемасы ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ... .
2-қосымша.Листинг ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
Әдебиеттер тізімі ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...

Кіріспе
Прокси-сервер
Прокси-сервер (ағылш. proxy -- "өкілі, уәкілетті") -- қызметі компьютерлік желілерде мүмкіндік беретін, клиенттерге орындауға жанама сұраулар басқа желілік қызметтерге төлейді. Алдымен клиент қосылады прокси-серверге сұратады қандай да бір ресурс (мысалы, e-mail), орналасқан басқа серверде. Содан кейін прокси-сервер не қосылады көрсетілген серверге алады ресурсы өзінде, не қайтарады ресурсы жеке кэш (егер прокси жоқ, кэш). Кейбір жағдайларда сұрау салу клиенттің немесе бар сервер өзгертілуі мүмкін прокси-сервер анықталған. Сондай-ақ, прокси-сервер қорғауға мүмкіндік береді клиенттік компьютер кейбір желілік шабуылдар және сақтауға көмектеседі жасырын клиенттің.

Шаруаше
Жиі прокси-серверлер үшін қолданылады және мынадай мақсаттарға:
* Қол жеткізуді қамтамасыз ету компьютерлер жергілікті желі, Интернет.
* Деректерді кэштеу: егер жиі орын алуда, өтініш-бір және сол сыртқы ресурстарға, онда оларды ұстап көшірмесін ұсынады прокси серверде беруге және сұрау салу бойынша төмендете отырып, сол арқылы жүктемені арна сыртқы желі және жеделдете алу клиент сұратқан ақпаратты.
* Деректерді қысу: прокси-сервер жүктейді ақпаратты Интернеттен береді ақпаратты түпкілікті пайдаланушыға сығылған түрінде. Мұндай прокси-серверлер пайдаланылады негізінен үнемдеу мақсатында сыртқы трафик.
* Локалдық желіні сыртқы доступа: мысалы, орнатуға болады прокси-сервер-бұл локальды компьютерлер өтініш сыртқы ресурстарға тек ол арқылы, ал сыртқы компьютерлер алмайды жүгінуге жергілікті мүлдем (олар "көреді" тек прокси-сервер).
* Шектеу локалдық желіні сыртқы: мысалы, тыйым салуға қол жеткізу белгілі бір веб-сайттарғашектеу қою, интернет желісін пайдалану, онда жергілікті пайдаланушыларға орнатуға арналған квота трафик немесе өткізу жолағының, сүзуге және жарнамаға вирустар.
* Анонимизация әртүрлі ресурстарға қол жеткізу. Прокси-сервер болуы мүмкін жасыру туралы мәліметтер көзінде сұрауды немесе пайдаланушы. Мұндай жағдайда мақсатты сервер көреді тек туралы ақпаратты прокси-сервер, мысалы, IP-мекен-жайы, бірақ мүмкіндігі жоқ анықтау шынайы көзі сұрау. Бар сондай-ақ, искажающие прокси-серверлер, олар береді мақсатты серверге жалған ақпаратты об истинном қолданушы.
* Айналып шектеулер қол жеткізу. Прокси-серверлер арасында танымал пайдаланушылардың несвободных елдердің қол жеткізу кейбір ресурстарына шектелген заңнамалық және сүзіледі.

Прокси-сервер-оған қол жеткізу мүмкін кез-келген пайдаланушы, интернет желісі деп аталады ашық.

TCP
Transmission Control Protocol (TCP) (хаттама басқармасының беруге) -- негізгі желілік хаттамалар Интернеттің, арналған басқару үшін деректерді беру желісінде және подсетях TCPIP.
Функцияларды орындайды хаттаманың көліктік деңгейі моделі OSI.
TCP -- бұл көлік тетігін ұсынатын деректердің ағыны, алдын ала орнату арқылы қосылыстар, осының есебінен еңбек сенімділік алынатын деректердің дұрыстығын жүзеге асырады, қайталап сұрау салу деректерін жоғалтқан жағдайда, деректерді жояды қайталануын алған кезде екі көшірмелерін бір пакеті. Қарағанда UDP кепілдік береді, бұл қосымша алады деректер дәл осындай ретпен, қандай олар жіберілді, және шығынсыз.
Іске асыру TCP, әдетте, кіріктірілген осы жүйенің өзегі, дегенмен бар, және іске асыру TCP контекстінде қосымшалар.
Кезде беру жүзеге асырылады, компьютерден компьютерге Интернет арқылы TCP жұмыс істейді, жоғарғы деңгейде екі ел арасындағы соңғы жүйелермен, мысалы, веб сілтеме және веб-сервер. Сондай-ақ TCP жүзеге асырады сенімді беруді ағынының байт бір бағдарламасын бірнеше компьютерде басқа бағдарлама болса. Бағдарламасы үшін электрондық пошта және файлдармен алмасу TCP пайдаланады. TCP бақылайды ұзындығы қатынасы, жылдамдығы алмасу, желілік трафик.

Әсер ету механизмі хаттама
Айырмашылығы дәстүрлі баламасы -- UDP, ол мүмкін бірден бастай беруге пакеттері TCP белгілейді қосылыстар құрылуы тиіс алдында деректерді беру. TCP қосылу бөлуге болады 3 кезеңдері:
* Орнату қосылыстар
* Деректерді беру
* Аяқтау қосылыстар

Орнату қосылыстар
Процесі басталғанға TCP сеансы деп аталады "адамды атып рукопожатием".
1. Клиент, ол ниет байланыс орнату, серверге жібереді сегмент нөмірі реттілігі мен туы SYN.
* Сервер алады сегменті, есте сақтайды нөмірі реттілігі мен құруға тырысады сокет (буферлер және басқарушы құрылымдар еске алу) қызмет көрсету үшін жаңа клиент.
* Жетістікке жеткен жағдайда сервер клиентке жібереді сегмент нөмірі реттілігі мен туларымен SYN және ACK және жағдайына SYN-RECEIVED.
* Жағдайда сәтсіздік сервер клиентке жібереді сегменті туы RST.
2. Егер клиент сегменті туы SYN болса, онда ол есте сақтайды нөмірі реттілігі жібереді сегменті туы ACK.
* Егер ол бір мезгілде алады және ту ACK (бұл, әдетте, жүргізіледі), онда ол жағдайына ESTABLISHED.
* Егер клиент сегменті туы RST, онда ол тоқтатады талпыныстары байланысу.
* Егер клиент жауап алмаса 10 секунд ішінде болса, онда ол қайталайды процесі қосылыстар қайтадан.
3. Егер сервер жағдайы SYN-RECEIVED алады сегменті туы ACK, онда ол жағдайына ESTABLISHED.
* Әйтпесе, кейін тайм-аут ол жабады сокет және жағдайына CLOSED.

Процесі деп аталады "адамды атып рукопожатием", сол сияқты, бұл мүмкін орнату процесі қосылыстар пайдалана отырып, 4 сегменттерінің (SYN жағына сервер, ACK жағына клиенттің SYN жағына клиенттің ACK жағына сервер), іс жүзінде уақытты үнемдеу үшін пайдаланылады 3 сегмент.

Деректерді беру
Деректер алмасу кезінде қабылдағыш пайдаланады нөмірі реттілігі мазмұндалатын алынатын сегменттерінде, қалпына келтіру үшін, олардың бастапқы тәртібін. Қабылдағыш хабарлайды берген тарапты нөмірі туралы реттілігі дейін, ол сәтті алды мәліметтерді қоса алғанда, оның жолында нөмірі "растау". Алынатын барлық қатысты деректер аралығына расталған тізбектер еленбейді. Егер алынған сегменті құрамында нөмірі реттілігі көбірек қарағанда, күтілетін болса, онда деректер сегментінің буферизируются, бірақ нөмірі расталған реттілігі өзгермейді. Егер кейінірек қабылданатын болады сегментіне жататын күтілетін нөмірі реттілігі, яғни деректерді автоматты түрде қалпына келтірілді сүйене отырып нөмірлерінің тізбектер сегменттерінде.

Сонымен қатар, үшін жіберуші тарап түсуіне деректер интенсивнее қарағанда, олардың мүмкін өңдеуге қабылдау, TCP құрамында басқару құралдары жүреді. Бұл үшін пайдаланылады өріс "терезе". Сегменттеріндегі жіберілетін жылғы қабылдағыштың беруші тарапқа жолында "терезесі көрсетіледі ағымдағы мөлшері қабылдау буферінің. Беруші тарап сақтайды мөлшері терезе жібереді деректер көп емес, ол көрсеткен қабылдағыш. Егер қабылдағыш көрсеткен нөлдік мөлшері терезе, онда деректер осы бағытта торабының болмайды, до тех пор әзірше қабылдау туралы хабарламаса, көп мөлшерде терезе.

Кейбір жағдайларда тапсырушы қосымша мүмкін анық талап етуге протолкнуть деректер дейін белгілі бір ретпен қабылдайтын қосымшаға емес буферизируя олардың. Бұл үшін пайдаланылады туы PSH. Егер алынған сегментінде анықталады туы PSH, онда іске асыру TCP береді барлық буферизированные қазіргі сәтте осы қатысушы-қосымшасына сәйкес. "Итермелеу" пайдаланылады, мысалы, интерактивті қосымшаларында көрсетілген. Желілік терминалдары жоқ күтуге енгізу пайдаланушының соң, ол бітірді командасын теру. Сондықтан соңғы сегменті бар команданы міндетті қамтуы туы PSH үшін қосымша қабылдаушы тарапқа алмады бастау оның орындалуы.
Аяқтау қосылыстар
Аяқтау қосылыстар қарастыруға болады үш кезеңнен тұрады:
1. Жіберу-серверге клиенттен туларды FIN және ACK аяқтауға қосылыстар.
2. Сервер клиентке жібереді жалаулар жауап ACK , FIN, бұл қосылыс жабылды.
3. Алғаннан кейін осы туларды клиент жабады біріктіру және растау жібереді серверге ACK , бұл қосылыс жабылды.
Сокеты
Сокеты (ағыл. socket -- тереңдету, ұя, тесік) -- атауы бағдарламалық интерфейсті қамтамасыз ету үшін арасында деректер алмасу процестері. Процестер кезінде және мұндай алмасуға орындай алады ретінде бір ЭЕМ-де, әртүрлі ЭЕМ-мен өзара байланысты желісі. Сокет -- абстракті объект білдіретін соңғы нүкте қосылыстар.
Ажырата білу қажет клиенттік және серверлік сокеты. Клиенттік сокеты дөрекі салыстыруға болады оконечными аппараттарымен телефон желісіне, ал серверлік -- с коммутаторларымен. Клиенттік қосымша (мысалы, браузер) ғана пайдаланады клиенттік сокеты, ал серверлік (мысалы, веб-сервер, ол браузер сұрау салу жібереді) ретінде клиенттік және серверлік сокеты.

Принциптері сокетов
Әрбір процесс құра алады слушающий сокет (серверлік сокет) және привязать оның қандай да бір портында операциялық жүйесін (UNIX непривилегированные процестер пайдалана алмайды порттары аз 1024). Слушающий процесі, әдетте, орналасқан циклінде күту, яғни оянады пайда болған кезде, жаңа қосылыстар. Кезінде бұл мүмкіндігі сақталады болуын, қосылыстардың осы белгіленсін тайм-аут үшін операциялар және т. б.
Әрбір сокет өзінің мекен-жайы. UNIX қолдауы мүмкін көптеген түрлері мекен-жайлары, бірақ міндетті болып табылады INET-мекен-жайы және UNIX-мекен-жайы. Егер привязать сокет к UNIX-мекен-жайы, онда ол құрылады файл (файл сокета) берілген жолды алады хабарлануы кез келген жергілікті процестер арқылы оқужазу, оған. Сокеты үлгідегі INET қол жетімді желісін талап етеді бөлу порт нөмірін.
Әдетте, клиент анық қосылады қарай тыңдаушыға, содан кейін кез келген оқу немесе жазу арқылы, оның файлдық дескриптор болады деректерді оларға арнайы сервер.

SOCKS
SOCKS -- желілік хаттама, ол мүмкіндік береді клиент-серверлік қосымшаларға ашық пайдалануға сервистер үшін межсетевыми экрандармен (фаерволами). SOCKS -- бұл сокращение от "SOCKetS" (сокеты, ұялар).

Хаттама SOCKS 4
SOCKS 4 арналған жұмыс арқылы фаервол аутентификациясыз қосымшалар үшін типті клиент-сервер жұмыс істейтін хаттама TCP, мысалы, TELNET, FTP және осындай танымал хаттамалар алмасу ретінде, HTTP, WAIS және GOPHER. Мәні бойынша, SOCKS-сервер ретінде қарастыруға болады желіаралық экран қолдайтын хаттама SOCKS.

Типтік сұрау SOCKS 4 келесі түрде көрінеді (әрбір жолды бір байт):
Сұрау Клиенттің SOCKS-Серверге:
өріс 1: нұсқасының нөмірі SOCKS, 1 байт (тиіс 0x04 үшін осы нұсқасы)
2 жолда: код командалары, 1 байт:
0x01 = орнату TCPIP қосылыстар
0x02 = тағайындау-TCPIP порты (binding)
3-өріс: порт нөмірін, 2 байт
4-өріс: IP-адрес 4 байт
алаңында 5: ID-жолдың айнымалы ұзындығы аяқталады null-байтпен аяқтайды делік (0x00)

Бар Сервер SOCKS-Клиентке:
өріс 1: null-байт
2 жолда: коды бар, 1 байт:
0x5a = сұрау салу берілген
0x5b = сұрау салудан немесе ошибочен
0x5c = запрос не удался, өйткені іске қосылды identd (немесе жоқ қол жетімді сервер)
0x5d = запрос не удался, өйткені клиенттік identd қажет пайдаланушының идентификаторы сұрауда
3-өріс: 2 произвольных байт болуы тиіс алуға құқылы
4-өріс: 4 произвольных байт болуы тиіс алуға құқылы

Жүзеге асыру
Задача курстық проектінің іске асыру TCP прокси-сервера хаттамасының негізінде SOCKS4, пайдалана отырып, тіл ANSI C жинағы сын APIPOSIX.

Бұл үшін қолданылған мынадай функцияларды:

1) select - синхронды формаларының көріністері енгізу-шығару.
Функциялары select күтеді мәртебесін өзгерту бірнеше файлдық дескрипторларды.
int select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
struct timeval *timeout);
Бағаланып, үш тәуелсізх теру дескрипторларды. Сол, бұл аударылды, бұл өлшемде readfds, қадағаланатын болады тұрғысында пайда болған жаңа қаріпке оқу үшін (дәлірек айтқанда, операция оқуға болады тежелген болса - атап айтқанда, файлдық дескриптор орналасқан соңында файл); сол, - деп атап көрсетілген өлшемде writefds, қадағаланатын болады-на тұрғысында бұл операция жазбалар құлыпталады; сол, көрсетілген өлшемде exceptfds, қадағаланатын болады мәніне ерекше жағдайларды. Кезде қайтару функцияларын жиынтығы дескрипторларды өзгертіледі, көрсету үшін, олардың қайсысы өз мәртебесін өзгертті.
Кезінде табысты аяқталғаны select ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
HTTP хаттама
Кері прокси
Модемдер, оның параметрлері, функциялары
NGN желісінде IPTV құрылымын талдау
Мектептің тарихы
Интернетке қатынас құру
OpenBSD
Интернетке ақпаратты берудың қаупсіздік шаралары
Кәсіпорын клиенттер мәлімдемелерін есепке алу үшін веб серверлер
IP-телефониясы және стримингтік технологиялар
Пәндер