СОКЕТЫ, ДАТАГРАММЫ И КАНАЛЫ СВЯЗИ Методическое пособие по дисциплине «Программное обеспечение компьютерных сетей и информационных систем»
Способы передачи данных В локальных и глобальных сетях существует два принципиально разных способа передачи данных датаграммный потоковый
Датаграммный способ передачи данных Первый из них предполагает посылку пакетов данных от одного узла другому (или сразу нескольким узлам) без получения подтверждения о доставке и даже без гарантии того, что передаваемые пакеты будут получены в правильной последовательности. Примером такого протокола может служить протокол UDP (User Datagram Protocol), который используется в сетях TCP/IP, или протокол IPX, который является базовым в сетях Novell NetWare.
Основные преимущества датаграммных протоколов заключаются в высоком быстродействии возможности широковещательной передачи данных, когда один узел отправляет сообщения, а другие их получают, причем все одновременно.
Потоковый способ передачи данных предполагает создание канала передачи данных между двумя различными узлами сети. При этом канал создается средствами датаграммных протоколов, однако доставка пакетов в канале является гарантированной. Пакеты всегда доходят в целостности и сохранности, причем в правильном порядке, хотя быстродействие получается в среднем ниже за счет посылки подтверждений.
Примеры протоколов Примерами протоколов, использующих каналы связи, могут служить протоколы ТСР и SPX (протокол NetBIOS допускает передачу данных с использованием как датаграмм, так и каналов связи).
Сокет Для передачи данных с использованием любого из перечисленных выше способов каждое приложение должно создать объект, который называется сокетом. Впервые понятие сокета как реализации функций интерфейса прикладного программирования было предложено в университете Беркли, Калифорния (University of California at Berkeley Sockets API) при разработке спецификации Berkeley UNIX).
Функции сокета обеспечивает конечную точку соединения и функционирует как двунаправленный канал для входящих и исходящих данных между компьютерами в сети.
Программирование сокета При программировании сокет более всего похож на идентификатор файла (file handle), который нужен для выполнения над файлом операций чтения или записи. Прежде чем приложение, запущенное на узле сети, сможет выполнять передачу или прием данных, оно должно создать сокет и проинициализировать его, указав некоторые параметры.
Работа с именованными и анонимными каналы передачи данных и каналами типа Mailslot подробно (включая исходные тексты приложений на С++) описана в работе [14].
Литература 1. Чепмен Д. и др. Разработка InterNet-приложений в DELPHI 2. -Киев.:DiaSoft, c. 2. Елманова Н.З. Borland C++Builder (архитектура клиент/сервер, многозвенные системы, InterNet- приложения). -M.: Диалог-МИФИ, c. 3. Зайцев С.С. Описание и реализация протоколов сетей ЭВМ. -М.: Наука, c. 4. Клейнрок Л. Вычислительные системы с очередями. Пер. с англ. -М.: Мир, c. 5. Фролов А.В., Фролов Г.В. Локальные сети персональных компьютеров(монтаж сети, установка программного обеспечения). Библиотека системного программиста, т.7. M.: Диалог-МИФИ, c.