То есть как подключить свои серверы к интернету.Как вообще устроен интернет. Основа - физическая инфраструктура, то есть, грубо говоря, кабельные сети. Не будет канальной емкости - не будет быстрого интернета. Затем, поверх этой инфраструктуры обеспечивается IP-связность, для обмена данными об IP-сетях используется протокол BGP. У каждого "кусочка интернета" есть свой номер автономной системы (AS в терминах BGP), своя доля адресного пространства IP и оборудование, обеспечивающее IP/BGP функциональность. Каждая такая автономная система устанавливает отношения с другими автономными системами, может слать трафик до их сетей и принимать трафик от них. Очень часто в этих отношениях доминирует коммерческая нота или политика другого уровня.
Нужно чтобы и Узбекистанцам не было проблем с трафиком. Трафик внутри Узбекистана бесплатен, а мир дороговато (ваши 20-100 мб/с (безлимит) = у нас 1-4 мб/с (500 - 10000 мб)).Теперь применим это к Узбекистану. Насколько я понял (а помог мне этот сайт), "точкой входа" зарубежного трафика для Узбекистана является Узбектелеком, AS28910. Узбектелеком меняется трафиком с российскими, казахским и немецким операторами связи, притом, практически наверняка, платит за это приличные деньги.
Чем, например, моя реализация хуже той, что представлена в каком-нибудь криптопровайдере (я говорю не о скорости работы, а о безопасности)?Тем, что существующие реализации имеют некоторую историю эксплуатации или даже прикладного криптоанализа. Поэтому авторы этих реализаций имеют внешнюю оценку своих решений. У вас такой оценки, я полагаю, нет. Будет очень грустно, когда об уязвимости вы узнаете уже после того, как при помощи эксплуатации этой уязвимости будет нанесен ущерб.
В общем, что стоит помнить/знать/понимать, чтобы сделать свою реализацию такой же надёжной, как и промышленные аналоги?Следует иметь в виду, что одна лишь математически корректная реализация не гарантирует надежности/безопасности. Следует учитывать поведение системы в целом. Если ваше решение - некий общедоступный сервер, то имейте в виду, что третья сторона может с некоей точностью замерять ответы вашей системы на поступающие запросы и делать из этого выводы. Если ваше решение - смарт-карта, то будьте готовы к тому, что третья сторона может измерять потребление электричества в разные моменты времени и делать из этого выводы, целенаправленно изменять напряжение питания и тактовую частоту процессора, подвергать систему воздействию ионизирующего излучения с целью нарушения работы алгоритма и анализа данных, полученных в ходе наблюдения. Если вы даже всего лишь пишете простую программу на языке высокого уровня, будьте готовы к тому, что нюансы этого языка приведут к некоторым последствиям.
Возможно ли это вообще в Scapy?Вы можете создать фрейм при помощи конструктора e=Ether(src='AA:AA:AA:AA:AA:AA',dst='01:80:c2:00:00:02',type=0x8809), и далее самостоятельно задать значение поля данных (e.payload=data, где data имеет тип Packet или str)
e=Ether(src='AA:AA:AA:AA:AA:AA',dst='01:80:c2:00:00:02',type=0x8809)
class EthernetOAM(Packet):
name='Ethernet OAM'
fields_desc=[
ByteField('Subtype',3),
ByteField('Flags',0),
ByteField('Code',0),
]
OAM=EtherOAM()
OAM.payload="data+padding"
e.payload=OAM
OAM
>>> <EthernetOAM |<Raw load='data+padding' |>>
e
>>> <Ether dst=01:80:c2:00:00:02 src=AA:AA:AA:AA:AA:AA type=0x8809 |<EthernetOAM |<Raw load='data+padding' |>>>
Если нет, то есть ли инструменты, которые позволяют сформировать и отправить такие PDU?Инструментов много (как пример, trafgen или mausezahn в составе пакета netsniff-ng), но формировать поле данных вам придется самому, скорее всего.
Скорость на прямую, при подключении кабеля к сетевой карте 40-50 мбит/сек. При подключении через роутер скорость не поднимается больше 20 мбит/сек.Что такое "скорость"? Как вы ее измеряете? Через speedtest.net и подобные сервисы? Как вы получаете интернет (используется ли VPN или PPPoE)?
Почему так может быть?Возможные варианты (список неполный):
Интернет через pppoe. Скорость заметил на торрентах, да и на тестах тоже самое. Данная проблема была не всегда, а появилась совсем не давно. Не прошивал, не настраивал.
Что такое «асимптотически точная оценка времени работы алгоритма»?Если речь идет о Θ-нотации, то это функция (или множество функций), растущая так же быстро, как и время работы алгоритма с увеличением длины входных данных.
Оценка Θ() существует только тогда, когда O() и Ω() совпадают и равна им.Это положение мне представляется частично верным. Если f(n)=O(g(n)) и f(n)=Ω(g(n)), то f(n)=Θ(g(n)), где g(n) - некая функция, например, вида nlogn. Другое дело, что если f(n)=O(n), то также верно, что f(n)=O(n^2), то есть, несмотря на то, что у функции есть Θ-оценка, ее O- и Ω-оценки могут не совпадать.
Итак, O() - асимптотическая оценка алгоритма на худших входных данных, Ω() - на лучших входных данныхЕсли определить "лучшие"/"худшие" данные как требующие минимального/максимального времени среди наборов входных данных такой же длины, то это утверждения мне также представляется частично корректным. Количество операций, которое выполняет алгоритм в худшем, среднем и лучшем случаях - это функции от длины входных данных. Каждую из этих функций можно оценить при помощи каждой из трех (Ω,Θ,O) нотаций.
С моей точки зрения, корректно также будет сказать, что средняя оценка также равна O(nlogn) или Ω(n).
Известно, что например для сортировки qsort средняя оценка для случайного распределения входных данных (она же лучшая, для полностью сбаллансированного варианта) равна Θ(nlogn),
тогда как верхняя оценка (для специально подобранных неоптимальных данных) равна O(n^2).а также равна Θ(n^2).
Правильно ли будет сказать, что реально асимптотически точная оценка алгоритма дается в первую очередь на основании особенностей работы конкретного алгоритма для усредненных входных данных (понимая под усредненными данными случайно распределенный массив данных), а в сложных случаях - отталкиваясь от оценок сверху O() и снизу Ω()?С моей точки зрения, если есть совпадающие оценки O и Ω, элементарно получается Θ-оценка. Другое дело, что "худшая", "лучшая", "средняя" вычислительные сложности - это функции от длины входных данных. Для каждой из этих функций может быть дана оценка асимптотической скорости возрастания, будь то Ω, Θ или O. Рассуждая о "случайно распределенном массиве данных", можно углубиться в матстатистику, что, на мой взгляд, не упростит задачу.
Почему так происходит? Сайты все работают.В текущих реалиях вывод утилиты ping имеет довольно касательное отношение к работоспособности сервисов. В данном случае, скорее всего, по какой-либо причине фильтруются icmp-пакеты.
А какой то альтернативный вариант пингования сайта есть?Если под "пингованием сайта" вы подразумеваете проверку работоспособности сервиса (веб-сервиса в данном случае), то для этого наиболее логично пользоваться соответствующим клиентом (т.е. веб-браузером). Во многих случаях поведение клиента можно эмулировать, в случае веб - при помощи netcat, telnet (telnet www.ya.ru 80, далее в консоли HEAD / HTTP/1.0), curl, wget, самодельного скрипта.
На компьютере не работает интернет, до тех пор, пока не запустишь команду "ping 192.168.5.16". Затем через какое-то время, минут 15, снова пропадает. Тут спасает только "ping 192.168.5.16 -t".Одна из возможных причин - наличие в L2-домене хоста с IP-адресом, совпадающим с вашим или целенаправленная подделка arp-ответов. Стоит пронаблюдать состояние arp-таблицы на маршрутизаторе. Кроме того, можно самостоятельно (hping, scapy) послать arp-запрос с вашим ipv4-адресом в качестве искомого, посмотреть, кто откликнется.
Буду благодарен любым наводкам, в том числе и на статьи по теме вычисления ботов.Я сомневаюсь, что кто-либо поделится готовым решением, так как, на мой взгляд, стоимость разработки такого решения довольно высока. По теме есть полезные, но довольно общие статьи в блоге incapsula, например.
Мне необходимо отсеивать пакеты по определенному шаблону (например, с определенными начальными двумя байтами данных). Погуглив, ничего не нашел по поводу отсеивания трафика по шаблонам данных в tcpdump.Посмотрите здесь, 11 страница. Вкратце, релевантный синтаксис Berkeley packet filter таков:
protocol[start:count]=0xHEXTEMPLATE
tcp[20:4] = 0x47455420
Если в tcpdump нет такой возможности, подскажите, пожалуйста, альтернативные снифферы, желательно не тяжелые и без гуя (для использования на сервере с CentOS).В tcpdump такая возможность (если я правильно понял вашу проблему) есть, но рекомендую обратить внимание на tshark, консольный вариант wireshark. Для захвата трафика они используют bpf-фильтры, фильтры для отображения трафика у них можно настроить более гибко, на мой взгляд.
Зачем использую crc32b? Чтобы ссылки были как можно короче - для использования в смс-рассылке.На вашем месте, если нужен детерминизм, я бы:
При изменении статусов заказа эти ссылки приходят клиенту на емейл/смс - поэтому будет не очень хорошо если ссылка каждый раз разная будет (таким образом клиент не сможет зайти в кабинет по ссылке из прошлого письма).
напомните пожалуйста быдлокодеру как решаются уравнения типаЯ в свое время решал так:
x^x = c, где с - известная константа
Вопрос: не встречались ли вам инструменты, умеющие работать со скоростью приёма/передачи статичных файлов для сокрытия в моменте передачи доп. сообщения?Нет, не встречались, я даже подозреваю, почему. Я предполагаю, что эта схема хоть как-то работоспособна только для фиксированной реализации стеков протоколов, фиксированных хостов и фиксированных параметров сети между ними. Судите сами, как это соотносится с реальностью.
Для защиты от естественных колебаний скорости, скорее всего, нужно будет одновременно передавать два файла, модулируя их скорость в противоположные стороны, инвертируя и складывая в конце.Что, если длительность передачи будет разной для этих файлов? Например, трафик с данными одного файла передавался по другим физическим линкам (etherchannel, L3 ECMP при взаимодействии с разными TCP-соединениями). Как их корректно сопоставить (сложить)? Что вообще означает "одновременно передавать"? Какова будет результирующая скорость передачи полезных данных?
Существует ли быстрый алгоритм сортировки массива точек в трехмерном пространстве относительно заданной?Я не знаю, что вы подразумеваете под словом "быстрый", но мои соображения таковы:
Если посмотреть на формально описание протокола в приложении, то вроде бы всё понятно: текст, потом `.` с новой строки и наконец `CR-LF`. Почему тогда отдельно говорится о том, что нельзя передавать «tabs, formfeeds» и каких-то «frufru»?Потому что, видимо, предполагается, что сервер может передавать всякие изыски ('frufru'). Сервер может это делать, потому что ему не запретили. Серверу не запретили, потому что этот RFC на является стандартом (первая страница):
This memo provides information for the Internet community. It does not specify an Internet standard.
как правильно отдавать текстовые документы?На вашем месте я бы поступил в соответствии с максимой "Будь консервативен, отправляя данные, и либерален, принимая данные".
константы являются рандомными числамиНа мой взгляд, попытка добавить "случайности" в алгоритм без его всестороннего исследования преждевременна и может вести к ложной уверенности в "безопасности" алгоритма.
Пробовал в остановить пароль по инструкциям в инете после того как поменял регистр на 2142Какую именно команду вы применили? Правильная команда
confreg 0x2142
Если вы ввели, например, confreg 2142, то это не то значение, которое вам нужно.по консольному кабелю роутер молчит. В чем может быть проблема?Если вы ввели неправильное значение, скорее всего вы затерли настройки консоли. На вашем месте я бы попытался подключиться к консоли, перебрав все возможные значения настроек (baud rate и прочая).
Допустим на интерфейсе vlan_A применяется route-map_A, на vlan_B - route-map_BЕсли речь о Policy-based routing, то, насколько мне известно, route map в случае PBR применяется на входящий на релевантный настройкам PBR интерфейс трафик.
Policy-based routing is applied to incoming packets. All packets received on an interface with policy-based routing enabled are considered for policy-based routing. The router passes the packets through enhanced packet filters called route maps. Based on the criteria defined in the route maps, packets are forwarded/routed to the appropriate next hop.Подробнее.
show route-map
(строка Policy routing matches; команду можно применять на рабочей сети) и debug ip policy
(как и всякую debug-команду, эту команду следует использовать с осторожностью; выключение режима отладки - undebug all). Возможно как-то переделать ее в домашних условиях? Если да, то как?
Можно просто меньше директоров поставить.