0
<< предыдущая заметкаследующая заметка >>
22 сентября 2021
Немножко занялся своим сервером

Чуть оптимизировал страницы.

Убрал нахуй все счётчики, метрики и прочие бэкдоры Гугля и Яндекса. Не вижу в них больше смысла для личного сайта. Я же не продажами косметики тут занимаюсь, последний раз изучал статистику годы назад, нахер она вообще нужна сегодня, статистика от гигантов. А ваши ресурсы в моем блоге они жрут, да ещё и следят.

Средствами JS закэшировал беготню вашего браузера за ковидной статистикой, карантинками и прочим внешне собираемым контентом. В браузерах есть локальные хранилища до 5 мб на сайт, и минут 10-20 там все эти данные точно могут полежать без лишних АЯКС-запросов на сторону. Средствами движка на клиенте такие вещи надо решать, я считаю. Тем более, это очень просто, там же пара строк на JS.

Что касается кэширования вообще, то меня удивляет, что не кэшируются браузером JS и CSS на моих страницах — по крайней мере, Firefox показывает, что каждый раз грузит их заново. Картинки кэшируются, скрипты и css нет. Почему? Кто разбирается, может глянуть? Наверно лучше напрямую на сервер: по http://kz. Так оно через CloudFlare, а по kz.lleo.me отвечает сам мой сервер.

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

Я пока не очень представляю, как это может помочь мне содержать вебсайт или ускорить AJAX-обмен средствами JS (не уверен, что браузер умеет в UDP), но, например, свои девайсы я бы хотел перевести на UDP для связи с сервером.

Также слышал, есть какой-то сверхбыстрый протокол работы с сайтами HTTP поверх UDP, назвается QUIC, и его можно вкомпилировать в nginx на сервере. Но я так понял, основные браузеры его толком не поддерживают. Или поддерживают с плагинами? Кто в курсе и что может посоветовать?

Наконец, по совету Олега Ховайко я всё-таки твердо намерен поставить на свой сайт крипто-DNS от Emercoin и прочие другие штуки. Мы что-то слишком мало с вами тратим времени на развитие и популяризацию новых технологий. Нас всех закроют раньше.

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
архив понравившихся мне ссылок

Комментарии к этой заметке скрываются - они будут видны только вам и мне.

Оставить комментарий
Windows Safari Chrome
 Черноголовка
0
0
Вовка Соловьёв
Возможно от того что у скриптов стоит max-age=14400. Это или на сервере или CloudFlare как-то не настроен.
Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
А зайдите напрямую на сервер, без CloudFlare? По http и на kz.lleo.me

http://kz.lleo.me/dnevnik/2021/09/22
Linux Safari Chrome
 Россия
1
0
Леонит Каганофф
А это много или мало? И где меняется, в nginx наверно?

Меня дико бесило (и бесит до сих пор), что на home.lleo.me скрипты и страницы почему-то кэшируются на пару минут и это делает разработку невозможной.

Поэтому я в движке строил свои системы, чтобы указывать к скрипту его хэш, например unixtime обновления файла main.js?1678904568 но сейчас я это тоже пооптимизировпл и если файл последние 20 минут не изменялся, то движок ничего такого к его url не дописывает.
Linux Ubuntu Firefox
 Москва
0
0
Adamos
> и если файл последние 20 минут не изменялся, то движок ничего такого к его url не дописывает

В результате у пользователя, у которого браузер таки закешировал этот main.js, вываливается 20 ошибок в консоль (как у меня сегодня при входе, например).
Кто мешает, раз уж время изменения проверяется, этот самый mtime в качестве ключа и прописывать, как это делают буквально ВСЕ? Не менялся файл - не изменится и ключ, кэш работает, все довольны.

P.S. Две ошибки в консоли при отправке комментария, еще две - при редактировании...

P.P.S. Ан нет, я ошибся. 20 ошибок при открытии заметки или переходе на другую заметку выдает таки свежий скрипт, а не закешированный.
Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
Что за ошибки?
Linux Ubuntu Firefox
 Москва
0
0
Adamos
[...]
Uncaught ReferenceError: s is not defined
onerror https://lleo.me/dnevnik/js/main.js:33
AJC https://lleo.me/dnevnik/js/main.js:1524
<anonymous> https://lleo.me/dnevnik/js/main.js line 911 > eval:1
onload https://lleo.me/dnevnik/js/main.js:911
main.js:33:1
Uncaught TypeError: callback is not a function
onreadystatechange https://lleo.me/dnevnik/js/main.js:1522
AJC https://lleo.me/dnevnik/js/main.js:1524
<anonymous> https://lleo.me/dnevnik/js/main.js line 911 > eval:1
onload https://lleo.me/dnevnik/js/main.js:911
main.js:1522:34
Uncaught ReferenceError: s is not defined
onerror https://lleo.me/dnevnik/js/main.js:33
AJC https://lleo.me/dnevnik/js/main.js:1524
<anonymous> https://lleo.me/dnevnik/js/main.js line 911 > eval:1
onload https://lleo.me/dnevnik/js/main.js:911
main.js:33:1
Uncaught TypeError: callback is not a function
onreadystatechange https://lleo.me/dnevnik/js/main.js:1522
AJC https://lleo.me/dnevnik/js/main.js:1524
<anonymous> https://lleo.me/dnevnik/js/main.js line 911 > eval:1
onload https://lleo.me/dnevnik/js/main.js:911
main.js:1522:34
Uncaught ReferenceError: s is not defined
onerror https://lleo.me/dnevnik/js/main.js:33
AJC https://lleo.me/dnevnik/js/main.js:1524
doCovid https://lleo.me/dnevnik/2021/09/22:87
<anonymous> https://lleo.me/dnevnik/js/main.js line 911 > eval:1
onload https://lleo.me/dnevnik/js/main.js:911
main.js:33:1
Uncaught SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data
doCovid https://lleo.me/dnevnik/2021/09/22:89
onreadystatechange https://lleo.me/dnevnik/js/main.js:1522
AJC https://lleo.me/dnevnik/js/main.js:1524
doCovid https://lleo.me/dnevnik/2021/09/22:87
<anonymous> https://lleo.me/dnevnik/js/main.js line 911 > eval:1
onload https://lleo.me/dnevnik/js/main.js:911
22:89:57
Uncaught ReferenceError: s is not defined
onerror https://lleo.me/dnevnik/js/main.js:33
main.js:33:1
Uncaught SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data
doCovid https://lleo.me/dnevnik/2021/09/22:89
onreadystatechange https://lleo.me/dnevnik/js/main.js:1522
22:89:57
Uncaught ReferenceError: s is not defined
onerror https://lleo.me/dnevnik/js/main.js:33
main.js:33:1
Uncaught TypeError: callback is not a function
onreadystatechange https://lleo.me/dnevnik/js/main.js:1522
main.js:1522:34
Uncaught ReferenceError: s is not defined
onerror https://lleo.me/dnevnik/js/main.js:33
main.js:33:1
Uncaught TypeError: callback is not a function
onreadystatechange https://lleo.me/dnevnik/js/main.js:1522
main.js:1522:34
Uncaught ReferenceError: s is not defined
onerror https://lleo.me/dnevnik/js/main.js:33
main.js:33:1
Uncaught TypeError: callback is not a function
onreadystatechange https://lleo.me/dnevnik/js/main.js:1522
main.js:1522:34
Uncaught ReferenceError: s is not defined
onerror https://lleo.me/dnevnik/js/main.js:33
main.js:33:1
Uncaught TypeError: callback is not a function
onreadystatechange https://lleo.me/dnevnik/js/main.js:1522
main.js:1522:34
Uncaught ReferenceError: s is not defined
onerror https://lleo.me/dnevnik/js/main.js:33
main.js:33:1
Uncaught TypeError: callback is not a function
onreadystatechange https://lleo.me/dnevnik/js/main.js:1522
main.js:1522:34
Uncaught ReferenceError: s is not defined
onerror https://lleo.me/dnevnik/js/main.js:33
main.js:33:1
Uncaught TypeError: callback is not a function
onreadystatechange https://lleo.me/dnevnik/js/main.js:1522
main.js:1522:34
GEThttps://cats-home.net/favicon.ico
[HTTP/2 404 Not Found 15ms]
Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
Спасибо, стало немного понятнее, но пока не знаю, когда доберусь до компьютера.
Windows Safari Chrome
 Санкт-Петербург
