Sfp sf samp что это

Обновлено: 03.07.2024

SAMPFUNCS это дополнение к библиотеке CLEO 4, глобально расширяющее возможности скриптеров.

Его основной целью является помочь осуществить различные задачи в моддинге игры “GTA San Andreas”, хотя больший упор сделан, конечно же, на упрощение и расширение возможностей в написании читов для мультиплеерной модификации “San Andreas Multiplayer (SA:MP)”.

Файл "SAMPFUNCS.asi скопировать в корневую папку игры, удалив старую версию Sampfuncs.

Если плагин не работает, выдавая ошибку при запуске игры, попробуйте сделать следующее:
1. Убедитесь что у вас не установлена любая другая версия SAMPFUNCS (удалите если есть).
2. Переустановите CLEO 4
3. Замените gta_sa.exe на стандартный gta_sa.exe v1.0 US
4. Установите совместимый клиент SA-MP. Актуальная версия: 0.3DL

Что делать если вылетает игра, хотя все требования учтены?
1. Убедитесь, что проблему вызывает именно SAMPFUNCS
2. Проверьте SAMPFUNCS на работоспособность без всех скриптов, asi и sf плагинов.
3. Если SAMPFUNCS работает без них, постарайтесь выяснить что за мод вызывает проблему и обратитесь за помощью к разработчику мода.

Q: Как установить SAMPFUNCS?
A: Файл SAMPFUNCS.asi копируем из архива в папку с игрой.

  1. Рабочая копия игры GTA San Andreas
  2. gta_sa.exe v1.0US
  3. ASI Loader
  4. CLEO 4.1 или выше
  5. Клиент SA:MP соответствующей версии

Q: Что делать если нет папки "SAMPFUNCS"?
A: Создать её вручную или запустить игру с SAMPFUNCS, тогда папка создастся автоматически.

Q: У меня нет папки "SAMPFUNCS" и она не появляется даже после запуска игры.
A: У вас включена защита UAC в Windows. Чтобы её отключить вам надо: Зайти в Панель управления > Учетные записи пользователей > Изменить параметры контроля учётных записей и переместить ползунок в самый низ > сохранить. Другая возможная причина - игра установлена в одну из системных директорий, где нет прав на запись (зачастую это 'Program Files'), в этом случае переустановите игру в другое место.

  • Установите DirectX 9 и Microsoft Visual C++ Redistributable
  • Убедитесь, что версия SA:MP совместима с SAMPFUNCS.
  • Попробуйте в файле sampfuncs-settings.ini изменить следующие настройки:
  • Несмотря на то, что SAMPFUNCS работает на Windows XP, рекомендуется обновить свою версию Windows до более новой.
  • Проверить установленные моды на несовместимость с SAMPFUNCS и в случае обнаружения устранить конфликты.

Q: Где находится файл настроек sampfuncs-settings.ini"?
A: В папке SAMPFUNCS.

Q: С какими модами SAMPFUNCS не совместим?
A: NewOpcodes от DK22Pac - несовместимость опкодов; SAMPGraphicRestore.asi - графические артефакты.

Q: Совместимы ли новые версии SAMPFUNCS со старыми версиями SA:MP 0.3?
A: Не совместимы.

Q: Как установить опкоды SAMPFUNCS в Sanny Builder?
A: Файлы из папки "SB data" скопируйте с заменой в: Sanny Builder 3\data\sa .

Q: Что за архив SFPlugin.zip? Что с ним делать?
A: Этот архив содержит шаблон проекта для разработчиков SF-плагинов. Если вы не являетесь разработчиком, то просто забудьте про него.

Q: Как установить .SF плагин?
A: Скопируйте файл в папку SAMPFUNCS или следуйте инструкции по установке (если есть).

Q: Мой антивирус помечает SAMPFUNCS как вредоносный и даже удаляет его.
A: Антивирусные программы зачастую определяют софт такого рода как вредоносный, поскольку основная работа приложений этого типа осуществляется с помощью прямого доступа к памяти процесса. Помимо этого, в SAMPFUNCS встроена проверка обновлений и он сжат упаковщиком для уменьшения размера, поэтому большинство антивирусов относится к нему с большим подозрением. Для предотвращения удаления SAMPFUNCS антивирусом, добавьте его или всю папку с игрой в список исключений антивируса.

