2019-08-04 единичен апокриф

by Vasil Kolev

От серията апокрифи, с добавка.

Преди година-две се возех с един приятел, и той ми разказа следната история: българска фирма, която едно време продаваше много мрежов хардуер на isp-та, си поръчала много оптични конвертори от Китай.Пазарили се здраво с китайците за отстъпки, и накрая китайците казали – добре, за тия пари ще ви направим конвертори, и им ги пратили…

Пуснали те първите конвертори за разни потребители, и дошъл въпроса “защо през тая връзка мога да сваля zip файл, ама doc не мога?”… И тук човека ме пита – сещаш ли се какво е станало?

И аз си спомних как преди много години, около 1998, почти всичкия internet беше серийни връзки, и бяхме намерили начин да качваме серийния асинхронен сигнал в/у радио и да го носим на някакви сериозни разстояния, но имаше малък проблем – като пуснеш само нули или само единици, и те потрошаваха сигнала, понеже нямаше какво да му поддържа нормално нивото. Нещо като manchester encoding щеше да реши проблема (и да ни смъкне двойно bandwidth-а), но тогава такива неща не ни бяха във възможностите, за това написах малко демонче, наречено lfld (“line-fill daemon”), което в моментите, в които няма сигнал от серийния порт, да бълва “U” (01010101 в binary, 0x55), та да държи линията в нормално състояние, и на pppd-то беше обяснено да escape-ва 0x00, 0xff и 0x55. Тия дни дори си видях кода някъде, и е средно зле, ако има интерес към подобно нещо, мога да го кача някъде (може да се наложи допипване, че да работи на kernel > 2.0)
(синхронен сериен порт също би трябвало да ни реши проблема, ако си носеше clock-а със себе си, но тогава тия неща бяха ужасно скъпи)

Та, какво се оказало – китайците спестили от едни регулатори на волтажа, та нещо с голяма ентропия е ок (като zip-а), нещо с много повтарящи се битове – не толкова. Та фирмата организирала работилница, и половин София им помагала да patch-ват с поялниците всичките тия хиляди конвертори…

Учудващо как някакви проблеми не изчезват :)

Tags:

3 Responses to “2019-08-04 единичен апокриф”

  1. antfarmer Says:

    А какво прави pppd-то, ако payload-а на клиента започва с 0x55, примерно е някакъв preamble на даден протокол или просто пусне един telnet до дадено място и прати 0x55? :)

  2. Vasil Kolev Says:

    @antfarmer, escape-ва, то иначе нищо не може да работи – вместо всеки escape-нат символ се изпраща 0x7d и после символа, xor-нат с 0x20 (https://tools.ietf.org/html/std51, 4.2). PPP-то и SLIP-а са мислени да работят в/у всякакви неща, вкл. линии със софтуерен flow control (ctrl-s, ctrl-q, известни като xoff и xon), и е ясно, че някакви специални символи трябва да се заобикалят.
    (вероятно така някои хора са заобикаляли и “+”…)

  3. Todor Petkov Says:

    Имаше едни оптични конвертори, които забиваха при теглене на bedazzled.avi на определено място. Пак такъв номер с определени битове и байтове..
    Davidov Elektrik имаха подобен проблем с дъно на Линукс рутер и определени файлове, които водеха до забиване на рутера и спиране Интернета на цял квартал.
    Ех, интересни времена:)

Leave a Reply