Антипов Д. TCP/IP сервис для IBM PC. 1994 .REPLYADDR dima@elvis.msk.su X-RealName: Dima Antipov .Organization: Elvis+, Ltd. TCP/IP сервис для IBM PC. (Обзор пакетов программ) Антипов Д. Версия 12.3.94. Copyright (c) Elvis+ Co, Ltd. 1994. 103460, Москва, Зеленоград, Центральный проспект, 11. АО ЭЛВИС+ Тел. (095) 532-8689 Факс (095) 531-2403 Статус этого документа: разрешено свободное распространение, копирование, репродуцирование в любой форме без получения специального разрешения. Запрещено вносить в текст любые изменения. При цитировании ссылка на документ и фирму обязательна. Последнюю версию этого документа можно найти на сервере ftp.elvis.msk.su в каталоге /pub/windows/winsock/quick/pc-ip.txt │ ftp://ftp.elvis.msk.su/pub/windows/winsock/quick/pc-ip.txt Ваши замечания, дополнения, вопросы будут приняты с благодарностью, если их направить по адресу: dima@elvis.msk.su Copyright. Unix - зарегистрированный товарный знак фирмы AT&T. PostScript - зарегистрированный товарный знак фирмы Adobe Systems. MS-DOS - зарегистрированный товарный знак фирмы Microsoft. MS-Windows - зарегистрированный товарный знак фирмы Microsoft. Novell - зарегистрированный товарный знак фирмы Novell. PC NFS - зарегистрированный товарный знак фирмы Sun Microsystems. PC TCP - зарегистрированный товарный знак фирмы FTP Software. Содержание Системы на базе TCP-IP Internet Наиболее часто используемые сервисные программы. gopher Mosaic или WWW-клиент (World Wide Web) WAIS (Wide Area Information Servers) mail (электронная почта) news (Usenet) IRC (Internet Relay Chat) finger telnet FTP (File Transfer Protocol) archie X-server lpq/lpr/lprm ping Сетевые пакеты, поддерживающие TCP/IP PCNFS и PCTCP. TCPABI (Copyright (c) P.R.Tattam) WATTCP (Waterloo TCP) Trumpet WINSOCK Сетевая модель TCP/IP. Одновременное использование нескольких сетевых пакетов. Установка Trumpet Winsock. Приложения WinSock. WS_PING. WSFINGER. WinQVT. WinVn. WS_FTP. WINARCH. NCSA-telnet. EINet winWAIS. NCSA Mosaic. Где находятся программы. Литература. Системы на базе 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-клиент может подключится к любому Gopher-серверу Internet и получать информацию, доступную этому серверу. Кроме того, через Gopher можно получать различный сетевой сервис: ftp, News, Archie и др. (об этих системах см. ниже). Есть и своя система поиска информации (Veronica). В ExUSSR есть следующие сервера: amet.net.kiae.su - Relcom Information System rd.relcom.msk.su Relcom Research & Development ftp.pczz.msk.su hq.izhmark.udmurtia.su Mosaic или WWW-клиент (World Wide Web) В основе также лежит иерархическая идеология доступа к информации. Но в отличии от gopher имеет гипертекстовую оболочку, то есть позволяет сразу же отображать полученную информацию будь то графические иллюстрации, компьютерный фильм или музыка. Крайне прост в использовании. Вы просто нажимаете кнопку мыши в определенных точках страницы и переходите к новой странице, откуда опять можно перейти к следующей и т.д. WAIS (Wide Area Information Servers) Система хранения и поиска документов в сети Internet. Для поиска не требуется специального языка запросов. Запросы формируются на обычном русском или английском языках. Запросом может быть как произвольный набор ключевых слов, так и обычное предложение типа: "Расскажи мне о ...". Для быстрой работы используется индексный поиск, есть механизм который позволяет использовать результаты предыидущего поиска для следующих. В настоящее время в Internet существует большое количество баз данных для WAIS охватывающих чрезвычайно широкий спектр знаний: - биология (сервер "net.bio.net", база "biology-journal-contents"); - математика (сервер "cirm5.univ-mrs.fr", база "/bases/bibli-cirm/cirm- books.src"); - образование (сервер "borg.lib.vt.edu" база "/LocalLibrary/WAIS/jte/jte"); - лирика (сервер "cs.uwp.edu" база "lyrics"); - психология (сервер "gopher.stolaf.edu" tcp-port 8001 база "MacPsych"); - алгоритмы (сервер "theory.lcs.mit.edu", база "/i/wais-index/algorithms- suggest"); - информация о сервисе, доступном через Internet (сервер "wais.concert.net" tcp-port 8000 база "netinfo"); а также сотни других баз и серверов. На машине elvis.msk.su открыт доступ к WAIS серверу, содержащему документы с коммерческими объявлениями и со списками файлов серверов ExUSSR. mail (электронная почта) Позволяет обмениваться сообщениями с помощью компьютера. Похожа на обычную почту, но письма нужно не опускать в почтовый ящик, а отправлять и принимать с помощью специальных программ, установленных на компьютере. Через Internet ваше письмо попадет в любую точку земного шара за считанные минуты.Существует возможность отправлять и принимать письма практически в/из любой сети мира. Письмо представляет собой обычный текстовый файл с заголовком в начале, который состоит из нескольких текстовых строк: From: e-mail@адрес.отправителя Date: дата отправления To: e-mail@адреса.получателей Cc: e-mail@адреса.получателей.копии.письма Subject: Строка с краткой аннотацией письма а также нескольких служебных полей - маршрут, которым шло письмо, размер, статус и т.д. E-mail адрес в Internet, в общем случае, состоит из имени пользователя и имени машины (например dima@elvis.msk.su). Адрес может иметь не только человек, но и некоторые демоны-программы (например news, newsserv, mailserv, root, uucp и др.) Обычно Mail-клиент содержит в себе текстовый редактор, для подготовки новых писем и чтения приходящих, подсистемы сортировки и хранения почты. В Internet используется несколько протоколов для передачи почты: SMTP (Simple Mail Transfer Protocol) - отправление сообщений; POP2 (Post Office Protocol Version 2) - только получение сообщений; POP3 (Post Office Protocol Version 3) - отправление/получение сообщений; IMAP (Interactive Mail Access Protocol) - отправление/получение сообщений. В документации на Mail-программу указывается, с какими протоколами она работает. В Релкоме почтовые сообщения на русском языке принято передавать в кодировке КОИ8. Если ваш компьютер использует другую кодировку, то либо программа на вашей машине, либо на почтовом сервере должна уметь преобразовывать информацию из одной кодировки в другую. В системах типа MS-Windows иногда спасает выбор соответствующего фонта, но учтите, что могут возникнуть проблемы с вводом символов с клавиатуры. news (Usenet) Usenet сейчас - это тысячи News-групп, каждая из которых содержит статьи с определенной темой. Статья представляет собой обычное письмо, только в отличии от электронной почты ее может прочитать любой, кто подпишется на эту группу. Часто Usenet называют телеконференциями или эхо- почтой, эхо-конференциями. Телеконференции действуют на основе уставов - правил принятых самими участниками [6]. Usenet больше всего напоминает периодическую печать. Вы, подписавшись на группы с интересующей вас темой, регулярно получаете статьи самых различных авторов, которые, также как и вы подписались на эту группу. Но в отличии от газет и журналов, вы можете, например, не согласится с автором и послать опровержение в ту же группу, или наоборот, добавить свою информацию в подтверждение. Одним словом, участвовать в дискуссии. Одним из самых крупных в нашей стране является блок конференций иерархии RELCOM.*. Программирование на различных платформах, география, литература, политика, музыка, выставки, курсы валют, вопросы законодательства, дискуссии о рынке, биржевая информация - вот далеко не полный перечень вопросов, доступный подписчикам Relcom. Отдельно - большой пакет конференций с коммерческими объявлениями типа куплю/продам. Qуществует возможность отправлять и получать статьи практически в/из любой сети мира. Поскольку число абонентов постоянно увеличивается, новые группы создаются непрерывно. Программы используют протокол NNTP для доступа к Usenet и обычно включают в себя текстовый редактор, системы сортировки и хранения, средства для отправки сообщения в группу, дают возможность ответить автору статьи как через электронную почту, так и в News-группу, возможность переслать статью кому- нибудь по электронной почте. IRC (Internet Relay Chat) Очень похож на News, но диалог ведется в реальном времени, как на селекторном совещании. Множество различных групп. Есть русскоязычные группы (например сервер irc.funet.fi канал #russian). Для создания новой группы достаточно просто присоединится к несуществующему каналу с требующимся вам именем. Если выбранная вами тема дискуссии будет интересна другим пользователям Internet, то они тоже подключатся к этому каналу и вы сможете начать дискуссию. Одновременно поддерживается обмен сообщениями между двумя пользователями. Есть возможность передавать файлы по IRC-каналам. finger Первоначально задумана как программа, которая возвращает информацию о зарегистрированном пользователе или о пользователях, которые в данный момент находятся в системе на удаленной (или локальной) машине. В качестве параметра требует <имя пользователя>@<имя машины>. Если не указано имя машины, будет пытаться получить информацию от локальной машины. Если имя пользователя не указано (символ '@' перед именем машины в этом случае обязателен, например @elvis.msk.su), будет выдана информация о всех пользователях, имеющих терминальный сеанс в данный момент времени. Иногда используется также для передачи текстовых файлов (text server) или для получения какой либо информации. Существуют машины, подключенные к INTERNET, осуществляющих подобный сервис бесплатно (например сводка погоды - weather@wisc.edu , новости Центра Космических Исследований NASA - nasanews@space.mit.edu). Например - американский хит-парад: C:\> finger buckmr@rpi.edu [rpi.edu] Login: buckmr Name: Ron Buckmire Directory: /home/58/buckmr Shell: /usr/local/bin/session Project: To create a world free of homophobia, racism and sexism. Plan: *** PROVIDED FOR PERSONAL EDUCATIONAL USE ONLY *** Here is an update on the available charts for the week ending 02/05/94: Copyright Billboard Magazine (1994) To see the latest Billboard chart info try "finger buckmr@rpi.edu" or 'telnet rpi.edu 79' and enter 'buckmr'. ? = previous position unknown - = no previous position ------------------------------------------------------------------------------ U.S. Top Pop Singles: 1. (01) BRYAN ADAMS/ROD STEWART/STING -- All For Love [THIRD week at #1] 2. (02) MARIAH CAREY -- Hero 3. (04) CELINE DION -- The Power Of Love 4. (03) TONI BRAXTON -- Breath Again 5. (1?) ACE OF BASE -- The Sign 6. (07) ACE OF BASE -- All That She Wants 7. (06) MICHAEL BOLTON -- Said I Loved You...But I Lied 8. (05) JANET JACKSON -- Again 9. (08) BRYAN ADAMS -- Please Forgive Me 10. (09) SALT-N-PEPA -- Shoop [...] telnet Использует стандартный протокол Internet для получения терминального доступа к удаленной машине. После запуска этой программы ваша машина будет эмулировать удаленный терминал. Существует список машин, подключенных к INTERNET, разрешающих ограниченный доступ бесплатно [2]. Многие машины при этом предоставляют доступ к своим базам данных, если использовать специальное имя пользователя (например библиотечная система университета в Стенфорде - telnet forsythetn.stanford.edu и имя пользователя socrates) или к другим клиентам Internet: Клиент! Host !Login ------+--------------------+------ mosaic!sunsite.unc.edu !lynx gopher!info.elvis.msk.su !gopher WAIS !info.elvis.msk.su !swais IRC !info.elvis.msk.su !irc Пример: C:\> telnet info.elvis.msk.su Trying info.elvis.msk.su.... login: irc FTP (File Transfer Protocol) Позволяет пользователям одной машины получать доступ к файловой системе и получать (передавать) файл с другой машины (на другую машину). На многих машинах INTERNET имеются огромные коллекции (терабайты информации) архивов программных средств, всевозможной документации, художественной литературы, компьютерные фильмы, музыка и др. Как правило, этот сервис предоставляется бесплатно, при условии, что в качестве имени пользователя вы зададите anonymous, а в качестве пароля свой e-mail адрес. Список таких машин доступен в Mosaic (http://hoohoo.ncsa.uiuc.edu/ftp- interface.html). Наиболее крупные FTP-архивы в ex-USSR: ftp.kiae.su archive.monolit.kiev.ua ftp.stc.simbirsk.su ftp.sovam.com ftp.pczz.msk.su orgland.zgrad.su ftp.elvis.msk.su Информация о новых поступлениях на эти и другие сервера регулярно публикуется в различных телеконференциях, например, relcom.archives. archie Система автоматического поиска файлов в архивах Internet, доступных по FTP. Существует список машины, подключенных к INTERNET, осуществляющих этот сервис бесплатно. Поскольку база данных находится на той машине, соединение с которой вы установили, поиск производится с достаточно высокой скоростью (обычно это несколько секунд). X-server Эмулирует графический терминал системы X-Windows. lpq/lpr/lprm Программы, осуществляющие доступ к сетевому принтеру. lpq - опрашивает состояние принтера и очереди к нему; lpr - ставит задание в очередь. lprm - удаляет задание из очереди. ping Тестирует IP-соединение, используется для отладки. В качестве параметра обычно указывается имя или IP-адрес машины (host) возможность установления IP-соединения с которой проверяется. В ответ ping-клиент сообщает доступна или нет машина и время, через которое от нее получен ответ. Например: C:\> ping elvis.msk.su elvis.msk.su is alive (машина доступна) C:\> ping elvis.msk.su no answer from elvis.msk.su (машина недоступна) C:\> ping bad-host ping: unknown host bad-host (неизвестное имя) Сетевые пакеты, поддерживающие 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. В пакет входят следующие программы: archie2.exe Archie-клиент finger2.exe Finger-клиент ftp2.exe ftp-клиент hopchk2.exe hop check-клиент (трассировка маршрута IP-пакета) ichat2.exe internet chat-клиент устанавливает соединение точка-точка между двумя пользователями, используя TCP порт 2048 (это не IRC-клиент) ping2.exe ping-клиент status.exe выводит статус tcp на экран tel2.exe telnet-клиент whois2.exe whois-клиент (использует сервер nic.ddn.mil) А также: newsabi.exe news-клиент ircabi.exe IRC-клиент Если вы захотите написать собственные программы для этого пакета вы можете воспользоваться спецификацией (файл tcp201.specification) или связаться по электронной почте с P.R.Tattam (e-mail адрес: peter@psychnet.psychol.utas.edu.au) WATTCP (Waterloo TCP) Этот пакет интересен тем, что программы обращаются к пакетному драйверу напрямую, не требуя загрузки дополнительных резидентных драйверов, занимающих и без того небольшое пространство памяти под DOS. В пакет входят ping-, datime-, lpq-, lpr-, finger- и другие клиенты (вместе с (исходными текстами). А также: irc101.zip IRC-клиент pcpine_p.zip IMAP-клиент (Электронная почта) telnetd.zip telnet-демон! Позволит войти через telnet на вашу PC c другой машины сети. Если вы хотите получить книгу "руководство программиста по WATTCP" которая включает исходные тексты многих программ, пошлите $50 по адресу: Erick Engelke 1010-130 Lincoln Rd. Waterloo, Ontario N2J-4N3 (e-mail адрес: Erick@development.watstar.uwaterloo.ca) Trumpet WINSOCK Copyright (c) 1993,1994 by Peter R. Tattam (peter@psychnet.psychol.utas.edu.au). Статус - shareware. Запрещена продажа этого продукта без разрешения автора. Вы можете свободно пользоваться этой программой 30 дней и, по истечении этого срока, должны зарегистрировать свою копию в фирме Trumpet Software International. Регистрационная плата US$20. Порядок регистрации описан в файле install.txt. Это динамческая библиотека для MS-Windows - winsock.dll, поддерживающая "Microsoft Windows Sockets" спецификацию [7]. Работает через пакетный драйвер, весь сервис транспортного уровня TCP/IP осуществляет сама, не используя других (кроме пакетного) драйверов под DOS'ом. Загружается автоматически, после вызова сетевых программ, выгружается через несколько секунд после завершения последней использующей ее программы. Содержит в себе встроенный SLIP, что позволяет использовать ее на модемных соединениях без всяких DOS'овских драйверов вообще. Существует большое количество shareware и freeware программ различных авторов под MS-Windows опирающихся на Winsock. Программирование в этой системе почти такое же как в UNIX BSD. Сохранились даже синопсисы многих функций, что облегчает перенос сетевых программ из UNIX [7]. Сетевая модель 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 | +-----------------+ | +------------+ | Уровень IP | +------------+ | +------------------+ |Физический уровень| +------------------+ Теоретически, запросы каждого уровня обрабатываются отдельной программой, но на практике такие программы часто объединяют. Преобразование информации на каждом уровне осуществляется в соответствии со стандартом, который называют протоколом этого уровня. Когда какой-либо пользовательской программе требуется передать информацию по сети, она не пытается отправлять ее напрямую, через физическое соединение, а отдает на более низкий уровень, TCP или UDP. Протокол TCP (Transmission Control Protocol - протокол управления передачей) гарантирует доставку полученной информации. Разбивает поступившую информацию, на блоки данных (пакеты), вычисляя оптимальный размер пакета. Требует установления соединения до начала передачи информации, то есть, сначала проверяется возможность передачи данных с одной стороны, и наличие получателя информации с другой. Протокол UDP (User Datagram Protocol - протокол пользовательских датаграмм) в отличие от TCP не гарантирует надежную доставку, но и не требует установления соединения. Протоколы TCP и UDP находятся на одном уровне и являются альтернативой друг другу. Программа верхнего уровня ассоциирует обрабатываемый ею сетевой сервис с номером порта TCP или UDP. Номер порта - это атрибут TCP/UDP пакета по которому устанавливается его соответствие определенному сервису. Текстовый файл services, находящийся на каждой машине сети, обеспечивает однозначную интерпретацию соответствия сервиса и номера порта. TCP и UDP пакеты поступают на следующий уровень - IP, который обеспечивает их маршрутизацию. И только после уровня IP, пакеты поступают на физический уровень - сетевой адаптер или модем. На приемной стороне пакеты "распаковываются" в обратном порядке. Одновременное использование нескольких сетевых пакетов. Подавляющее большинство сетевых программ обращается не непосредственно к сетевой плате (сетевому адаптеру) а через специальный пакетный драйвер: Программа пользователя | Пакетный драйвер | MSDOS | Сетевая плата Он осуществляет интерфейс между различными видами сетевых адаптеров и стандартными сетевыми программами и поставляется вместе с адаптером. Интерфейс к пакетному драйверу со стороны программ верхнего уровня строго стандартизован, что позволяет "отвязать" эти программы от используемой аппаратуры. При любом физическом соединении программы верхнего уровня будут обращаться только к пакетному драйверу. Вместо сетевой платы можно использовать модем (нуль-модем) и тогда загружают SLIP-драйвер вместо пакетного. Для PCNFS, PCTCP, TCPABI требуется загрузить вдобавок драйвер, осуществляющий TCP/IP поддержку: Программа пользователя | Драйвер поддержки TCP/IP | Пакетный драйвер | MSDOS | Сетевая плата Преимущество этого метода состоит в том, что во-первых, ядро отлаживается независимо от самих программ, а во-вторых, экономится размер самих программ, значительная часть объема которых переносится в драйвер. Недостаток - постоянное наличие резидентного драйвера, который занимает примерно 100K оперативной памяти, даже в тот момент, когда машина не отрабатывает сетевых запросов. Как быть, если требуется использовать несколько сетевых пакетов одновременно? Для этого используют PKTMUX () - пакетный мультиплексор, который порождает до восьми виртуальных пакетных драйверов. Например, вы хотите монтировать сетевые диски с помощью NFS и одновременно читать News'а программой newsabi из пакета TCPABI. Предположим, что ваша сетевая плата работает с пакетным драйвером NE2000. В таком случае в autoexec.bat после строки, загружающей пакетный драйвер нужно добавить строку PKTMUX и две строки PKTDRV: . . . Rem Загрузка пакетного драйвера NE2000 0x60 2 0x300 Rem Создание 2-х виртуальных пакетных драйверов PKTMUX PKTDRV PKTDRV Rem Загрузка NFS NET START . . . C:\> newsabi Схематично это можно представить следующим образом: PC NFS NEWSABI | | PKTDRV PKTDRV \ | \ / \ / \ / \ / | PKTMUX | Пакетный драйвер | MSDOS | Сетевая плата В документации по PKTMUX есть примеры по его использованию для PCTCP, PCNFS, NOVEL и другими пакетами. Наиболее интересно работать с сетевыми программами в многозадачном режиме. На PC такой режим работы предоставляет система MS-Windows. Вы можете, например одновременно запустить FTP-сессию (причем не одну) и это не заблокирует надолго дисплей. Одновременно можно работать с любой другой программой. Однако, если пакетный драйвер загружен до старта WINDOWS он может оказаться недоступным для задачи, запущенной после старта WINDOWS, что вызовет зависание системы. Поэтому применяют драйвер WINPKT, который разрешает эту конфликтную ситуацию. Например: . . . NE2000 0x60 2 0x300 WINPKT 0x60 . . . win Т.е.: NCSA telnet / news / mail / FTP | сессия DOS | Windows 3.1 | WinPKT | Пакетный драйвер | MSDOS Вы можете использовать PKTMUX/PKTDRV если требуется загрузить несколько программ работающих с пакетным драйвером. FTP NCSA telnet | | PKTDRV PKTDRV | | сессия DOS сессия DOS +-----------+-----------------+ | Windows 3.1 | PKTMUX | Пакетный драйвер | MSDOS | Сетевая плата Более лучший путь - использовать WINSOCK. Это динамическая библиотека, которая осуществляет TCP/IP сервис под Windows и сама мультиплексирует сетевые данные (пакеты) между Windows-программами (но учтите, что для DOS- программ она не доступна): FTP PC Eudora WinVn FTPD | | | | +-------+---+----+-------+ | WINSOCK.DLL | Windows 3.1 | WinPKT | Пакетный драйвер | MSDOS В AUTOEXEC.BAT должно быть: . . . NE2000 0x60 2 0x300 WINPKT 0x60 . . . win А если вы используете модемное соединение, то для работы с Trumpet Winsock не требуется загружать никакие драйверы. Trumpet Winsock содержит внутри себя поддержку SLIP-протокола. Я успешно использовал следующую конфигурацию: FTP WinQVT WinVn FTPD | | | | +-------+---+--+-----+ | | WATTCP TELNETD | / | PKTDRV | / WINSOCK.DLL сессия DOS \ / Windows 3.1 / | PC NFS / | | PKTDRV | PKTDRV | | | +---------+--------+ | PKTMUX | Пакетный драйвер | DOS Установка Trumpet Winsock. Copyright (c) 1993,1994 by Peter R. Tattam (peter@psychnet.psychol.utas.edu.au). 1.a. Если вы собираетесь использовать Winsock на SLPIP-протоколе (т.е. через модем) пп 1,2,3 можно пропустить. 1.b. Для работы с сетевым адаптером: Переписать WINPKT.COM. В AUTOEXEC.BAT после пакетного драйвера добавить строку "winpkt": ne2000 0x60 2 0x300 winpkt 0x60 ВНИМАНИЕ! WINPKT должен быть (Portions Copyright 1991 Roger F. James), который лежит в том же каталоге, что и winsock.zip, а не тот, который поставляется вместе с pktmux! 1.c. Совместно с PC NFS (версии ниже 5.0): Переписать WINPKT.COM, а также PKTMUX.EXE и PKTDRV.EXE и PKTSTATS.EXE. В AUTOEXEC.BAT после пакетного драйвера добавить загрузку pktmux/pktdrv: c:\nfs\ne2000 -n 0x62 2 0x300 c:\pktmux.exe /8 c:\pktdrv.exe c:\pktdrv.exe /cl c:\nfs\prt * c:\nfs\net init 1.d. Совместно с Novell Netware: Переписать WINPKT.COM, а также PKTMUX.EXE и PKTDRV.EXE и PKTSTATS.EXE, В AUTOEXEC.BAT после пакетного драйвера добавить загрузку pktmux/pktdrv: ne2000 -n 0x60 2 0x300 pktmux 4 pktdrv pktdrv pktdrv pktdrv зdipx netx path c:\dos;c:\network\win31 f: login Если пакетный драйвер "не понимает" ключ -n попробуйте использовать ODIPKT: @echo off cd \ lh lsl lh \odi\ne2000 cd \net lh ipxodi lh odipkt lh winpkt 0x69 lh netx path c:\dos;c:\net\win31 f: echo on login 2. Перегрузите машину. 3. Вызовите PKTSTATS Запомните выдаваемый им IP-адрес вашей машины и номер любого свободного (FREE) вектора прерывания. Это потребуется в дальнейшем, для конфигурации WINSOCK. Пример: PKTSTATS v1.2e: Copyright (C) G W Robinson/SERC 1991-1993. All Rights Reserved. Interrupt 62: PKTMUX multiplexor; Max channels 3; Busy 1 Interrupt 63: PKTDRV - Busy; Channel 0; Interrupt 65: PKTDRV - Free; Send total 3711; Direct 3372; Copied 352; Ignored: err resp 0 Recv total 9189; To App: Direct 8126, Copied 948; Ignored 136 Recv ignored reasons: Broadcast 136 Packet Driver buffer analysis feature off MAC address 0080 C8F0 42FD ; IP address 192.153.171.46 Вектор=65; IP-адрес=192.153.171.46 4. Переписать в каталог WINDOWS следующие файлы: winsock.dll собственно сам TCP/IP драйвер tcpman.exe программа интерфейса для назначения/изменения конфигурации WINSOCK hosts список соответствия IP-адресов именам тех машин с которыми вы наиболее часто работаете. services список соответствия сервиса INTERNET TCP/UDP-порту. protocol список протоколов INTERNET Если вы поместите эти файлы в другой каталог, не забудьте в AUTOEXEC.BAT добавить путь до них в переменной PATH. При изменении переменной PATH она будет "работать" после перезагрузки системы. 5. Загрузить Windows C:\> WIN 6. Вызвать TCPMAN, для чего в Program Manager'е выбрать File/Run, а затем написать "tcpman". 7. В меню TCPMAN выбрать FILE -> Setup Появится окно: +-------------------------------------------------------------+ |-| Network Configuration | +-------------------------------------------------------------+ | IP address ____________ | | Netmask ____________ Default Gateway ____________ | | Name server ____________ Time server ____________ | | Domain Suffix ___________________________________________ | | Packet vector ___ MTU ___ TCP RWIN ____ TCP MSS ____ | | Demand Load Timeout (secs)___ | | +---------------------------------------------------------+ | | | _ +---------------------------+ | | | | | | Internal SLIP | Online Status Detection | | | | | ~ _ | | | | | | SLIP SLIP Port |1| | () None | | | | | +-+----+ | () DCD (RLSD) check | | | | | Baud Rate |9600 | | () DSR check | | | | | _ +~~~~~~+ | | | | | | | | Hardware Handshake +---------------------------+ | | | | - | | | | | | Van Jecobson CSLIP compression | | | | ~ | | | +---------------------------------------------------------+ | | ------ ------ | | | Ok | |Cancel| | | ------ ------ | +-------------------------------------------------------------+ 8. Установите требующуюся вам конфигурацию IP address - IP-адрес вашей машины (например 192.153.171.46). Допускается вместо адреса указывать rarp или bootp, если ваш сервер поддерживает эти протоколы. Тогда Winsock попытается сам определить адрес данной машины из сети. Netmask - например 255.255.255.224 (или для SLIP 255.255.255.0) Default Gateway - IP-адрес вашего сервера. (например 192.153.171.60) Пользователи NFS могут узнать Gateway (ROUTER) и Netmask подав команду NET NAME. Name server - IP-адрес вашего DNS-сервера, который обеспечивает преобразование Internet адрес <=> имя, (например 192.153.171.33) Time server - В текущей версии не используется. Зарезервировано для будущего использования. Domain suffix - суффикс вашего домена, используется DNS. (Пример: elvis.msk.su) Packet Vector - шестнадцатиричный адрес прерывания, обслуживаемый пакетным драйвером (например 60). В случае SLIP (т.е. соединение через модем) этот параметр не используется. Программа PKTSTATS выдает номера векторов прерывания: C:\> PKTSTATS PKTSTATS v1.2e: Copyright (C) G W Robinson/SERC 1991-1993. All Rights Reserved. Interrupt 62: PKTMUX multiplexor; Max channels 3; Busy 1 Interrupt 63: PKTDRV - Busy; Channel 0; Interrupt 65: PKTDRV - Free; [...] Выбирать следует любой свободный вектор (65 в данном случае) MTU - Maximum Transmission Unit - Максимальный размер пакета. (например 1500 для EtherNet или 576 для SLIP) TCP RWIN - TCP Receive Window - окно TCP (например 4096) TCP MSS - TCP Maximum Segment Size - максимальный размер сегмента TCP (например 1460) Demand Load Timeout - Время (в сек.) в течении которого Winsock остается загруженным после завершения всех всех использующих его приложений. Internal SLIP - Разрешить использовать встроенную поддержку SLIP-протокола([ ] для EtherNet и [X] для SLIP) SLIP Port - только для SLIP. Номер последовательного порта к которому подключен модем. (например 2) Baud Rate - только для SLIP. Скорость обмена с последовательным портом (например 9600). Для машин с высокой тактовой частотой (>33 мГц) рекомендуется выбирать 38400 и больше. Hardware Handshake - только для SLIP. Разрешить контроль за переполнением по RTS/CTS (пример: [X]). Возможно, потребуется дать команду AT&K3 модему. Van Jacobson CSLIP compression - только для SLIP. Разрешить использовать SLIP протокол со сжатием данных (пример: [X]) Online Status Detection - только для SLIP. Требуется для автоматического набора номера. При этом текущее состояние линии отслеживается: NONE - не определять статус линии. DCD (RLSD) - по DCD модема (возможно, потребуется дать команду AT&C1 модему). DSR check - по DSR модема (возможно, потребуется дать команду AT&S1 модему.). 9. В меню выбрать FILE -> Exit 10. В Program Manager'е создайте новую группу WinSock: В меню Program Manager'а выбрать File/New. В появившемся окне поставить: (*) Program Group и нажать [OK]. В поле Description написать WinSock и нажать [OK] 11. Если вы работаете со SLIP-протоколом, рекомендуется добавить tcpman.exe в эту группу. (Пример: В меню Program Manager'а выбрать File/New. В появившемся окне поставить: (*) Program Item и нажать [OK] В поле Command Line написать tcpman и нажать [OK]) 12. Если вы работаете через сетевой адаптер пропустите этот пункт. Если вы работаете через Slip-протокол установите соединение с сервером: Вызвать tcpman, выбрать в меню Dialer/Manual login и, задавая команды модему попытаться установить соединение Например: Trumpet Winsock Version 1.00 Alpha #18 Copyright (c) 1993 by Peter R. Tattam All Rights Reserved. SLIP ENABLED Internal SLIP driver COM2 Baud rate = 9600 Hardware handshaking My ip = 131.217.8.4 netmask = 255.255.255.0 gateway = 131.217.250.1 SLIP DISABLED atdp1234567 CONNECT 9600 Annex Command Line Interpreter * Copyright 1991 Xylogics, Inc. Checking authorization, Please wait... Annex username: xxxxxx Annex password: После этого на экране периодически будет появляться группа хаотических символов, свидетельствующая о поступлении роутинговых пакетов с сервера. Нажать клавишу . Появится сообщение: SLIP ENABLED, т.е. Trumpet Winsock готов к работе. 13. Проверить при помощи WS_PING соединение с сервером. Для чего установить WS_PING (как описано ниже) и вызвать. В меню выбрать BlockingPing. В поле Host задать адрес своего сервера (Default Gateway). После того как будет нажата кнопка [ Ok ], программа будет передавать пакеты на сервер (зажигается лампочка SD на модеме) и получать ответные пакеты от сервера (зажигается лампочка RD на модеме). На экран будет выводится информация о времени, через которое получен ответ. 14. Попробуйте задать в поле Host программы WS_PING имя сервера вместо адреса. Если все предыдущие операции закончились успешно, можно переходить к установке следующих программных продуктов. 15. Добавьте в группу остальные программы WinSock: WS_PING,WinQVT и т.д., как указано ниже. Если по каким либо причинам TCPMAN не вызывается, вы можете изменить сетевую конфигурацию отредактировав любым текстовым редактором (например Windows Notepad) файл TRUMPWSK.INI. Он находится в том же каталоге, что и WINSOCK.DLL. Назначение полей соответствуют полям в Network Configuration (см п.7): [Trumpet Winsock] ip - IP address netmask - Netmask gateway - Default Gateway dns - Name server time - Time server domain - Domain S