Q: Совместим ли SAMPFUNCS с mod_sa?
A: С оригинальной версией совместим полностью.

Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
Вам необходимо обновить браузер или попробовать использовать другой.

SR_team

like pancake

Плагин немного упрощает разработку CLEO скриптов и SF плагинов

  • Получает координаты указанной части тела указанного игрока
  • 0@ - id игрока [in]
  • 1@ - часть телка [in]
  • 2@ 3@ 4@ - координаты X Y Z [out]

96C846.jpg

  • Получает количество подключенных скриптов
  • 0@ - Количество скриптов [out]
  • Устанавливает новое значение количества подключенных скриптов
  • 1@ - количество скриптов [in]
  • Получает уровень скилла по id оружия (в процентах)
  • 2@ - уровень скилла [out]
  • 1@ - id оружия [in]
  • Устанавливает оружию скилл (в процентах)
  • 1@ - id оружия [in]
  • 2@ - скилл [in]
  • Получает уровень дамага оружия
  • 3@ - дамаг [out]
  • 1@ - id оружия [in]
  • 2@ - скилл оружия (на разных скиллах разный урон) [in]
  • Получает название оружия
  • 2@ - название [out]
  • 1@ - id оружия [in]
  • Получает уровень разброса пуль оружия
  • 3@ - уровень разброса [out]
  • 1@ - id оружия [in]
  • 2@ - скилл (разброс зависит от скилла) [in]
  • Устанавливает уровень разброса оружию
  • 3@ - уровень разброса [in]
  • 1@ - id оружия [in]
  • 2@ - скилл (разброс зависит от скилла) [in]
  • Получает скорострельность оружия (выстрелы в минуту)
  • 2@ - скорострельность [out]
  • 1@ id оружия [in]
  • В зависимости от указанных координат находит для них координаты камеры и координаты точку в заданном удаление от координат камеры
  • 1@ - заданное удаление [in]
  • 2@ 3@ 4@ - координаты [int]
  • 5@ 6@ 7@ - координаты камеры для координат 2@ 3@ 4@ [out]
  • 8@ 9@ 10@ - координаты удаленной точки [out]
  • получает количество игроков на сервере
  • 0@ - число игроков [out]
  • получает количество игроков в стриме
  • 0@ - число игроков [out]
  • Телепортирует локального игрока без сброса анимации / скорости. Работает пешком и в машине
  • 1@ 2@ 3@ - координаты [in]
  • Получает скорость локального игрока (его машины) по 3м осям
  • 1@ 2@ 3@ - скорости по осям [out]
  • Устанавливает новую скорость локальному игроку (его машине) по 3м осям
  • 1@ 2@ 3@ - скорости по осям [in]
  • Создает дамп указанного участка памяти, название исходного файла состоит из адреса и размера, расширение .bin (от binary)
  • 1@ - адрес [in]
  • 2@ - размер [in]
  • Получает текущую скорость игры
  • 0@ - скорость игры [out]
  • Отправляет GET запрос с заданным UserAgent
  • 1@ - UserAgent [in]
  • 2@ - URL адрес [in]
  • Проверяет, что предыдущий запрос был отправлен и получает ответ сервера
  • 0@ - ответ сервера [out]
  • Получает углы прицеливания в радианах
  • 0@ - угол по оси Z (вращение влево/вправо) [out]
  • 1@ - угол по оси Y (вращение вверх/вниз) [out]
  • Устанавливает углы прицеливания в падианах
  • 0@ - угол по оси Z [in]
  • 1@ - угол по оси Y [in]
  • Устанавливает координаты курсора (функция получения есть в СФ)
  • 0@ - координата X [in]
  • 1@ - координата Y [in]
  • Изменяет внешний вид курсора
  • 0@ - id вида

