Организация TCP/IP по последовательным линиям
Протокол TCP/IP не обязательно требует наличия ether
net'ной сети. Вполне допустимы и другие физические носители,
например:
Последовательные линии с подключением через порты 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-шине - это да, это - экзотика.
Кстати, RFC 1149 описывает передачу пакетов IP голубиной
почтой.
TCP/IP по спутниковой связи.
Теоретических трудностей организация связи TCP/IP через
спутниковую антенну нет - все выглядит также, как при модемной
связи по телефону. Технология примерно следующая: с антенны
выходит высокочастотный сигнал, сигнал прогоняется сквозь
спутниковый модем, из модема выходит поток данных по формату
High Speed Interface - завести в компьютер его можно через
скоростной порт, например V.435 (логически он ведет себя
приблизительно как обычный последовательный порт), и со стороны
хоста - поднимается протокол PPP. Естественно, на "том конце"
предполагается та же схема подключения.
+-------------------+ +-----------------+ (
| протокол порт| данные |порт спутниковый| сигнал ( ><
|Host PPP V.435|========|V.435 модем | ~~~~~~ (
| -TCP/IP-> | | | ~~~~~~ /\
+-------------------+ +-----------------+ Антенна
Вместо Хоста со скоростным портом, модем можно подключить к
специализированному устройству - "Роутеру", внутри которого
"зашит" протокол TCP/IP (PPP, Ether), и имеются порты Ethernet,
и High Speed Interface. Достаточно популярны для таких целей
роутеры "Cisco router", "NetBlaser".
+-------------------+ +-----------------+ (
| протокол порт| данные |порт спутниковый| сигнал ( ><
|Router PPP V.435|========|V.435 модем | ~~~~~~ (
| -TCP/IP-> | | | ~~~~~~ /\
+-------+-----------+ +-----------------+ Антенна
|
... -Ethernet------ ...
Скорость, которую можно получить.
Скорость главным образом зависит от типа и качества линии свя-
зи, используемых модемов, и типа порта, в который этот модем
воткнут.
Практические ограничения на скорость:
Скорость данных между модемами 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.
Теперь SLIP в Linux заряжается командой DIP, с конфигурационным файлом:
/usr/sbin/dip config-file-name
---------------------------------------------------------------
# прямой коннект нульмодемным кабелем
main:
get $local 193.232.171.22
get $remote 193.232.171.19
port /dev/modem
speed 9600
mode SLIP
exit
---------------------------------------------------------------
# slip с телефонной дозвонкой
---------------------------------------------------------------
main:
get $local uwalt.hacktic.nl
get $remote xs4all.hacktic.nl
port /dev/modem
speed 38400
send ATQ0V1E1X4\r
wait OK 2
dial p555-1234
login:
sleep 2
wait ogin: 20
send MYLOGIN\n
wait ssword: 20
send MYPASSWD\n
# We are now logged in.
wait SOMETEXT 15
get $mtu 296
# Ensure "route add -net default xs4all.hacktic.nl" will be done
default
mode SLIP
---------------------------------------------------------------
На обоих концах иметь симметричные файлы и запустить dip'ы
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 > /dev/modem
sleep 55
# поднимаем slattach
slattach -e /dev/modem 195.8.2.3 107.65.8.254 19200 &
fi
done
/etc/inet/ppphosts - перечисляет ppp-хосты
Правила дозвонки и соединения с этими хостами описываются
стандартными описаниями из UUCP
Убедиться, что поддержка ppp присутствует в
конфигурационном файле /etc/strcf
Убедиться, что при загрузке запускается команда slink
Непосредственное ppp-соединение активизируется при
обращении ("по требованию").
Подробности искать в
man ppp
man pppd
man ppphosts
Все делается командой pppd. В комплект pppd входит
командочка chat, в аргументах же pppd задаются IP-адреса,
телефонные номера, инициализация модема, chat-овый диалог с
машиной провайдера.
Пример: (Почти из жизни) явно задаем наш IP=123.456.789.12
pppd connect 'chat -v ABORT "NO DIALTONE" ABORT BUSY "" ATZ OK \
atdp9386933 Username: ppmoshkow Passwd: mypasswd mode ;' \
crtscts defaultroute modem noipdefault -detach mru 1500 \
123.456.789.12:194.85.105.1 /dev/modem 38400
Пример: взять адреса заданные сервером
pppd connect 'chat -v ABORT "NO DIALTONE" ABORT BUSY "" ATZ OK \
atdp9386933 Username: ppmoshkow Passwd: mypasswd mode ;' \
crtscts defaultroute modem noipdefault -detach mru 1500 \
0.0.0.0: /dev/modem 38400
Поставить допоолнительный пакет из MS Plus - "Network dialup
script editor"
Подключить через него скрипт:
---------------------------------------------------------------
proc main
waitfor "login:" until 5
transmit $USERID, raw
transmit "^M"
waitfor "Password:"
transmit "password^M"
waitfor "modem" until 5
endproc
---------------------------------------------------------------
В звонильной форме вписать logname, password не вписывать, ибо
все равно он забывается при каждом перезапуске.
На рабочих станциях под HP-UX/10.20 родного ppp НЕТ. Только slip.
Можно сftpить free-варный пакет iij-ppp
http://www.verinet.com/~barthold/ftp/iij-ppp0.94beta2.hpux10.tar.gz
Документация по конфигурации и инсталляции прилагается к пакету.
На серверах и рабочих станциях SLIP назван "ppl" и включен в
стандартный пакет "LAN/9000 Link" product.
Last-modified: Thu, 09 Jul 1998 12:44:55 GMT