рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

РОЗДІЛ 1 Інтернет пейджер типу ICQ

РОЗДІЛ 1 Інтернет пейджер типу ICQ - раздел Высокие технологии, КУРСОВА РОБОТА з дисципліни Операційні системи ЗАВДАННЯ НА ВИКОНАННЯ КУРСОВОЇ РОБОТИ Розробка додатків з використанням різних бібліотек та технологій 1.1. Можливості Icq Icq– Це Комунікаційна Програма Для Передачі Пові...

1.1. Можливості ICQ

ICQ– це комунікаційна програма для передачі повідомлень в мережі. В основі її роботи лежить метод збереження всіх повідомлень, що надсилаються користувачами, на сервері до тих пір, поки адресат не підключиться до мережі. ICQ може:

· передавати повідомлення напряму між двома програмами ICQ;

· передавати такі повідомлення через сервер компанії Mirabilis, якщо по якійсь причині неможливо передати напряму;

· підтримувати chat по протоколу TCP;

· передавати файли по протоколу UDP.

ICQ часто називають аналогом пейджера в інтернеті. Для забезпечення мобільності користувачів, їм присвоюють номери, що не залежать від їх положення в мережі на даний момент, і називаються UIN (UniversalInternetNumber). Але при передачі даних програмі доводиться отримувати ІР-адресу користувача з другої сторони, тому що без нього передача по ТСР/ІР неможлива. Для перетворення номерів користувачів в ІР-адреси використовуються спеціальні сервери.

В момент отримання доступу до InternetICQ з’єднується з одним із таких серверів і реєструється на ньому, передаючи ім’я і пароль. Сервер запам’ятовує поточну ІР-адресу цього користувача. Поки користувач на на лінії, сервер може обробляти запити інших ICQ на перетворення номера користувача в його поточну ІР-адресу. Ці запити і відповіді передаються по протоколу UDP.

Отримавши ІР-адресу другої сторони, ICQможе з’єднатися з клієнтом ICQ на другій стороні і передавати дані напряму. Короткі повідомлення ICQ може передавати по UDP. Це протокол швидший ніж TCP, так як не орієнтований на з’єднання, а посилає дані окремими пакетами. Але UDPне надійний, тому використовуються підтвердження доставки. ICQ робить до 6 спроб відправити повідомлення по UDP. І якщо ні на одну із них підтвердження не прийшло, ICQ виводить повідомлення, що не може передати повідомлення напряму, пропонуючи передати через сервер Mirabilis. Коли отримувач повідомлення наступний раз підключиться для реєстрації, це повідомлення буде йому перенаправлене.

Якщо можливо, ICQ намагається встановити пряме ТСР з’єднання між сторонами, які обмінюються повідомленнями. В результаті, наступні повідомлення можуть пересилатися по вже встановленому ТСР-з’єднанню, що надійніше чим UDP, і достатньо швидко.

Користувач може створити «список контактів» - список інших користувачів ICQ. Коли будь-який користувач із цього списку завантажує додаток клієнта і реєструється на сервері –то повідомлення про це можуть отримувати всі користувачі, в чиїх «списках контактів» знаходиться власник даного UIN. Кожен користувач може вказати свій статус, яких свідчить про бажання користувача отримувати які-небудь повідомлення.

1.2. Специфікація протоколу ICQ

З’єднання з другим клієнтом, що на даний момент знаходяться в Internet (online) здійснюється за допомогою протоколу ТСР зі встановленням прямого з’єднання між сторонами, що обмінюються повідомленнями. Всі інші з’єднання здійснюються з використанням пакетів протоколу UDP, що пересилаються через ICQ сервер. Отримання кожного UDPпакету має бути підтверджене сервером. У випадку неотримання клієнтом підтвердження від сервера протягом 10 секунд, клієнт повторно відсилає пакет. Після 6 невдалих посилок клієнт посилає на сервер повідомлення B_MESSAGE_ASK, отримавши яке сервер повинен негайно отримати. Процедура повторюється два рази. Якщо ні на один із пакетів, що посилався не було отримано підтвердження, ICQ клієнт припускає, що користувач відключився від Internet (off-line).

