Организация 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

* PPP *

MOTOROLA: PPP

/etc/inet/ppphosts - перечисляет ppp-хосты Правила дозвонки и соединения с этими хостами описываются стандартными описаниями из UUCP Убедиться, что поддержка ppp присутствует в конфигурационном файле /etc/strcf Убедиться, что при загрузке запускается команда slink Непосредственное ppp-соединение активизируется при обращении ("по требованию"). Подробности искать в man ppp man pppd man ppphosts

Linux

Все делается командой 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

Windows 95

Поставить допоолнительный пакет из 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

На рабочих станциях под 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.