0
0
Константин 1
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Странная "оптимизация". Best practice - всегда добавлять хэш (unixtime тоже годится), и выставлять заголовками длительность кэширования на неделю, скажем.

А так, если длительность кэширования 14400 (4 часа), а хэш через 20 минут убирается, какая версия скрипта загрузится через 20 минут - непредсказуемо
Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
Хорошо, верну как было.
Linux Ubuntu Firefox
 Санкт-Петербург
0
0
Леонит Каганофф
Вернул.
Linux Safari Chrome
 Mt Laurel
0
0
Дмитрий
Udp не гарантирует доставки пакета и и что пакеты придут в том же порядке, в котором их отправляли. А для AJAX это требуется. То есть Вам придется поверх UDP делать свой транспортный протокол. В качестве упражнения это классно, также это скорее всего собьёт с толку DPI. Но это вряд-ли получится быстрее, чем TCP.
Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
Это меня как раз мало волнует - нет никаких проблем сделать свой транспортный протокол, это даже лучше и интереснее. И свой AES всегда можно поверх накинуть для полной уже независимости и безопасности. Так что это как раз плюс.

Что касается "отсутствия гарантий" для пакетов UDP, то это вообще смешно. Все бездумно повторяют эту строчку из учебника, не утруждая себя задуматься: а что, у TCP есть гарантия? Никогда не бывало, что пакет TCP не дошел, сайт не ответил, страница сорвалась, да? И что? Вы к этому готовы? Вы какие-то меры принимали против этот? Нет? А почему? Я в свои JS-фреймворках и так собирался делать хитрые процедуры повторной отправки AJAX по тайм-аут, чтобы принудительно достучаться до назначения, если что-то пошло не так и обычный пакет не дошел. Например, на чипе ESP это частое дело, когда чип не ответил. И если бы только чип! Бывает, и сайты не отвечают.

Я сейчас лежу в поезде на верхней полке и еду в Питер. Зашибись брать интернет попадает. Если бы не мои внутренние схемы движка по защите текста недописанного комментария (вы их видели наверно не раз, когда закрыли недописанный текст, а потом указали, что он не потерялся) то я бы вообще даже вам ответить не смог.
Windows Safari Chrome
 Волгоград
8
0
Аыжтдор
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Гарантии в данном случае значат что отправитель знает дошел его паке до получателя или нет, и если дошел - он реально дошел, причем именно этот и ровно один раз.
Mac Firefox
 San Jose
0
0
Ёкл
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Про "ровно один раз" поясните?
Windows Firefox
 Киев
1
0
Fisher12345
Пакет UDP запросто может продублироваться по дороге. Отправляли один - пришло три одинаковых.
Mac Firefox
 San Jose
0
0
Ёкл
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
А кто именно создаст дубликаты UDP пакета и с какой целью?
Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
Кто может создать дубликаты и с какой целью?
Windows Safari Chrome
 Израиль
0
0
б
Сегодня в пять утра ты писал из Москвы, что едешь на верхней полке в Питер. Сегодня в шесть вечера ты писал из Питера. Значит доехал. А сейчас, в 22:30 ты снова пишешь из Москвы. Ох и мотает же тебя жизнь :)
Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
Пока нет, в Питере. В ФишФабрик пиво пью и слушаю открытый микрофон.





Но через 40 минут поезд в Москву. И завтра я буду в музее калькуляторов Кости Голоты в Яндексе.
Windows Safari Chrome
 Израиль
0
0
б
> Но через 40 минут поезд в Москву.

Твой движок жить торопится:



Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
Кто может создать дубликаты и с какой целью?
Mac Firefox
 San Jose
0
0
Ёкл
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
"Хулиганы" и "из своих хулиганских побуждениев"! :-P
Linux Safari Chrome
 Москва
3
0
Леонит Каганофф
Кто может создать дубликаты и с какой целью?
Windows Safari Chrome
 Киев
2
0
Hommunicator (2)
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Кроме ошибок конфигурации (уже упомянутых петель), и целенаправленных атак (повторная отправка ранее перехваченной информации) бывают ещё ошибки реализации.

Например, WiFi повторно отправляет потерянные кадры. И если алгоритм повторной отправки написан неаккуратно - вполне может доставить один и тот же кадр несколько раз.

Не говоря уже об ошибках работы с памятью, когда буфер используют после освобождения (и соответственно могут отправить повторно).

Или когда отправка начинается до завершения DMA-транзакции, и повторно отправляются устаревшие данные...
Windows Safari Chrome
 Израиль
1
0
б
Насколько я помню теорию, если ты хочешь соответствовать всем стандартам, ты должен предусмотреть и дублирование пакетов, и потерю, и перестановку. Самоделкины обычно этим себя не утруждают. В реальной жизни такие ситуации крайне редки, и если ты не разрабатываешь коммерческий продукт, то можно пренебречь.

Я навскидку могу вспомнить две причины дубликации:

- где-то стоит свич в режиме бродкаста. Если где-то образовалась петля (STP не сработал), то все пакеты могут дойти в конце концов

- Злой умысел. Если полученный повторно пакет ломает твой сервер, это может быть сделано умышленно.
Mac Firefox
 San Jose
0
0
Ёкл
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Со злым умыслом всё ясно. А с STP (вернее его отсутствием), если возникнет петля, то почти наверняка в этом месте станет так хреново, что какие-то там пролётные UDP скорее похерятся, чем продублируются.

Но про "ровно один" в TCP хотелось бы услышать что имелось в виду от автора соответствующего заявления.
Windows Safari Chrome
 Москва
0
0
2:5020/321
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
А что ясно со злым умыслом? Взломанный роутер будет дублировать пакеты?
Mac Firefox
 San Jose
0
0
Ёкл
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
А ничего взламывать не надо.
Благодаря выдающимся достоинствам UDP для отправки любого пакета куда угодно нужно только чтобы провайдер не использовал uRPF.
Windows Safari Chrome
 Домодедово
1
0
id
Как человек, вокруг которого возникают петли с частотой примерно одна в два дня - и так уже лет пять - ответственно заявляю: случается ВООБЩЕ всякое, причем иногда чаще чем раз в день.

Поэтому не бороться с дублями - это примерно как... ну, я не знаю даже.

> Если где-то образовалась петля (STP не сработал), то все пакеты могут дойти в конце концов
Причем ДАЛЕКО не по одному разу.
Windows Safari Chrome
 Санкт-Петербург
0
0
Михайлов
вернее, пришло больше одного, и все неодинаковые ))
Mac Firefox
 Молдова
1
0
https://plus.google.com/103692095065457507780
Ну во-первых TCP гарантирует очередность сообщений, во-вторых он перепосылает пакет пока не сможет его доставить или клиентский код ( ака браузер ) не скажет что мол хватит посылать уже.
Windows Safari Chrome
 Россия
2
0
alxumuk2
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
"Пакет TCP" это нонсенс, но отдельные IP пакеты в TCP соединении вполне могут не доходить, и это нормально, например, например, если какой-то канал между сервером и клиентом нагружен. Например, сотовая связь там, где ты находишься так себе, а ты много чего качаешь, то снижение эффективной скорости TCP соединения снижается по факту потери пакетов и по алгоритму Reno, например, уменьшается "окно". Гуглить Congestion Control.
Конечно, это можно и самому реализовать поверх UDP - спору нет, но это если только из любви к искусству и РКН.
Windows Safari Chrome
 Волгоград
0
0
erf5543gt2
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
ну quic это и есть ровно "самому реализовать поверх удп"
Windows Firefox
 Нижний Новгород