Перед тим, як почати встановлювати будь-яке з’єднання, клієнт повинен зареєструватися на одному із ICQ серверів. Під час процедури реєстрації клієнт посилає серверу інформацію про себе таку як ІР адресу, ТСР порт, зарезервований для ICQ, пароль користувача і список інших користувачів, які знаходяться в «списку контактів» клієнта. Клієнт повинен періодично посилати на сервер повідомлення «KEEP_ALIVE», що свідчить про те, що клієнт все ще підключений до мережі. За замовчуванням клієнт посилає UDP пакети на сервер, використовуючи порт 4000.

Функції «послати повідомлення користувачу непідключеному до мережі», отримання інформації про користувача», пошук користувача», зміна інформації поточного користувача» реалізуються через пакети протоколу UDP, які посилаються на сервер. В полі «DATA» UDP пакету розміщується інформація про UIN відправника, код, що ідентифікує запитану функцію і необов’язкові параметри.

Коли користувач надсилає повідомлення іншому користувачу, що зареєстрований на сервері, ICQ клієнт намагається встановити ТСР з’єднанняз цим користувачем, використовуючи аналогічну структуру поля DATATCP пакету. Після відсилання повідомлення, з’єднання не розривається і може бути використано для відсилання наступних повідомлень. З’єднання закривається, коли один з користувачів від’єднується або втрачає зв’язок з сервером.

1.3. Комунікація між сервером та клієнтом

Для здійснення комунікації між сервером та клієнтом ICQ використовує протокол UDP. В таблиці 1 вказується як заповнюється поле даних пакету UDP при передачі від клієнта до сервера.

 

Довжина Значення Назва Опис
2 байти 02 00 VERSION Версія протоколу ІР
2 байти хх хх COMMAND Код функції
2 байти хх хх SEQ_NUM Порядковий номер
2 байти хх хх хх хх UIN UIN відправника
Змінна     0 або більше параметрів

 

В таблиці 2 вказано, як заповнюється поле даних пакету UDP при передачі від сервера до клієнта.

Довжина Значення Назва Опис
2 байти 02 00 VERSION Версія протоколу ІР
2 байти хх хх COMMAND Код функції
2 байти хх хх SEQ_NUM Порядковий номер
Змінна     0 або більше параметрів

 

Поле VERSION присутнє у всіх пакетах і являється ідентифікатором того, що це пакет ICQ.

Поле SEQ_NUM містить порядковий номер пакету. Всі пакети повинні мати унікальний порядковий номер за винятком випадку перенадсилання пакету . Це поле використовується для відслідкування втрати чи дублювання пакетів. Зазвичай з кожним пакетом SEQ_NUM збільшується на 1. Сервер та клієнт ведуть нумерацію пакетів, що не пересікається. Тобто порядковий номер пакету від сервера ніяк не зв’язаний з порядковими номерами пакетів від клієнта. Сервер починає відлік з 00 00. Клієнт починає відлік з 01 00.

Поле COMMAND при пересиланні повідомлення від клієнта серверу може приймати значення, наведені в таблиці 3.

Значення Найменування Опис
0А 00 ACK Підтвердження
0Е 01 SEND_MESSAGE Відіслати повідомлення через сервер
E8 03 LOGIN Зареєструватися на сервері
06 04 CONTACT_LIST Передати серверу «список контактів»
1A 04 SEARCH_UIN Шукати користувача за UIN
24 04 SEARCH_USER Шукати користувача за іменем
60 04 INFO_REQ Запит основної інформації про користувача
6A 04 EXT_INFO_REQ Запит розширеної інформації про користувача
9C 04 STATUS_CHANGE Користувач змінив свій статус
28 05 LOGIN_2 Відсилається під час реєстрації на сервері
0A 05 UPDATE_INFO Оновити основну інформацію про користувача
3C 05 ADD_TO_LIST Користувач додається в «список контактів»
FC 03 NEW_USER_REG Зареєструвати нового користувача
A6 04 NEW_USER_INFO Відсилається основна інформація про нового користувача

 