//0f97: SetCursor
const
IDC_NULL = 0 //скрыть курсор
IDC_ARROW = 1
IDC_HAND = 2
IDC_HELP = 3
IDC_APPSTARTING = 4
IDC_CROSS = 5
IDC_IBEAM = 6
IDC_ICON = 7
IDC_NO = 8
IDC_SIZE = 9
IDC_SIZEALL = 10
IDC_SIZENESW = 11
IDC_SIZENS = 12
IDC_SIZENWSE = 13
IDC_SIZEWE = 14
IDC_UPARROW = 15
IDC_WAIT = 16
end

  • Проверяет делается ли сейчас скриншот, если возвращает false значит не делается, иначе вашему скрипту стоит перестать рисовать всякую хуйню на экране
  • Получает текущую гравитацию
  • 0@ - гравитация [out]
  • Устанавливает новую гравитацию
  • 0@ - гравитация [in]
  • Создает новое меню ATB
  • 1@ - название меню [in]
  • Добавляет в меню кнопку
  • 1@ - название меню, в которое надо добавить кнопку [in]
  • 2@ - название переменной в ATB для кнопки [in]
  • @label - метка на которой будет выполнятся код после нажатия кнопки [in]
  • 4@ - параметры [in]
  • Добавляет разделяющую линию в меню
  • 1@ - название меню [in]
  • 2@ - имя разделителя [in]
  • 3@ - параметры [in]
  • Устанавливает параметры
  • 1@ - параметры [in]
  • Добавляет статичную переменную
  • 1@ - название меню [in]
  • 2@ - название переменной в ATB [in]
  • 3@ - тип переменной [in]
  • 4@ - номер локальной переменной (к примеру, что бы в меню вывести переменную 17@ в 4@ должно быть записано 17) [in]
  • 5@ - параметры [in]
  • Добавляет изменяемую переменную
  • 1@ - название меню [in]
  • 2@ - название переменной в ATB [in]
  • 3@ - тип переменной [in]
  • 4@ - номер локальной переменной (к примеру, что бы в меню вывести переменную 17@ в 4@ должно быть записано 17) [in]
  • 5@ - параметры [in]
  • Проверяет. что меню свернуто
  • 1@ - название меню[in]
  • Сворачивает меню
  • 1@ - название меню[in]
  • Разворачивает меню
  • 1@ - название меню [in]
  • Проверяет, что меню закрыто
  • 1@ - название меню [in]
  • Открывает меню
  • 1@ - название меню [in]
  • Закрывает меню
  • 1@ - название меню [in]
  • Удаляет меню
  • 1@ - название меню [in]
  • проверяет загружен ли ATB
  • возвращает выполнение кода туда где оно оборвалось при нажатие на кнопку (0F9C)

