if (guts == OSPFC_dbguts_null_CNS ||
guts->where == OSPFC_on_free_list_E ||
(metric = RSG_swap32_MAC (db->adv.ase->tos0.tos_metric)) == OSPFC_ls_infinity_CNS ||
db->adv.sum->ls_hdr.ls_age >= OSPFC_MaxAge_CNS ||
db->key[OSPFC_ls_id_E] == OSPFC_ospf.my_rtr_id ||
db->key[OSPFC_adv_rtr_E] == OSPFC_ospf.my_rtr_id ||
((route = OSPFP_rtr_findroute (OSPFC_area_null_CNS,
db->key[OSPFC_ls_id_E],
OSPFC_dtype_asbr_CNS,
OSPFC_ptype_intra_CNS)) != OSPFC_route_null_CNS &&
(area->trans_capable == FALSE ||
(route_info = &route->ospf_rt_info,
route_info->area->area_id != OSPFC_backbone_id_CNS))))
guts->where == OSPFC_on_free_list_E ||
(metric = RSG_swap32_MAC (db->adv.ase->tos0.tos_metric)) == OSPFC_ls_infinity_CNS ||
db->adv.sum->ls_hdr.ls_age >= OSPFC_MaxAge_CNS ||
db->key[OSPFC_ls_id_E] == OSPFC_ospf.my_rtr_id ||
db->key[OSPFC_adv_rtr_E] == OSPFC_ospf.my_rtr_id ||
((route = OSPFP_rtr_findroute (OSPFC_area_null_CNS,
db->key[OSPFC_ls_id_E],
OSPFC_dtype_asbr_CNS,
OSPFC_ptype_intra_CNS)) != OSPFC_route_null_CNS &&
(area->trans_capable == FALSE ||
(route_info = &route->ospf_rt_info,
route_info->area->area_id != OSPFC_backbone_id_CNS))))


Хотя учитывая невысокое качество современных тайтлов, я от такого события на стенку лезть не буду.
Китайцы active probe придумали потому что сложность и ширина задачи у них сильно другая. В их случае нужно контролировать все, включая до сели невиданные протоколы и их реализации. В нашем же случае нужно контролировать ВСЕГДА МАССОВЫЙ протокол и его реализации. Говоря более понятным языком, китайцам нужно, чтобы даже блоха не проскочила, а нам и ружья на слона хватит. Но это все лирика, давай возьмем немно конкретики.
goo.gl/l10a8x (www.openu.ac.il/home/mikel/papers/60490373 [ 1 ].pdf) - вот хорошая статья на тему практической реализации алгоритмов распознавания шифрованного трафика на основе статистической классификации. И там как раз уделено немалое внимание распознаванию шифрованного bittorrent трафика. Пара ключевых тезисов оттуда:
Memory. The algorithm used 76 bytes per flow on the statistics collection phase and one Megabyte for the training set. Taking into account a concurrency level of a few thousand flows (in the classification phase) and the use of an LRU table, the classifier uses only 4-5Mb. This is a very low figure (for core classifiers) and fits our realtime low memory usage requirement.
Performance. Running the algorithm did not appear to exert any stress on the CPU.
Дело было в 2010м году.
Все еще будешь спорить?
Хотя я не удивлен, что ты в очередной раз пытаешься съехать на экономику... ¬ ͜ ¬
@whowas