~AreEnn
                        
                        
                            ~R4SAS
                        
                        
                            ~acetone
                        
                        
                            ~orignal
                        
                        
                            ~villain
                        
                        
                            &N00B
                        
                        
                            +Xeha
                        
                        
                            GFW
                        
                        
                            Nobody
                        
                        
                            Opax
                        
                        
                            WebClient95
                        
                        
                            anon
                        
                        
                            anontor
                        
                        
                            b3t4f4c3
                        
                        
                            deserving-stegosaur
                        
                        
                            duanin2
                        
                        
                            fidoid
                        
                        
                            fujifilm
                        
                        
                            halloy1341
                        
                        
                            iiii
                        
                        
                            karamba_i2p
                        
                        
                            leopold
                        
                        
                            mareki2p
                        
                        
                            negative_rock127
                        
                        
                            nik0tr
                        
                        
                            not_bob_afk
                        
                        
                            ntty
                        
                        
                            osoznayka
                        
                        
                            poriori
                        
                        
                            profetikla
                        
                        
                            rc13
                        
                        
                            shaye
                        
                        
                            slfd
                        
                        
                            teeth
                        
                        
                            un
                        
                        
                            weko_
                        
                        
                            КрутыеЖиды]]]]]]]]]]]]]_Z
                        
                    
                    
                        relaybot
                    
                    
                        13apophis: что то бы заработались в пятницу
                    
                
                
                    
                        relaybot
                    
                    
                        13apophis: *вы
                    
                
                
                    
                        orignal
                    
                    
                        поправил
                    
                
                
                    
                        user
                    
                    
                        Поднял на последнем коммите свежий роутер XU. Час аптайма. tcsr 51% R:1132 F:772 Transit Tun:5
                    
                
                
                    
                        user
                    
                    
                        Больше 5 транзитных не было.
                    
                
                
                    
                        user
                    
                    
                        Если правильно понял из логов, т.к. нетдб маленькая, я постоянно делаю запросы к фф
                    
                
                
                    
                        orignal
                    
                    
                        нет
                    
                
                
                    
                        orignal
                    
                    
                        если кратко
                    
                
                
                    
                        user
                    
                    
                        Еще смущает это чехарда с портами. 
                    
                
                
                    
                        user
                    
                    
                        Our external address is ip:port1
                    
                
                
                    
                        user
                    
                    
                        Our port port1 resieved from someip:someport is different from port2
                    
                
                
                    
                        user
                    
                    
                        Понятно что NAT, там внешний и внутренний порты могут различаться. Но может тут какая проблема есть...
                    
                
                
                    
                        orignal
                    
                    
                        это и называется Symmetric NAT
                    
                
                
                    
                        orignal
                    
                    
                        если порты разные
                    
                
                
                    
                        weko
                    
                    
                        orignal: порты же резные при любом NAT?
                    
                
                
                    
                        weko
                    
                    
                        Разные*
                    
                
                
                    
                        weko
                    
                    
                        Transit Tunnels: 41 аптайм 5 часов
                    
                
                
                    
                        weko
                    
                    
                        Обычно меньше
                    
                
                
                    
                        weko
                    
                    
                        Кто-то ставит меня IBGW ...
                    
                
                
                    
                        weko
                    
                    
                        Вижу такой туннель
                    
                
                
                    
                        weko
                    
                    
                        [00:20:57] <weko> Обычно меньше
                    
                
                
                    
                        weko
                    
                    
                        До коммита
                    
                
                
                    
                        weko
                    
                    
                        Но должно быть явно больше
                    
                
                
                    
                        orignal
                    
                    
                        нет
                    
                
                
                    
                        orignal
                    
                    
                        должны быть одинаковые
                    
                
                
                    
                        user
                    
                    
                        Я, в общем, не совсем понимаю, кого может интересовать наш внешний порт на роутере, если наружу мы выходим только через NATовский порт...
                    
                
                
                    
                        orignal
                    
                    
                        потому что это UDP
                    
                
                
                    
                        orignal
                    
                    
                        и ответные пакеты приходят на порт
                    
                
                
                    
                        user
                    
                    
                        Да, что-то я не сообразил.
                    
                
                
                    
                        user
                    
                    
                        XU last comm ~4hr uptime: TCSR:54% R:2250 F:1090 TT:93
                    
                
                
                    
                        orignal
                    
                    
                        с последним.
                    
                
                
                    
                        user
                    
                    
                        +
                    
                
                
                    
                        weko
                    
                    
                        Transit Tunnels: 60
                    
                
                
                    
                        weko
                    
                    
                        6.5 часа
                    
                
                
                    
                        weko
                    
                    
                        Кто-то даже данные пустил
                    
                
                
                    
                        orignal
                    
                    
                        тоже последний?
                    
                
                
                    
                        orignal
                    
                    
                        вон Vort  какую багу нашел
                    
                
                
                    
                        weko
                    
                    
                        Ну вот когда Vort просил
                    
                
                
                    
                        weko
                    
                    
                        После фикса первой баги
                    
                
                
                    
                        user
                    
                    
                        У меня транзит пока в районе 20-40 киб/с
                    
                
                
                    
                        weko
                    
                    
                        user: +- также
                    
                
                
                    
                        weko
                    
                    
                        Туннели 700кб были
                    
                
                
                    
                        weko
                    
                    
                        Кто мог данные пустить ?
                    
                
                
                    
                        weko
                    
                    
                        Или это такие жирные exploratory?
                    
                
                
                    
                        user
                    
                    
                        Транзит через всё, что ниже O не пускается.
                    
                
                
                    
                        user
                    
                    
                        O,P,X  - пускает
                    
                
                
                    
                        weko
                    
                    
                        user: да забей
                    
                
                
                    
                        weko
                    
                    
                        Ой
                    
                
                
                    
                        weko
                    
                    
                        Короче я попутал
                    
                
                
                    
                        user
                    
                    
                        Да, с L роутерами
                    
                
                
                    
                        weko
                    
                    
                        Ага
                    
                
                
                    
                        weko
                    
                    
                        NTCP2 / SSU2 38 / 322
                    
                
                
                    
                        weko
                    
                    
                        Transit Tunnels: 73
                    
                
                
                    
                        weko
                    
                    
                        SSU2 134
                    
                
                
                    
                        weko
                    
                    
                        Колеблется сильно
                    
                
                
                    
                        weko
                    
                    
                        В какой-то момент количество резко вырастает
                    
                
                
                    
                        weko
                    
                    
                        300 / 500
                    
                
                
                    
                        weko
                    
                    
                        Точнее не в какой то, а сейчас
                    
                
                
                    
                        weko
                    
                    
                        Что за "волны"?
                    
                
                
                    
                        weko
                    
                    
                        100 / 470
                    
                
                
                    
                        user
                    
                    
                        В логах довольно-таки много ворнингов - SSU: Session was not introdused after 5 seconds
                    
                
                
                    
                        user
                    
                    
                        Не знаю, насколько это нормально.
                    
                
                
                    
                        Vort
                    
                    
                        значит, интродьюсер не ответил. сейчас покажу ещё раз данные по статистике установки SSU2 сессий
                    
                
                
                    
                        Vort
                    
                    
                        Results: 724958 (359673 out, 365285 in), RI: 392595 (28507), Uptime: 1 d 07 h 01 m
                    
                
                
                    
                        Vort
                    
                    
                        *|E 72093 20%|F32322  9%|IF21989  6%|T221677 62%|IT11592  3%|ED a  0.8s m  0.5s
                    
                
                
                    
                        Vort
                    
                    
                        R|E 54484 17%|F32007 10%|IF 6906  2%|T217359 69%|IT 3089  1%|ED a  0.8s m  0.4s
                    
                
                
                    
                        Vort
                    
                    
                        U|E 17609 38%|F  315  1%|IF15083 33%|T  4318  9%|IT 8503 19%|ED a  1.0s m  0.6s
                    
                
                
                    
                        Vort
                    
                    
                        user: то, что ты видишь в логах, (not introduced) - это у меня тут в таблице отмечено как IT 8503 19%
                    
                
                
                    
                        Vort
                    
                    
                        как видно, такого довольно много. но IF15083 33% - в полтора раза больше
                    
                
                
                    
                        Vort
                    
                    
                        вот эти 33% - это в основном из-за разрыва сессии U узла с интродьюсером
                    
                
                
                    
                        user
                    
                    
                        XU last comm ~8hr uptime: TCSR:58% R:1671 F:998 TT:49
                    
                
                
                    
                        Vort
                    
                    
                        надо дальше чинить )
                    
                
                
                    
                        Vort
                    
                    
                        похоже, ещё одну проблему словил (читаю лог за ночь)
                    
                
                
                    
                        Vort
                    
                    
                        [22/Jul/2023:00:44:10 +0300]@379/debug - SSU2: Introducer added 1306463008 at sfQd
                    
                
                
                    
                        Vort
                    
                    
                        [22/Jul/2023:00:44:11 +0300]@379/debug - SSU2 (sfQd): Termination requested, code = 2
                    
                
                
                    
                        Vort
                    
                    
                        таймаут неактивности сесии вот-вот собирался сработать, а мой узел решил выбрать эту сессию интродьюсером
                    
                
                
                    
                        Vort
                    
                    
                        и сам же через секунду её прихлопнул :))
                    
                
                
                    
                        Vort
                    
                    
                        теперь по поводу Path challenge и VirtualBox:
                    
                
                
                    
                        Vort
                    
                    
                        допустим, у меня U узел в виртуалке. у него есть сессия с интродьюсером
                    
                
                
                    
                        Vort
                    
                    
                        каждые 30 секунд мой узел отправляет KeepAlive. но при этом же каждые 20 секунд VirtualBox удаляет маппинг
                    
                
                
                    
                        Vort
                    
                    
                        значит ли это, что в течение 10 секунд интродьюсер не сможет мне послать никаких данных (запросов)?
                    
                
                
                    
                        Vort
                    
                    
                        где находятся 20 сек в коде VirtualBox я нашёл:  virtualbox.org/browser/vbox/trunk/src/VBox/Devices/Network/lwip-new/src/include/lwip/udp.h#L201   
                    
                
                
                    
                        Vort
                    
                    
                        правда, в реальности там немного меньше. за 19 секунд тоже может маппинг удалиться. вот 18 сек вроде нормально работает
                    
                
                
                    
                        Vort
                    
                    
                        там, кстати, в коде есть коммент про то, что 20 сек они взяли из RFC 3948
                    
                
                
                    
                        Vort
                    
                    
                        хорошо, что я некоторое время назад написал UDP тестер. сейчас чутка обновил его:  paste.i2pd.xyz/?be3d07d7bb76a5b6#7tKKYmjJixVwVYz4h9iakffVimSqCMAMSwN6AMjFm6EP  
                    
                
                
                    
                        Vort
                    
                    
                        user: у тебя логи на U узле какого уровня? debug?
                    
                
                
                    
                        Vort
                    
                    
                        результаты теста для "const int SSU2_KEEP_ALIVE_INTERVAL = 18;": сессии ко всем трём интродьюсерам продержались положенный час времени
                    
                
                
                    
                        Vort
                    
                    
                        однако я один раз заметил Path challenge. подтвердить это явление с помощью своего UDPTest.exe правда не смог
                    
                
                
                    
                        Vort
                    
                    
                        так что видимо правильное значение для NAT`а VirtualBox - 17 секунд
                    
                
                
                    
                        Vort
                    
                    
                        но на всякий случай и чтобы "круглое" число было можно вполне поставить 15 секунд - то есть половину от того, что стоит сейчас
                    
                
                
                    
                        orignal
                    
                    
                        короеч какая проблема счас?
                    
                
                
                    
                        user
                    
                    
                        XU last comm ~13hr uptime: TCSR:59% R:1999 F:998 TT:33
                    
                
                
                    
                        Vort
                    
                    
                        "<~orignal> короеч какая проблема счас?" - две штуки
                    
                
                
                    
                        Vort
                    
                    
                        первая - узел иногда закрывает по неактивности соединение со свежевыбранным интродьюсером
                    
                
                
                    
                        user
                    
                    
                        Vort, Логи warn, поставил дебаг, если нужно что-то поискать, могу попробовать.
                    
                
                
                    
                        Vort
                    
                    
                        user: да, нужно. сейчас скажу
                    
                
                
                    
                        orignal
                    
                    
                        какое из двух?
                    
                
                
                    
                        Vort
                    
                    
                        orignal: вторая проблема - для некоторых NAT нужен пробив (keepalive) чаще, чем 30 сек. допустим, 15 сек
                    
                
                
                    
                        Vort
                    
                    
                        user: надо поискать, много ли в логе будет SSU2: Path challenge
                    
                
                
                    
                        orignal
                    
                    
                        и как со вторым быть?
                    
                
                
                    
                        orignal
                    
                    
                        про ервое не понял кто именно закрывает
                    
                
                
                    
                        Vort
                    
                    
                        мой U узел сам закрывает соединение со своим интродьюсером
                    
                
                
                    
                        Vort
                    
                    
                        потому что он его выбрал, а у того таймаут истекал как раз видимо
                    
                
                
                    
                        orignal
                    
                    
                        а почему?
                    
                
                
                    
                        Vort
                    
                    
                        хотя я на 100% в причинах не уверен
                    
                
                
                    
                        orignal
                    
                    
                        выбрал для чего я опять не понял
                    
                
                
                    
                        orignal
                    
                    
                        то есть в какой то момент он выбрал соединение в качестве интродьюсера стал публиковать и тут же сам закрыл?
                    
                
                
                    
                        orignal
                    
                    
                        потому что говно мамонта?
                    
                
                
                    
                        Vort
                    
                    
                        ага
                    
                
                
                    
                        Vort
                    
                    
                        потому что keepalive через 30 сек
                    
                
                
                    
                        orignal
                    
                    
                        ну это я починю
                    
                
                
                    
                        Vort
                    
                    
                        можно или при выборе сразу keepalive слать или что-то другое придумать
                    
                
                
                    
                        orignal
                    
                    
                        а вот что делать с NAT x3
                    
                
                
                    
                        Vort
                    
                    
                        или не выбирать тот который на грани истечения
                    
                
                
                    
                        orignal
                    
                    
                        да это понятно как чинить
                    
                
                
                    
                        orignal
                    
                    
                        на самом деле смотреть насколько протухший и слать keepalive если близко
                    
                
                
                    
                        Vort
                    
                    
                        "<~orignal> а вот что делать с NAT x3" я предлагаю поставить const int SSU2_KEEP_ALIVE_INTERVAL = 15;
                    
                
                
                    
                        Vort
                    
                    
                        это решит проблему с интродьюсерами на некоторых NAT
                    
                
                
                    
                        orignal
                    
                    
                        а чем 15 лучше 30?
                    
                
                
                    
                        Vort
                    
                    
                        останется проблема с остальными сессиями, но это не так критично
                    
                
                
                    
                        Vort
                    
                    
                        orignal: тем, что у некоторых NAT истекает срок годности порта за 20 сек
                    
                
                
                    
                        orignal
                    
                    
                        а откуда 20? не может быть за 5?
                    
                
                
                    
                        Vort
                    
                    
                        и, как я понимаю, Боб в течение 30-20=10 сек отправляет запросы в пустоту (если отправляет)
                    
                
                
                    
                        orignal
                    
                    
                        правильный путь это определять такую ситуацию
                    
                
                
                    
                        Vort
                    
                    
                        orignal: "откуда" - из Гугла :) допустим, вот:  quora.com/How-does-UDP-hole-punching-work 
                    
                
                
                    
                        Vort
                    
                    
                        "with an UDP connection the NAT will timeout the mapping in its table, so the UDP application needs to send out keep-alive packets frequently (< 20 seconds) to keep the connection open."
                    
                
                
                    
                        orignal
                    
                    
                        тогда да
                    
                
                
                    
                        Vort
                    
                    
                        "<~orignal> правильный путь это определять такую ситуацию" в идеале, да. но для начала надо чтобы неидеальный вариант хотя бы заработал нормально
                    
                
                
                    
                        orignal
                    
                    
                        но по хорошему надо в интревале 13-18 
                    
                
                
                    
                        orignal
                    
                    
                        сам понимаешь почему
                    
                
                
                    
                        Vort
                    
                    
                        такая же фигня явно ещё и с неинтродьюсерскими коннектами. и как это правильно чинить - пока что даже не догадываюсь
                    
                
                
                    
                        Vort
                    
                    
                        в случае интродьюсера всё понятно - Чарли надо, чтобы пробив держался - он и бьёт себе
                    
                
                
                    
                        user
                    
                    
                        У меня сначала был включен дебаг пару часов, потом выключил, сейчас снова включил, поэтому результат как есть - 5568
                    
                
                
                    
                        Vort
                    
                    
                        а вот с остальными коннектами - хз как правильно. может, надо два типа таймаутов делать - на пробив и на остальные данные
                    
                
                
                    
                        Vort
                    
                    
                        user: то есть - дохрена?
                    
                
                
                    
                        Vort
                    
                    
                        user: попробуй пожалуйста поставить в SSU2.h const int SSU2_KEEP_ALIVE_INTERVAL = 15;
                    
                
                
                    
                        Vort
                    
                    
                        вместо 30ки
                    
                
                
                    
                        Vort
                    
                    
                        и глянь, увеличится ли от этого количество транзитов
                    
                
                
                    
                        user
                    
                    
                        Блин, я тупанул, там только два вхождения
                    
                
                
                    
                        user
                    
                    
                        Спросонья.
                    
                
                
                    
                        Vort
                    
                    
                        а, тогда не поможет, можно не проверять
                    
                
                
                    
                        Vort
                    
                    
                        это зависит от типа NAT
                    
                
                
                    
                        Vort
                    
                    
                        у каких-то NAT порт удаляется быстро, у каких-то нет
                    
                
                
                    
                        orignal
                    
                    
                        займусь где то через час
                    
                
                
                    
                        Vort
                    
                    
                        плохо я ещё понял работу пробива портов :( поэтому возник вопрос:
                    
                
                
                    
                        Vort
                    
                    
                        вот создал Чарли сессию к Бобу. создался маппинг локального IP:порта Чарли с внешним IP:портом (его NAT устройства)
                    
                
                
                    
                        Vort
                    
                    
                        и теперь что получается (в самом простом сценарии) - кто угодно может постучаться на внешний IP:порт Чарли и попасть на его внутренний (локальный) IP:порт?
                    
                
                
                    
                        Vort
                    
                    
                        если это то, как работает механизм, то сессия к интродьюсеру - это и весь пробив, который нужен. пока она жива, жив маппинг и все навешанные на него сессии к другим пирам
                    
                
                
                    
                        orignal
                    
                    
                        нет
                    
                
                
                    
                        orignal
                    
                    
                        снчала чарли пошлет HolePunch к Алисе
                    
                
                
                    
                        orignal
                    
                    
                        и там вообще может быть порт другой чем с бобом
                    
                
                
                    
                        Vort
                    
                    
                        значит, нужны ещё keepalive`ы :(
                    
                
                
                    
                        weko
                    
                    
                        [11:04:22] <orignal> но по хорошему надо в интревале 13-18 
                    
                
                
                    
                        weko
                    
                    
                        [11:04:36] <orignal> сам понимаешь почему
                    
                
                
                    
                        weko
                    
                    
                        Ага. Можно даже 10-18
                    
                
                
                    
                        Vort
                    
                    
                        а получилось 15-18. ну всё равно прогресс по сравнению с 30
                    
                
                
                    
                        Vort
                    
                    
                        теперь нужно тесты от юзеров с разным NAT
                    
                
                
                    
                        Vort
                    
                    
                        и можно будет подкручивать числа при необходимости
                    
                
                
                    
                        weko
                    
                    
                        Вот у WG 25 секунд например
                    
                
                
                    
                        Vort
                    
                    
                        ну мне важно было не выше 18 чтобы можно было в VirtualBox тестировать =)
                    
                
                
                    
                        Vort
                    
                    
                        а там мало ли - может кто-то из юзеров вообще постоянно держит узел в VirtualBox
                    
                
                
                    
                        Vort
                    
                    
                        так что неплохой ориентир, думаю
                    
                
                
                    
                        weko
                    
                    
                        Скорее qemu или в docker
                    
                
                
                    
                        weko
                    
                    
                        Кстати мне кажется часа мало
                    
                
                
                    
                        Vort
                    
                    
                        если кому-то интересно и этот кто-то не боится C# (Mono), то может потестировать моей програмкой - с какой задержки начинает прыгать порт
                    
                
                
                    
                        Vort
                    
                    
                        имею в виду потестировать qemu и docker
                    
                
                
                    
                        Vort
                    
                    
                        если там есть NAT конечно. ну должен быть наверное
                    
                
                
                    
                        weko
                    
                    
                        [14:08:07] <weko> Кстати мне кажется часа мало
                    
                
                
                    
                        weko
                    
                    
                        Может 2 часа поставить?
                    
                
                
                    
                        Vort
                    
                    
                        не надо пока что это трогать
                    
                
                
                    
                        weko
                    
                    
                        Почему? За 2 часа больше узлов получат RI -> больше транзита
                    
                
                
                    
                        Vort
                    
                    
                        ещё не до конца понятна живучесть сессий с интродьюсером
                    
                
                
                    
                        weko
                    
                    
                        Так время ничего не испортит
                    
                
                
                    
                        weko
                    
                    
                        Улучшит только
                    
                
                
                    
                        weko
                    
                    
                        Если сессия и не заканчивается, то будет жить дольше
                    
                
                
                    
                        Vort
                    
                    
                        так если рвётся сессия, то интродьюс перестаёт работать
                    
                
                
                    
                        Vort
                    
                    
                        а, я понял
                    
                
                
                    
                        weko
                    
                    
                        [14:13:06] <Vort> так если рвётся сессия, то интродьюс перестаёт работать
                    
                
                
                    
                        weko
                    
                    
                        Так нужен новый. Или восстановить сессию
                    
                
                
                    
                        orignal
                    
                    
                        еще лдин коммит сделал
                    
                
                
                    
                        orignal
                    
                    
                        чтобы говно мамонта не выбиралось в качестве интредьюсера
                    
                
                
                    
                        Vort
                    
                    
                        weko: я видел, что выбирался тот же самый интродьюсер кстати. ну или мне причудилось )
                    
                
                
                    
                        Vort
                    
                    
                        orignal: заведу значит сейчас XU в виртуалке. послежу за ним немного
                    
                
                
                    
                        weko
                    
                    
                        Для интродьюсеров вообще нужны самые качественные роутеры
                    
                
                
                    
                        weko
                    
                    
                        Если говорить про профилирование
                    
                
                
                    
                        weko
                    
                    
                        И нужно их точно на побольше. 2-3 часа
                    
                
                
                    
                        weko
                    
                    
                        А лучше случайное время в этом диапазоне
                    
                
                
                    
                        orignal
                    
                    
                        да надо 
                    
                
                
                    
                        orignal
                    
                    
                        с интродьюсерами вообще многое не сделано
                    
                
                
                    
                        Vort
                    
                    
                        orignal: хм. глянул коммит. или я что-то не так понял, или это немного не то
                    
                
                
                    
                        orignal
                    
                    
                        это еще другой
                    
                
                
                    
                        orignal
                    
                    
                        смысл в том что мы не берем сильно старые сессии для интродьюсера
                    
                
                
                    
                        orignal
                    
                    
                        потому что раньше могли взять сессию которая тут же протухнет
                    
                
                
                    
                        Vort
                    
                    
                        так проблема была чутка в другом
                    
                
                
                    
                        Vort
                    
                    
                        хотя не уверен
                    
                
                
                    
                        orignal
                    
                    
                        я в курсе
                    
                
                
                    
                        orignal
                    
                    
                        ту проблему я еще не сделал
                    
                
                
                    
                        Vort
                    
                    
                        мне казалось, что протухание было на уровне IdleTimeout
                    
                
                
                    
                        Vort
                    
                    
                        а. ок
                    
                
                
                    
                        Vort
                    
                    
                        два протухания ))
                    
                
                
                    
                        orignal
                    
                    
                        я просто увидел другую более серьезную
                    
                
                
                    
                        weko
                    
                    
                        orignal: у жабистов тоже 1 час иетродьюсеры?
                    
                
                
                    
                        Vort
                    
                    
                        тогда подожду ещё с XU узлом
                    
                
                
                    
                        orignal
                    
                    
                        да то же самое
                    
                
                
                    
                        weko
                    
                    
                        Tunnel creation success rate: 60%
                    
                
                
                    
                        orignal
                    
                    
                        ну неплохо 
                    
                
                
                    
                        weko
                    
                    
                        После обновления будет ещё лучше
                    
                
                
                    
                        orignal
                    
                    
                        у меня 42% на LU с Symmetric NAT
                    
                
                
                    
                        weko
                    
                    
                        SSU2_KEEP_ALIVE_INTERVAL = 15;
                    
                
                
                    
                        weko
                    
                    
                        SSU2_KEEP_ALIVE_INTERVAL_VARIANCE = 4;
                     
                
                
                    
                        weko
                    
                    
                        Это 11-19 выходит?
                    
                
                
                    
                        Vort
                    
                    
                        weko: ну я же сказал - 15..18
                    
                
                
                    
                        orignal
                    
                    
                        15-19
                    
                
                
                    
                        weko
                    
                    
                        Vort: 15+4 19 же
                    
                
                
                    
                        Vort
                    
                    
                        weko: 4 там не будет
                    
                
                
                    
                        orignal
                    
                    
                        а ну да
                    
                
                
                    
                        orignal
                    
                    
                        пох
                    
                
                
                    
                        Vort
                    
                    
                        да правильно, что 18. у меня на 19 порты уже менялись в VirtualBox
                    
                
                
                    
                        weko
                    
                    
                        В чём разница?
                    
                
                
                    
                        weko
                    
                    
                        SSU2_TO_INTRODUCER_SESSION_DURATION = 3600;
                     
                
                
                    
                        weko
                    
                    
                        SSU2_TO_INTRODUCER_SESSION_EXPIRATION = 4800;
                     
                
                
                    
                        Vort
                    
                    
                        я чую, что это очередная проблема, но пока молчу )
                    
                
                
                    
                        Vort
                    
                    
                        хотя раз уж начали говорить... keepalive ведь до 80 минут должен посылаться?
                    
                
                
                    
                        Vort
                    
                    
                        но из RI надо выкидывать на 60 минуте
                    
                
                
                    
                        Vort
                    
                    
                        ну так мне кажется логичным. может понимаю неверно
                    
                
                
                    
                        weko
                    
                    
                        Не логично
                    
                
                
                    
                        weko
                    
                    
                        Вроде каждому интродьюсеру в RI добавляется таймстамп
                    
                
                
                    
                        weko
                    
                    
                        Время истечения
                    
                
                
                    
                        Vort
                    
                    
                        +80 минут, да?
                    
                
                
                    
                        Vort
                    
                    
                        а выкинется из RI через 60 минут
                    
                
                
                    
                        weko
                    
                    
                        Ну должно быть столько, сколько интродьюсер выполняет свою работу
                    
                
                
                    
                        Vort
                    
                    
                        чтобы дать время RI разойтись по сети
                    
                
                
                    
                        Vort
                    
                    
                        короч мне кажется, что с выкидыванием из RI сессию дропать не надо. надо ещё 20 минут давать для тех юзеров, которые старым RI пользуются
                    
                
                
                    
                        Vort
                    
                    
                        иначе не вижу смысла в различных длительностях
                    
                
                
                    
                        weko
                    
                    
                        Да без разницы. Узлы всегда могут определить какой рабочий интродьюсер, а какой уже нет. Благо что время почти абсолютно для участников сети
                    
                
                
                    
                        Vort
                    
                    
                        сессия дропнута - тег выкинут - интродьюсер возвращает ошибку
                    
                
                
                    
                        Vort
                    
                    
                        короч интродьюс работает только пока жива сессия Боба и Чарли
                    
                
                
                    
                        weko
                    
                    
                        Ну это понятно
                    
                
                
                    
                        weko
                    
                    
                        Но мы то про время
                    
                
                
                    
                        Vort
                    
                    
                        ну вот если через 60 минут её закрыть, то уже никто не сможет этим интродьюсером воспользоваться
                    
                
                
                    
                        weko
                    
                    
                        Ну правильно
                    
                
                
                    
                        weko
                    
                    
                        И никто не будет
                    
                
                
                    
                        weko
                    
                    
                        [15:46:59] <weko> Вроде каждому интродьюсеру в RI добавляется таймстамп
                    
                
                
                    
                        weko
                    
                    
                        Время истечения
                    
                
                
                    
                        Vort
                    
                    
                        поэтому я и спросил - +80 добавляется?
                    
                
                
                    
                        weko
                    
                    
                        Врядли
                    
                
                
                    
                        weko
                    
                    
                        Не логично
                    
                
                
                    
                        weko
                    
                    
                        Я то откуда знаю
                    
                
                
                    
                        Vort
                    
                    
                        а какой тогда смысл в 80 ?
                    
                
                
                    
                        weko
                    
                    
                        Я же вопрос и задал 
                    
                
                
                    
                        Vort
                    
                    
                        :)
                    
                
                
                    
                        weko
                    
                    
                        Тоже хочу узнать...
                    
                
                
                    
                        Vort
                    
                    
                        своё объяснение понимания механизма я написал
                    
                
                
                    
                        Vort
                    
                    
                        теперь ждём, что orignal скажет
                    
                
                
                    
                        weko
                    
                    
                        Но он не нужен же если в RI пишет время истечения
                    
                
                
                    
                        weko
                    
                    
                        Пишется*
                    
                
                
                    
                        weko
                    
                    
                        SSU2: Unexpected message type 67 from {IP}:{port} of {length} bytes
                    
                
                
                    
                        weko
                    
                    
                        Интересно
                    
                
                
                    
                        Vort
                    
                    
                        очередной баг какой-то видимо так проявляется
                    
                
                
                    
                        weko
                    
                    
                        Может где-то едет смещение? Или где то не расшифровалось
                    
                
                
                    
                        weko
                    
                    
                        Надо такие сообщения сохранять
                    
                
                
                    
                        Vort
                    
                    
                        ну меня подозрения на две причины: потокобезопасность (так как было много такого в других местах) и big endian/little endian (не)совместимость (кое что у меня вызывало подозрение)
                    
                
                
                    
                        Vort
                    
                    
                        "<weko> Надо такие сообщения сохранять" - или брекпоинт в дебаггере ставить и гадать, что произошло
                    
                
                
                    
                        Vort
                    
                    
                        ещё вариант - побольше логирования вокруг этой проблемы наделать
                    
                
                
                    
                        Vort
                    
                    
                        ещё может быть "шум сети" виноват. надо проверять, действительно ли это i2p трафик
                    
                
                
                    
                        Vort
                    
                    
                        ещё может быть юзер сбросил ключи допустим, а наш узел пользуется старыми
                    
                
                
                    
                        Vort
                    
                    
                        ну это всё почти наугад причины. короч копать надо
                    
                
                
                    
                        Vort
                    
                    
                        вариант "атака" на последнем месте :))
                    
                
                
                    
                        weko
                    
                    
                        Интересно ещё, кто делает U узлы IBGW
                    
                
                
                    
                        Vort
                    
                    
                        так были же недавно исправления на эту тему
                    
                
                
                    
                        Vort
                    
                    
                        выбор рандом пира или что-то около того
                    
                
                
                    
                        Vort
                    
                    
                        был какой-то шанс выбрать неверно
                    
                
                
                    
                        weko
                    
                    
                        Аа
                    
                
                
                    
                        weko
                    
                    
                        Понятно
                    
                
                
                    
                        weko
                    
                    
                        Кстати а уже пофиксили что пробуется только один интродьюсе
                    
                
                
                    
                        weko
                    
                    
                        ?
                    
                
                
                    
                        Vort
                    
                    
                        по-моему там не так всё просто
                    
                
                
                    
                        Vort
                    
                    
                        мне казалось, что может быть несколько попыток
                    
                
                
                    
                        Vort
                    
                    
                        но может это из-за того, что я несколько туннелей делал по одному и тому же маршруту
                    
                
                
                    
                        Vort
                    
                    
                        то есть, тут скорее вопрос в том, "один" за какой промежуток времени. за время "жизни" сессии?
                    
                
                
                    
                        Vort
                    
                    
                        и если проблема проявляется в виде таймаута, то что тут вообще можно сделать?
                    
                
                
                    
                        Vort
                    
                    
                        вот если интродьюсер ответил, но, допустим, кодом 5, то можно попробовать ещё какой-то
                    
                
                
                    
                        weko
                    
                    
                        Vort: если таймаут то другой надо
                    
                
                
                    
                        weko
                    
                    
                        В любом случае если не получилось пробовать другой
                    
                
                
                    
                        user
                    
                    
                         weko, ты еще тестовый узел U держишь?
                    
                
                
                    
                        weko
                    
                    
                        Обновил
                    
                
                
                    
                        Vort
                    
                    
                        weko: на последний коммит?
                    
                
                
                    
                        weko
                    
                    
                        Да
                    
                
                
                    
                        Vort
                    
                    
                        интересно было бы узнать, какие таймауты для портов NAT наиболее распространены среди юзеров
                    
                
                
                    
                        Vort
                    
                    
                        но я даже примерные значения (10-20-30) еле нагуглил :(
                    
                
                
                    
                        Vort
                    
                    
                        может гуглил плохо, хз
                    
                
                
                    
                        Vort
                    
                    
                        от этого зависит, какой улучшательный потенциал у последних коммитов
                    
                
                
                    
                        user
                    
                    
                        Статистика после 20 часов аптаима: TCSR:58 R:1893 F:1066 TT:59 Transit:246.20 MiB
                    
                
                
                    
                        user
                    
                    
                        Имее смысл дальше её держать? Или можно гасить?
                    
                
                
                    
                        Vort
                    
                    
                        хорошо. получается около 50 транзитов в среднем
                    
                
                
                    
                        Vort
                    
                    
                        было бы неплохо, конечно, где-то до тыщи довести...
                    
                
                
                    
                        user
                    
                    
                        До тыщи часов?
                    
                
                
                    
                        Vort
                    
                    
                        до тыщи транзитов. багфиксами )
                    
                
                
                    
                        Vort
                    
                    
                        user: думаю, пока стоит выключать. а если ещё какой-то важный баг выловим, то ещё потестировать
                    
                
                
                    
                        user
                    
                    
                        Ок
                    
                
                
                    
                        Vort
                    
                    
                        если есть ещё и белый адрес и желание, могу показать, как измерить таймаут протухания порта у NAT
                    
                
                
                    
                        Vort
                    
                    
                        хотя для статистики это надо у многих юзеров измерить :(
                    
                
                
                    
                        user
                    
                    
                        Кстати, ты спрашивал выше про SSU2: Path challenge. За последние примерно 6 часов в логе записей набралось 51. Если это нужная информация.
                    
                
                
                    
                        Vort
                    
                    
                        это я так пытался угадать таймаут )
                    
                
                
                    
                        Vort
                    
                    
                        мне кажется, что у твоего NAT таймаут где-то минуту
                    
                
                
                    
                        Vort
                    
                    
                        у меня на 20 секундах таймаута лог был просто засран этими сообщениями
                    
                
                
                    
                        Vort
                    
                    
                        без NAT же, как я понимаю, этого сообщения вообще быть не должно
                    
                
                
                    
                        user
                    
                    
                        Есть
                    
                
                
                    
                        Vort
                    
                    
                        я выкладывал программу для тестов:  paste.i2pd.xyz/?be3d07d7bb76a5b6#7tKKYmjJixVwVYz4h9iakffVimSqCMAMSwN6AMjFm6EP  
                    
                
                
                    
                        Vort
                    
                    
                        под линуксом её через Mono собрать можно: mcs Program.cs
                    
                
                
                    
                        Vort
                    
                    
                        потом запуск mono Program.exe
                    
                
                
                    
                        Vort
                    
                    
                        ну или UDPTest.cs / UDPTest.exe лучше
                    
                
                
                    
                        Vort
                    
                    
                        на белом адресе надо запустить "UDPTest s белый_адрес порт"
                    
                
                
                    
                        Vort
                    
                    
                        на сером адресе - "UDPTest c белый_адрес порт 1000 1"
                    
                
                
                    
                        Vort
                    
                    
                        1000 - это таймаут. 1 секунда то есть
                    
                
                
                    
                        Vort
                    
                    
                        будут посылаться пакеты каждую секунду. сервер будет их ловить и отображать порт
                    
                
                
                    
                        Vort
                    
                    
                        с таймаутом секунда порт будет всегда одинаковым у следующих друг за другом пакетов
                    
                
                
                    
                        Vort
                    
                    
                        а вот если таймаут превысит определённый порог (допустим, 20000), то порты будут у каждого пакета разные
                    
                
                
                    
                        Vort
                    
                    
                        и вот этот самый порог и желательно знать для разных юзеров (ну или хотя бы хоть для кого-то)
                    
                
                
                    
                        Vort
                    
                    
                        можно ставить 1000, потом 5000, потом 10000 и так далее - пока порт не начнёт "прыгать"
                    
                
                
                    
                        Vort
                    
                    
                        если с Mono будут проблемы, то можно по этому принципу на чём-то другом написать аналогичную програмку - она не сложная
                    
                
                
                    
                        orignal
                    
                    
                        что сказать  то?
                    
                
                
                    
                        Vort
                    
                    
                        ну для начала - какой таймаут пишется в RI - INTRODUCER_SESSION_DURATION  или INTRODUCER_SESSION_EXPIRATION
                    
                
                
                    
                        orignal
                    
                    
                        expiration
                    
                
                
                    
                        orignal
                    
                    
                        то что в iExp
                    
                
                
                    
                        Vort
                    
                    
                        а меняться в RI интродьюсер должен через сколько?
                    
                
                
                    
                        orignal
                    
                    
                        не помню смотреть по коду надо
                    
                
                
                    
                        orignal
                    
                    
                        с дедом это обсуждали
                    
                
                
                    
                        Vort
                    
                    
                        а сессия с интродьюсером жить должна сколько?
                    
                
                
                    
                        Vort
                    
                    
                        мне кажется, что 80. но это просто по логике. моей логике )
                    
                
                
                    
                        orignal
                    
                    
                        сколько EXPIRATION
                    
                
                
                    
                        orignal
                    
                    
                        но когда истекает DURATION то интродьюсер в RI меняется на новый
                    
                
                
                    
                        Vort
                    
                    
                        ну вот мне кажется, что сессия живёт 60. то есть, баг
                    
                
                
                    
                        orignal
                    
                    
                        тем не менее в старой keepalive шлется до EXPIRATION
                    
                
                
                    
                        Vort
                    
                    
                        ах вот как
                    
                
                
                    
                        orignal
                    
                    
                        if (ts < session->GetCreationTime () + SSU2_TO_INTRODUCER_SESSION_EXPIRATION)
                     
                
                
                    
                        orignal
                    
                    
                        session->SendKeepAlive ();
                    
                
                
                    
                        Vort
                    
                    
                        тогда мне надо будет получше рассмотреть
                    
                
                
                    
                        orignal
                    
                    
                        должна жить 80
                    
                
                
                    
                        orignal
                    
                    
                        но после 60 не публикется в новом RI
                    
                
                
                    
                        orignal
                    
                    
                        но со страрого может 
                    
                
                
                    
                        Vort
                    
                    
                        orignal: короче похоже старой сессии (которой ещё 20 минут надо слать keepalive) просто "жить" негде
                    
                
                
                    
                        Vort
                    
                    
                        в auto& introducers = v4 ? m_Introducers : m_IntroducersV6 похоже хранятся только те, которые в RI
                    
                
                
                    
                        orignal
                    
                    
                        надо подумать
                    
                
                
                    
                        Vort
                    
                    
                        я на 90% уверен, что это баг, но уже сегодня не буду подбирать доказательства
                    
                
                
                    
                        orignal
                    
                    
                        скорее всего да
                    
                
                
                    
                        orignal
                    
                    
                        я просто не доделал
                    
                
                
                    
                        orignal
                    
                    
                        как обычно
                    
                
                
                    
                        orignal
                    
                    
                        надо сделать список implied introducers
                    
                
                
                    
                        orignal
                    
                    
                        Vort я это поправил
                    
                
                
                    
                        weko
                    
                    
                        [17:34:58] <user> Статистика после 20 часов аптаима: TCSR:58 R:1893 F:1066 TT:59 Transit:246.20 MiB
                    
                
                
                    
                        weko
                    
                    
                        У меня было 800 мб