Организация TCP/IP по последовательным линиям

 
  • Организация TCP/IP по последовательным линиям
  • TCP/IP по спутниковой связи.
  • Скорость, которую можно получить.

    * Конфигурирование SLIP/CSLIP * .

    * PPP *

  • MOTOROLA: PPP
  • Linux
  • Windows 95
  • HP-UX 10.20


  •       Протокол 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.