Я пытаюсь создать прокси-сервер, который будет принимать все клиентские пакеты и пересылать на сервер содержимого. Насколько я понимаю, тип прокси - «прокси-сервер». При разработке системной архитектуры я не смог ответить на этот вопрос.
Как прокси-сервер узнает IP-адрес назначения?
Предположим, у нас есть клиент с IP-адресом 11.1.1.1 и прокси-сервер с 12.2.2. 2 и гугл с ip 13.3.3.3.
Когда клиент отправляет пакет на прокси. Пакет будет иметь 11.1.1.1:xxxx в качестве IP-адреса источника и порта и 12.2.2.2:xxxx в качестве IP-адреса и порта назначения. Как прокси-сервер пересылает пакет на 13.3.3.3?
Когда клиент использует прокси, он использует для этого специальный протокол. В случае HTTP-проксирования клиент подключается к прокси-серверу, а затем сообщает ему, какой URL-адрес получить. Затем прокси-сервер выполняет разрешение имен и извлекает контент от имени клиента.
В других случаях (не HTTP) клиент обычно использует протокол, называемый «socks», где он сообщает прокси, какой IP-адрес и порт соединение должно быть выполнено. Затем прокси устанавливает соединение от имени клиента и передает пакеты от клиента к хосту назначения и наоборот