0
0
alxumuk2
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Ну, флаг в руки и попутного ветра. Вопрос с чем боремся, и чего хотим достичь? Lleo, похоже, считает, что он сделает свой протокол с блекджеком и шлюхами. Что, в принципе, не вот зашквар, и, с ненулевой вероятностью попытка изобрести велосипед может привнести интересную идею, даже если основная задача провалится. История знает вагон и маленьку тележку таких случаев. Тем более, что Лео бабло платят не за эту работу, а как кто свое хобби делает это личные половые трудности.

Но рано или поздно возникнут вопросы:
1. Если мы делаем по стандартным (пусть и не очень распространенным протоколам), то чем через пару лет это будет отличаться от того же TCP (с точки зрения незаметности для РКН, например)? Я из Нижнего, и тут работает МФИ-Софт, который делает СОРМ. Конечно они не боги, и DPI, которое они делают не меняет математические законы, но они и не идиоты (если покопаться в истории, ребята начинали с аутсорсинга Nortel). Если что-то возможно для TCP, то для похожего протокола поверх UDP фильтр прифигачить будет не вот, чтобы сложно.
2. Если мы делаем DIY протокол, то точно не вылезут ли проблемы типа того же congestion? Его же не сразу придумали, его обнаружили, когда решали проблему с задержкой в канале из-за round-trip между запросом и ack. И до Reno был Tahoe. А сейчас, ХЗ, может чего-то еще придумали. И занимались этим вопросом не самые глупые люди. А еще есть алгоритм Нэйгла. И зависающие порты, которые могут исчерпать ресурсы хэндлеров операционки... И куча других вещей, о которых 99% людей, знающих TCP в принципе, не догадываются, пока не столкнутся с этим на практике.
Windows Safari Chrome
 Москва
0
0
2:5020/321
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
1 - Никто не будет делать плагин для СОРМ чтобы мониторить один хомячковый сайт ненавального.
2 - Обязательно вылезут, это то и интересно! Хомячки все простят и стерпят...
Windows Safari Chrome
 Санкт-Петербург
0
0
Михайлов
гарантией для обычного кодера является один штатный способ tcp-отправки с квитированием "дошел-не дошел". Тыжнеобычныйкодер, поэтому штатная работа сокета не для тебя - твори, выдумывай, пробуй!
Linux Safari Chrome
 Россия
6
0
vmarunin
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
HTTP over UDP называется HTTP/3
Его проталкивает Google и, тадам, первые сборки Chrome поддерживают его с 2019 года, совсем - с апреля 2020.
Firefox с апреля 2021
(с) Википедия
Так что можно со своего конца настраивать

PS Шо за фото слева? Это не я и не моё
Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
А если примеры сайтов, которые ответят моему Firefox по http/3, и как я это пойму?

На фото не обращайте внимание, нейросеть вас так видит. Клините на свое фото и загрузите в личной карточке правильную.
Linux Firefox
 Россия
2
0
i026e
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Нашел несколько примеров на каком-то форуме
https://superuser.com/questions/1664707/how-to-test-if-a-bro[...]

Вот так выглядит HTTP3 запрос в браузере


, но понадобилось несколько раз перезагрузить станицу ( еще в firefox может потребоваться установить network.http.http3.enabled в true)

На том же форуме есть ссылка на сайт nginx, где написаны настройки сервера
Linux Ubuntu Firefox
 Санкт-Петербург
1
0
Леонит Каганофф
Исследования показали, что внезапно:

1. В моем Firefox и так по умолчанию включена поддержка http3

2. lleo.me и так по умолчанию открывается по http3:

GET https://lleo.me/
Status 200 OK
Version HTTP/3

Ну потому что он за CloudFlare
Windows Safari Chrome
 Екатеринбург
2
0
Негаб
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
https://habr.com/ru/company/southbridge/blog/575464/

Очень хорошая обзорная статья про QUIC, UDP, TCP и пр.
Linux Safari Chrome
 Москва
0
0
Dimonius
Не понял, как ответить на конкретный коммент.

Чтобы браузер и отладке не кешировал скрипты - можно обновлять по ctrl+f5, либо открыть dev console (f12) и там поставить галку "Disable cache" - в итоге пока дев консоль открыта, кеша не будет и скрипты будут качаться каждый раз заново.

Во всяких современных системах типа Vue/React просто при сборке скрипта ему даётся новое имя, в итоге кеш совершенно не мешает.
Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
К сожалению, все это не помогало на home.lleo.me, но я давно как-то уже на это наплевал, а скоро и саму Banana RPI-1 буду менять на чуковскую RPI-2, а там другая система, другой nginx, и может проблема сама исчезнет. Загадка кэширования на home.lleo.me - не то, о чем есть смысл думать.
Linux Ubuntu Firefox
 Москва
0
0
Чук
Вот чего не понимаю, так это смысл ставить EMER-DNS. Ну будет в блокчейне храниться DNS запись, и что? Что-бы клиент её получил ему или надо ставить клиента со встроенным DNS ресолвером и качать блокчейн или прописывать DNS сервер или ставить плагин к браузеру. Да, это в какой-то степени защитит от подмены DNS, но есть DoH и DoT.
Linux Safari Chrome
 Россия
0
0
Леонит Каганофф
Я тоже пока не очень понимаю. Но Ховайко убедителен. Пока он говорит, я понимаю всё. Потом выветривается, что я объясняю своей тупостью.
Linux Firefox
 Волгоград
0
0
nobody
> Ну будет в блокчейне храниться DNS запись, и что?

Разделегировать такую запись немного сложнее, чем купленную в ру-центре.

> Что-бы клиент её получил ему или надо ставить клиента со встроенным DNS ресолвером и качать блокчейн или прописывать DNS сервер или ставить плагин к браузеру.

Чтобы не тратить аккумулятор ноутбука на показ рекламы тоже нужен плагин. Чтобы зайти на флибусту пользуясь российским провайдером или на этот сайт пользуясь казахстанским - нужно ещё больше приседаний. Без этого сейчас никак.
Windows Safari Chrome
 Москва
2
0
Чук
Ну можно не пользоваться ру-центром. А вот было-бы интересно отзеркалить блог в .i2p или .onion
Mac Safari
 Европа
0
0
Константин
WebRTC Data Channels работают в браузере по UDP как и весь остальной WebRTC-стек. Они обеспечивают надёжность доставки и упорядочивают пакеты (используется SCTP-over-UDP). Zoom насколько я знаю весь трафик созвонов включая видео гоняет через data channel с фолбэком на WebSocket.

что касается картинок, то там всё определяется заголовком Cache-Control, который nginx устанавливает по директиве expires, но можно и руками add_header сделать.
Windows Safari Chrome
 Новосибирск
2
0
Андрей Лобзанов
К сожалению, я, например, на работе сижу внутри казенного прокси Squid, который в UDP не умеет, в результате многие сервисы мне недоступны.
Linux Safari Chrome
 Россия
2
0
Леонит Каганофф
Конь с двумя хуями - это еще что. Сейчас перед вами выступит рядовой Страминский, который умеет говорить слова русского языка своей жопой и до освобождения народа работал артистом в цирке. Говорит он тихо, так что просьба молчать и не ржать.

В смысле, у многих на работе вообще интернет запрещен.
Mac Firefox
 Нижний Новгород
0
0
tartaglia
Да, Squid — это HTTP-прокси, UDP там дополнительно, наверно, нет. Давненько я не брал в руки шашек, боюсь соврать.

Но на Squid наверняка разрешён "HTTP CONNECT" — хотя бы на TCP/443. Если вы на короткой ноге с вашим сисадмином, можете рискнуть уточнить, какие TCP-порты доступны. Тогда это неплохая дырка наружу.

Если, кроме этого, вам можно шалить на собственном ПК, то не всё потеряно. Можно, например, где-то найти или самому организовать VPN-сервер, который доступен на TCP/443. Например, OpenVPN-сервер можно так настроить, а OpenVPN-клиент работает через HTTP-прокси.