Поле COMMAND при пересиланні повідомлення від сервера клієнту може приймати значення, наведені в таблиці 4.

Значення Найменування Опис
0А 00 ACK Підтвердження
5A 00 LOGIN_REPLY Відіслати повідомлення через сервер
6E 00 USER_ONLINE Зареєструватися на сервері
78 00 USER_OFFLINE Передати серверу «список контактів»
8C 00 RECEIVE_MESSAGE Шукати користувача за UIN
DC 00 END_OF_SEARCH Шукати користувача за іменем
18 01 INFO_REPLY Запит основної інформації про користувача
22 01 EXT_INFO_REPLY Запит розширеної інформації про користувача
A4 01 STATUS_UPDATE Користувач змінив свій статус
E0 01 UPDATE_REPLY Відсилається під час реєстрації на сервері
C8 00 UPDATE_EXT_REPLY Оновити основну інформацію про користувача
46 00 NEW_USER_UIN Користувач додається в «список контактів»
B4 00 NEW_USER_REPLY Зареєструвати нового користувача

 

1.4. Повідомлення від клієнта серверу

ACK(0А 00) – підтвердження.

Параметрів немає.

На відміну від інших команд, поле SEQNUM містить порядковий номер повідомлення, прийом якого підтверджується. Прийом цого пакету не повинен підтверджуватися.

LOGIN_REPLY(5А 00) – відповідь при реєстрації на ICQ сервері.

Параметри:

Довжина Значення Ім’я Опис
4 байти хх хх хх хх UUSER_UIN UIN користувача
4 байти хх хх хх хх USER_IP ІР користувача
2 байти хх хх LOGIN_SEQ_NUM Порядковий номер запиту на реєстрацію
4 байти 01 00 01 00 X1 Невідомо
4 байти хх 00 16 00 X2 Невідомо
4 байти 8С 00 00 00 X3 Невідомо
4 байти 78 00 05 00 X4 Невідомо
6 байт 0А 00 05 00 01 00 X5 Невідомо

 

RECEIVEMESSAGE (DC 00) – повідомлення користувачу, передане через сервер.

Параметри:

Довжина Значення Ім’я Опис
4 байти хх хх хх хх REMOTE_UIN UIN відправника
2 байти хх хх YEAR Рік посилання повідомлення
1 байт хх MONTH Місяць посилання повідомлення
1 байт хх DAY День посилання повідомлення
1 байт хх HOUR Година посилання повідомлення
1 байт хх MINUTE Хвилина посилання повідомлення
2 байти хх хх TYPE Тип повідомлення
2 байти хх хх LENGTH Довжина тексту повідомлення
змінна   MESSAGE Текст повідомлення. ASCIIZ рядок

 

 

Поле TYPEможе приймати наступні значення:

01 00 – нормальне повідомлення;

04 00 – повідомлення є Інтернет-адресою;

0С 00 – повідомлення про те, що користувач був доданий в список контактів.

INFO_REPLY (18 01) – основна інформація про користувача.

Довжина Значення Ім’я Опис
2 байти хх хх INFO_SEQ_NUM Порядковий номер запиту
4 байти хх хх хх хх REMOTE_UIN UIN користувача
2 байти хх хх LENGTH Довжина «нікнейму»
Змінна   NICK_NAME «Нікнейм». ASCIIZ рядок
2 байти хх хх LENGTH Довжина імені
Змінна   FIRST_NAME Ім’я. ASCIIZ рядок
2 байти хх хх LENGTH Довжина прізвища
Змінна   LAST_NAME Прізвище. ASCIIZ рядок
2 байти хх хх LENGTH Довжина електронної адреси
Змінна   E_MAIL Електронна адреса. ASCIIZ рядок
1 байт хх AUTHORIZE Необхідність авторизації

 

