SCTP с множественной адресацией в качестве замены для TCP

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

У СтивенаUnix Network Programming V1 3-е издание на странице 288 говорится:

В этом примере мы используем сервер типа «один ко многим». Мы делаем этот выбор по одной важной причине. Примеры в Главе 5 могут быть изменены для запускаSCTP с одним незначительным изменением: изменитьsocket вызов функции для указанияIPPROTO_SCTP вместоIPPROTO_TCP в качестве третьего аргумента. Однако простое внесение этого изменения не позволит воспользоваться какими-либо дополнительными функциями, предоставляемымиSCTP кроме мульти-самонаведения.

Теперь я попробовал это с довольно плохими результатами.

Я работаю на Ubuntu 9.04 с установленными пакетами libsctp1, libsctp-dev и lksctp-tools. Я проверял с помощью lksctp-tools, чтоSCTP работает правильно.

Я взялUNP пример кода и изменены, как указано выше~/unpv13e/tcpcliserv/tcpserv04.c а также~/unpv13e/select/tcpcli02.c программы.

Это простая пара эхо-сервер / клиент. Сервер работает, по-видимому, прослушивая, но клиент завершает работу, говоря, что в соединении отказано Поскольку netstat не поддерживаетSCTP я использовалlsof -n | grep tcpserv который показал мне:

tcpserv04 6208      alice    3u     sock        0,4            33889 can't identify protocol

Это, кажется, не говорит мне о многом, кроме того, что tcpserv04 имеет какой-то открытый сокет.

Я уже переписал и протестировал оригинальный TCP-клиент в perl, поэтому я переключил его на sctp и смог подключиться, хотя передача файла на stdin не работала полностью (зависло примерно на 2/3 пути получения ответа эха) ,

Похоже, что UNP подразумевает, что портирование приложений TCP на SCTP для использования преимуществ множественной адресации тривиально, но основано на этой простой попытке, которая на самом деле не выглядит так.

Может ли кто-нибудь указать мне хороший учебник или дать хороший совет по поводу любых проблем, на которые следует обращать внимание при портировании приложений TCP на SCTP «один-к-одному», чтобы воспользоваться преимуществами множественной адресации?

Ответы на вопрос(1)

Ваш ответ на вопрос