При наличии HTTP-прокси бывает полезен маленький дополнительный промежуточный прокси-сервис "Cntlm", он есть и для Windows, и для Linux. Эта прослойка позволяет запускать софт, который работает через SOCKS5 (по TCP) или не умеет вводить пароль в HTTP-прокси.
Mac Firefox
 Нижний Новгород
0
0
tartaglia
И бывают ещё более дополнительные прослойки, которые позволяют запускать приложения, вовсе не умеющие работать через прокси. Бывало, сваливались сверху по инстанции такие корпоративные виндовозные приложения.

Прослойка организует для тупого приложения среду, где магически перехватывается Winsock на винде или сокеты в Unix, а сама переадресует запросы через прокси, обычно SOCKS5.

Смутно припоминаю даже, как где-то я так через SOCKS5 запускал Squid.
Mac Firefox
 San Jose
4
0
Ёкл
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
>> Что касается "отсутствия гарантий" для пакетов UDP, то это вообще смешно.

Вам смешно, потому что Вы неправильно понимаете "надёжную доставку" в TCP.
"Надёжная доставка" -- это не гарантия. Если фельдшер вырвал провода, то ничего доставлено конечно же не будет.
Но TCP предоставляет пользователю (программисту) свои услуги по управлению потоком: сам разгоняется до максимума и подстраивается под изменяющиеся обстоятельства, подтверждает приём и выполняет перепосыл в случае потерь, собирает в правильном порядке отправленные другой стороной данные и т.п.

Голый UDP не делает ничего из этого. Просто попробуйте наваять клиент и сервер позволяющие передать файл по UDP и обнаружите, что приходится переизобрести что-то вроде TCP на основе UDP или удивляться неадекватно низкой скорости передачи. Но зачем, если уже есть готовый TCP за годы жизни обросший разными ништяками?

Не-TCP нужен в тех случаях, когда предоставляемые сервисы оказываются "навязанной услугой". Т.е. когда нет необходимости, смысла и/или возможности устанавливать соединение. Наиболее характерные примеры: передача данных в реальном времени нечувствительная к небольшим потерям (IP-телефония/видеоконференция, потоковое вещание), передача в режиме "я прокукарекал" (логи и пр.) и передача "неопределённому кругу получателей" (мультикаст).

UDP для "не-TCP-на-коленке" используется потому, что он уже есть и как-то работает. Ну и от того, что должны быть обоснованные сомнения, что какой-нибудь совсем самопальный протокол поверх IP сможет уйти дальше ближайшего файрвола.

Связь между Вашими девайсами и сервером по UDP, почему бы и нет. Отправил девайс сообщение "я тута" на сервер -- если не дошло, то и фиг с ним. Какой-нибудь "протокол приложения" придётся придумать и тут уж на что фантазии хватит.

Остальное про преимущества UDP "останется на совести автора" :)
Windows Safari Chrome
 Санкт-Петербург
2
0
bolshakovdmitry
Не-TCP нужен в тех случаях, когда перепосылание не имеет смысла, поскольку данные мгновенно устаревают. например, для видео-аудио потоков при онлайновом общении.
Mac Firefox
 San Jose
6
0
Ёкл
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Вы, простите, дочитали до "Не-TCP нужен..." и решили, что пора отвечать? :)
Windows Firefox
 Австралия
0
0
явапваяп
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
TCP не самый хороший протокол, поэтому часто переизобретают новый транспорт. Торрент предпочитает UDP, ipfs предпочитает UDP, HTTP/3
Mac Firefox
 San Jose
0
0
Ёкл
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
TCP вполне хороший протокол. Шляпу поверх UDP изобретают, в основном, из-за шила в жопе. Особенно здорово получается у тех, кто побежал делать своё не разобравшись с тем что есть.
Linux Safari Chrome
 Санкт-Петербург
4
0
Леонит Каганофф
Ничто так не возмущает, как авторы, которые садятся писать новые книги, не прочитав всех, что уже написаны до них!
Mac Firefox
 San Jose
1
0
Ёкл
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Авторы? Это такие с ушками? Пишут какую-то хрень? Персонажи картонные, сюжеты избитые, штампы... скукотища!

С недавнего времени меня заинтересовало писать фантастику.
(ну и далее по тексту :)

Впрочем, если Вас это возмущает... может поделитесь?


Я уверен, что Вы прекрасно понимаете разницу. Для того, чтобы наваять нечто "поверх UDP, лучше чем TCP" совершенно необязательно знать всё про всё, но будет полезно иметь адекватное представление о том что, как и почему сделано конкретно в TCP. А также, чем имеющиеся решения не подходят. Если не "вообще", то хотя бы для конкретной задачи. Иначе почти гарантированно получится "как TCP, только хуже (зато своё)" (более вероятно, что не получится вообще ничего).
Можно и не читать. Пробежка по граблям -- тоже хороший способ разобраться.

Если есть ресурсы, то можно забацать отличное частное решение поверх UDP, или поверх IP, да хоть поверх L2. Или вовсе изобрести свой физический интерфейс. Кто ж запретит?
Linux Safari Chrome
 Санкт-Петербург
0
3
Леонит Каганофф
Боже, какие эмоции. Не иначе профессиональная гордость распухла и мешает ходить.

Я же вроде русским языком написал в заметке, что меня интересует UDP в плане своего вебсервера (в ходе дискуссии оказалось, lleo.me и так отвечает по http3), а также для работы с моими девайсами, которые передают всякую частую и не очень важную телеметрию. Чего ж вы так разорались, словно вас со службы выгоняют и меня взамен берут? :)
Mac Firefox
 San Jose
2
0
Ёкл
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Вы что-то такое напрасное проецируете, наверное.
Я не орал и не распухал.

Идею забабахать общение девайсов с сервером по UDP поддерживаю.

А то, что Вы понаписали про UDP нет смысла обсуждать.
Linux Firefox
 Санкт-Петербург
0
0
ВД
Или не изобретать, а откопать что-нибудь хорошо забытое (врде дековской маршрутизации на динамических мак-адресах).
Windows Firefox
 Самара
0
0
Dim
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
В обсуждаемом контексте ближе аналогия про авторов, которые имеют скудный словарный запас и постоянно выдумывают новые слова.

P.S. Хотя, вообще-то тема очень интересная и лично мне тоже нравится UDP. По работе приходилось обеспечивать обмен данными внутри аппаратно-программного комплекса и в нескольких случаях UDP оказывался идеальным вариантом.
Windows Firefox
 Австралия
0
3
явапваяп
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
в tcp главная проблема - пакеты идут последовательно, и новый не придет, пока старый не подтвердишь, очень часто это не надо вообще и ок перепослать что-то что недошло потом.

потому и уходят на udp там где нужно масштабироваться лучше или снизить задержки
Mac Firefox
 San Jose
2
0
Ёкл
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Нет в TCP такой проблемы.

Тарталья ниже про это уже ответил.
Windows Firefox
 Австралия
0
0
явапваяп
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
он говорит что проблемы которые случается постоянно не случается. и что в частных случаях можно сделать лучше
Mac Firefox
 San Jose
0
0
Ёкл
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Вас не затруднит заглянуть в RFC и узнать что такое sliding window и slow start?
Mac Firefox
 Нижний Новгород
8
0
tartaglia
У меня есть значительный практический опыт сравнения UDP и TCP для OpenVPN.

Опыт показывает, что UDP может вообще не работать:
- иногда тупо режут какие-то неизвестные провайдеры, причём это может случиться в неизвестный момент, потом исправиться, и никто вам ничего не объяснит;
- если UDP-пакет где-то не пролазит по размеру, то он может не дойти:
-- некоторые файеры не любят фрагментированных пакетов;
-- вообще не факт, что ваш UDP-пакет правильно разобьют на фрагменты и разобьют вообще, а не просто сунут в канал, где на другом конце его сразу выбросят;
-- PMTUD (Path MTU Discovery), даже если его разрешить - а он разрешён далеко не всегда, — обыкновенно не работает по разным причинам. В частности, необходимый для PMTUD "ICMP Unreachable" запрещается стандартами маршрутизации некоторых корпораций, я в такой (очень большой) работал.