1.5. Комунікація між двома клієнтами

Коли користувач намагається відіслати повідомлення іншому користувачу, клієнтська програма перевіряє, чи встановлено ТСР з’єднання з віддаленим користувачем. У випадку наявності такого з’єднання, воно буде використане для передачі повідомлень. В іншому випадку з серверу запитується ІР адреса і порт іншого користувача і робиться спроба встановити ТСР з’єднання. Зазвичай порт береться в діапазоні 1200-1300. Після встановлення з’єднання відсилається повідомлення CHANNEL_INIT. Після цього кожен раз для посилання текстового повідомлення створюється пакет з повідомленням CHANNEL_MESSAGE. Отримання кожного пакету має бути підтверджено повідомленням CHANNEL_ACK.

Взаємодія з використанням протоколу ТСР так як і з використанням протоколу UDP базується на посиланні незалежних пакетів.

 

 

– Конец работы –

Эта тема принадлежит разделу:

КУРСОВА РОБОТА з дисципліни Операційні системи ЗАВДАННЯ НА ВИКОНАННЯ КУРСОВОЇ РОБОТИ Розробка додатків з використанням різних бібліотек та технологій

Інститут інформаційно діагностичних систем... Кафедра безпеки інформаційних технологій... КУРСОВА РОБОТА ПОЯСНЮВАЛЬНА ЗАПИСКА...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: РОЗДІЛ 1 Інтернет пейджер типу ICQ

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

РЕФЕРАТ
Пояснювальна записка до курсової роботи «Windows-додаток Інтернет-пейджера по типу ICQ» · кількість сторінок – ; · рисунків – ; · таблиць – ; · додатків – ;

СПИСОК ТЕРМІНІВ ТА СКОРОЧЕНЬ
Сокет (socket) – високорівневий уніфікований інтерфейс взаємодії з телекомунікаційними протоколами. Інтернетпейджер - це програма для обміну миттєвими пов

РОЗДІЛ 2 Алгоритм програми
У розділі описані алгоритми, за якими були втілені механізми виконання поставленої задачі. Програма, що реалізовує передачу, складається з двох додатків – клієнтської частини та серверної частини.

Вибір мови та середовища програмування
C# - це об’єктно-орієнтована мова програмування з безпечною системою типізації для платформи .NET. синтаксис C# близький до С++. Мова має строгу статичну типізацію, підтримує поліморфізм, переванта

Архітектура додатка на базі сокетів
Розроблений додаток має архітектуру типу «клієнт-сервер» на основі сокетного з’єднання. Клієнт-сервер – це вид розподіленої системи, в якій є сервер, що виконує запити клі

Протокол взаємодії додатків клієнта та сервера
Протокол взаємодії сервера з клієнтом базується на основі отримання запитів від клієнта, їх обробці та відсилання відповідей на них. Якщо сервер отримує повідомлення про те, що з’явився но

Основні бібліотеки, використані в програмі
SYSTEM – простір імен, що містить класи, які дозволяють зіставляти коди URI з шаблонами URI і групами шаблонів URI. З цього простору були використані такі класи: BitConver

ВИСНОВКИ
В результаті виконання курсової робити були зроблені наступні висновки: 1. Була освоєна архітектура «клієнт – сервер» на основі асинхронних сокетів протоколу ТСР. 2. Було освоєно

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Microsoft Developer Network. URL: http://msdn.microsoft.com/ru-ru/ 2. Огляд програми ICQ. URL: http://iserverd.khstu.ru/docum_ext/icqkurs.htm#6 3. Эндрю Кровчик, Винод Кумар, Н

ДОДАТОК А Інструкція по роботі з додатком
Робота з розробленим додатком є достатньо простою, проте користувачу необхідно ознайомитися з інструкцією по використанню додатка. Для роботи додатка необхідно, щоб був завантажений додато

Пересилання повідомлень
При пересиланні повідомлень вікна користувачів виглядають так:

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги