Задать вопрос
  • Какими способами можно реализовать содержание в wordpress?

    OtshelnikFm
    @OtshelnikFm Куратор тега WordPress
    Обо мне расскажет yawncato.com
    На каме есть реализация и статья "Оглавление (содержание) для больших постов"
    А плагины чем не подошли?
    Ответ написан
    Комментировать
  • Phpmailer-это старье?

    DevMan
    @DevMan
    последний релиз был 2 недели назад – жуткое старье.
    пользуются.
    Ответ написан
    2 комментария
  • Как дать разрешение для выполнения скриптов в Ubuntu?

    smorman
    @smorman
    When In Rome do as The Romans do...
    С sudo видимо надо выполнять.
    Т.е. sudo npm install --global verdaccio

    Поправьте права доступа, что-бы больше никогда не ...
    Ответ написан
    Комментировать
  • Как роутер узнает как клиент получил адрес?

    Jump
    @Jump
    Системный администратор со стажем.
    Как роутер узнает как клиент получил адрес?
    Если адрес выдал DHCP роутера в ответ на запрос - он заносит его в список аренды, и помечает его как динамический или статический. Если роутер не выдавал адрес а пакеты от клиента ходят через роутер - значит он заносит его в список аренды как ручную настройку(мануал).

    Что будет если соеденить 2 хоста в сеть и прописать на каждом из них разную подсеть ну например на 1-10.10.10.10 на 2-20.20.20.20?
    Будет два хоста в разных сетях. И только.
    Ответ написан
    Комментировать
  • Как роутер узнает как клиент получил адрес?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    1) Роутер видит, что клиент ходит через него с выданным адресом. А про саму выдачу адреса можете просто погуглить. Не смысла сюда переписывать.

    2) На канальном уровне они будут друг друга видеть, конечно же. Но на сетевом уровне они не смогут взаимодействовать и будут как бы невидимками друг для друга.
    Ответ написан
    Комментировать
  • Как реализовать фильтрацию TCP пакетов по содержимому в поле Data под windows налету?

    MvcBox
    @MvcBox
    Software Engineer [C/C++/JS(for Node.js)/etc]
    фильтровать пакеты TCP содержащие текстовые сообщения.

    Именно в такой формулировке - нельзя.
    У TCP нет понятия "пакет" как такового.
    TCP - условно бесконечный поток данных, в котором данные передаются небольшими "порциями" в TCP-сегментах. Ваше сообщение можно передать как одним сегментом, так и множеством сегментов с 1 байтом payload'а в каждом.
    Полученные данные буферизируются приложением, а затем уже (при достаточном количестве полученных данных) обрабатываются согласно протоколу этого приложения.
    Поэтому "stateless" проверка содержимого сегмента - бесполезна.

    Возможно ли такое реализовать сторонними средствами (прокси-сервер или какой-то фильтр-драйвер)?

    Проще всего реализовать прокси-сервер, в котором будет реализована поддержка протокола приложения.
    Таким образом Вы сможете фильтровать трафик для этого приложения.
    Ответ написан
    2 комментария
  • Что творится на рынке web разработки для junior?

    sober_cat22
    @sober_cat22
    Back end(Node.JS, Ruby)
    Ребят, шуруйте работать в офис, работы хватает. Если живете в деревне, переезжайте в большой город. Обычно такие проблемы возникают у тех, кто еще и дня не проработал, а уже ищут только удаленку. Помню брали джуна на работу полтора года назад на рельсы, как раз на удаленку. Казалось бы стэк не супер популярный, но за трое суток откликнулось больше 100 человек. И как бы изначально готовы были взять и без опыта, но когда тебе попадаются ребята с реальным опытом, зачем отказываться :D
    Ответ написан
    3 комментария
  • Какой минимальный размер Ethernet-кадра и почему?

    vvpoloskin
    @vvpoloskin Автор вопроса, куратор тега Компьютерные сети
    Инженер связи
    Минимальное значение фрейма для обычного Ethernet равно 64 байта. Это известная вещь. Но вокруг этого образовалось множество легенд и домыслов.

    Такой размер фрейма идет еще с Ethernet I, это было сделано для корректной работы алгоритма CSMA/CD. Напомню, в общей среде передачи для устранения коллизий (это когда одновременно несколько устройств будут передавать по одному и тому же проводнику одновременно сигнал) в Ethernet для каждого устройства отводится свой слот времени на передачу. То есть одно устройство должно отправить, а другое - принять, за определенный тайм-слот (да, это механизм Time Division Multiplexing). На это у нас влияет физика в виде ограничения на скорость распространения света. Примем следующую формулу:

    2*L = C * t
    t = S/Bandwidht
    L = C * (S/Bandwidth)/2,
    
    L - максимальная длина среды (провода)
    t - время на прохождение сигнала
    S - размер кадра
    C - скорость распространения сигнала в среде (скорость света умноженная на коэффициент задержки сигнала в среде)


    Это прямая пропорция к размеру пакета и обратная к скорости распространения сигнала: чем больше размер кадра, тем больше дистанция, чем больше пропускная способность, тем меньше дистанция. Это чисто математическая формула, естественно, дальше она ограничивается физикой распространения сигнала.

    Конкретные расчеты приводить не буду, но для 10М Ethernet дистанция получается 5,12 км, а для 100М - 512 м, для 1000М - 51,2 м. Это при 64 байтах. Уменьшаем размер фрейма - получаем расстояние в 2 раза меньше (уменьшаем же по степеням двойки).

    Умные люди подумали, что для 1000Base-T максимальное теоретическое расстояние в 51 метр слишком мало и сделали рекомендацию - минимальный размер кадра для 1000Base-T увеличить до 512 байт. При этом расстояние получилось около 409,6 м.

    Все это был вольный пересказ ответа на стек-овер-флоу .

    Теперь как это было реализовано. Формат кадра для 10/100М Ethernet представляет следующий вид:

    5f87fc50751a7834877318.png

    Pad-добиваем нулями до минимального размера кадра. Делается это на MAC-уровне (читай, на L2, привет, модель OSI).

    А для 1000Base-T уже добавляем еще и поле Carier Extension. Причем из интересного, в отличие от Pad Field, оно уже забивается не нулями, а специальной последовательностью символов, генерирующихся на PHY уровне (опять привет, модель OSI).

    А для 1000Base-T уже добавляем еще и поле Carier Extension. Причем из интересного, в отличие от Pad Field, оно уже забивается не нулями, а специальной последовательностью символов, генерирующихся на PHY уровне (опять привет, модель OSI).

    5f87fcbf6c5aa609536799.png

    Такой минимальный размер кадра в 512 байт верен только для режима half-duplex Gigabit Ethernet с включенным CSMA/CD. При full-duplex он не добавляется. Иначе было бы невозможно строить линии на сотни километров через DWDM или даже спутник. Но минимум в 64 байта все же остается. Мне кажется, это не стали убирать из-за того, что куда уж меньше (64 байта - 14 байт на заголовки - 2 на FCS, а дальше уже внутренние заголовки надо вычитать…). Можете поэксперементировать хоть даже на виртуалках между виртуальными интерфейсами - фрейм добивается нулями. Подробнее со структурой посмотрите здесь.

    Кроме того, значения значения в поле Type/Length согласно IANA должна быть представлена максимальная длина фрейма 0x0000-0x05DC (пусть этим сейчас никто и не пользуется, сейчас в большинстве случаев здесь будет 0x8000 - IPv4, ну или что-то другое с VLANами, если снимать дамп с транкового порта). Собственно, это причина, почему на коммутаторах максимальное значение L2 MTU равно 1500 байт.

    Пытливый читатель спросит, зачем использовать full-duplex в 1000Base-T, ведь там всегда сигнал передается в одну сторону по своим двум парам, в обратную - по другим. Ответ - для того, чтобы использовать гигабитные хабы. Когда вы используете хаб, уже по двум своим парам могут побежать пакетики от двух хостов. Другой вопрос, что в природе таких, наверно, не существовало.

    Если вы задумаете, зачем сейчас об этом думать, то есть и другие современные технологии с множественным доступом к одной среде. Например, всем известный wifi. И там также работает алгоритм CSMA/CD (только его вариация - CSMA/CA, там посылается отдельный типы фреймов RTS/CTS. Но, как говорится, это уже совсем другая история, о которой в деталях можно почитать по ссылке.
    Ответ написан
    1 комментарий
  • Как реализовать NGINX прокси с добавлением header при совпадении URL?

    @dodo512
    proxy_set_header
    В качестве значения можно использовать текст, переменные и их комбинации.
    Если значение поля заголовка — пустая строка, то поле вообще не будет передаваться проксируемому серверу.

    C помощью map проверяем совпадение $uri с нужным значением и присваиваем новой переменной значение "Basic YWxhZGRpbjpvcGVuc2VzYW1l" или пустую строку.
    map $uri $a {
        default      "";
        ~^/some_uri  "Basic YWxhZGRpbjpvcGVuc2VzYW1l";
    }
    
    proxy_set_header Authorization $a;
    Ответ написан
    Комментировать
  • Создание динамических поддоменов nginx?

    Lynn
    @Lynn
    nginx, js, css
    Просто заводите для них отдельные блоки server

    https://nginx.org/ru/docs/http/ngx_http_core_modul...

    При поиске виртуального сервера по имени, если имени соответствует несколько из указанных вариантов, например, одновременно подходят и имя с маской, и регулярное выражение, будет выбран первый подходящий вариант в следующем порядке приоритета:
    1. точное имя
    2. самое длинное имя с маской в начале, например “*.example.com”
    3. самое длинное имя с маской в конце, например “mail.*”
    4. первое подходящее регулярное выражение (в порядке следования в конфигурационном файле)



    server {
        server_name   ~^(?<dynamic>[a-z0-9\-]+)\.example.com$;
        ...
    }
    
    server {
        server_name stage1.example.com;
        ....
    }
    
    ...
    Ответ написан
    Комментировать
  • Почему из-за HTTPS порт не слушается?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Самый простой путь настроить NGINX а ноду оставить внутри вашей сети или вообще на 127.0.0.1
    Ответ написан
    6 комментариев