В результате размер UDP-пакета приходится принудительно занижать в конфигурации приложения, что дополнительно снижает производительность UDP-обмена. Без всякой гарантии, что вы занизите этот размер достаточно.

UDP используется относительно редко, и админы имеют обыкновение не беспокоиться о фрагментации UDP-пакетов. Обычно UDP-пакеты, которые генерируют приложения, достаточно маленькие сами по себе — например, DNS-пакеты.

Вот с SNMP-пакетами бывают большие проблемы, которые выглядят совершенно как отсутствие доступа к устройствам. А SNMP работает только по UDP. В результате приходится подбирать запрос так, чтобы ответ заведомо был не слишком большой. Это очень больно. Большой ответ теряется, и вы думаете, что девайс в дауне.

А вот неправильная фрагментация TCP-пакетов заметна юзерам сразу, потому что любая связь встаёт колом. И админы настраивают TCP MSS (Maximum Segment Size) поневоле. И TCP тогда работает, а UDP не работает.
------

После значительного количества тестов я пришёл к однозначному выводу, что OpenVPN стабильнее и значительно быстрее работает по TCP, а не по UDP, хотя сам OpenVPN рекомендует UDP.
------

При этом, как я тут уже писал, следует позаботиться о размере окна TCP. Тут дело не только в OpenVPN, размер окна влияет на скорость любого TCP-соединения, а от TCP вы никуда не уйдёте.

На OS X, Linux и других Nix-системах размеры окон и буферов выбираются при загрузке исходя из размера доступной памяти. Этого более-менее достаточно, хотя можно и подкорректировать. А также увеличить размеры очередей I/O на сетевых адаптерах. Это всё слишком обширная тема, чтобы тут излагать.

С Виндой дело хуже. Когда я интересовался вопросом, была Винда №7, и там были заметные проблемы с размером TCP-окна. Повторюсь, это проблема собственно Винды.

Поинтересуйтесь:
How Windows is Killing Internet Download Speeds
How to dramatically improve your speed
July 11, 2014
https://www.duckware.com/blog/how-windows-is-killing-interne[...]

Если коротко, то для нормальной скорости Интернета на Windows достаточно перевести внешнюю сеть в "домашние" либо выполнить "netsh interface tcp set heuristics disabled".

Возможно, это для современной Винды уже неактуально, я сам давно не имею дела с Виндой, меня корпоративно подсадили на MAC, а многие нормальные люди и без МАКов предпочитают Линуксы.

При тестировании полосы пропускания по iperf/iperf3 можно задавать размер окна и сравнивать результаты.

Посмотрите сниффером, задаёт ли ваша система в SYN-пакете хотя бы "wscale 6".
-----

Короче, если вам надо передавать много, быстро и надёжно, пользуйтесь TCP.

Если вам надо послать пару байтов и вам пох, дойдут ли они куда-нибудь, пользуйтесь UDP - но следите за тем, чтобы UDP-пакет был примерно размером 1200, а больший пакет фрагментировался до 1200 уже у вас, иначе он где-нибудь попадёт в чёрную дырку.
Mac Firefox
 Нижний Новгород
0
0
tartaglia
LLeo поставил мне плюс за предыдущий коммент, но не открыл его. Теряюсь в догадках, что бы это могло значить.
Mac Safari
 Израиль
3
0
braintunic
> что бы это могло значить

Мог быть race.
LLeo открыл коммент и чуть позже вы его отредактировали — а после редактирования такой коммент (со ссылкой) опять автоматически закрывается.
У меня такое случалось пару раз.
Mac Firefox
 Нижний Новгород
0
0
tartaglia
И действительно. За время бана я приучился сразу писать, как надо, но мне показалось, с моими шрифтами, что в одном случае вместо тире я поставил минус, причём именно показалось, там было тире, но сдуру я всё-таки заменил тире на тире и сохранил.

Спасибо, буду иметь в виду.

Мне кажется, слишком длинные писульки скрываются сами по себе, даже без ссылок. Так что я не пытаюсь мухлевать с урлами в большом тексте. Может, и кажется. В объёмистом комменте легко проглядеть неблагонадёжный контент.

У вас тоже на этой странице маски надеваются не сразу? Особенно забавно дёргается страница, если ты в этот момент пишешь коммент.
Windows Safari Chrome
 Домодедово
0
0
id
Вот я почти подо всем бы подписался, кроме размера UDP пакета. Почему-то и вы поддались всеобщему оптимизму, и это мне странно. Ну а я останусь Осликом ИА, и оптимизму поддаваться не стану, и другим не советую.

1200 байт на UDP пакет??? Если UDP пакет больше 500 байт - это пакет, выброшенный умирать в холодной пустоте проводов и маршрутизаторов.
Firefox
 Санкт-Петербург
0
0
Кошак
Скажи, а обновление движка — это только у меня сломалось? Проше с нуля скачать? План с поддержкой обновления через https есть?

И попутный вопрос. Кросспост в вк начал валиться с ошибкой, что-то сменили там.
Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
Обновление работает, но почему-то не по https. Почему - на знаю. Там очень сложный трёхсторонний протокол, черт его знает, так просто не разобраться и не починить. Попробуйте с http обновляться.

VK перешёл на новое АПИ, но я пропатчил движок.
Windows Firefox
 Россия
0
0
Кошак
Ага, уже поднял специальный сайт, вчистую установленный, чтоб обновления скачивать.
Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
Ох...
Windows Firefox
 Россия
0
0
Кошак
Да ладно, обновил раз, потом скриптом по другим движкам раскопировал обновления. Главное — понимать процесс.

А вот то, что Ulogin сломался — вот это неудобства доставляет.
Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
Ох...
Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
Я попробую посмотреть, что там с https
Linux Ubuntu Firefox
 Москва
0
0
Леонит Каганофф
Починил обновление через https.
Надо обновить site_module/INSTALL.php:

https://lleo.me/dnevnik/install?site_module/INSTALL.php
Linux Safari Chrome
 Германия
0
0
Димитрий22
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Леонид, а можно скромно попросить убрать фоновую картинку на страницах, а то зрение уже не то, что раньше, трудно читать на пестром фоне, особенно это мешает в ночном режиме браузера. И пожалуйста, сделайте отключаемым звук у ёжика. Он конечно милый и оригинальный, но за столько лет падла надоел повторять одно и то же. И ещё часто будит домашних, включая кота, когда читаю дневник ночью, забыв выключить звук на планшете. Лео, спасибо если не пошлёшь куда лесом, с моими пользовательскими хотелками)
Windows Safari Chrome
 Самара
0
0
FixMySql__
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
> И пожалуйста, сделайте отключаемым звук у ёжика.

Настройки сайта - отключить звуки сайта?
Windows Safari Chrome
 Киев
0
0
Tortortor
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
фоновую картинку режте любым блокировщиком рекламы

выключать звук на отдельной вкладке хром умеет уже много лет без всяких плагинов
Windows Safari Chrome
 Израиль
0
0
б
Звук у ёжика? У вас он издает звуки??? У меня ни разу.

"кукушку" типа "Йоп твою мать, два часа вечера" легко отключить в настройках своей карточки.

PS. Вы меня заинтриговали. Ёжик у меня ползает только по заглавной странице (молча). А зачем вы её разглядываете? Там ничего не меняется уже 20 лет.
Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
Звук отключается галочкой в личной карточке.
Картинку найдите и заблокируйте средствами своего браузера.
Windows Firefox
 Россия
0
0
Кошак
А раньше можно было в конфиге сайта отключить вообще звуки, сейчас работает?
Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
Конечно работает.

Просто оcень. Время странных просьб.

Вот мне давече писал один товарищ: Леонид, на Гугль-плее в разделе читалок RSS есть одно из приложений под Андроид, так вот оно одно почему-то не отображает правильно RSS с вашего сайта. Скачайте приложение, Леонид, разберитесь и измените свой RSS...
Windows Firefox
 Россия
