- •Реферат
- •Терміни
- •Розділ 1. Особливості взаємодії програмних додатків
- •Архітектура «клієнт – сервер» на базі сокетів
- •Криптопровайдер Windows csp
- •Розділ 2. Алгоритм програми
- •Шифрування - дешифрування
- •Розділ 3. Особливості реалізації
- •Реалізація архітектури «клієнт – сервер» на базі сокетів
- •Передача файлів
- •Висновки
- •Список літератури
- •Додаток а. Тестування
- •Додаток b. Вказівки для користувача
- •Додаток с. Експеримент
Розділ 1. Особливості взаємодії програмних додатків
У розділі проводиться пояснення взаємозв’язку між основними елементами додатків та опис їх безпосередньої взаємодії. Проводиться огляд методів та особливості їх застосування для зашифровування та розшифровування переданих даних.
Архітектура «клієнт – сервер» на базі сокетів
Клієнт-сервер – це вид розподіленої системи, в якій є сервер, що виконує запити клієнта, причому сервер і клієнт спілкуються між собою з використанням того чи іншого протоколу. В даному випадку використовуються протоколи сокету. Під клієнтом розуміється програма, що використовує ресурси, а під сервером (англійською - слуга) програма, що обслуговує запити клієнтів на отримання ресурсів певного виду.
Сокети (англ. socket поглиблення, гніздо, роз'єм) - це назва програмного інтерфейсу для забезпечення інформаційного обміну між процесами. Процеси при такому обміні можуть виконуватися як на одній ЕОМ, так і на різних ЕОМ, пов'язаних між собою мережею. Сокет - абстрактний об'єкт, що представляє кінцеву точку з'єднання.[7]
Слід розрізняти клієнтські та серверні сокети. Клієнтські сокети грубо можна порівняти з кінцевими апаратами телефонної мережі, а серверні - з комутаторами. Клієнтський додаток (наприклад, браузер) використовує лише клієнтські сокети, а серверний (наприклад, веб-сервер, якому браузер посилає запити) - як клієнтські, так і серверні сокети.
Кожен процес може створити слухаючий сокет (серверний сокет) і прив'язати його до будь-якого порту комп'ютера. Той хто слухає процес зазвичай знаходиться в циклі очікування, тобто прокидається при появі нового з'єднання. При цьому зберігається можливість просто перевірити наявність з’єднань на даний момент, встановити тайм-аут для операції і так далі.
Рис.1. Зображення архітектури «клієнт – сервер» на основі сокетів
При створенні сокету, необхідно визначити три параметри: стиль взаємодії, простір імен, і протокол. Стиль взаємодії контролює, як сокет обробляє дані, що передаються, і визначає кількість партнерів взаємодії. Через сокети дані передаються блоками (пакетами). Стиль взаємодії визначає, як ці пакети будуть оброблені і як вони передаються від відправника до одержувача.
Стилі з'єднання гарантують доставку всіх пакетів у тому порядку, в якому вони були відправлені. Якщо під час передачі пакети були втрачені або доставлені в неправильному порядку, одержувач автоматично відправляє запит на їх повторну передачу.
За основу додатків було прийняте з’єднання синхронного типу. Тобто при передачі повідомлення, утримується управління. Для надійності підключення було використано потоковий тип сокету. Сокет заснований на сімействі протоколів TCP/IP, а отже використовує для обміну Інтернет – мережу.
Цикл життя сервера складається зі створення сокету, прив'язки сокету до адреси, виклику listen, що дозволяє з'єднання з сокетом, виклику accept, що приймає вхідні з'єднання, і потім закриття сокета. Дані не читаються і не записуються безпосередньо через сокет сервера, замість цього, кожен раз коли програма приймає нове з'єднання, ОС створює окремий сокет, використовується при передачі даних по цьому з'єднанню. Архітектура з’єднання показана на рис.1.
