Организация TCP/IP по последовательным линиям
Организация TCP/IP по
последовательным линиям
Протокол TCP/IP не обязательно
требует наличия ethernet'ной се- ти.
Вполне допустимы и другие
физические носители, например:
- Последовательные линии с
подключением через порты RS-232,
- Скоростные линии с
подключением через
параллельные порты, или
скоростные синхронные порты
(например 485, V.435).
Эти возможности обеспечиваются
специализированными реализациями
протоколы IP:
- для подключения через RS-232
- SLIP - Serial Line IP - самая
первая реализация TCP/IP
"для бедных", широко
используется до сих пор.
- CSLIP - Compressed SLIP -
модификация протокола SLIP.
Сжатию подвергаются
заголовки IP-пакетов.
ВНИМАНИЕ: но не сами
данные! В стандартном
IP-пакете IP-заголовки со
служебной информацией
занимают порядка 40 байт. В
CSLIP'е эти заголовки
ужимаются до 3 байт. При
пересылке большого числа
мелких пакетов получается
существенный выигрыш в
скорости. Если пакеты
крупные, то выигрыша не
будет никакого.
- PPP - Point-to-Point Protocol Еще
одна, современная
реализация TCP "для
бедных". Является
стандартным для SVR4. Более
универсален. Позволяет
также организовать
передачу по
последовательной линии
протокола IPX. Поддерживает
режимы эмуляции slip и cslip -
для совместимости.
- для подключения через
Centronix-параллельный порт
- PLIP - Parallel Line IP -
некоторые скажут -
экзотика. Ничуть не бывало.
Весьма распространенная
вещь. Вот когда TCP/IP по
SCSI-шине - это да, это -
экзотика.
TCP/IP по спутниковой связи.
Теоретических трудностей
организация связи TCP/IP через
спутниковую антенну нет - все
выглядит также, как при модемной
связи по телефону. Технология
примерно следующая: с антенны
выходит высокочастотный сигнал,
сигнал прогоняется сквозь
спутниковый модем, из модема
выходит поток данных по формату High
Speed Interface - завести в компьютер его
можно через скоростной порт,
например V.435 (логически он ведет
себя приблизительно как обычный
последовательный порт), и со
стороны хоста - поднимается
протокол PPP. Естественно, на "том
конце" предполагается та же
схема подключения.
Вместо Хоста со
скоростным портом, модем можно
подключить к специализированному
устройству - "Роутеру", внутри
которого "зашит" протокол TCP/IP
(PPP, Ether), и имеются порты Ethernet, и High
Speed Interface. Достаточно популярны для
таких целей роутеры "Cisco router",
"NetBlaser".
Скорость, которую можно
получить.
Скорость главным образом зависит
от типа и качества линии связи,
используемых модемов, и типа порта,
в который этот модем воткнут.
Практические ограничения на
скорость:
- Скорость данных между модемами
V32bis/V42 по городскому телефону,
или междугородней линии
"Искра" до 16800 бит/сек.
Реально ~ 12000 бит/с. Наличие
встроенного протокола V42
сжатия данных позволяет
поднять реальную (замеренную
уже не между модемами, а между
портами) скорость передачи
несжатых данных в 2-4 раза, т.е.
до 38400-57600 бит/с
- Максимальная скорость
приема/передачи данных на
последовательном порту RS-232
зависит от наличия в оном
микросхем UART (Universal Asyncronous
Receiver-Transmitter)
- 16450 - 19200 bit/s.
- 16550 - 19200 bit/s. (отсутствие
буковки "A" - фатально)
- 16550A - 38400 bit/s.
- 16550A до 115200 bit/s. (Если
операционная система
"тянет")
(в частности - Solaris, Unixware -
нет, FreeBSD, Netblaser, Cisco router - да)
В итоге реальная скорость
пересылки данных:
- Телефон/"Искра", V32bis/V42 - 19200
бит/с.
- Выделенная 2-х проводка, V32bis/V42 -
38400 бит/с.
- Выделенная 4-х проводка, RAID,????? -
115200 бит/с.
- Физическая 4-х проводка <=4км,
????? до 1 Мбит/с.
- Оптоволокно <=?км, ????? ?? 2
Мбит/с.
- Антенна. Спутниковый модем.
Порт V.435. PPP 64, 128, 256 Кбит/с
Конфигурирование SLIP/CSLIP.
Для этого соединяем два host'а
нульмодемным кабелем через
последовательные порты, и
запускаем фоном программу slattach,
переводящую порты в режим передачи
протокола TCP/IP. Естественно, что SLIP
надо запускать с обоих концов,
причем "одинаковый".
SVR4, slip
slattach /dev/comport NASH-IP-ADRES IH-IP-ADRES 19200 &
# переводит порт /dev/comport в режим "slip" на скорости 19200
# и устанавливает IP-адрес на slip-интерфейс
SVR4, cslip
slattach -c /dev/comport NASH-IP-ADRES IH-IP-ADRES 38400 &
# переводит порт /dev/comport в режим "Compressed-slip"
# на скорости 38400
# и устанавливает IP-адрес на C-slip-интерфейс
slattach -e /dev/comport NASH-IP-ADRES IH-IP-ADRES 38400 &
# переводит порт в режим slip или cslip,
# автоматически определяя, какой именно протокол запущен
# "на том конце", и устанавливает со своей стороны такой же
Linux, SLIP.
slattach -p slip /dev/modem & # переводит порт в режим "slip"
ifconfig sl0 NASH-IP-ADRES pointopoint IH-IP-ADRES
route add IH-IP-ADRES
route add default gw IH-IP-ADRES
Linux, CSLIP.
# сперва переводим порт в режим "cslip"
slattach -p cslip /dev/modem &
ifconfig cs0 NASH-IP-ADRES pointopoint IH-IP-ADRES
route add IH-IP-ADRES
route add default gw IH-IP-ADRES
Linux, PLIP.
ifconfig plip1 NASH-IP-ADRES pointopoint IH-IP-ADRES
route add IH-IP-ADRES
route add default gw IH-IP-ADRES
Установка SLIP по телефонной
линии через модем.
Надо заставить наш модем
созвониться с "тем" модемом.
После этого мы получаем прозрачное
соединение между
последовательными портами, по
которому и "поднимаем" SLIP, см.
предыдущие пункты.
( stty 19200 ; echo atdp9120123 ) < /dev/modem > /dev/modem
sleep 55
Выдаем на модем команду atdp -
набрать телефонный номер, и ждем 55
секунд. Надеюсь, модемам хватит
этого времени, чтобы
"снюхаться".
Восстановление связи в случае
обрыва.
Как узнать, что связь порвалась?
Ping'ануть "тот" конец линка.
Прежде, чем набирать модемом номер
для новой дозвонки, необходимо
"снять" slip с нашего
последовательного порта (поскольку
в режиме slip он функционирует не как
последовательный порт, а как канал
передачи TCP/IP). Как снять slip?
Кильнуть slattach.
while true # В вечном цикле
do sleep 60 # Подождать минутку
if ping 107.65.8.254 | grep 'is alive' ;
then echo Ok > /dev/null # Если IH-IP-ADRES отзывается
else
# Иначе зарубаем slattach
slip_pid=`ps -ef | grep slattach | cut -c1-6`
kill -9 $slip_pid
# набираем тамошний телефонный номер
(stty 19200; echo atdp9120123) /dev/modem
sleep 55
# поднимаем slattach
slattach -e /dev/modem 195.8.2.3 107.65.8.254 19200 &
fi
done
[Назад] [Содержание] [Вперед]
|