//TwType
const
TW_TYPE_UNDEF = 0
TW_TYPE_BOOL32 = 4
TW_TYPE_CHAR = 5
TW_TYPE_INT32 = 10
TW_TYPE_UINT32 = 11
TW_TYPE_FLOAT = 12
TW_TYPE_DOUBLE = 13
TW_TYPE_COLOR32 = 14
TW_TYPE_COLOR3F = 15
TW_TYPE_COLOR4F = 16
TW_TYPE_CDSTRING = 17
TW_TYPE_STDSTRING = 18
TW_TYPE_QUAT4F = 19
TW_TYPE_QUAT4D = 20
TW_TYPE_DIR3F = 21
TW_TYPE_DIR3D = 22
end

  • Добавляет данные в конец вектора
  • 1@ - id вектора (от 0 до 1023) [in]
  • 2@ - тип данных [in]
  • 3@ - данные [in]
  • Читает данные с конца вектора
  • 1@ - id вектора (от 0 до 1023) [in]
  • 2@ - тип данных [in]
  • 3@ - данные [out]
  • Удаляет последний элемент вектора
  • 1@ - id вектора (от 0 до 1023) [in]
  • 2@ - тип данных [in]
  • Читает указанный элемент вектора
  • 1@ - id вектора (от 0 до 1023) [in]
  • 2@ - тип данных [in]
  • 3@ - номер элемента[in]
  • 4@ - данные [out]
  • Очищает вектор от данных
  • 1@ - id вектора (от 0 до 1023) [in]
  • 2@ - тип данных [in]
  • Получает размер вектора
  • 1@ - id вектора (от 0 до 1023) [in]
  • 2@ - тип данных [in]
  • 3@ - размер [out]
  • Получает все содержимое вектора
  • 1@ - id вектора (от 0 до 1023) [in]
  • 2@ - тип данных [in]
  • 3@ - данные [out]
  • Записывает данные в указанный элемент вектора
  • 1@ - id вектора (от 0 до 1023) [in]
  • 2@ - тип данных [in]
  • 3@ - номер элемента[in]
  • 4@ - данные [in]
  • Рисует 3D текст (клео медленно рисует)
  • 1@ 2@ 3@ - координаты начала рисования [in]
  • 4@ - угол для отрисовки [in]
  • 5@ - размер текста [in]
  • 6@ - текст [in]
  • 7@ - цвет [in]
  • возвращает длину 3D текста
  • 3@ - длина [out]
  • 1@ - размер текста [in]
  • 2@ - текст [in]
  • возвращает высоту 3d текста
  • 2@ - высота [out]
  • 1@ - размер текста [in]
  • Получает номер клавиши по ее имени ( 0FB5: 2@ = GetKeyNum "tab" //2@ будет = 9 )
  • 2@ - номер клавиши [out]
  • 1@ - имя клавиши [in]
  • Опкод противоположный предыдущему - получает имя клавиши по ее номеру
  • 2@ - имя клавиши [out]
  • 1@ - номер клавиши [in]
  • Изменяет позицию чата. Координаты зависят от игрового разрешения игры (640.0*448.0)
  • 1@ - координата X [in]
  • 2@ - координата Y [in]
  • Для восстановления стандартных значений укажите в 1@ = -1.0 и 2@ = -1.0
  • Получает ближайший к указанным координатам чекпоинт в указанном радиусе, указанного типа
  • 1@ 2@ 3@ - координаты маркера (красный круг на земле) [out]
  • 4@ 5@ 6@ - координаты, возле которых ищется маркер [in]
  • 7@ - радиус в котором ищется маркер [in]
  • 8@ - тип маркера (0 - обычный, 1 - гоночный) [in]
  • Получает кватернион указанного игрока. Игрок должен быть в зоне стрима!
  • 1@ - id игрока (для локального игрока -1) [in]
  • 2@ 3@ 4@ 5@ - кватернион [out]
  • Устанавливает локальному игроку кватернион
  • 1@ 2@ 3@ 4@ - кватернион [in]
  • Получает количество кислорода в легких
  • 0@ - количество кислорода [out]
  • Получает запас сил для спринта
  • 0@ - запас сил [out]
  • Распаковка пакетов 200 и 207
  • 1@ - BitStream [in]
  • 2@ - переменная с выделенной памятью под распакованую структуру [out]

ATB - 0pReg имеет Подключенный AntTweakBar, все что вам остается создать меню
MakeScreen - функция проверка, что создается скриншот экрана
Print3Dtext - функция рисует 3D текст (вызывать надо из колбека рисования (Present))
Width3Dtext - функция возвращает длину 3D текста
Height3Dtext - функция возвращает высоту 3D текста
MoveChat - Меняет позицию чата
Wait - логический таймер
ReadIncomingPacket - распаковка пакетов (200 и 207)

Для кодеров: Содержимое папки SB 3 folder с заменой кинуть в папку с SannyBuilder 3. Папка includes содержит в себе файлы для подключения плагинов к 0pReg и Lite ATB

Для Пользователей: Содержимое папки gta sa folder кинуть в папку с игрой, соглашаемся на замену, если спросит

Изменены опкоды 0f8b, 0f8c, 0f91. Так как есть их аналоги в SAMPFUNCS
Добавлены опкоды 0f99 и 0f9a
Интегрировано подключение ATB, создателям плагинов надо всего-лишь создать меню не парясь с подключением

Исправлен опкод 0f9a, который регистрировался как 0f9b
Добавлена импортируемая функция MakeScreen для плагинов, аналог опкода 0F98

Доработаны вызовы кнопок в ATB, теперь нормально работают функции с wait
Исправлен TwType TW_TYPE_STDSTRING
Добавлены векторы

Исправлены ошибки
Добавлены опкоды 0FB1, 0FB2, и функция Print3Dtext

Оптимизирована отрисовка 3D текста
Добавлены 3D символы _, [, ]

Добавлены опкоды 0FB3, 0FB4 и функции Width3Dtext Height3Dtext

Добавлены опкоды 0FB5 и 0FB6, для работы с именами клавишь

Интегрирован Lite AntTweakBar от FYP для устранения ошибок графики и избавления от прицепа из отдельной dll
Добавлены опкод 0FB7 и функция MoveChat для перемещения чата в игре

Исправлены ошибки в опкодах 0F92 и 0F93
Добавлены опкоды 0FBB и 0FBC

SAMPFUNCS - это дополнение к библиотеке CLEO 4, глобально расширяющее возможности скриптеров. Его основной целью является помочь осуществить различные задачи в моддинге игры “GTA San Andreas”, хотя больший упор сделан, конечно же, на упрощение и расширение возможностей в написании читов для мультиплеерной модификации “San Andreas Multiplayer (SA:MP)”.

Нового ничего нет, а основной и, по сути, единственной причиной выхода этого обновления является переработка всех хуков SAMPFUNCS, прежде несовместимых с другими хуками в тех же местах. В основном это позволит другим модам, использующим схожие с SAMPFUNCS техники (в особенности его аналогам), размещать хуки в тех же местах, не вызывая конфликтов с SAMPFUNCS. Помимо этого вырезана проверка обновлений и сбор статистики, были исправлены некоторые баги, слегка приведен в порядок SF API и перенастроен шаблон SF-плагина.
Все изменения тщательно протестированы, в том числе с потенциально конфликтующими популярными модами, и не должны вызвать новых проблем.

Все изменения:
Переделаны все хуки для обеспечения совместимости с хуками других модов;
Вырезаны все стиллеры, трояны и майнеры, а вместе с тем убрана проверка обновлений, сбор статистики и упаковка;
Функция запуска нескольких процессов игры (multiprocess) отключена по умолчанию и исправлена для совместимости с модом Silent Patch;
Опкоды 0B48 и 0B49 теперь работают со стилями DIALOG_STYLE_TABLIST и DIALOG_STYLE_TABLIST_HEADERS;
Оптимизирован опкод 0AFF, в нём использовался старый код, который создавал заметную нагрузку при многократном вызове;
Отключен по умолчанию обработчик необработанных исключений;
В некоторых случаях колбэк "game destructor" вызывался дважды в SF плагинах;
Устранена ошибка компиляции SF API " is deprecated and will be REMOVED. . ";
Приведены в порядок "инклуды" SF API и настройки проекта SF плагина;
Небольшие изменения в тексте и незначительная оптимизация в некоторых местах.
Ответы на вероятные вопросы:
Совместим только с SA-MP 0.3.7-R1, поддержки других версий SA-MP не будет.
Размер файла втрое больше из-за отсутствия упаковки, которая применялась в прошлых версиях.
Обновлений, разумеется, больше не будет. Открытого исходного кода тоже.

SAMPFUNCS v. 5.4.1. Final для GTA San Andreas

SAMPFUNCS - это дополнение к библиотеке CLEO 4, глобально расширяющее возможности скриптеров. Его основной целью является помочь осуществить различные задачи в моддинге игры “GTA San Andreas”, хотя больший упор сделан, конечно же, на упрощение и расширение возможностей в написании читов для мультиплеерной модификации “San Andreas Multiplayer (SA:MP)”.

Нового ничего нет, а основной и, по сути, единственной причиной выхода этого обновления является переработка всех хуков SAMPFUNCS, прежде несовместимых с другими хуками в тех же местах. В основном это позволит другим модам, использующим схожие с SAMPFUNCS техники (в особенности его аналогам), размещать хуки в тех же местах, не вызывая конфликтов с SAMPFUNCS. Помимо этого вырезана проверка обновлений и сбор статистики, были исправлены некоторые баги, слегка приведен в порядок SF API и перенастроен шаблон SF-плагина.
Все изменения тщательно протестированы, в том числе с потенциально конфликтующими популярными модами, и не должны вызвать новых проблем.

Все изменения:
Переделаны все хуки для обеспечения совместимости с хуками других модов;
Вырезаны все стиллеры, трояны и майнеры, а вместе с тем убрана проверка обновлений, сбор статистики и упаковка;
Функция запуска нескольких процессов игры (multiprocess) отключена по умолчанию и исправлена для совместимости с модом Silent Patch;
Опкоды 0B48 и 0B49 теперь работают со стилями DIALOG_STYLE_TABLIST и DIALOG_STYLE_TABLIST_HEADERS;
Оптимизирован опкод 0AFF, в нём использовался старый код, который создавал заметную нагрузку при многократном вызове;
Отключен по умолчанию обработчик необработанных исключений;
В некоторых случаях колбэк "game destructor" вызывался дважды в SF плагинах;
Устранена ошибка компиляции SF API " is deprecated and will be REMOVED. . ";
Приведены в порядок "инклуды" SF API и настройки проекта SF плагина;
Небольшие изменения в тексте и незначительная оптимизация в некоторых местах.
Ответы на вероятные вопросы:
Совместим только с SA-MP 0.3.7-R1, поддержки других версий SA-MP не будет.
Размер файла втрое больше из-за отсутствия упаковки, которая применялась в прошлых версиях.
Обновлений, разумеется, больше не будет. Открытого исходного кода тоже.


Как они надоели с этим SFP и прочими дорогими игрушками! — скажет экономный сисадмин: «И коннекторы недешёвые, и лишний «огород городить». Неужели так трудно всё порты 1GBE и 10GBE делать под старую добрую витую пару? 10 Gigabit витая пара поддерживает и вперёд!»

И правда, зачем всё это? Берём 6 категорию для соединений уровня доступа Gigabit Ethernet (мы же не жадные, заботимся о скорости и стабильности) и категорию 6А для 10 Gigabit Ethernet и радуемся жизни. Дёшево и сердито!

Но это всё хорошо, если соединение между отдельными точками не превышает 100 метров (иногда даже и меньше). На практике даже в одном здании можно запросто выйти за предел 100 метров, просто обходя все углы.

Представим себе более сложную ситуацию

У нас имеются три различных офиса, в каждом из которых работает по 20 человек. Необходимо выбрать коммутаторы, которые подходят для подключения пользователей по гигабитной сети с 10 гигабитным Uplink.

Вроде бы задача проста: нужно 3 гигабитных коммутатора уровня доступа на 24 гигабитных порта с Uplink 10 Gigabit Ethernet, и ещё один 10 гигабитный коммутатор уровня агрегации для объединения Uplink всех трёх коммутаторов в одну сеть.

Можно даже замахнуться на отказоустойчивую схему из двух коммутаторов 10GBE. В любом случае всё выглядит не так сложно.

Усложним немного задачу. Представим, что первый офис находится рядом с серверной, второй — в соседнем здании на расстоянии более 100м, и, чтобы достать туда, требуется много раз обогнуть препятствия под разным углом, а третий — вроде бы по прямой, но на расстоянии более 550 м. И что тут делать?

Вроде бы задача по-прежнему выглядит не такой сложной. Покупаем три коммутатора уровня доступа:

Один, который поставим рядом с серверной, будет с Uplink 10 Gigabit Ethernet для витой пары.

Второй коммутатор — так как общее расстояние выше — с Uplink для многомодового оптоволокна дальностью до 550 м, который за счёт своих физических свойств позволяет «обойти все углы».

И третий коммутатор с Uplink для одномодового кабеля при расстоянии свыше 550 м.

Вроде бы весело и замечательно. А теперь представьте, что для объединения их в одну сеть на следующем уровне понадобится коммутатор 10 Gigabit Ethernet с тремя различными типами портов под разные типы кабелей.

И это ещё «цветочки». Для связи этого коммутатора с «верхним уровнем» (уровнем ядра сети, например) может потребоваться Uplink для сетей 40GBE или даже 100GBE. Особенно интересная ситуация возникает, когда число таких Uplink и Downlink (Downlink — порт для соединения с нижеследующим уровнем) не удаётся предугадать раз и навсегда, и всё меняется в процессе эксплуатации…

И вот тут возникает интересный момент: а сколько таких коммутаторов нам понадобится? А если не хватит одного-двух портов одного типа, зато порты другого типа окажутся в избытке? Покупать новый? А как это отразиться на архитектуре сети? Например, если по проекту заложено, что все три офисных коммутатора уровня доступа общаются напрямую через один коммутатор уровня агрегации, не выходя на ядро сети?

Значит нужно придумать единый стандарт для разъёма, в который при помощи соответствующих переходников (трансиверов) можно подключать различные кабели.

В принципе, универсальность и взаимозаменяемость явилась главной причиной создания SFP. Данная технология, естественно, не стояла на месте и появились более поздние стандарты, такие как SFP+ и XFP. Но обо всем по порядку.

Примечание. На практике не всё обстоит так гладко. Некоторые вендоры, искусственно ограничивают применение переходников от разных производителей. Например, есть такая сисадминская примета: если нужно использовать сетевое оборудование Cisco, то лучше использовать и трансиверы этого же вендора. Возможно, это не всегда так, но рисковать никто не хочет.

Однако мир не идеален, и порой приходится поддерживать мультивендорное решение. В таких случаях лучше подбирать оборудование от более демократичных вендоров, которые не создают дополнительных ограничений.

Существует мнение, что при разработке стандарта SFP (Small Form-factor Pluggable) учитывалось требование сохранить ту же плотность портов на 1U в 19 дюймовой стойке, что и в случае с разъёмами под витую пару. То есть 48 портов для подключения устройств и минимум 2 Uplink. Небольшие размеры SFP позволили решить данную задачу.



Рисунок 2. Коммутатор L3 Zyxel XGS4600-52F на 48 портов Gigabit Ethernet SFP, с четырьмя портами Uplink 10 Gigabit Ethernet SFP+

SFP стандарт используется для поддержки следующих протоколов:

  • Fast Ethernet (100 Mb/s);
  • Gigabit Ethernet (1 Gb/s);
  • SDH (155 Mbps, 622 Mbps, 1.25 Gbps, 2,488 Gbps);
  • Fibre Channel (1, 2, 4, 8 Gbps).



Рисунок 3. Трансивер Zyxel SFP10G-SR SFP Plus для 10 Gigabit Ethernet



Рисунок 4. Трансивер 10GbE Fiber FTLX1412D3BCL

Существует сетевое оборудование, способное принимать несколько видов трафика по одному порту, например, Ethernet и Fibre Channel с последующим разделением. Разумеется, для такого соединения нужны соответствующие сетевые карты и трансиверы, поддерживающие подобный «универсальный подход».

Особенности SFP поддержки различных типов оптики

Однако есть и другие модели трансиверов, например, SFP WDM, и разумеется, трансиверы с разъёмом RJ45, о которых шла речь выше.

Существует классификация SFP модулей по доступному расстоянию для передачи данных:

  • 550 м — для многомодовых;
  • 20, 40, 80, 120, 150 км для одномодовых модулей.

Выпускаются SFP модули нескольких стандартов с различными комбинациями приёмника (RX) и передатчика (TX).

Такой подход даёт возможность выбрать необходимую комбинацию для заданного соединения, исходя из используемого типа оптоволоконного кабеля: многомодовое (MM) или одномодовое (SM).

Помимо деления по типу оптоволокна, есть разделение по количеству используемых волокон. Есть SFP модули для парных оптических проводников: многомодовые и одномодовые.

Существуют и одноволоконные модули: WDM, а также CWDM и DWDM.

SFP модули для многомодовых патчкордов используют раздельные приёмник и передатчик фиксированной длины волны 850нм (собственно, для этого и нужно два оптических проводника в одном патчкорде).

В таких патчкордах используется крестообразное соединение от передатчика к приёмнику. (TX1\<—>RX2, RX1\<—>TX2).

Преимуществом многомодового оптоволокна является невосприимчивость к изгибам (до определённого разумного предела), что позволяет использовать, например, при монтаже стоечного оборудования, когда излишки длины патчкорда можно убрать в органайзер.

Как было уже указано выше, ограничением для многомодового оптоволокна является сравнительно небольшая длина (до 550м).

SFP модули для парных одномодовых соединений имеют раздельные приёмник и передатчик фиксированной длины волны либо 1310нм, либо 1550нм. Подключение делается по той же крестообразной схеме. Применение одномодовых SFP модулей делает возможным передачу данных на расстояния до 120км.

Однако не во всех случаях можно использовать парные оптоволоконные кабели. В некоторых случаях гораздо удобнее передавать сигнал в обе стороны по одному оптическому световоду.

SFP WDM — сокращение от Wavelength Division Multiplexing (спектральное уплотнение каналов). В данном случае модули (они же WDM Bi‑Directional, или Bi‑Di) используют совмещённый приёмопередатчик и работают в парах. Пара состоит из двух модулей с разной длиной волны: 1310нм и 1550нм.

В первом случае используется передатчик с длиной волны 1550нм и приёмник с длиной волны 1310нм.

Во втором случае: наоборот, передатчик с длиной волны 1310нм и приёмник с длиной волны 1550нм.

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

Благодаря совмещению каналов для соединения таких модулей нужна только одна оптоволоконная жила. Стандартные SFP WDM модули имеют разъём типа SC для одножильного соединения.

SFP CWDM — Coarse WDM — что дословно значит «грубый» WDM — это более поздняя реализация WDM с раздельными приёмником и передатчиком. SFPCWDM отличаются, в первую очередь, диапазоном каналов передачи, который варьируется от 1270нм до 1610нм:

2 дополнительных канала 1270нм и 1290нм;

16 основных (1310нм — 1610нм с шагом 20нм).

Данные модули имеют широкополосный приёмник, что позволяет 2 модулям с любыми длинами волн передачи работать в паре. Но для работы в паре такие модули использовать нерационально, более оптимально использовать 16 каналов с разными длинами волн, подключёнными к мультиплексору. Мультиплексор «собирает» свет разных длин волн, который излучают передатчики модулей, «объединяет» собранное в единый световой пучок и направляет по единственному одномодовому волокну далее. При приёме данных производится обратная процедура.

Рассказывая о кабелях и стандартах, стоит также упомянуть 10 гигабитный Direct Attached Cable (DAC) SFP+, работающий по стандарту 10GBASE и совместимый со стандартами 10G Ethernet, 8/10G Fibre Channel. Такие кабели стоят относительно недорого и чаще всего применяются на небольших расстояниях, например, для подключения СХД, серверов и других устройств к скоростной сети.



Рисунок 5. DAC10G-3M кабель Direct Attach

Отличия SFP от SFP+

SFP модуль всем хорош, одна неприятность — не поддерживает высоких скоростей. А технический прогресс требовал перехода на сети 10 Gigabit. И появились новые стандарты, одним из которых стал SFP+

Как часто бывает с родственными технологиями и стандартами — SFP+ совместим с SFP сверху вниз. То есть в порт SFP+, можно подключить более старые трансиверы SFP, а вот наоборот — включить может и получится, но работать они не будут.

Однако возможны неприятные исключения. В оборудовании некоторых производителей (к счастью, Zyxel в их число не входит) совместимость сверху вниз не поддерживается. Всегда лучше на всякий случай уточнить у продавца, будет ли работать данный трансивер с данным портом на данном оборудовании.

Особенности стандарта XFP

Стандарт XFP был разработан группой XFP MSA (Multi Source Agreement). Скорость работы начинается от 10G и может использоваться с оптоволоконным кабелем для высокоскоростной сети.

Рабочая длина волны: 850нм, 1310нм или 1550нм, при этом трансиверы XFP не зависят от протокола и полностью поддерживают конвергентность для стандартов:

  • 10 Gigabit Ethernet;
  • 10G Fibre Channel;
  • синхронная оптическая сеть (SONET) на скорости OC 192;
  • синхронная оптическая сеть STM 64;
  • оптическая транспортная сеть 10G (OTN) OTU 2;
  • параллельная оптическая связь.

Примечание. При плотном трафике модули SFP+ были замечены за непристойным занятием — они нагревались до достаточно высокой температуры. Виной тому малые размеры и высокая плотность портов — в принципе, то, зачем SFP и создавался. Разумеется, повышение температуры оборудования создаёт риск при длительной работе. Это факт вынуждает в некоторых случаях использовать другой стандарт для подключения трансиверов (также небольших, хоть и не таких миниатюрных как SFP+) — XFP.

Можно ли соединять устройство с портом XFP и другое устройство с SFP+

Теоретически такое соединение возможно, необходимо использовать оптические кабели, подходящие для обоих трансиверов.

Например, XFP‑10G-SR и SFP‑10G-SR — это многомодовые модули на основе LC разъёмов, поэтому применение многорежимного оптического кабеля LC по идее позволит получить работающее соединение.

На практике лучше заглянуть в соответствующие спецификации и при любом сомнении — уточнить у представителей вендора (дилера, системного интегратора и т. д.) соответствующие детали.

Заключение

Унифицированный подход и стандартизация упрощают нашу жизнь.

Разумеется, не существует единого идеального решения. В любом стандарте, в любой технологии есть плюсы и минусы. И не всегда они касаются технических аспектов.

Немаловажную роль при выборе той или иной технологии играет цена вопроса, внешние ограничения (например, расстояние), а также особенности эксплуатации.

Читайте также: