SFP модули и конвертеры среды не так просты как мы о них думаем

от автора

Когда-то давно, конвертеры среды (медиаконвертеры) были довольно простыми устройствами, и если вам нужно было подключить два медных гигабитных коммутатора по оптоволокну, нужно было купить два гигабитных медиаконвертера.

Если же нужно было подключить что-то имеющее только 100 мегабитный порт, то нужно было купить 100 мегабитные медиаконвертеры.

Потом появились медиаконвертеры с преобразованием скорости. Можно было бы порадоваться-стало удобно, но тут есть одно фундаментальное различие между ними, и оно очень важное.

Изначально медиаконвертер — это конвертер среды передачи, то есть он преобразует электрический сигнал в оптический и наоборот. Разумеется, там не все так просто, но главное, это уровень L1 в модели OSI.

Но так работает только если у вас и медный и оптический порты, работают с одинаковой скоростью.

Как только вам нужно иметь разные скорости, вам понадобится как минимум буфер.

Так вот если заглянуть в современный медиаконвертер, изучить на чем он сделан, то внезапно окажется что это, по сути, двухпортовый коммутатор, с буферами, MAC таблицами, и прочими атрибутами современного коммутатора.

Чем это плохо спросите вы? да в общем для медиаконвертера плохо по целому ряду причин.

По сути, если вы соединяете через такие медиаконвертеры, например два хороших, дорогих коммутатора (скажем Huawei), вы между ними ставите два неуправляемых коммутатора. 

Мало того, что это добавляет задержки на перекладку кадров из порта в порт через буферы, так это еще и осложняет диагностику, ведь ошибки на портах скорее всего вы посмотреть не сможете, как не сможете посмотреть и MAC таблицы, очереди и все то, что помогает при диагностике сетевых проблем.

Но это еще пол беды, предположим вам нужен медный модуль типа Cisco GE-T, вы его вставляете в SFP слот, тут-то что может пойти не так? 

Может. 

Внутри этого модуля может оказаться ровно такая же схема. 

Для примера я разобрал два модуля GLC-TE. Внешне они одинаковые, только один работает нормально, у второго флапает линк. 

Что мы наблюдаем. 

Первый сделан на базе микросхемы Marvell 88E1111, второй на Realtek RTL8213B. 

 

88E111

88E111
RTL8213B

RTL8213B

Заглянем в Datasheet обоих, и видим, что это совершенно разные микросхемы, если Marvell — это трансивер, без каких-либо функций L2, то Realtek это фактически коммутатор L2. 

Да, Realtek довольно гибко настраивается, но вы на это никак не можете повлиять.

И он точно будет класть кадры в буфер до полного их приема и потом передавать в другой порт. 

Можно еще посмотреть на блок-схему микросхемы от Microchip VSC8211, это тоже одна из классических микросхем для построения преобразователей среды.

VSC8211

VSC8211

Тут мы видим сериализаторы/десериализаторы, блоки кодирования PAM, DSP, АЦП, ЦАП и ничего про L2 уровень.

Если вас смущает блок с DSP то я напомню, что передача данных в 1000Base-T идет по всем парам одновременно, и по ним же и прием. Так вот, надо и свой сигнал из принимаемого вычесть, и избавиться от наводок с соседних пар и помехи подавить, а это не очень-то тривиальная задача, и тут нужен DSP.

 

1000Base-T

1000Base-T

Короткое резюме: 

— Выбирайте SFP модули у проверенных поставщиков, если сомневаетесь — разберите один и посмотрите на чем он сделан. 

— Выбирайте конвертеры среды без преобразования скорости, скорее всего, тогда это будет честный медиаконвертер. 

Так вы минимизируете влияние этих устройств на вашу сеть.

Кому интересны детали, можно найти Datasheet на все три микросхемы и детально с ними ознакомиться.

ссылка на оригинал статьи https://habr.com/ru/articles/1047596/