Антипов Д.

Elvis+ Co, Ltd.

TCP/IP СЕРВИС ДЛЯ IBM PC (ОБЗОР ПАКЕТОВ ПРОГРАММ)

(Полную версию статьи можно найти на сервере ftp.elvis.msk.su в каталоге /pub/windows/winsock/quick/pc-ip.txt )

СИСТЕМЫ НА БАЗЕ TCP-IP

Наиболее широкое распространение в настоящее время нашли сетевые системы построенные на основе протоколов семейства TCP/IP. Первоначально эти системы базировались на многопользовательских UNIX-машинах, однако, в последнее время, практически весь сетевой сервис стал доступен и на персональных компьютерах, например, типа IBM-PC, причем как под MS-DOS, так и под MS-Windows. Многозадачный режим работы в системе MS-Windows позволяет пользоваться несколькими сетевыми услугами одновременно. Например, вы можете копировать файлы с файлового сервера и, одновременно, по тому же сетевому каналу читать/отправлять сообщения другим пользователям, производить поиск в базах данных и т.д. При этом вам не придется томиться в бездействии, ожидая окончания какой-либо операции. Вы просто переключаете свое внимание на что-нибудь другое, например чтение личной почты или новостей.

INTERNET

После интеграции многих локальных сетей в Internet, сервис, который можно получить на компьютере значительно расширился. Это и информация о различных научных и исследовательских проектах, огромные файловые архивы, коммерческие базы данных, средства обмена информацией (большей частью в режиме on-line, т.е. ответ вы получите с задержкой меньше чем несколько секунд). Новым толчком к развитию послужила коммерциализация сети. К Internet подключаются банки, биржи, рекламные и торговые агентства промышленные фирмы и т.д.

По данным, собранным Win Treese (treese@crl.dec.com) и опубликованных в Internet GNN, начиная с августа 1991 более чем половина всех зарегистрированных сетей, подключенных к Internet - коммерческие. За 1993 год число обращений к системе Gopher выросло на 997%, а к Mosaic на 341.634%. В 1993 году новая сеть подключалась к Internet в среднем каждые 10 минут. В Норвегии на 1000 человек населения приходится 5 машин, подключенных к Internet, а в США - 4. В июле 1993 общее число машин в Internet было примерно 1,776,000. По электронной почте через Internet доступно (по не точным данным) 137 стран.

Главным сдерживающим фактором для развития сетей в нашей стране считалась высокая стоимость оборудования. Однако в последнее время рынок буквально завален недорогими сетевыми контроллерами и модемами. Заметьте, что если вы имеете локальную сеть вам не нужно для каждой машины покупать отдельный принтер и держать на локальном диске каждой машины свою копию одних и тех же программ и пакетов. Всю эту нагрузку возьмут на себя специально выделенные для этой цели сетевые устройства. А подключившись к Internet вы откроете новый мир уникальных возможностей. После первого же небольшого знакомства с Internet я понял, что работу в сети и без нее можно сравнить с работой с компьютером и без него.

Если вы имеете только несколько компьютеров, или даже один, вы все равно можете подключиться к Internet, воспользовавшись например, обычным телефонным (модемным) соединением . Конечно, работать через модем намного медленнее чем через сетевой адаптер, но это единственное отличие. Практически все сетевые программы рассчитаны на работу, в том числе, и на медленных линиях.

НАИБОЛЕЕ ЧАСТО ИСПОЛЬЗУЕМЫЕ СЕРВИСНЫЕ ПРОГРАММЫ

Ниже описаны наиболее часто используемые сервисные программы [1].

GOPHER

Производит информационный сервис, делая доступным информацию в Internet через систему иерархических меню. Кроме того, через Gopher можно получать различный сетевой сервис: ftp, News, Archie и др. (об этих системах см. ниже). Для GOPHER существует и своя система поиска информации (Veronica).

WWW (World Wide Web)

В основе лежит иерархическая идеология доступа к информации. Но в отличии от GOPHER это гипертекстовая среда, которая позволяет сразу же отображать полученную информацию, будь то графические иллюстрации, компьютерный фильм или музыка.

WAIS (Wide Area Information Servers)

Система хранения и поиска документов в сети Internet. Для поиска не требуется специального языка запросов. Запросы формируются на естественном (русском или английском) языках.

