This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
software:article:utp_dpi [2015/05/23 13:24] – [Типы пакетов] root | software:article:utp_dpi [2015/05/23 14:30] – [Заход 2: ng_utp] root | ||
---|---|---|---|
Line 84: | Line 84: | ||
Вообще довольно запутанная и странная схема установления соединения: | Вообще довольно запутанная и странная схема установления соединения: | ||
- | > SYN: connid=34 - запрос на установление соединения\\ | + | > SYN: connid=34 - запрос на установление соединения\\ |
- | < STATE: connid=34 - подтверждение\\ | + | < STATE: connid=34 - подтверждение\\ |
- | > DATA: connid=35 - передача данных\\ | + | > DATA: connid=35 - передача данных\\ |
- | < STATE: connid=34 - подтверждение передачи данных\\ | + | < STATE: connid=34 - подтверждение передачи данных\\ |
Те инициатор соединения задаёт номер соединения в первом пакете а в дальнейшем использует номер на единицу больше.\\ | Те инициатор соединения задаёт номер соединения в первом пакете а в дальнейшем использует номер на единицу больше.\\ | ||
Line 131: | Line 131: | ||
[[ru: | [[ru: | ||
Прошло полтора года, я успел покопаться в ядре FreeBSD и netgraph, лучше узнать как работает сеть и пришла мысль: uTP имеет состояния аналогичные TCP, значит чтобы его 100% определять нужно эти состояния отслеживать.\\ | Прошло полтора года, я успел покопаться в ядре FreeBSD и netgraph, лучше узнать как работает сеть и пришла мысль: uTP имеет состояния аналогичные TCP, значит чтобы его 100% определять нужно эти состояния отслеживать.\\ | ||
- | Заодно я ещё раз заглянул в libuTP и получше посмотрел за что можно зацепится.\\ | + | Заодно я ещё раз заглянул в [[https:// |
- | За сигнатуры | + | За сигнатуры решил не цепляться, |
Идеальный вариант это свой " | Идеальный вариант это свой " | ||
- | В итоге получилась netgraph нода, которую можно подключать к L2 хукам типа ng_ether или L3 хукам, например ng_ipfw. В первом случае можно вообще сделать прозрачный эзернет мост из двух сетевух (не обязательно физических). Ещё можно просто поставить | + | В итоге получилась netgraph нода, которую можно подключать к L2 хукам типа ng_ether или L3 хукам, например ng_ipfw. В первом случае можно вообще сделать прозрачный эзернет мост из двух сетевух (не обязательно физических). Ещё можно просто поставить |
- | Результатов замеров производительности | + | Результатов замеров производительности не сохранил.\\ |
Однако нода без проблем параллелится по ядрам, может выполнятся как контексте ISR так и потоками netgraph, взаимные блокировки потоков сведены к минимуму.\\ | Однако нода без проблем параллелится по ядрам, может выполнятся как контексте ISR так и потоками netgraph, взаимные блокировки потоков сведены к минимуму.\\ | ||
Line 164: | Line 164: | ||
< | < | ||
Чтобы сгенерировать RST пакет все данные есть: src ip:port + dst ip:port, pkt_ver, connid, ack_nr, seq_nr. | Чтобы сгенерировать RST пакет все данные есть: src ip:port + dst ip:port, pkt_ver, connid, ack_nr, seq_nr. | ||
- | Фактически у IP/UDP пакета заменяются данные, | + | Фактически у IP/UDP пакета заменяются данные, |
- | Подробнее про счётчики - по <a href=" | + | Сейчас это всё ещё может быть актуальным для различных беспроводных сетей и офисных сетей, остальные уже обновились и расширились.\\ |
- | + | ||
- | Сейчас это всё ещё может быть актуальным для различных беспроводных сетей и офисных сетей, остальные уже обновились и расширились. | + | |
===== Сигнатуры ===== | ===== Сигнатуры ===== | ||
- | Провайдеры искали способ как быстро нормализовать работу сети и решили фильтровать uTP по сигнатурам пакетов, | + | Администраторы искали способ как быстро нормализовать работу сети и решили фильтровать uTP по сигнатурам пакетов, |
" | " | ||
- | Притом, | + | Притом, |
- | Спустя пару месяцев " | + | Спустя пару месяцев " |
- | Ещё через некоторое время авторы поменяли пару незначительных для протокола начальных значений в SYN пакете и что то <a href="http:// | + | Ещё через некоторое время авторы |
- | После того как ng_utp был написан стало понятно что проверять корректность работы с помощью tcpdump без правильных сигнатур мягко говоря не удобно - слишком много лишнего приходилось пробегать глазами. | + | После того как ng_utp был написан стало понятно что проверять корректность работы с помощью tcpdump без правильных сигнатур мягко говоря не удобно - слишком много лишнего приходилось пробегать глазами.\\ |
- | Я ещё раз пробежался по коду | + | Я ещё раз пробежался по коду |