- •Лабораторна робота №1. Низькорівневий аналіз мережевого трафіку
- •1. Принципи роботи снифферов
- •2. Обмеження використання снифферов
- •3. Загальний огляд програмних пакетних снифферов
- •4. Аналізатор мережевого трафіку Wire Shark
- •4.1. Можливості Wireshark
- •4.2 Установка
- •4.3. Інтерфейс Wireshark
- •5. Завдання на лабораторну роботу і звітність, що надається
- •Лабораторна робота №2. Керування мережевим трафіком за допомогою файрволла
- •Теоретичні відомості
- •Comodo Firewall
- •Jetico Firewall
- •Tiny Personal Firewall
- •Контрольні питання
- •Індивідуальне завдання
- •Література
- •Лабораторна робота №3. Дослідження мережевих протоколів
- •3.1 Протокол ip
- •3.2 Фрагментація ip -пакетов
- •3.3 Базові утиліти для тестування мереж tcp/ip
- •3.4 Протоколи транспортного рівня
- •3.4.1 Функції транспортного рівня
- •3.4.2 Протокол udp
- •3.4.3 Протокол tcp
- •Контрольні питання
- •Індивідуальне завдання
- •Лабораторна робота №4. Реалізація обміну повідомленнями за допомогою протоколу udp
- •4.1 Постановка завдання
- •4.2 Коротка теоретична довідка
- •4.3 Схема взаємодії функцій WinSock
- •4.4 Реалізація клієнтської частини
- •4.7.2 Створення й видалення сокета
- •4.7.3 Прив'язка адреси до сокету
- •4.7.4 Очікування й обробка запитів на підключення клієнта
- •4.7.5 Підключення до сервера
- •4.7.6 Відправлення й прийом повідомлень
- •4.8 Рекомендації з виконання роботи
- •4.9 Контрольні питання
4.8 Рекомендації з виконання роботи
Приведемо кілька порад для спрощення створення додатка. Функції accept, connect, recv є блокуючими, тобто виконання програми затримується на якийсь час, протягом якого не можна виконувати ніяких дій. Ви будете користуватися таким чатом, коли під час очікування повідомлення програма зависає? Рекомендуємо всі блокуючі функції вивести в окремі потоки (TThread), що працюють паралельно із програмою і не приводять до її зависання. У клієнтській частині можна винести в окремий потік прослуховування порту на предмет одержання даних від сервера й обробку одержуваних даних. У серверній частині, створити кілька потоків, що містять у собі функцію accept; при одержанні запиту на підключення, створюється ще один потік, що виконує постійне прослуховування порту на предмет передачі даних знову підключеного клієнта. Таким чином, у серверній частині маємо n+1 потік, де n-кількість клієнтів.
4.9 Контрольні питання
Чи підтримувала WinSock 1.1 протокол UDP?
Чи вірно твердження, що функція accept є не блокуючою?
Що виконує функція bind?
Виправте помилку: Socket(MySock, IPPROTOIP, SOCKSTREAM); .
Опишіть загальні дії сервера й клієнта.
Що означає наступний запис: Сonnect(Socket1, Addr1, SizeOf(Addr1));?
Що необхідно зробити, щоб створити серверний сокет?
Для чого використаються потоки?