0
0
Кошак
Ну и отлично, а то давно не обновлял, вдруг чего-то изменилось. :)

Хм.
У меня по RSS куда надо всё отдаётся... И в читалке отображается всё норм... Подзамочный RSS отвалился, давно (ошибки выдаёт вместо потока), да. Но это после обновления проверю, работает ли.
Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
Я подозреваю, на том приложении нет поддержки 1251. А движок изначально в нем.

Вы будете смеяться, но тут возился с этими поливалками... Короче, поливалка присылает свое имя "ПИТЕР КАКТУС". В UTF-8. Скрипт пишет это слово в MySQL. Таблица имеет кодировку UTF-8. Ложится имя в MySQL, я его тут же следующей строчкой читаю - а оно уже побилось. Типа "П.ТЕР К.КТУС" или что-то вроде. Фишка в том, что там появляются символы, из-за которых оно в utf битое, а в 1251 и вовсе не переводимо, iconv падает и пустую строку выдает. Ебануться. Весь вечер разбирался, потом плюнул и стал в 1251 писать в MySQL. И почему-то теперь все работает отлично, хотя таблица utf.

Вот и расскажите мне, какой utf удобный...
Windows Firefox
 Австралия
0
0
явапваяп
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
то есть 白猴 на китайском материться тут не может?

edit: вижу, может
Linux Safari Chrome
 Санкт-Петербург
1
0
Леонит Каганофф
Эффективность юникода учёными пока не доказана!
Linux Firefox
 Санкт-Петербург
0
0
ВД
Про ключик -c в iconv только я вспомнил?
Linux Safari Chrome
 Санкт-Петербург
0
0
Леонит Каганофф
Наверно только вы. В PHP у iconv() нет ключиков.
Windows Firefox
 Санкт-Петербург
0
0
ВД
В пхп есть даже ключик //TRANSLIT
Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
Он и был использован.
Linux Firefox
 Азербайджан
1
0
морра
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
ну utf8 конечно не фонтан, но я бы поставил на мыскля в качестве причины проблем.
PS например utf8 в mysql урезанный, там не весь юникод, а его подмножество
нормальный называется utf8mb4
PPS чарсет есть не только у таблицы,но и у соединения. Если там стоит не тот, который у таблицы, оно будет автоматом перекодировать, может и налажать
Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
Чарсет конечно устанавливался не тот. Но перед записью я принудительно ставил нужный тем же обращением к MySQL.
Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
Там до фига изменилось. Только мне надо пару дней разобраться с ошибками кэша вчерашними, над жалуется.

А так там много появилось, поддержка Telegraf опять же.
Windows Firefox
 Россия
0
0
Кошак
Ну да. Потому и задумался, не подёргать ли за хвост то, что и так работает. :)
Windows Firefox
 Россия
0
0
Кошак




Ulogin тоже под зачистку попал? По этой ссылке скрипт на сайте у них доступен.
Linux Safari Chrome
 Санкт-Петербург
0
0
Леонит Каганофф
Я не трогал
Windows Firefox
 Россия
0
0
Кошак
Сначала подумал, что у меня что не так. Проверил тут -- та же история. Авторизоваться можно только по логину/паролю.
Linux Ubuntu Firefox
 Санкт-Петербург
0
0
Леонит Каганофф
А теперь?
Windows Firefox
 Россия
0
0
Кошак
Кросспост в Telegra.ph не взлетел, хоть и сделано всё по инструкции. :)
Linux Ubuntu Firefox
 Санкт-Петербург
0
0
Леонит Каганофф
Почему?
Выдает ошибку?
Или в заметке внизу не пишет, что туда кросспостед?
Windows Firefox
 Россия
0
0
Кошак
Понаблюдал внимательнее. Да, ошибку выдаёт на короткий момент. Ругается на шлюз. При том, что телеграф и из броузера, и из телеграма (через бота) доступен для публикации.



Linux Ubuntu Firefox
 Санкт-Петербург
0
0
Леонит Каганофф
Странно. Вписал в ошибку чтобы он еще в скобочках URL сообщал.
API Telegram, насколько я помню, имеет свой url.
Mac Safari Chrome
 Киев
2
0
Alex Mizrahi
Забавно, мне как раз UDP кажется странным. Дошли пакеты или нет - хз. Какой максимальный размер пакета?

В TCP он может согласовываться (path MTU), а с UDP?

В TCP есть встроенный flow control, если где-то затык, то отправляющая сторона автоматически уменьшает поток пакетов. Если работать с UDP, то flow control нужно реализовать в приложении.

С точки зрения экспериментов это, конечно, круто, но если нужна надёжность я бы в первую очередь смотрел на TCP. Хотя я знаю что Google / HTTP/3 считают иначе... Когда HTTP/3 будет полностью отлажен наверное его можно использовать как примитив вместо TCP.
Windows Safari Chrome
 Волгоград
0
0
erf5543gt2
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
проблема в том, что в TCP требуется подтверждение каждого пакета. Это очень и очень большой оверхед, который не всегда нужен.
Грубо говоря, потеря пакетов случается в 1% случаев, а проверяется это всё в 100% случаев.
Всякие там quic это как раз про то чтобы проверки делать только когда нужно (послался стрим и его общий checksum), и только если стрим не дошел - тогда перепосылаем.
Mac Firefox
 Нижний Новгород
1
0
tartaglia
Тут кто-то уже ругался, что новые протоколы изобретают, не разобравшись с TCP, который не так уж и плох.

> проблема в том, что в TCP требуется подтверждение каждого пакета. Это очень и очень большой оверхед, который не всегда нужен.

Дружище, в TCP вообще нет «пакетов». TCP — это двусторонний непрерывный поток данных по одному соединению. Есть «окна» приёма/передачи, которые могут типа закрыться, если все данные в окне не подтверждены. Но при достаточно больших размерах окон такого случаться не должно в принципе, потому что подтверждения (части) данных в окне приходят своевременно, обычно вместе со встречными данными («пиггибакинг», если вам нравятся иностранные слова), и никаких «оверхедов» нет.

Хотя следует поинтересоваться размером окна в TCP-стеке, иногда о нём следует позаботиться, если собственный канал толстый, а RTT до какого-то нужного адреса слишком большой. Грубо говоря, должно быть RTT * пропускная_способность_канала <= размер_окна. Был у меня в прошлом веке канал через спутник с RTT в три секунды, пришлось что-то подкручивать в тогдашней Винд.

И современный TCP неплохо справляется с потерей пакетов, которая в современных сетях случается ГОРАЗДО реже, чем в 1% случаев.

Почитайте какую-нибудь книжку про TCP, это интересно и полезно для здоровья. Или хотя бы RFC 793 посмотрите, там — ровно сорок лет назад! — почти всё очень подробно и понятно изложено.
Mac Firefox
 San Jose
0
0
Ёкл
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Скорее всего в нынешних обстоятельствах пакеты теряются не потому что сеть плохая, а потому что так и задумано -- TCP разгоняется пока не забьёт канал, если канал забит, то часть пакетов будет дропнута и TCP подстроится под доступную полосу.

Для случаев с толстым каналом и большим RTT тоже лет 30 назад появился RFC, как раз для спутников (что-то про "fat pipes", вроде).
Mac Firefox
 Нижний Новгород
0
0
tartaglia
RFC 1323, May 1992, "TCP Extensions for High Performance" (Obsoleted by: RFC 7323, September 2014), "TCP Window Scale Option".

У меня вот показывается в tcpdump как "wscale 6" в первом SYN-пакете. Грубо говоря, окно (у меня "win 65535") умножается на 2^6=64.

Помнится, на моей древней Винде окно по умолчанию было 16К, и можно было увеличить до 64К где-то в регистре, а wscale ещё не было в той Винде. То есть вот сейчас мой MAC запросил окно в 64 раза больше, чем был тогда максимум.
----