В настоящее время в Internet существует большое количество баз данных для WAIS охватывающих чрезвычайно широкий спектр знаний, например, таких, как

а также сотни других баз и серверов.

На машине elvis.msk.su открыт доступ к WAIS серверу, содержащему документы с коммерческими объявлениями и со списками файлов серверов ExUSSR.

MAIL (электронная почта)

Позволяет обмениваться сообщениями с помощью компьютера. Через Internet ваше письмо попадет в любую точку земного шара за считанные минуты.

Обычно Mail-клиент содержит в себе текстовый редактор, для подготовки новых писем и чтения приходящих, подсистемы сортировки и хранения почты.

NEWS (Usenet)

Usenet сейчас - это тысячи News-групп, каждая из которых содержит статьи с определенной темой. Статья представляет собой обычное письмо, только в отличии от электронной почты ее может прочитать любой, кто подпишется на эту группу. Часто Usenet называют телеконференциями или эхопочтой, эхо-конференциями. Телеконференции действуют на основе уставов - правил принятых самими участниками [6].

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

Одним из самых крупных в нашей стране является блок конференций иерархии RELCOM.*. Программирование на различных платформах, география, литература, политика, музыка, выставки, курсы валют, вопросы законодательства, дискуссии о рынке, биржевая информация - вот далеко не полный перечень вопросов, доступный подписчикам Relcom. Отдельно - большой пакет конференций с коммерческими объявлениями типа куплю/продам. Qуществует возможность отправлять и получать статьи практически в/из любой сети мира.

IRC (Internet Relay Chat)

