15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту

 
СЕТЕВОЕ ПРОГРАММИРОВАНИЕ ДЛЯ OC UNIX и WINDOWS Учебное пособие (конспект лекций)
Олег Борисович Люсин

Количество страниц: 325
Издательство: Институт Транспорта и связи, Рига
Дата выпуска: 2015
Формат: MS Word
Скачать в виде ZIP архива
Настоящее учебное пособие предназначено для студентов компьютерных специальностей, изучающих курсы "Сетевое программирование", "Сетевые операционные системы", "Современные вычислительные сети", "Современное сетевое программирование" и выполняющих соответствующите лабораторные и курсовую работы. Пособие может быть полезно всем, кто интересуется вопросами проектирования сетевых приложений с использованием интерфейса сокетов операционных систем UNIX (*NIX) и Windows.
Содержание
Введение                                                                  5
Глава 1 Стек протоколов TCP/IP                                            7
1.1. Структура стека TCP/IP                                               8
1.1.1. Краткая характеристика протоколов                                  8
1.1.2. Взаимодействие протоколов стека                                   10
1.2. Межсетевой протокол IPv4 (Internet Protocol)                        11
1.2.1. Формат заголовка IP-пакета                                        12
1.2.2. Фрагментация пакетов IPv4                                         20
1.3. Межсетевой протокол IPv6                                            23
1.3.1. Адресация в IPv6                                                  25
1.3.2. Индивидуальные адреса                                             26
1.3.3. Специальные адреса                                                28
1.3.4. Заголовок IPv6                                                    28
1.3.5. Дополнительные заголовки в IPv6                                   30
1.3.6. Совместимость IPv6                                                32
1.4. Протокол ICMP                                                       33
1.4.1. Назначение ICMP                                                   33
1.4.2. Сообщения ICMP                                                    34
1.4.3. Сообщения ICMP об ошибке                                          36
1.4.4. Сообщения-запросы ICMP                                            39
1.5. Протокол IGMP                                                       42
1.5.1. Понятие группового адреса                                         44
1.5.2. IGMP-сообщение                                                    45
1.5.3. Вступление в группу                                               46
1.5.4. Запросы (queries) и отчеты (reports) IGMP                         46
1.5.5. Особенности группового взаимодействия                             47
1.5.6. Поле времени жизни                                                48
1.5.7. Специальный диапазон адресов                                      48
1.5.8. Групповая передача в Интернете                                    49
1.6. Протокол ARP                                                        50
1.6.1. Сценарий работы модуля ARP                                        50
1.6.1.1. Формат сообщений протокола                                      51
1.7. Протокол TCP                                                        54
1.7.1. Сегменты TCP                                                      55
1.7.2. Порты и протоколы                                                 55
1.7.3. Квитирование и скользящее окно в протоколе TCP                    59
1.7.3.1. Концепция квитирования                                          59
1.7.3.2. Пример кумулятивного подтверждения                              61
1.7.3.3. Скользящее окно и реакция на перегрузку                         62
1.7.4. Формат заголовка TCP                                              64
1.7.5. Внеполосные (срочные) данные протокола TCP                        69
1.7.6. Как передается сообщение                                          70
1.7.7. Установление TCP-соединения                                       71
1.7.8. Таймеры TCP                                                       72
1.7.9. Блок управления передачей и управления потоком                    74
1.7.10. Переходы автомата TCP при установлении соединения.               76
1.7.11. Окончание соединения TCP                                         77
1.7.12. Дополнительные алгоритмы TCP-автомата                            81
1.8. Протокол UDP                                                        82
2. Глава 2 Интерфейс сокетов                                             85
2.1. Интерфейсы прикладного сетевого программирования                    85
2.2. Ввод-вывод сетевых данных                                           87
2.3. Абстракция сокетов                                                  88
2.4. Функция создания сокета                                             89
2.4.1. Параметры сокета                                                  90
2.4.1.1. Структуры адреса в стандарте сокетов                            93
2.5. Основные функции интерфейса сокетов Беркли                          97
2.5.1. Функция connect()                                                 97
2.5.2. Функция bind()                                                    99
2.5.3. Функция listen()                                                 101
2.5.4. Функция accept()                                                 102
2.5.5. Функции передачи данных через сокет                              105
2.5.6. Функция send() и уcтановление флага PUSH                         108
2.5.7. Функции приема данных через сокет                                109
2.5.8. Функции закрытия соединения                                      111
2.5.9. Функция select()                                                 115
2.5.10. Макрокоманды для работы с наборами сокетов                      118
2.5.11. Функция poll()                                                  120
2.5.12. Функция epoll()                                                 120
2.5.13. Проблема блокирования                                           121
2.5.14. Функции ioctl() и fcntl()                                       124
2.5.15. Функции работы с базами данных                                  128
2.5.16. Дополнительные сетевые библиотечные функции                     134
2.6. Примеры UNIX-like программ клиент/сервер                           138
2.7. Суперсервер Интернет UNIX-системы                                  146
2.7.1. Конфигурирование inetd                                           147
2.8. Функции опций сокета                                               148
2.8.1. Опции функции setsockopt()                                       149
2.8.2. Опции функции getsockopt()                                       157
2.8.3. Опции сокета для групповой передачи                              160
2.9. Простой сокет                                                      161
2.10. Алгоритм Nagle                                                    163
2.11. Взаимодействие приложения со стеком TCP/IP                        166
3. Глава 3 Интерфейс Windows Sockets                                    170
3.1. Введение                                                           170
3.2. Функции интерфейса Беркли-сокетов, поддерживаемые WinSock          172
3.3. Функции-расширения, специфические для Windows                      175
3.4. Инициализация приложения и завершение его работы                   176
3.4.1. Основы Windows-программирования                                  179
3.5. Синхронные и асинхронные сокеты Windows                            182
3.5.1. Синхронные сокеты WinSock API                                    183
3.5.2. Асинхронные сокеты и WinSock API                                 186
3.5.2.1. Функция WSAAsyncSelect()                                       187
3.5.2.2. Сетевые события и условия возникновения                        188
3.5.2.3. Функции типа WSAAsyncGetXByY                                   196
3.6. Работа с ошибками сетевого интерфейса                              197
3.6.1. Коды ошибок и WSAGetLastError()                                  198
3.6.2. Обработка ошибок                                                 200
3.7. Программирование TCP-протокола в среде Windows                     200
3.7.1. Клиент WinTCP                                                    201
3.7.2. Сервер WinTCP                                                    202
4. Глава 4 Спецификация Winsock 2.0                                     205
4.1. Обзор основных функций Winsock 2.0 API                             207
4.1.1. Функция WSASocket()                                              208
4.1.2. Функция WSAAccept()                                              209
4.1.3. Функция WSAConnect()                                             210
4.1.4. Функция WSADuplicateSocket()                                     211
4.1.5. Функция WSAHtonl()                                               212
4.1.6. Функция WSAIoctl()                                               212
4.1.7. Функция WSAJoinLeaf()                                            214
4.1.8. Функция WSARecv()                                                215
4.1.9. Функция WSARecvDisconnect()                                      216
4.1.10. Функция WSARecvFrom()                                           216
4.1.11. Функция WSASend()                                               216
4.1.12. Функция WSASendDisconnect()                                     217
4.1.13. Функция WSASendTo()                                             217
4.1.14. Функция WSAProviderConfigChange()                               218
4.2. Интерфейс WinSock Service Provider                                 218
4.2.1. Программные аспекты SPI                                          219
4.3. Модели ввода/вывода в Winsock 2.0                                  229
4.3.1. Mодель сетевого I/O с использованием WSAEventSelect()            229
4.3.2. Mодель с перекрытием  – Overlapped I/O                           232
4.3.3. Модель порта завершения                                          235
4.3.3.1. Связывание I/O устройства с портом завершения ввода-вывода     236
4.3.3.2. Рабочие потоки и порты завершения                              237
4.3.4. Выбор модели I/O для приложения                                  244
4.4. Дополнительные возможности спецификации WinSock 2.0                245
4.4.1. API функций расширения                                           245
4.4.1.1. Функция AcceptEx()                                             246
4.4.1.2. Функции ConnectEx(), DisconnectEx()                            248
4.4.1.3. Функции TransmitFile(), TransmitPackets()                      249
4.4.1.4. Функция WSARecvMsg()                                           251
4.4.2. Протокол резервирования ресурсов RSVP                            251
4.4.3. Вспомогательные функции – Helper API                             253
4.4.4. Инфракрасные сокеты                                              259
5. Глава 5 Специфические программные интерфейсы                         262
5.1. Интерфейс NetBIOS                                                  263
5.1.1. Основы функционирования NetBIOS                                  263
5.1.2. Программные аспекты NetBIOS                                      265
5.1.2.1. Программирование с помощью NetBIOS-интерфейса                  266
5.1.2.2. Программирование NetBIOS-приложений с использованием WinSock   269
5.2. Интерфейсы доступа к канальному уровню                             271
Приложения                                                              279
Литература                                                              322