Ещё там же в tcpdump показывается "sackOK", RFC 2018, October 1996, "TCP Selective Acknowledgment Options". Чтобы не повторять всё окно целиком, если потерялся кусочек в начале.
Mac Firefox
 San Jose
0
0
Ёкл
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Вот ведь... промазал больше чем на полгода на дистанции всего в 30 лет... :)

SACK, шмак... сказали же: TCP не очень хороший протокол и всё тут!
Mac Firefox
 San Jose
0
0
Ёкл
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Для PMTUD нужен ICMP, ничего не мешает использовать его c UDP.
Windows Safari Chrome
 Домодедово
0
0
id
Ничего, кроме отсутствия ICMP
Mac Firefox
 San Jose
0
0
Ёкл
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Отсутствие ICMP замечательно мешает PMTUD у TCP.
Windows Safari Chrome
 Домодедово
0
0
id
Для подкручивания MSS есть и другие техники - именно поэтому TCP прекрасно выживает в мире, где каждый второй сотрудник младшего админского возраста оставил в живых только 0 и 8.

А для UDP ничего подобного не придумано.
Mac Firefox
 San Jose
1
0
Ёкл
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
> не придумано

А чего тут ещё придумывать? Всё уже придумано до нас. Просто не реализовано.

Хотите ништяки -- берёте TCP и всё работает само.

Боитесь "очень и очень большого оверхеда" -- берёте UDP и приделываете всё, что захотите и сможете. Можно ли приделать PMTUD в UDP -- можно. А MSS? Да, на здоровье.

Ну и чужой UDP никто не любит. Особенно когда его много. Будут резать, будут бить.
Windows Safari Chrome
 Домодедово
0
0
id
"Вот так, с помощью нехитрых приспособлений, буханку белого (или черного) хлеба UDP можно превратить в троллейбус TCP… Но зачем?" (с)
Mac Firefox
 San Jose
0
0
Ёкл
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Работы ЛЛео читать надо!

«Во-первых, это красиво. Во-вторых, быстро. В-третьих, UDP бегает даже там, где TCP выключен, например на вайфае в метро до прохождения унизительной регистрации. Наконец, UDP сложнее блокировать майорскими DPI. Ну и вообще, быстрый стандарт, прямо сама дикая природа интернета в чистом виде, натюрель.»

:^)
Mac Firefox
 Нижний Новгород
0
0
tartaglia
> Для PMTUD нужен ICMP, ничего не мешает использовать его c UDP.

Я тут уже писал: я работал в конторе, где по SNMP опрашивалось больше восьми тысяч устройств, и у этой конторы были официальные стандарты по настройке маршрутизаторов, и в этих стандартах русским по белому было записано, что ICMP Unreachables должны быть безусловно запрещены.

То есть на цисках была обязательная строчка "no ip unreachables".

Все в конторе разбегались после 18:00 и переставали меня доставать, и я имел возможность настроить SNMP-опрос всего гадюшника, и на основе этого опроса рисовать себе любимому (ненавижу это современный оборот речи) STP-деревья коммутации и BGP-маршруты со всеми их бакупами. Псевдографикой, потому что я никакой Веб-дизайнер, но разными цветами и вполне наглядно. Заодно проверялись все глюки настройки.

Поплачусь. При отдельных STP по VLANам это было прямолинейно, но на более древних девайсах приходилось отслеживать путь MAC, и это был первый горький случай, когда я не смог придумать весь алгоритм в уме, чтобы потом просто записать (самый эффективный способ программирования). Тупо забывал, что было в начале, когда приближался к концу. Так со мной случились старость и склероз. До сорока с чем-то лет алгоритм на 400 строчек я легко придумывал чисто зрительно, вплоть до имён переменных. Хотя я его добил за компом по частям, этот алгоритм. Технология против тупости. Пичаль.

Не слыхал, кстати, чтобы аналогичные коммерческие продукты были на рынке. Девайсы сильно отличаются, реализовать в общем виде сложно. Интересно же это только сисадминам, а сисадминов мало, и нужды их безразличны начальству. А сами сисадмины не любят, чтобы их работа была сколько-нибудь наглядна для начальства.

Нам, сисадминам, выгодно, чтобы начальство нас считало колдунами на окладе, и мы с этим легко справляемся, даже если сами ни хрена не понимаем в том, чем занимаемся.
-----

И тут я приближаюсь к сути: самый эффективный опрос по SNMP - это "GetBulk" из SNMPv2. «Мне нужна таблица, дай мне столько строк, сколько можешь». И девайс посылает, сколько может, и этот UDP-пакет пропадает по дороге из-за превышения MTU, и тебе приходится таблицу считывать по строкам и ещё следить, чтобы строчки были покороче, и это неприятно кодить, и это долго работает, и это сильно грузит не только тебя, но и опрашиваемый девайс.
-----

Кстати, SNMPv2 "GetBulk" — идеальный запрос, если он работает. Он не только возвращает максимум информации, он — по стандарту — не выдаёт ошибки, если запросить информации слишком много, он просто возвращает столько, сколько может.

И так GetBulk работает на цисках и Линуксах, но мало где ещё. Потому что RFC-стандарт по S(imple)NMPv2 написан так, что его никто не понимает. И вместо стандарта все гуглят бред, написанный теми, кто тоже не понял стандарта. Стандарт SNMPv3 я и сам не понял.

MikroTik по "GetBulk" таблицу несколько лет возвращал не по строкам, а по столбцам, так что можно было запрашивать только одну строку. Теперь они типа исправились, но — вопреки официальному стандарту! — возвращают ошибку, если запросить слишком много строк. А откуда я знаю, сколько у них влезет в UDP-пакет? По стандарту они должны возвращать столько строк, сколько смогут, и никогда не возвращать ошибку переполнения.

И MikroTik — не единственный производитель, разработчики которого не понимают RFC. Так и живём.
Windows Safari Chrome
 Mt Laurel
0
0
jumbleview
>Мы что-то слишком мало с вами тратим времени на развитие и популяризацию новых технологий.

Слыхали про проект Gemini?
Linux Ubuntu Firefox
 Санкт-Петербург
0
0
Леонит Каганофф
Нет, расскажите.
Windows Firefox
 Россия
0
0
Кошак
Реинкарнация Gopher.

Вообще тема любопытная. Возвращение к тексту и минимизация трафика/нагрузки на вычислительные мощности. По мне -- как раз самое то для экстралонглинков класса Земля-Марс. :)
Windows Safari Chrome
 Mt Laurel
0
0
jumbleview
Да примерно так. Год рожения 2019. Назвали по аналогии с космической программой: после поректа Меркурий (читай гофер) и до Проекта Апполон (читай WEB). Вместо слова "сайт" используется слово "капсула". Особенности: работает только с текстом + гиперссылки (так что ежикам тут не место), только по TLS. Спецификация не финализирована еще. Никаких раcширений не предполагается. Меня привлекате в этом пространстве наличие самобытных людей и (пока) полное отсутсвие круглых идиотов (чего в WEBe в избытке). Пока ничего не нашел на русском. Один источник просит помощи в переводе. Есть смысл предложить помощь и дать русский перевод? Читатели будут?
Windows Firefox
 Россия
0
0
Кошак
Пссст... Русских капсул там уже есть. ;)
Но об этом больше общаются (как я заметил) в Fediverse, не в корпоратских соцсетках. :)
Windows Safari Chrome
 Mt Laurel
0
0
jumbleview
Я имел в виды документацию, не капсулы.(В фидо никогда не был: получил доступ онлайн когда WEB уже был во всю. Сейчас уже нет смысла начинать).
Windows Firefox
 Россия
0
0
Кошак
Документацию перевести, действительно, никто не заморочился.
А Fediverse -- это отнюдь не ФИДО. :) Это распределённые соцсети разных типов объединённые общим протоколом обмена, если совсем на пальцах.
Windows Safari Chrome
 Mt Laurel
0
0
jumbleview
Fediverse - прошел мимо и не заметил. Придется изучать...
Windows Safari Chrome
 Екатеринбург