Очень похож на News, но диалог ведется в реальном времени, как на селекторном совещании. Множество различных групп. Есть русскоязычные группы (например сервер irc.funet.fi канал #russian). Для создания новой группы достаточно просто присоединится к несуществующему каналу с требующимся вам именем. Если выбранная вами тема дискуссии будет интересна другим пользователям Internet, то они тоже подключатся к этому каналу и вы сможете начать дискуссию. Одновременно поддерживается обмен сообщениями между двумя пользователями. Есть возможность передавать файлы по IRC-каналам.

FINGER

Первоначально задумана как программа, которая возвращает информацию о зарегистрированном пользователе или о пользователях, которые в данный момент находятся в системе на удаленной (или локальной) машине.

В качестве параметра требует <имя пользователя>@<имя машины>. Если не указано имя машины, будет пытаться получить информацию от локальной машины. Если имя пользователя не указано (символ '@' перед именем машины в этом случае обязателен, например @elvis.msk.su), будет выдана информация о всех пользователях, имеющих терминальный сеанс в данный момент времени.

TELNET

Использует стандартный протокол Internet для получения терминального доступа к удаленной машине. После запуска этой программы ваша машина будет эмулировать удаленный терминал. Существует список машин, подключенных к INTERNET, разрешающих ограниченный доступ бесплатно [2]. Многие машины при этом предоставляют доступ к своим базам данных, если использовать специальное имя пользователя (например, библиотечная система университета в Стенфорде - telnet forsythetn.stanford.edu и имя пользователя socrates) или к другим клиентам Internet:
Client Host Login
Mosaicsunsite.unc.edu lynx
Gopher info.elvis.msk.su gopher
Waisinfo.elvis.msk.su swaic
IRCinfo.elvis.msk.su irc

FTP (File Transfer Protocol)

Позволяет пользователям одной машины получать доступ к файловой системе и получать (передавать) файл с другой машины (на другую машину). На многих машинах INTERNET имеются огромные коллекции (терабайты информации) архивов программных средств, всевозможной документации, художественной литературы, компьютерные фильмы, музыка и др. Как правило, этот сервис предоставляется бесплатно, при условии, что в качестве имени пользователя вы зададите anonymous, а в качестве пароля свой e-mail адрес.

Информация о новых поступлениях на эти и другие сервера регулярно публикуется в различных телеконференциях, например, relcom.archives.

ARCHIE

Система автоматического поиска файлов в архивах Internet, доступных по FTP. Существует список машины, подключенных к INTERNET, осуществляющих этот сервис бесплатно. Поскольку база данных находится на той машине, соединение с которой вы установили, поиск производится с достаточно высокой скоростью (обычно это несколько секунд).

X-server

Эмулирует графический терминал системы X-Windows.

LPQ/LPR/LPRM

Программы, осуществляющие доступ к сетевому принтеру:

PING

Тестирует IP-соединение, используется для отладки.

В качестве параметра обычно указывается имя или IP-адрес машины (host), возможность установления IP-соединения с которой проверяется. В ответ ping-клиент сообщает доступна или нет машина и время, через которое от нее получен ответ.

СЕТЕВЫЕ ПАКЕТЫ, ПОДДЕРЖИВАЮЩИЕ TCP/IP

PCNFS и PCTCP.

Наиболее известными пакетами, поддерживающие TCP/IP сервис на PC под MSDOS являются PCNFS (Copyrigt (c) Sun Microsystems) и PCTCP (Copyrigt (c) FTP Software).

Это наиболее полные сетевые пакеты, незаменимые при работе в локальных сетях. Кроме обычного FTP содержат средства, позволяющие монтировать файловую систему других машин (в том числе и с другой операционной системой) и работать с ней как с собственным диском. Последние версии этих пакетов содержат winsock.dll поддерживающую "Microsoft Windows Sockets" спецификацию [7], что позволяет использовать сетевые программы под MS-Windows. PCNFS и PCTCP строго коммерческие пакеты и приобрести их можно только у официальных диллеров фирм. Библиотеки и их спецификации для программирования в этих системах поставляются отдельно за дополнительную плату.

TCPABI (Copyright (c) P.R.Tattam)

Автором большинства программ этого пакета, ядра TCP/IP (драйвер TCPDRV.EXE) и спецификации является P.R.Tattam (peter@psychnet.psychol.utas.edu.au). Статус - shareware.

WATTCP (Waterloo TCP)

Этот пакет интересен тем, что программы обращаются к пакетному драйверу напрямую, не требуя загрузки дополнительных резидентных драйверов, занимающих и без того небольшое пространство памяти под DOS.

Trumpet WINSOCK (Copyright (c) 1993,1994 by Peter R. Tattam)

Это динамческая библиотека для MS-Windows поддерживающая "Microsoft Windows Sockets" спецификацию [7]. Загружается автоматически, после вызова сетевых программ, выгружается через несколько секунд после завершения последней использующей ее программы. Содержит в себе встроенный SLIP, что позволяет использовать ее на модемных соединениях. Статус - shareware.

СЕТЕВАЯ МОДЕЛЬ TCP/IP.

Как правило, сетевые программы работают по принципу клиент-сервер. То есть, когда пользователь запускает программу, запрашивающую какой-либо сетевой сервис (такую программу называют клиентом), то эта программа соединяется по сети с другой программой (называемой демоном или сервером) запущенной на другой машине в сети. Машина, предоставляющая сетевой сервис называется сервером. Машина подключенная к сети называется хостом (host). Любой host (даже PC) может быть сервером, если на нем запущены соответствующие программы, предоставляющие сетевой сервис, или если эти программы будут запущенны автоматически, непосредственно сразу после первого же обращения за сервисом. Хост, на котором работает пользователь называется локальным (local host). Все хосты имеют Internet-адрес, состоящий из четырех чисел, разделенных точками (например 192.153.171.60) и составное имя в доменной форме (например elvis.msk.su). Один хост может иметь несколько имен и адресов. Раньше, соответствие между адресом и именем определялось из специального текстового файла - hosts. Но со временем, когда количество машин в Internet стало таким, что файл стал занимать несколько мегабайт, и к тому-же, его требовалось корректировать непрерывно, был изобретен специальный механизм запросов, позволяющий получать эту информацию из сети - DNS (Domain Name System) и ARP (Address Resolution Protocol).

При передаче информации по сети компьютер выполняет над ней несколько этапов обработки, называемых уровнями:

Теоретически, запросы каждого уровня обрабатываются отдельной программой, но на практике такие программы часто объединяют. Преобразование информации на каждом уровне осуществляется в соответствии со стандартом, который называют протоколом этого уровня.

Когда какой-либо пользовательской программе требуется передать информацию по сети, она не пытается отправлять ее напрямую, через физическое соединение, а отдает на более низкий уровень, TCP или UDP.

Протокол TCP (Transmission Control Protocol - протокол управления передачей) гарантирует доставку полученной информации. Разбивает поступившую информацию, на блоки данных (пакеты), вычисляя оптимальный размер пакета. Требует установления соединения до начала передачи информации, то есть, сначала проверяется возможность передачи данных с одной стороны, и наличие получателя информации с другой.

Протокол UDP (User Datagram Protocol - протокол пользовательских датаграмм) в отличие от TCP не гарантирует надежную доставку, но и не требует установления соединения.

Протоколы TCP и UDP находятся на одном уровне и являются альтернативой друг другу. Программа верхнего уровня ассоциирует обрабатываемый ею сетевой сервис с номером порта TCP или UDP. Номер порта - это атрибут TCP/UDP пакета по которому устанавливается его соответствие определенному сервису. Текстовый файл services, находящийся на каждой машине сети, обеспечивает однозначную интерпретацию соответствия сервиса и номера порта.

TCP и UDP пакеты поступают на следующий уровень - IP, который обеспечивает их маршрутизацию.

И только после уровня IP, пакеты поступают на физический уровень - сетевой адаптер или модем.

На приемной стороне пакеты "распаковываются" в обратном порядке.

ПАКЕТНЫЕ ДРАЙВЕРЫ

Подавляющее большинство сетевых программ обращается не прямо к сетевой плате (сетевому адаптеру), а через специальный пакетный драйвер.

Он осуществляет интерфейс между различными видами сетевых адаптеров и стандартными сетевыми программами и поставляется вместе с адаптером. Интерфейс к пакетному драйверу со стороны программ верхнего уровня строго стандартизован, что позволяет избежать зависимости от аппаратуры. При любом физическом соединении программы верхнего уровня будут обращаться только к пакетному драйверу.

Наиболее интересно работать с сетевыми программами в многозадачном режиме. На PC такой режим работы предоставляет система MS-Windows.

Вы можете, например одновременно запустить FTP-сессию (причем не одну) и это не заблокирует надолго дисплей. Одновременно можно работать с любой другой программой. Однако, если пакетный драйвер загружен до старта WINDOWS он может оказаться недоступным для задачи, запущенной после старта WINDOWS, что вызовет зависание системы. Поэтому применяют драйвер WINPKT, который разрешает эту конфликтную ситуацию.

Наиболее предпочтительным в этом случае представляется использование WINSOCK. Это динамическая библиотека, которая осуществляет TCP/IP сервис под Windows и сама мультиплексирует сетевые данные (пакеты) между Windows-программами (но учтите, что для DOS- программ она не доступна).

А если вы используете модемное соединение, то для работы с Trumpet Winsock не требуется загружать никакие драйверы. Trumpet Winsock содержит внутри себя поддержку SLIP-протокола.

ГДЕ НАХОДЯТСЯ ПРОГРАММЫ.

Многие из упоминавшихся здесь программ, можно найти на FTP-сервере ftp.elvis.msk.su. Он доступен также и по электронной почте по адресу mailserv@elvis.msk.su.

ЛИТЕРАТУРА

1. RFC1392 Internet Users' Glossary (G. Malkin Xylogics, Inc. T. LaQuey Parker UTexas)

ftp.elvis.msk.su /pub/rfc/rfc1392.txt

2. A GUIDE TO INTERNET/BITNET (Dana Noonan)

ftp.elvis.msk.su /pub/books/GuideToInternet

3. Introduction to the Internet Protocols. (Copyright (C) 1987, Charles L. Hedrick)

ftp.elvis.msk.su /pub/doc/tcpip/tcp-engl.arj

4. Введение в протоколы TCP/IP (рус).

ftp.elvis.msk.su /pub/doc/tcpip/tcp-russ.arj

5. comp.protocols.tcp-ip.ibmpc Frequently Asked Questions (FAQ) (Copyright (C) 1994 by Bernard Aboba)

ftp.elvis.msk.su /pub/doc/tcpfaq.zip

6. ЧАстые Вопросы и Ответы (Евгений Пескин)

ftp.kiae.su /relcom/faq/chawo.arj

7. Windows Sockets API specification (Joel Goldberger)

ftp.elvis.msk.su /pub/windows/winsock/wsguide.doc

8. Big Dummy's Guide to the Internet (Mitchell Kapor, Steve Cisler, Adam Gaffin copyright Electronic Frontier Foundation 1993, 1994)

ftp.elvis.msk.su /pub/books/bigd-2_0.zip или

http://www.vifp.monash.edu.au/bdgtti


Содержание