- •Содержание
- •Предисловие
- •Лабораторная работа №1
- •Цель работы
- •Методические указания
- •Общая информация о протоколах
- •Стек протоколов Интернета
- •Сетевое оборудование
- •Физическая среда передачи
- •Принцип взаимодействия прикладной программы с системным программным обеспечением
- •Анализ структуры локальной сети факультета пми
- •Задание к лабораторной работе
- •Контрольные вопросы
- •Лабораторная работа №2
- •Цель работы
- •Методические указания
- •Описание функций работы с сокетами
- •Методы, которые реализуют api-интерфейс сокетов
- •Задание к лабораторной работе
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа №3
- •Цель работы
- •Методические указания
- •Потоки управления
- •Задание к лабораторной работе
- •Контрольные вопросы
- •Идентификация страницы
- •Взаимодействие типа клиент/сервер
- •Передача документов Web и протокол http
- •Архитектура программного обеспечения браузера
- •Кэширование в Web-браузерах
- •Поддержка кэширования протоколом http
- •Альтернативные протоколы передачи
- •Основные типы документов Web
- •Преимущества и недостатки документов каждого типа
- •Задание к лабораторной работе
- •Контрольные вопросы
- •Лабораторная работа № 5
- •Цель работы
- •Методические указания Передача фреймов по сети
- •Способы адресации
- •Широковещательная рассылка
- •Групповая рассылка
- •Определение содержимого фрейма
- •Заголовки фрейма и его формат
- •Формат фрейма Ethernet
- •Фреймы, не обеспечивающие автоматическое распознавание типа
- •Задание к лабораторной работе
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 6
- •Цель работы
- •Методические указания
- •Основы протокола icmp
- •Реализация
- •Реализация с использованием Windows api
- •Задание к лабораторной работе
- •Стандарт ieee 802.11 и его расширение 802.11b/g
- •Режимы работы 802.11
- •Физический уровень 802.11
- •Метод fhss
- •Метод dsss
- •Расширение стандарта 802.11
- •Канальный (Data Link) уровень 802.11
- •Подключение к сети
- •Поддержка потоковых данных
- •Безопасность
- •Построение Wi-Fi
- •Что нужно учитывать, при построении wlan
- •Архитектуры
- •Вопросы безопасности
- •Проектирование и реализация аппаратного и программного обеспечения Аппаратное обеспечение терминального класса №208б
- •Настройки клиента и сервера для различных ос
- •Работа с базой данных, содержащей mac-адреса
- •Исследование уровня сигнала на территории факультета пми
- •Задание к лабораторной работе
- •Контрольные вопросы
- •Список литературы
- •Приложение а Пример api-интерфейса прикладного
- •Пример кода эхо-сервера
- •Пример кода клиента службы эхо-повтора
- •Приложение б Пример api-интерфейса прикладного
- •Класс Server
- •Класс Client
- •Модуль transform
- •Пример кода эхо-сервера
- •Пример кода клиента службы эхо-повтора
Список литературы
1.Камер Дуглас. Компьютерные сети и Internet. Разработка приложений для Internet: Пер. с англ. –М.: Издательский дом «Вильямс», 2002.-640с.
2.Куроуз Дж., Росс К. Компьютерные сети. Многоуровневая архитектура Интернета. 2-е изд. –СПб.: Питер, 2004. -765с.
3. Основы WEB-технологий/ П.Б. Храмцов и др. –М.: ИНТУИТ.РУ «Интернет-Университет Информационных Технологий», 2003. -512с.
4. Семёнов Ю.А. (ГНЦ ИТЭФ), book.itep.ru Телекоммуникационные технологии. http://www.citforum.ru
Приложение а Пример api-интерфейса прикладного
программирования для обмена данными по сети.
Для демонстрации принципов сетевого программирования был реализован простой API-интерфейс для операций обмена данными по сети.
Таблица 1. Пример API-интерфейса, включающий в себя семь операций.
Операция |
Описание операции |
await_contact |
Используется сервером для перехода в режим ожидания запроса клиента на установление соединения |
make_contact |
Используется клиентом для передачи серверу запроса на установление соединения |
cname_to_comp |
Используется для преобразования имени компьютера в эквивалентное внутреннее двоичное значение |
appname_to_appnum |
Используется для преобразования имени программы в эквивалентное внутреннее двоичное значение |
send |
Используется клиентом и сервером для передачи данных |
recv |
Используется клиентом и сервером для приема данных |
send_eof |
Используется клиентом и сервером после завершения передачи данных |
Замечание
Функции send и recv входят непосредственно в состав операционной системы.
Сервер начинает свою работу с вызова функции await_contact для перехода в режим ожидания запроса на установление соединения от клиента. Клиент начинает свою работу с вызова функции make_contact для установления соединения. После установления соединения клиента с сервером эти две программы могут обмениваться сообщениями с помощью функций send и recv. Оба приложения должны быть запрограммированы так, чтобы каждое из них могло определить, должно ли оно отправлять или получать сообщения, поскольку, если оба приложения будут пытаться только получать но не отправлять сообщения, они будут заблокированы.
После завершения передачи данных одно приложение вызывает функцию send_eof. В другом приложении функция recv возвращает значение ноль в качестве указания на то, что достигнут конец файла. После того, как оба участника обмена данными вызовут функцию send_eof, соединение разрывается.
Функция await_contact
Используется сервером для перехода в режим ожидания запроса клиента на установление соединения.
connection await_contact( appnum a)
Параметр задает число, которое обозначает серверное приложение; в клиентской программе при передаче на сервер запроса на установление соединения должно быть указано то же число. Сервер использует возвращаемое значение для передачи данных.
Функция make_contact
Используется клиентом для передачи серверу запроса на установление соединения.
coonection make_contact(computer c, appnum a)
Этот вызов принимает два параметра с обозначением компьютера, на котором работает сервер, и номера приложения, используемого сервером на этом компьютере. Клиент применяет возвращаемое значение для передачи данных.
Функция cname_to_comp
Клиенты могут вызвать эту функцию для преобразования имени компьютера, которое предназначено для восприятия человеком, во внутреннее двоичное значение.
computer cname_to_comp(char *c)
Этот вызов принимает один параметр строкового типа и возвращает эквивалентное двоичное значение типа computer.
Функция appname_to_appnum
Клиент и сервер используют эту функцию для преобразования имени службы, предназначенного для восприятия человеком, во внутренне двоичное значение.
appnum appname_to_appnum(char *a)
Этот вызов принимает один параметр строкового типа и возвращает эквивалентное двоичное значение типа appnum.
Функция send
Используется клиентом и сервером для передачи данных по сети.
int send(connection con, char *buffer, int length, int flags)
Первый параметр обозначает соединение, установленное ранее, второй – адрес буфера, содержащего данные, предназначенные для передачи, третий – длину данных в байтах, а четвертый при обычной передаче равен нулю. Функция send возвращает число переданных байтов или отрицательное значение, если возникла ошибка.
Функция recv
Используется клиентом и сервером для приема данных
int recv(connection con, char *buffer, int length, int flags)
Первый параметр обозначает соединение, установленное ранее, второй –адрес буфера, в который должны быть размещены данные, третий – задает длину буфера в байтах, а четвертый при обычной передаче равен нулю. Функция recv возвращает число байтов, помещенных в буфер, ноль для обозначения того, что достигнут конец файла, или отрицательное значение, если возникла ошибка.
Функция send_eof
И клиент и сервер после отправки данных должны вызвать эту функцию, для передачи второму участнику соединения сообщения о том, что передача данных на этом закончена. На другом конце соединения функция recv при получении признака конца файла возвращает значение ноль.
int send_eof(connection con)
Единственный параметр этой функции указывает соединение. Функция возвращает отрицательное значение, если возникла ошибка, иначе положительное значение или ноль.
Далее приведены примеры прикладных программ, которые показывают, как этот API-интерфейс может применяться в клиентском и серверном программном обеспечении для обмена данными.