SCTP с размещением в разных сетях как понижение замены для TCP

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

В Сетевом программировании Unix Steven V1 3-й Выпуск на странице 288 это говорит:

Для этого примера мы используем one-to-many-style сервер. Мы делаем этот выбор по одной важной причине. Примеры в Главе 5 могут быть изменены для работания SCTP с одним незначительным изменением: измените socket вызов функции указать IPPROTO_SCTP вместо IPPROTO_TCP как третий аргумент. Просто внесение этого изменения, однако, не использовало бы в своих интересах ни одной из дополнительных функций, обеспеченных SCTP кроме размещения в разных сетях.

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

Я работаю на Ubuntu 9.04 с libsctp1, libsctp-dev, и установленных пакетах lksctp-инструментов. Я проверил с lksctp-инструментами это 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 в жемчуге, таким образом, я переключил его на sctp и смог соединиться, хотя передача по каналу файла на stdin не полностью работала (слонялся вокруг 2/3's пути посредством получения спины эха).

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

Кто-либо может указать на меня на хорошее учебное руководство или дать хороший совет относительно какого-либо глюка, чтобы не упустить при портировании приложений TCP на one-to-one-style SCTP для использования в своих интересах размещения в разных сетях?

8
задан Robert S. Barnes 11 February 2010 в 10:31
поделиться