Инструменты пользователя

Инструменты сайта


ru:software:freebsd:ng_utp

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
ru:software:freebsd:ng_utp [2015/05/15 22:48]
root
ru:software:freebsd:ng_utp [2015/05/21 19:12] (текущий)
root [Возможности]
Строка 1: Строка 1:
-====== uTP (udp torrent) netgraph node ======+====== ​FreeBSD ​uTP (udp torrent) netgraph node ====== 
 +Средство для работы с uTP проколом,​ заменяет [[ru:​software:​freebsd:​utp_ctrl_daemon|uTPControl - block uTP torrent proto]]\\ 
 + 
 +**Скачать**:​ [[http://​www.netlab.linkpc.net/​download/​software/​FreeBSD/​ng_utp/​|ng_utp]]\\ 
 +**Лицензия**:​ BSD\\ 
  
 ===== Возможности ===== ===== Возможности =====
-Нода может работать на: +Нода может работать на хуках
-  * L2Ethernet, есть поддержка вланов:​ все тегированные пакеты обрабатываются в нормальном режиме,​ дополнительных действий не требуется,​ ограничений на количество вланов нет; +  ​* **L2** - (ng_ether и др) Ethernet, есть поддержка вланов:​ все тегированные пакеты обрабатываются в нормальном режиме,​ дополнительных действий не требуется,​ ограничений на количество вланов нет; 
-  * L3IPv4, IPv6 (пока не реализовано).+  ​* **L3** - (ng_ipfw и др) IPv4, IPv6 (пока не реализовано).
 Одну ноду одновременно можно подключать к различным источниками трафика,​ как L2 так и L3 одновременно,​ ограничений нет. Одну ноду одновременно можно подключать к различным источниками трафика,​ как L2 так и L3 одновременно,​ ограничений нет.
  
Строка 32: Строка 37:
 NGM_UTP_SET_NODE_CFG("​**setcfg**"​) - установить новые параметры конфигурации.\\ NGM_UTP_SET_NODE_CFG("​**setcfg**"​) - установить новые параметры конфигурации.\\
  
-параметры:\\ +Параметры 
-**ip_conns_max** (uint32_t) - максимальное количество отслеживаемых L3-L4 соединений.\\ +  ​* ​**ip_conns_max** (uint32_t) - максимальное количество отслеживаемых L3-L4 соединений. 
-**utp_conns_max** (uint32_t) - максимальное количество отслеживаемых uTP (L5) внутри L3-L4 соединений,​ должно быть больше ip_conns_max.\\ +  ​* ​**utp_conns_max** (uint32_t) - максимальное количество отслеживаемых uTP (L5) внутри L3-L4 соединений,​ должно быть больше ip_conns_max. 
-**conn_ack_timeout** (uint32_t) - время (секунды) в течении которого должен придти ответный uTP пакет в соединении. Если пакет пришёл позднее - действия не применяются.\\ +  ​* ​**conn_ack_timeout** (uint32_t) - время (секунды) в течении которого должен придти ответный uTP пакет в соединении. Если пакет пришёл позднее - действия не применяются. 
-**conn_idle_timeout** (uint32_t) - максимальное время (секунды) не активности после которого соединение удаляется из таблицы.\\+  ​* ​**conn_idle_timeout** (uint32_t) - максимальное время (секунды) не активности после которого соединение удаляется из таблицы.
 <​code>​ngctl msg ipfw:1000 getcfg <​code>​ngctl msg ipfw:1000 getcfg
 Rec'd response "​getcfg"​ (1) from "​[1a]:":​ Rec'd response "​getcfg"​ (1) from "​[1a]:":​
Строка 44: Строка 49:
 ==== Статус ноды ==== ==== Статус ноды ====
 NGM_UTP_GET_NODE_STATUS("​**getstatus**"​) - возвращает текущее состояние ноды\\ NGM_UTP_GET_NODE_STATUS("​**getstatus**"​) - возвращает текущее состояние ноды\\
-Все счётчики uint64_t.\\ +Все счётчики uint64_t. 
-**ipv4_conns** - количество IPv4+UDPv4 соединений в таблице\\ +  ​* ​**ipv4_conns** - количество IPv4+UDPv4 соединений в таблице 
-**ipv6_conns** - количество IPv6+UDPv6 соединений в таблице\\ +  ​* ​**ipv6_conns** - количество IPv6+UDPv6 соединений в таблице 
-**ip_conns_total** - общее количество IP+UDP соединений,​ сумма двух предыдущих\\ +  ​* ​**ip_conns_total** - общее количество IP+UDP соединений,​ сумма двух предыдущих 
-**ip_conns_max** - максимально возможное количество IP+UDP соединений. Обычно чуть больше или равно тому что задано в конфиге.\\ +  ​* ​**ip_conns_max** - максимально возможное количество IP+UDP соединений. Обычно чуть больше или равно тому что задано в конфиге. 
-**utpv0_conns** - количество utp v0 соединений в таблице\\ +  ​* ​**utpv0_conns** - количество utp v0 соединений в таблице 
-**utpv1_conns** - количество utp v1 соединений в таблице\\ +  ​* ​**utpv1_conns** - количество utp v1 соединений в таблице 
-**utp_conns_total** - общее количество utp соединений,​ сумма двух предыдущих\\ +  ​* ​**utp_conns_total** - общее количество utp соединений,​ сумма двух предыдущих 
-**utp_conns_max** - максимально возможное количество utp соединений. Обычно чуть больше или равно тому что задано в конфиге.\\ +  ​* ​**utp_conns_max** - максимально возможное количество utp соединений. Обычно чуть больше или равно тому что задано в конфиге. 
-**mem_ip_conns** - всего памяти использовано для хранения информации об IP-UDP соединениях\\ +  ​* ​**mem_ip_conns** - всего памяти использовано для хранения информации об IP-UDP соединениях 
-**mem_utp_conns** - всего памяти использовано для хранения информации об uTP соединениях\\ +  ​* ​**mem_utp_conns** - всего памяти использовано для хранения информации об uTP соединениях 
-**mem_total** - всего памяти,​ сумма двух предыдущих\\ +  ​* ​**mem_total** - всего памяти,​ сумма двух предыдущих
 <​code>​ngctl msg ipfw:1000 getstatus <​code>​ngctl msg ipfw:1000 getstatus
 Rec'd response "​getstatus"​ (3) from "​[1a]:":​ Rec'd response "​getstatus"​ (3) from "​[1a]:":​
Строка 66: Строка 70:
 NGM_UTP_CLR_NODE_STAT("​**clrstat**"​) - очистить\\ NGM_UTP_CLR_NODE_STAT("​**clrstat**"​) - очистить\\
 NGM_UTP_GETCLR_NODE_STAT("​**getclrstat**"​) - получить и очистить\\ NGM_UTP_GETCLR_NODE_STAT("​**getclrstat**"​) - получить и очистить\\
-Все счётчики uint64_t.\\ +Все счётчики uint64_t. 
-**ipv4_conns** - всего IPv4 соединений было добавлено в таблицу\\ +  ​* ​**ipv4_conns** - всего IPv4 соединений было добавлено в таблицу 
-**ipv6_conns** - всего IPv6 соединений было добавлено в таблицу\\ +  ​* ​**ipv6_conns** - всего IPv6 соединений было добавлено в таблицу 
-**ip_conns_total** - всего IP соединений,​ сумма двух предыдущих\\ +  ​* ​**ip_conns_total** - всего IP соединений,​ сумма двух предыдущих 
-**utpv0_conns** - всего uTPv0 соединений было добавлено в таблицу\\ +  ​* ​**utpv0_conns** - всего uTPv0 соединений было добавлено в таблицу 
-**utpv1_conns** - всего uTPv1 соединений было добавлено в таблицу\\ +  ​* ​**utpv1_conns** - всего uTPv1 соединений было добавлено в таблицу 
-**utp_conns_total** - всего uTP соединений,​ сумма двух предыдущих\\ +  ​* ​**utp_conns_total** - всего uTP соединений,​ сумма двух предыдущих 
-**memoryFailures** - ошибок выделения памяти\\ +  ​* ​**memoryFailures** - ошибок выделения памяти
 <​code>​ngctl msg ipfw:1000 getstat <​code>​ngctl msg ipfw:1000 getstat
 Rec'd response "​getstat"​ (4) from "​[1a]:":​ Rec'd response "​getstat"​ (4) from "​[1a]:":​
Строка 107: Строка 110:
 **l3_proto** (uint16_t) - тип фильтра:​ 0 в случае ethernet, 0x0800 - для IPv4, 0x86DD - для IPv6\\ **l3_proto** (uint16_t) - тип фильтра:​ 0 в случае ethernet, 0x0800 - для IPv4, 0x86DD - для IPv6\\
 **action** (uint16_t) - действие выполняемое фильтром:​\\ **action** (uint16_t) - действие выполняемое фильтром:​\\
-    ​**0** - UTP_FLT_ACCTION_PASS - ничего не делать с uTP, только выстраивать таблицу соединений\\ +  * **0** - UTP_FLT_ACCTION_PASS - ничего не делать с uTP, только выстраивать таблицу соединений 
-    **1** - UTP_FLT_ACCTION_PASS_MARK - маркировать все uTP пакеты относящиеся к uTP соединениям (см флаги UTP_FLT_FLAG_MARK_L2 и UTP_FLT_FLAG_MARK_L3)\\ +  ​* ​**1** - UTP_FLT_ACCTION_PASS_MARK - маркировать все uTP пакеты относящиеся к uTP соединениям (см флаги UTP_FLT_FLAG_MARK_L2 и UTP_FLT_FLAG_MARK_L3) 
-    **2** - UTP_FLT_ACCTION_DROP - уничтожать все uTP пакеты относящиеся к uTP соединениям\\ +  ​* ​**2** - UTP_FLT_ACCTION_DROP - уничтожать все uTP пакеты относящиеся к uTP соединениям 
-    **3** - UTP_FLT_ACCTION_SND_RST - заменять на uTP RST все uTP пакеты относящиеся к uTP соединениям\\+  ​* ​**3** - UTP_FLT_ACCTION_SND_RST - заменять на uTP RST все uTP пакеты относящиеся к uTP соединениям
 **flags** (uint32_t) - флаги: **flags** (uint32_t) - флаги:
-    ​**0x00000001** - UTP_FLT_FLAG_FORCE_QUEUE_H0\\ +  * **0x00000001** - UTP_FLT_FLAG_FORCE_QUEUE_H0 
-    **0x00000002** - UTP_FLT_FLAG_FORCE_QUEUE_H1 - принудительно использовать очередь для хука в фильтре. Включение очередей может помочь равномерно распределять нагрузку между процессорами. +  ​* ​**0x00000002** - UTP_FLT_FLAG_FORCE_QUEUE_H1 - принудительно использовать очередь для хука в фильтре. Включение очередей может помочь равномерно распределять нагрузку между процессорами. 
-    **0x00000004** - UTP_FLT_FLAG_NO_PASS - не пропускать транзитом,​ только сгенерированные RST будут отправлены\\ +  ​* ​**0x00000004** - UTP_FLT_FLAG_NO_PASS - не пропускать транзитом,​ только сгенерированные RST будут отправлены 
-    **0x00000010** - UTP_FLT_FLAG_MARK_L2 - маркировать на L2 пакеты относящиеся к uTP соединениями. Действие фильтра должно быть UTP_FLT_ACCTION_PASS_MARK. Метка - PCP хранится в label_l2, первые 3 бита.\\ +  ​* ​**0x00000010** - UTP_FLT_FLAG_MARK_L2 - маркировать на L2 пакеты относящиеся к uTP соединениями. Действие фильтра должно быть UTP_FLT_ACCTION_PASS_MARK. Метка - PCP хранится в label_l2, первые 3 бита. 
-    **0x00000020** - UTP_FLT_FLAG_MARK_L3 - маркировать на L3 пакеты относящиеся к uTP соединениями. Действие фильтра должно быть UTP_FLT_ACCTION_PASS_MARK. Метка - DSCP хранится в label_l3, первые 6 бит.\\ +  ​* ​**0x00000020** - UTP_FLT_FLAG_MARK_L3 - маркировать на L3 пакеты относящиеся к uTP соединениями. Действие фильтра должно быть UTP_FLT_ACCTION_PASS_MARK. Метка - DSCP хранится в label_l3, первые 6 бит. 
-    **0x00000100** - UTP_FLT_FLAG_CSUM_IP_CHK - проверять контрольную сумму IPv4 пакетов.\\ +  ​* ​**0x00000100** - UTP_FLT_FLAG_CSUM_IP_CHK - проверять контрольную сумму IPv4 пакетов. 
-    **0x00000200** - UTP_FLT_FLAG_CSUM_UDP_CHK - проверять контрольную сумму UDP пакетов.\\ +  ​* ​**0x00000200** - UTP_FLT_FLAG_CSUM_UDP_CHK - проверять контрольную сумму UDP пакетов. 
-    **0x00000400** - UTP_FLT_FLAG_CSUM_UDP_NO_CSUMM - не рассчитывать контрольную сумму для сгенерированных uTP RST пакетов.\\+  ​* ​**0x00000400** - UTP_FLT_FLAG_CSUM_UDP_NO_CSUMM - не рассчитывать контрольную сумму для сгенерированных uTP RST пакетов.
 **label_l2** (uint8_t) - L2 - Priority Code Point метка пакета,​ первые 3 бита.\\ **label_l2** (uint8_t) - L2 - Priority Code Point метка пакета,​ первые 3 бита.\\
 **label_l3** (uint8_t) - L3 ip_tos/​Traffic Class code (rfc2474) метка пакета,​ первые 6 бит.\\ **label_l3** (uint8_t) - L3 ip_tos/​Traffic Class code (rfc2474) метка пакета,​ первые 6 бит.\\
Строка 153: Строка 156:
 NGM_UTP_CLR_FILTER_STATS ("​**clrfilterstats**"​)\\ NGM_UTP_CLR_FILTER_STATS ("​**clrfilterstats**"​)\\
 NGM_UTP_GETCLR_FILTER_STATS ("​**getclrfilterstats**"​)\\ NGM_UTP_GETCLR_FILTER_STATS ("​**getclrfilterstats**"​)\\
-Все счётчики uint64_t.\\ +Все счётчики uint64_t. 
-**Octets** - байт прошло через фильтр.\\ +  ​* ​**Octets** - байт прошло через фильтр. 
-**Packets** - количество пакетов прошедших через фильтр.\\ +  ​* ​**Packets** - количество пакетов прошедших через фильтр. 
-**IPv4_Packets** - количество IPv4 пакетов прошедших через фильтр.\\ +  ​* ​**IPv4_Packets** - количество IPv4 пакетов прошедших через фильтр. 
-**IPv6_Packets** - количество IPv6 пакетов прошедших через фильтр.\\ +  ​* ​**IPv6_Packets** - количество IPv6 пакетов прошедших через фильтр. 
-**MatchedPackets** - пакеты опознанные как uTP, к которым были применены действия.\\ +  ​* ​**MatchedPackets** - пакеты опознанные как uTP, к которым были применены действия. 
-**BypassPackets** - пакетов прошедшие через фильтр без изменений.\\ +  ​* ​**BypassPackets** - пакетов прошедшие через фильтр без изменений. 
-**DroppedPackets** - отброшенные пакеты.\\ +  ​* ​**DroppedPackets** - отброшенные пакеты. 
-**recvErrors** - ошибки приёма:​ отсутствует заголовок,​ не удалось выделить память,​ неправильный заголовок,​ ошибочная контрольная сумма и тп.\\ +  ​* ​**recvErrors** - ошибки приёма:​ отсутствует заголовок,​ не удалось выделить память,​ неправильный заголовок,​ ошибочная контрольная сумма и тп. 
-**xmitErrors** - ошибки отправки.\\+  ​* ​**xmitErrors** - ошибки отправки.
 <​code>​ngctl msg ipfw:1000 getfilterstats '"​in"'​ <​code>​ngctl msg ipfw:1000 getfilterstats '"​in"'​
 Rec'd response "​getfilterstats"​ (9) from "​[1a]:":​ Rec'd response "​getfilterstats"​ (9) from "​[1a]:":​
Строка 168: Строка 171:
  
  
- +==== Проверка работоспособности ==== 
-===== Исходники ===== +см [[ru:software:freebsd:​utp_ctrl_daemon#​Проверка работоспособности|uTPControl - block uTP torrent proto]]
-[[http://​www.netlab.linkpc.net/​download/​software/​FreeBSD/​ng_utp/​|http://​www.netlab.linkpc.net/​download/​software/​FreeBSD/​ng_utp/​]]+
ru/software/freebsd/ng_utp.1431730132.txt.gz · Последние изменения: 2015/05/15 22:48 — root