0
0
Негаб
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
>Вообще тема любопытная. Возвращение к тексту и минимизация трафика/нагрузки на вычислительные мощности. По мне -- как раз самое то для экстралонглинков класса Земля-Марс. :)

Fido, Fido надо.
Windows Firefox
 Россия
0
0
Кошак
Пойнт нужен, что ль? :)
Windows Safari Chrome
 Болгария
5
0
Cave Eagle
Не взлетит = ) В том числе для линков Земля-Марс. Рассказываю, почему:
Сначала они поймут, что нужны картинки. Чтобы марсианский геолог не описывал кирпич с марса словами, а прислал фотку. Так они добавят мультимедиа. Потом - они поймут, что нужно минимальное управление, для меню. Чтобы при разветвлённой структуре сайта NASA - не показывать всегда на экране древовидное меню с 200 пунктами. Так они изобретут js. Потом геологу на Марсе надо будет найти в архиве NASA снимок определённой даты, обязательно красного цвета, но при этом не из определённой области. Для такого поиска по огромным архивам - они изобретут ajax. Потом кто-то создаст очень удобную библиотеку на js, которую будет очень просто использовать. Она станет стандартом де-факто в этом вашем Gemini. Так они изобретут JQuery....
Windows Safari Chrome
 Болгария
0
0
Cave Eagle
Тогда я вообще не понимаю, какая у Gem ниша?
Если хочешь минималистичный сайт без картинок - создаешь сайт на голом html, только текст. Что мешает это сделать сейчас? Хочешь смотреть сайты без картинок - включаешь режим "чтение" в браузере. Хочешь хостить сайты на Марсе? Всё вышеописанное.
Windows Safari Chrome
 Mt Laurel
0
0
jumbleview
Описанные вами альтернатива, это не то же самое. В WEB тот, кто показывает, обладает свободой выбрать ту степень сложности, которую он хочет. Захотел LLEO гонять ежика на вашем экране и он это делает вас не спрашивая. Имеет право, в WEB это возможно. Пришедшие в gemini обе стороны заранее соглашаются на аскетические правила. Плюс навязанный TLS.
Windows Firefox
 Израиль
4
0
braintunic
> В WEB тот, кто показывает, обладает свободой выбрать ту степень сложности, которую он хочет.
> Захотел LLEO гонять ежика на вашем экране и он это делает вас не спрашивая.

Ну не совсем так — зависит же от моего Web-браузера.
Если Web-браузер текстовый — то ёжика не будет, как бы ЛЛео этого ни хотел.

Вот пожалуйста, вид на корневую страницу сайта lleo.me через текстовый Web-браузер lynx — никаких ёжиков!


Mac Firefox
 Нижний Новгород
0
0
tartaglia
> Если Web-браузер текстовый — то ёжика не будет

Каюсь, в том JS-скриптике для сего сайта, который я большей частью потерял, когда снёс профиль браузера (бакупьтесь, товарищи!), я — чисто для тренировки, не со зла — пришпиливал ёжика. Не убивал совсем, но он прекращал свой бесконечный бег в том месте, где его ловил скрипт.

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

Выходит, мне LLeo предоставляет несколько больше возможностей для развлечения, чем большей части контингента.
Mac Firefox
 Нижний Новгород
0
0
tartaglia
Эта страница виснет в любом браузере — что с логином, что без. Всё показывает вроде, но, условно говоря, часики продолжают крутиться. FF вырубает загрузку через минуту, другие браузеры ещё позже.

Тут все эксперты — кто угадает, какой JS-сприпт у LLeo циклится?
Mac Firefox
 Нижний Новгород
5
0
tartaglia
Подсказка: после того, как браузер вырубит плохой скрипт по таймауту, отрабатывает следующий ещё худший скрипт и надевает всем маски, а мне — подгузник.

Если загрузку остановить принудительно, то вырубается текущий скрипт и не выполняются последующие, и все радостно дышат без масок. О себе умолчу.
Mac Firefox
 Нижний Новгород
0
0
tartaglia
И личные карточки очень долго закрываются — дольше, чем открываются.

Кто-нибудь вообще это наблюдает? Или меня сразил какой-то вирус, причём все три браузера (FF, Safari, Chrome) сразу?

У меня, кроме МАКа, есть под столом обычный системный блок с лицензионной Windows 7, лень врубать.
Mac Firefox
 Нижний Новгород
4
1
tartaglia
PS. LLeo, когда кто-то отвечает сам себе, совершенно необязательно посылать это по почте.

Например, нельзя редактировать свои сообщения, если есть ответы. Или если забанен, как я.

По-моему, меня уже давно не интересует политика, можно бы меня и разбанить. Тем более что типа капча всё равно автоматически обходится JS-скриптом на четыре строчки.

Я, когда трезвый, смирный. А до седьмого ноября я напиваться не собираюсь.

И я честный — если и ругаюсь, то левых аккаунтов не завожу. Тем более что левые аккаунты читают не так активно. Даже наш Йож вынужден выдумывать похожие аккаунты, чтобы его принимали всерьёз, а не игнорировали.
Linux Ubuntu Firefox
 Санкт-Петербург
4
0
Леонит Каганофф
Разбанил. Не помню, кто вы, что писали о политике и за что поставил капчу.

Йожа помню, утомительный очень, я его обычно баню.

Еще у нас есть какой-то шизофреник, не помню ника, что-то на свастику похожее, который прибегает в каждый пост и срет бессмысленной цитатой и какой-нибудь неуместной картинкой, этого я просто нажимаю кнопку "удалить".
Linux Ubuntu Firefox
 Санкт-Петербург
0
0
Леонит Каганофф
А теперь?
Mac Firefox
 Нижний Новгород
1
0
tartaglia
Прежде всего, забыл сказать: на предыдущей странице всё нормально.

Симптомы: пауза от 15 до 150 сек, потом надеваются маски, а внизу показываются «Онлайн ##:». После чего Safari продолжает крутить часы ещё какое-то время, а FF и Chrome успокаиваются сразу.
Mac Safari
 Россия
0
0
Max Sh
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
как-то не видно, чтобы аналитика вырезалась, вот висит гуглосчётчик на индексной странице
https://paste.pics/1d18a907ca908591e0d274f344334659

и там же ещё бот от mail.ru
https://paste.pics/b5b67bc1405bc09639f2bec3672fb5e1

на момент сейчас вроде js и css успешно кэшируется, но возможно это заслуга Cloudflare
https://paste.pics/dc5b63a9affa3d15b72a5a21c97071f7
Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
Не понимаю.
А где вы это видите в самом коде страницы?
Windows Safari Chrome
 Болгария
0
0
Cave Eagle
Подтверждаю - метрика гугла и яндекса загружается на главной (сморю из другой страны, так что это не провайдерские приколы).
Код - прямо в коде страницы виден:
<!-- Yandex.Metrika counter -->
И дальше сам код = )
Linux Ubuntu Firefox
 Украина
0
0
Dima
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Зашёл подписаться чтобы узнать как-таки настроить quic на nginx, чтобы на чужих ошибках, ага.
Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
Ну самый простой способ, как оказалось, вынести свой зайти за CloudFlare.com :)
Windows Safari Chrome
 Москва
0
0
Gena
может посмотреть в сторону mqtt/udp? https://habr.com/ru/post/429714/
Windows Firefox
 Белая Церковь
0
0
ufm7
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Сделай у себя сайт доступным через yggdrasil (https://yggdrasil-network.github.io/)
Если при этом сделаешь ему домен через alfis (https://github.com/Revertron/Alfis) в зоне ygg (например lleo.ygg) - будет совсем хорошо.
Mac Safari
 Германия
1
0
karash_I
> The project is currently in the alpha stage.
Надо срочно бросить все дела и сделать сайт доступным через эту гиковскую хрень.
Windows Firefox
 Белая Церковь
0
0
ufm7
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Мне было очень важно узнать Ваше мнение. Спасибо Вам.

всего комментариев: 168

<< предыдущая заметка следующая заметка >>