The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Сети, протоколы, сервисы" / Оглавление документа

previous up down next index index
Previous: 6.10 Идентификатор доступа к сети    UP: 6 Сетевая безопасность
Down: 8 Заключение
    Next: 7.1 Winsock (для UNIX, Windows-95 и -NT)

7 Программирование для сетей (новые идеи, принципы и возможности)
Семенов Ю.А. (ГНЦ ИТЭФ)

 

Volk und Knecht und Uberwinder
Sie gestehn zu jeder Zeit
Höchtest Glück der Erdenkinder
Sie nur die Persönlichkeit

 

В. Гёте

Программирование - искусство индивидуальное, но сетевое программирование имеет много специфических особенностей, требующих выполнения определенных правил. Оно в значительной мере напоминает написание программ реального времени, так как здесь также приходится иметь дело с постоянно изменяющимися обстоятельствами. Заметные отличия возникают из-за работы в разных операционных системах (DOS, UNIX, Windows, OS/2). Существуют задачи, которые даже сегодня лучше реализовать в ОС DOS. К таким задачам следует отнести хронометраж некоторых сетевых операций (к сожалению многозадачные и многопользовательские системы довольно часто вносят ошибки в результаты временных измерений с использованием внутренних машинных часов). Кроме того, в рамках, например, ICMP.DLL нельзя послать очередной пакет до тех пор, пока не истечет таймаут или не будет получен отклик. Это также создает некоторые трудности. Да и библиотека RAWSOCK не у каждого под рукой. Если задача может быть решена в рамках Windows, ничего другого и не нужно (при всех бесчисленных недостатках эта среда наиболее дружественна к пользователю). В крайнем случае, можно без особого труда перенести ваше приложение в Windows NT или OS/2. Если же вы разрабатываете нечто для многопользовательской среды, стоит подумать о работе под ОС UNIX. Новейшие пакеты для работы с соединителями (socket) заметно облегчают работу программисту. Современные соединители (см. http: //www.stardust.com/wsresource/winsock2/ws2ident.html) способны настраиваться на протокольный набор (это не обязательно TCP/IP) и на конкретный протокол. Библиотеки допускают работу как IPv4 так и с IPv6, необходимо лишь корректно задать параметры. Идеология соединителей, пришедшая из UNIX, и унификация библиотек для работы с ними заметно облегчают перенос программ из одной ОС в другую. Сегодня программист, даже не вникая в особенности протокола, за счет использования стандартных библиотек может создать программу любого приложения. Современная среда программирования, особенно в Windows, позволяет сформировать и удобный интерфейс для работы с разрабатываемым приложением. Новейшие версии библиотек для работы с соединителями позволяют запускать и управлять несколькими процессами ввода/вывода одновременно.

Следует иметь в виду, что, например, в системе UNIX все виды Интернет услуг обслуживает демон inetd. Конкретный запрос (telnet, FTP, finger и т.д.) поступает именно к нему, inetd резервирует номер порта и запускает соответствующий процесс, после чего переходит в режим ожидания новых запросов. Такая схема позволяет эффективно и экономно работать со стандартными номерами портов.

Практически любая утилита использует в качестве параметра имя какого-либо узла или ЭВМ. По этой причине исполнение программы начинается с посылки запроса серверу имен (DNS). После получения нужного IP-адреса посылается ARP-запрос. Далее формируется соединитель и посылается запрос, который зависит от типа реализуемого приложения.

В следующих двух статьях рассмотрено программирование для DOS (непосредственная работа с драйвером сетевого интерфейса) и программирование для Windows. Программирование для UNIX во многом сходно с программированием для Windows, так как здесь используется сходная библиотека для работы с соединителями.

Previous: 6.10 Идентификатор доступа к сети    UP: 6 Сетевая безопасность
Down: 8 Заключение    Next: 7.1 Winsock (для UNIX, Windows-95 и -NT)




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру