Файл: Технология «клиент-сервер» ( Теоретические основы технологии «клиент-сервер» ).pdf
Добавлен: 28.03.2023
Просмотров: 346
Скачиваний: 2
Прокси-сервер (от англ. proxy — «представитель, уполномоченный») служба в компьютерных сетях, позволяющая клиентам выполнять косвенные запросы к другим сетевым службам.
Сначала клиент подключается к прокси-серверу и запрашивает какой-либо ресурс (например, e-mail), расположенный на другом сервере. Затем прокси-сервер либо подключается к указанному серверу и получает ресурс у него, либо возвращает ресурс из собственного кэша (в случаях, если прокси имеет свой кэш).
В некоторых случаях запрос клиента или ответ сервера может быть изменён прокси-сервером в определённых целях. Также прокси-сервер позволяет защищать клиентский компьютер от некоторых сетевых атак. [5, c.128]
Клиент и сервер это программы, расположенное на разных компьютерах, в разных контроллерах и других подобных устройствах. Между собой они взаимодействуют через вычислительную сеть с помощью сетевых протоколов.
Программы-серверы являются поставщиками услуг. Они постоянно ожидают запросы от программ-клиентов и предоставляют им свои услуги (передают данные, решают вычислительные задачи, управляют чем-либо и т.п.). Сервер должен быть постоянно включен и “прослушивать” сеть. Каждая программа-сервер, как правило, может выполнять запросы от нескольких программ-клиентов.
Программа-клиент является инициатором запроса, который она может произвести в любой момент. В отличие от сервера, клиент не должен быть постоянно включен. Достаточно подключиться в момент запроса.
Итак, в общих чертах система клиент-сервер выглядит так:
- Есть компьютеры, контроллеры, планшеты, сотовые телефоны и другие интеллектуальные устройства.
- Все они включены в общую вычислительную сеть. Проводную или беспроводную - неважно. Они могут быть подключены даже к разным сетям, связанным между собой через глобальную сеть, например через интернет.
- На некоторых устройствах установлены программы-серверы. Эти устройства называются серверами, должны быть постоянно включены, и их задача обрабатывать запросы от клиентов.
- На других устройствах работают программы-клиенты. Такие устройства называются клиентами, они инициируют запросы серверам. Их включают только в моменты, когда необходимо обратиться к серверам.
1.2 Пакетная передача данных
Технология клиент-сервер в общем случае предназначена для использования с объемными информационными сетями. От одного абонента до другого данные могут проходить сложный путь по разным физическим каналам и сетям.
Путь доставки данных может меняться в зависимости от состояния отдельных элементов сети. Какие-то компоненты сети могут не работать в этот момент, тогда данные пойдут другим путем. Может изменяться время доставки. Данные могут даже пропасть, не дойти до адресата. [7, c.198]
Поэтому простая передача данных в цикле, в сложных сетях совершенно невозможна. Информация передается ограниченными порциями – пакетами. На передающей стороне информация разбивается на пакеты, а на приемной “склеивается” из пакетов в цельные данные. Объем пакетов обычно не больше нескольких килобайт. Пакет это аналог обычного почтового письма. Он также, кроме информации, должен содержать адрес получателя и адрес отправителя.
Пакет состоит из заголовка и информационной части. Заголовок содержит адреса получателя и отправителя, а также служебную информацию, необходимую для “склейки” пакетов на приемной стороне. Сетевое оборудование использует заголовок для определения, куда передавать пакет.
Адресация пакетов.
В общем случае нам придется задавать следующие параметры:
- IP-адрес устройства;
- маску подсети;
- доменное имя;
- IP-адрес сетевого шлюза;
- MAC-адрес;
- порт.
IP-адреса.
Технология клиент-сервер предполагает, что все абоненты всех сетей мира подключены к единой глобальной сети. На самом деле во многих случаях это так и есть. Например, большинство компьютеров или мобильных устройств подключено к интернету. Поэтому используется формат адресации, рассчитанный на такое громадное количество абонентов. Но даже если технология клиент-сервер применяется в локальных сетях, все равно сохраняется принятый формат адресов, при явной избыточности.
Каждой точке подключения устройства к сети присваивается уникальный номер – IP-адрес (Internet Protocol Address). IP-адрес присваивается не устройству (компьютеру), а интерфейсу подключения. В принципе устройства могут иметь несколько точек подключения, а значит несколько различных IP-адресов. [3, c.210]
IP-адрес это 32х разрядное число или 4 байта. Для наглядности принято записывать его в виде 4 десятичных чисел от 0 до 255, разделенных точками. Например, IP-адрес сервера 31.31.196.216.
Для того чтобы сетевому оборудованию было проще выстраивать маршрут доставки пакетов в формат IP-адреса введена логическая адресация. IP-адрес разбит на 2 логических поля: номер сети и номер узла. Размеры этих полей зависят от значения первого (старшего) октета IP-адреса и разбиты на 5 групп – классов.
Таблица 1.
Метод классовой маршрутизации
|
Класс |
Старший октет |
Формат (С-сеть, |
Начальный адрес |
Конечный адрес |
Количество сетей |
Количество узлов |
|
A |
0 |
С.У.У.У |
0.0.0.0 |
127.255.255.255 |
128 |
16777216 |
|
B |
10 |
С.С.У.У |
128.0.0.0 |
191.255.255.255 |
16384 |
65534 |
|
C |
110 |
С.С.С.У |
192.0.0.0 |
223.255.255.255 |
2097152 |
254 |
|
D |
1110 |
Групповой адрес |
224.0.0.0 |
239.255.255.255 |
- |
228 |
|
E |
1111 |
Резерв |
240.0.0.0 |
255.255.255.255 |
- |
227 |
Класс A предназначен для применения в больших сетях. Класс B используется в сетях средних размеров. Класс C предназначен для сетей с небольшим числом узлов. Класс D используется для обращения к группам узлов, а адреса класса E зарезервированы.
Существуют ограничения на выбор IP-адресов. Я посчитал главными для нас следующие:
- Адрес 127.0.0.1 называется loopback и используется для тестирования программ в пределах одного устройства. Данные посланы по этому адресу не передаются по сети, а возвращаются программе верхнего уровня, как принятые.
- “Серые” адреса – это IP-адреса разрешенные только для устройств, работающих в локальных сетях без выхода в Интернет. Эти адреса никогда не обрабатываются маршрутизаторами. Их используют в локальных сетях.
- Класс A: 10.0.0.0 – 10.255.255.255
- Класс B: 172.16.0.0 – 172.31.255.255
- Класс C: 192.168.0.0 – 192.168.255.255
- Если поле номера сети содержит все 0, то это означает, что узел принадлежит той же самой сети, что и узел, который отправил пакет.
Маски подсетей.
При классовом методе маршрутизации число битов адресов сети и узла в IP-адресе задается типом класса. А классов всего 5, реально используется 3. Поэтому метод классовой маршрутизации в большинстве случаях не позволяет оптимально выбрать размер сети. Что приводит к неэкономному использованию пространства IP-адресов.
В 1993 году был введен бесклассовый способ маршрутизации, который в данный момент является основным. Он позволяет гибко, а значит и рационально, выбирать требуемое количество узлов сети. В этом методе адресации применяются маски подсети переменной длины.
Сетевому узлу присваивается не только IP-адрес, но и маска подсети. Она имеет такой же размер, как и IP-адрес, 32 бит. Маска подсети и определяет, какая часть IP-адреса относится к сети, а какая к узлу.
Каждый бит маски подсети соответствует биту IP-адреса в том же разряде. Единица в бите маски говорит о том, что соответствующий бит IP-адреса принадлежит сетевому адресу, а бит маски со значением 0 определяет принадлежность бита IP-адреса к узлу.
При передаче пакета, узел с помощью маски выделяет из своего IP-адреса сетевую часть, сравнивает ее с адресом назначения, и если они совпадают, то это означает, что передающий и приемный узлы находятся в одной сети. [7, c.298]
Тогда пакет доставляется локально. В противном случае пакет передается через сетевой интерфейс в другую сеть. Маска подсети не является частью пакета. Она влияет только на логику маршрутизации узла.
По сути, маска позволяет одну большую сеть разбить на несколько подсетей. Размер любой подсети (число IP-адресов) должен быть кратным степени числа 2. Т.е. 4, 8, 16 и т.д.
Это условие определяется тем, что биты полей адресов сети и узлов должны идти подряд. Нельзя задать, например, 5 битов - адрес сети, затем 8 битов – адрес узла, а затем опять биты адресации сети.
Пример формы записи сети с четырьмя узлами выглядит так:
Сеть 31.34.196.32, маска 255.255.255.252
Маска подсети всегда состоит из подряд идущих единиц (признаков адреса сети) и подряд идущих нулей (признаков адреса узла). Основываясь на этом принципе, существует другой способ записи той же адресной информации.
Сеть 31.34.196.32/30
Таблица 2
Пример формы записи
|
Размер сети (количество узлов) |
Длинная маска |
Короткая маска |
|
4 |
255.255.255.252 |
/30 |
|
8 |
255.255.255.248 |
/29 |
|
16 |
255.255.255.240 |
/28 |
|
32 |
255.255.255.224 |
/27 |
|
64 |
255.255.255.192 |
/26 |
|
128 |
255.255.255.128 |
/25 |
|
256 |
255.255.255.0 |
/24 |
/30 это число единиц в маске подсети. В данном примере остается два нуля, что соответствует 2 разрядам адреса узла или четырем узлам.
- Последнее число первого адреса подсети должно делиться без остатка на размер сети.
- Первый и последний адреса подсети – служебные, их использовать нельзя.
Доменное имя.
Человеку неудобно работать с IP-адресами. Это наборы чисел, а человек привык читать буквы, еще лучше связно написанные буквы, т.е. слова.
Для того, чтобы людям было удобнее работать с сетями используется другая система идентификации сетевых устройств.
Любому IP-адресу может быть присвоен буквенный идентификатор, более понятный человеку. Идентификатор называется доменным именем или доменом.
Доменное имя это последовательность из двух или более слов, разделенных точками. Последнее слово это домен первого уровня, предпоследнее – домен второго уровня и т.д.
Связь между IP-адресами и доменными именами происходит через распределенную базу данных, с использованием DNS-серверов. DNS-сервер должен иметь каждый владелец домена второго уровня. DNS-серверы объединены в сложную иерархическую структуру и способны обмениваться между собой данными о соответствии IP-адресов и доменных имен.
Главное, что любой клиент или сервер может обратиться к DNS-серверу с DNS-запросом, т.е. с запросом о соответствии IP-адрес – доменное имя или наоборот доменное имя – IP-адрес.
Если DNS-сервер обладает информацией о соответствии IP-адреса и домена, то он отвечает.
Если не знает, то ищет информацию на других DNS-серверах и после этого сообщает клиенту.
1.3 Сетевые шлюзы.
Сетевой шлюз это аппаратный маршрутизатор или программа для сопряжения сетей с разными протоколами. В общем случае его задача конвертировать протоколы одного типа сети в протоколы другой сети. Как правило, сети имеют разные физические среды передачи данных.
Пример – локальная сеть из компьютеров, подключенная к Интернету. В пределах своей локальной сети (подсети) компьютеры связываются без необходимости в каком-либо промежуточном устройстве. Но как только компьютер должен связаться с другой сетью, например, выйти в Интернет, он использует маршрутизатор, который выполняет функции сетевого шлюза.
Роутеры, которые есть у каждого, кто подключен к проводному интернету, являются одним из примеров сетевого шлюза. Сетевой шлюз – это точка, через которую обеспечивается выход в Интернет.
В общем случае использование сетевого шлюза выглядит так:
- Допустим у нас система, подключенных через локальную сеть Ethernet к маршрутизатору, который в свою очередь подключен к Интернету.
- В локальной сети мы используем ”серые” IP-адреса, которые не допускают выхода в Интернет. У маршрутизатора два интерфейса: нашей локальной сети с “серым” IP-адресом и интерфейс для подключения к Интернету с ”белым” адресом.
- В конфигурации узла мы указываем адрес шлюза, т.е. “белый” IP-адрес интерфейса маршрутизатора, подключенного к Интернету.
- Теперь, если маршрутизатор получает от устройства с ”серым” адресом пакет с запросом на получение информации из Интернета, он заменяет в заголовке пакета ”серый” адрес на свой ”белый” и отправляет его в глобальную сеть. Получив из Интернета ответ, он заменяет ”белый” адрес на запомненный при запросе ”серый” и передает пакет локальному устройству.