Каково различие между, связывают, сеть (интерфейс) и групповые адреса?

Лак еще не поддерживает gzip сжатие, таким образом, это могла бы быть идея подкачать его вокруг с nginx впереди для сжатия то, что передает обратно лак. Так как лак и nginx не борются за те же ресурсы (nginx, использует ЦП для gzip сжатия, в то время как лак использует память), они должны работать гладко на той же машине.

Лак теперь поддерживает gzip сжатие, поэтому если Вам не нужно завершение SSL (как предложено в комментариях), я предложил бы поместить лак непосредственно в контакт с Интернетом.

Для http:

(internet) --> (varnish, gzip, caching, esi) --> (application)

Для https:

(internet) --> (nginx, ssl)--> (varnish, gzip, caching, esi) --> (application)

Если Вы хотите апача там также (для повсеместной поддержки mod_foobar), я поместил его между лаком и приложением

Обновление: Обновленный для включения поддержки gzip в лак 3.0. Добавленный ssl / esi, как предложено в комментариях

3
задан 26 February 2012 в 23:32
1 ответ

Фактически, вы смешиваете здесь три метода. Первый - это привязка, которая используется для привязки сокета к указанному адресу и порту. Используя этот метод, вы в основном открываете udp-порт и ждете данных на этот порт по этому адресу. Второй - метод соединения, который используется, чтобы позволить сокету присоединиться к указанной группе многоадресной рассылки. Примером многоадресной группы является 224.0.0.1 - многоадресная группа «Все узлы», которая адресует все узлы в одном сегменте сети. Третий метод - joinGroup, который позволяет сокету присоединяться к указанной многоадресной группе на указанном сетевом интерфейсе. Как видите, второй и третий методы используются для многоадресной IP-рассылки, а первый метод - для UDP (не обязательно в сочетании с многоадресной рассылкой). Присоединяясь к группе многоадресной рассылки, сокет может получать дейтаграммы, отправленные с использованием многоадресной рассылки IP. Оба, конечно, могут быть объединены, например, получать данные с помощью многоадресной рассылки, а затем при необходимости отвечать либо с помощью многоадресной рассылки (если данные интересны для всех хостов в группе), либо напрямую отправителю (если данные интересны только отправителю) .

  1. Когда вы привязываете сокет к адресу с помощью метода bind, это также включает порт. Принимаются / могут быть получены только дейтаграммы для этой конкретной комбинации адреса / порта, если только сокет не присоединяется к многоадресной группе.

  2. Я не уверен, как вы перешли от joinGroup к адресу интерфейса. Вам нужны SocketAddress и NetworkInterface. NetworkInterface может быть получен либо по имени интерфейса (NetworkInterface.getByName), либо по адресу (NetworkInterface.getByInetAddress). В случае getByInetAddress вы, вероятно, могли бы назвать его адресом интерфейса, но все, что он делает, это извлекает NetworkInterface, который имеет указанный адрес и, следовательно, не использует номер порта.

  3. Multicast-адреса используются в IP Multicast, который используется для отправки дейтаграмм IP группе хостов (если они заинтересованы в получении дейтаграмм). Вы можете использовать порт (если вы используете UDP), но вам это не нужно. CIDR многоадресных IPv4-адресов - 224.0.0.0/4 (224.0.0.0 - 239.255.255.255), а многоадресные IPv6-адреса имеют префикс ff00 :: / 8. Каждый IP-адрес в этих диапазонах представляет группу многоадресной рассылки. Существуют разные блоки многоадресных адресов (и многоадресные группы), которые должны обрабатываться по-разному. Например, 224.0.0.0/24 не должны маршрутизироваться из исходной подсети, а 239.192.0. 0/14 может быть маршрутизирован, и, если он маршрутизируется глобально, должен быть инкапсулирован.

3
ответ дан 3 December 2019 в 06:41

Теги

Похожие вопросы