Мережевий чат
Аналіз мережевих протоколів та їх основних параметрів. Описання алгоритму розв’язання задач написання мережевих програм, та реалізація їх на базі Winsock. Створення простого чату для передачі повідомлень користувачів, на основі протоколів IEEE та ISO.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 17.06.2015 |
Размер файла | 86,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Інститут комп'ютерних наук та інформаційних технологій
Кафедра автоматизованих систем управління
КУРСОВА РОБОТА
з дисципліни ”Методи і засоби комп'ютерних інформаційних технологій“
на тему ”Мережевий чат”
Виконав:
Студент групи КН-30 Марушкевич Марян
Львів - 2012
Вступ
Дана курсова робота розглядає питання створення простого чату для передачі повідомлень користувачів всередині мережі, на основі мережевих протоколів.
Огляд літератури
Мережемвий протокомл в комп'ютерних мережах -- заснований на стандартах набір правил, що визначає принципи взаємодії комп'ютерів в мережі. Протокол також задає загальні правила взаємодії різноманітних програм, мережевих вузлів чи систем і створює таким чином єдиний простір передачі. Хости (будь-який вузол мережі що відправляє або приймає дані через мережу називають хостом (host) взаємодіють між собою. Для того, щоб прийняти і обробити відповідним чином повідомлення, їм необхідно знати як сформовані повідомлення і що вони означають. Прикладами використання різних форматів повідомлень в різних протоколах можуть бути встановлення з'єднання з віддаленою машиною, відправка повідомлень електронною поштою, передача файлів. Зрозуміло, що різні служби використовують різні формати повідомлень.
Протокол описує:
· Формат повідомлення, якому за стосунки зобов'язані слідувати;
· Спосіб обміну повідомленнями між комп'ютерами в контексті визначеної дії, як, наприклад, пересилка повідомлення по мережі.
Різні протоколи найчастіше описують лише різні сторони одного типу зв'язку й, узяті разом, утворюють стек протоколів. Назви «протокол» і «стек протоколів» також вказують на програмне забезпечення, яке реалізує протоколи.
Нові протоколи для Інтернету визначаються IETF, інші протоколи -- IEEE або ISO. ITU-T займається телекомунікаційними протоколами та форматами.
Найпоширенішою системою класифікації мережних протоколів (і способів мережного зв'язку загалом) є, так звана, модель OSI, відповідно до якої протоколи поділяються на 7 рівнів за своїм призначенням -- від фізичного (формування й розпізнавання електричних або інших сигналів) до прикладного (API застосунків для передачі інформації).
Також дуже важливо розрізняти два схожі за назвою, але діаметрально протилежні за властивостями, терміни - маршрутизований протокол та протокол маршрутизації. Ще більша плутанина виникає з оригінальною назвою - routed&routing protocols.
· Маршрутизований протокол - це будь-який мережний протокол, адреса мережевого рівня якого надає достатньо інформації для доставки пакету від одного вузла мережі до іншого на основі використованої схеми адресації. Такий протокол задає формати полів всередині пакету. Пакети зазвичай передаються від однієї кінцевої системи до іншої. Маршрутизований протокол використовує таблицю маршрутизації для пересилки пакетів. Приклади маршрутизованих протоколів - Internet-протокол (IP), протокол міжмережевого пакетного обміну IPX тощо. Легше всього зрозуміти що таке маршрутизовані протоколи, якщо пам'ятати, що це протоколи передачі даних.
· Протокол маршрутизації - такий протокол, який підтримує маршрутизовані протоколи і надає механізми обміну маршрутною інформацією. Повідомлення протоколу маршрутизації передаються між маршрутизаторами (роутерами). Протокол маршрутизації дозволяє роутерам обмінюватись інформацією між собою для оновлення записів і підтримки таблиці маршрутизації. Приклади протоколів маршрутизації: RIP, IGRP, EIGRP, OSPF. Легше зрозуміти, що таке протоколи маршрутизації, якщо пам'ятати, що це протоколи обміну маршрутною інформацією.
Для того, щоб протокол був маршрутизованим, він має включати механізми призначення як номера мережі, так і номера вузла для кожного пристрою в мережі. В деяких протоколах, як, наприклад, IPX необхідно визначати лише адресу мережі, оскільки в якості адреси пристрою ця технологія використовує фізичну адресу (MAC-адресу) пристрою. Інші протоколи, як IP-протокол, вимагають явного задання повної адреси і маски підмережі.
Одним із перших прототипів цієї програми, успішно реалізованої, котрою користується величезна кількість користувачів, є ICQ
ICQ, АйСіК'ю -- мережевий протокол, який забезпечує миттєве відправлення та отримання текстових повідомлень, а також однойменна програма миттєвого обміну повідомленнями (клієнт), що реалізує цей протокол.
Назва «ICQ» фонетично співзвучна англійській фразі «I seek you» (я шукаю тебе, вимовляється ай-сік-юм).
ICQ розроблена ізраїльською компанією Mirabilis. Перша версія програми вийшла в листопаді 1996 року. У червні 1998 AOL придбала активи Mirabilis, основним з яких був ICQ, але ця служба не стала рентабельною. У квітні 2010 року російський фонд Digital Sky Technologies (DST, пізніше перейменований на Mail.ru Group) купив сервіс ICQ у компанії AOL за $187,5 млн.
В українському комп'ютерному сленгу ICQ називають «амською».
Сьогодні аською користуються близько 33 млн. користувачів в усьому світі, особливо розповсюджена в Україні, Білорусі, Молдові, Болгарії,Литві, Латвії, Німеччині, Росії, Чехії Казахстані, Грузії, Туркменістані, Таджикистані, Азербайджані.
Огляд
ICQ є централізованою службою миттєвого обміну повідомленнями, що використовує протокол OSCAR. Користувач служби працює з програмою-клієнтом (т.н. месенджер), запущеної на пристрої, з'єднаному з мережею Інтернет. Месенджер підключається до сервера. Через сервер здійснюється пошук і зв'язок з іншими клієнтами, а обмін службовими даними, повідомленнями між користувачами може здійснюватися як через сервер так і без його участі. Як і в більшості потужних мережевих систем, що обслуговують величезну кількість клієнтських запитів, цей сервер не єдиний і деякі з них є кластерами серверів.
Служба є комерційною, але її використання безкоштовно. Управляє службою ICQ Inc. З моменту створення служба належала її розробнику, компанії Mirabilis, в 1998 році вона була продана американській компанії AOL, а в квітні 2010 року - російському інвестиційному фонду Digital Sky Technologies (DST). Крім самого забезпечення функціонування служби, ICQ Inc. розробляє програми-клієнти і підтримує допоміжний веб-портал.
За роки існування ICQ випустила безліч клієнтів і зазнала безліч змін. За приблизними оцінками, службою активно користується близько 15 мільйонів чоловік, а зареєстрованих облікових записів - близько 400 мільйонів. Деякі компанії в списках контактів на офіційних сайтах вказують номери UIN. ICQ часто використовується службами техпідтримки для миттєвої допомоги.
Служба
Обліковий запис
Для використання служби потрібно зареєструвати обліковий запис, що може бути зроблено через інтерфейс клієнта, а також інтернет-портал. Для ідентифікації користувачів служба використовує UIN(Universal Identification Number)- унікальний для кожного облікового запису номер, що складається з 5-9 арабських цифр. Цей номер присвоюється облікового запису при первинній реєстрації користувача в системі, після чого, в парі з паролем, може використовуватися для аутентифікації у системі.
Підключення до служби одночасно з декількох хостів через один й той же ж обліковий запис, на відміну від, наприклад, XMPP, неможливо.
Для кожного облікового запису служба зберігає наступні дані:
· Нікнейм - коротке ім'я користувача, яке, на відміну від UIN, можна змінювати, і яке не є унікальним, тобто може збігатися у різних акаунтів;
· Адреса електронної пошти, що дає можливість відновлення доступу до облікового запису в разі втрати пароля, а також що може використовуватися для входу в систему замість труднозапомінаемого UIN (раніше використовувався також під час пошуку);
· Публічну інформацію, введену користувачем, яка може включати ім'я, прізвище, список захоплень, географічне розташування, знання мов, текстовий опис і т.д.;
· Один аватар у форматі BMP, JPEG або GIF;
· Список контактів - набірUIN-номерів співрозмовників, що формується користувачем, до яких він зможе мати швидкий доступ і оглядати їх статус присутності через інтерфейс клієнта;
· Статус присутності;
· Додатковий інформаційний статус.
Історія повідомлень на серверах не зберігається, і може зберігатися тільки локально програмою-клієнтом на пристрої користувача, і бути доступною через її інтерфейс.
Ініціювати листування з іншим користувачем і додати його до списку контактів можна, знаючи йогоUIN.У свою чергу, для пошуку користувачів в системі існує внутрішня функція пошук а, доступна через інтерфейс клієнта, яка дозволяє отримувати списки користувачів , що задовольняють введеним в пошуковому запиті критеріями: збігу по нікнейм, а також додаткової введеної користувачами інформації.
Аккаунт не може бути вилучений із системи, хоча така можливість існувала до 2002 року.Статус присутності
З кожною обліковим записом асоційований статус присутності, що є індикатором того, підключений користувач до мережі ин і, і чи готовий він у даний момент відповідати на повідомлення. У списку контактів і у вікні діалогу показується також статус користувача. Основний статус користувача служить індикатором його присутності в системі та готовності відповідати на повідомлення (хоча останнім часом число статусів різко зросла і перестало відповідати цим вимогам). Традиційно існує ряд основних статусів.
Якщо користувач взагалі відсутній в системі (не авторизований), то йому присвоюється статус «Не в мережі» або «Оффлайн» (Offline), якщо ж він у мережі (авторизований), то йому присвоюється статус «У мережі» або «Онлайн»(Online). Також існують кілька проміжних статусів:
· Відійшов (Away) - свідчить про те, що користувач протягом певного часу не виявляв активності (не рухав мишею і не натискав клавіш). Статус може ставитися і вручну, зазвичай їм сигналізують невеликий період відсутності за комп'ютером.
· Недоступний (N/A - Not Available) - говорить про те, що користувач отримав статус «Відійшов» і з цього моменту протягом певного часу продовжував перебувати в неактивному стані. Також може бути виставлено примусово і звичайно їм сигналізують довгострокове відсутність за комп'ютером (виняток: у ICQ 5.x цей статус виставляється автоматично при переході в повноекранний режим).
Як правило, автоперехід в ці статуси (Away і N/A) можна відключити в налаштуваннях клієнта.
Існують також статуси «Вільний для розмови (Free for chat)», «Не турбувати» (Do not disturb) і «Зайнятий» (Occupied). Починаючи з ICQ 4, їх не можна проставляти, але можна прочитувати в інших користувачів, які, наприклад, використовують ICQ 2003b або нижче, а також у багатьох альтернативних клієнтів. Проте, з приходом ICQ 6 повернулася можливість ставити статус Occupied, але при цьому втратилась можливість отримувати статус Free for chat. Також варто відзначити, що в ICQ 6 статуси Do not disturb і Occupied, встановлені в іншого користувача, сприймаються однаково, тобто як Occupied.
Крім цього, для облікового запису користувач може встановлювати особливий режим - «режим невидимості» (invisible). У цьому режимі інші користувачі будуть отримувати для облікового запису статус присутності «не в мережі», а знати про активний режим невидимості і отримувати актуальний статус присутності зможуть тільки користувачі, чиї облікові записи були внесені до списку видимості користувача.
Список контактів
Після успішної авторизації клієнт ICQ завантажує з сервера список контактів користувача. Контакти в списку можуть бути розділені на групи, імена і кількість яких змінюються користувачем.
При додаванні контакту може знадобитисяавторизація - дозвіл бачити його статус присутності і відправляти йому файли. Для таких контактів формується запит на авторизацію, який доходить до користувача додається облікового запису у вигляді системного повідомлення, на яке він може відповісти або згодою, або відмовою, за бажанням забезпечивши рішення текстовим коментарем.
Максимально можна мати 1000 контактів.
Приватні списки
Для забезпечення необхідного рівня конфіденційності ICQ існує кілька списків, виконують певну функцію, в які кожен користувач може заносити будь-які контакти без повідомлення останніх.
Існує 3 списку:
· Список ігнорованих - від опинилися в цьому списку користувачів не приходить жодних повідомлень, їм не показується ніякої статус що додав, окрім «Не в мережі». При додаванні в цей список користувач видаляється зі списку контактів, при видаленні додається автоматично. Якщо контакт вимагає авторизації, то її доведеться запрошувати знову.
· Список бачать - користувачам з цього списку показується статус «Невидимий», якщо він обраний, за винятком опції «Невидимий для всіх», можливою в деяких альтернативних клієнтів (наприклад QIP, Miranda, RnQ та інші).
· Список незрячих - користувачам з цього списку завжди показується статус «Не в мережі», за винятком опції «Видимий для всіх», можливою в деяких альтернативних клієнтів.
Максимальна кількість контактів у кожному списку обмежена.
Обмін повідомленнями
З кожним з контактів можна вести особисту переписку. Якщо відправник не відключив цю можливість, то, в залежності від клієнта, одержувач інформується про набір повідомлення, що створює ефект присутності відправника. Довжина повідомлення, що відправляється обмежена. Шаблон:Уточнити
У випадку, якщо в момент відправлення повідомлень адресат не був у мережі, вони будуть збережені службою і доставлені адресату, як тільки той підключиться до мережі.
Служба дозволяє використовувати в тексті повідомлень, що відправляються форматування, а саме -- визначати гарнітуру, колір, накреслення і розмір шрифту фрагментів повідомлення, напрямок тексту, а також вставляти в повідомлення смайли.
Відправка файлів
У ICQ реалізована передача файлів за технологією Peer-to-peer, тобто при безпосередньому інтернет-з'єднання двох комп'ютерів, минаючи сервер. Передача файлів можливе тільки тоді, коли статус в одержувача «У мережі». Подібний спосіб передачі файлів може бути небезпечний тим, що відправник дізнається IP одержувача (або навпаки) або відправить йому шкідливе програмне забезпечення. Починаючи ж з ICQ 5, з'явилася можливість передавати файли через сам сервер ICQ, який грає посередницьку роль. Це необхідно в тому випадку, якщо клієнт ICQ визначив, що P2P-з'єднання встановити неможливо (закриті порти в міжмережевих екранах, відсутність персонального зовнішнього IP та ін.)
Працює
ICQ має обмежену сумісність зі службою миттєвих повідомлень AIM. Користувачі ICQ можуть додавати в свій список контактів користувачів служби AIM, і навпаки.
Клієнт
Докладніше: ICQ (клієнт)
Власниками служби з моменту її появи розробляється і надається користувачам безкоштовна комп'ютерна програма-клієнт. В наш час вона представлена в двох версіях: ICQ Lite і ICQ 7.0 (для Росії програма ICQ 7.0 має кастомізацію від компаній Rambler і Яндекс)
У графічному інтерфейсі клієнта присутня банерна реклама, вихідний код програми закритий.
Спочатку програма для користування ICQ була створена компанією Mirabilis. Вона називалася ICQ, і таку ж назву (за винятком Compad) носили всі наступні офіційні клієнти.
Назва офіційного клієнта завжди починається з «ICQ» (окрім невдалого проекту Compad). Пізні клієнти надають додаткові функції під загальною назвою ICQ Xtraz, такі як: ігри, відправка SMS, IP-телефонія, відеоконференція, мультічат і багато інших.
Також існують локалізовані версії клієнтів, підтримку яких здійснюють локальні IT-компанії. Ці клієнти зазвичай мають відмінне від базового назву, до якого входить ім'я відповідної компанії. Компанія зазвичай надає актуальні для країни рекламні банери, дозволяє зв'язати обліковий запис служби зі своїми службами (наприклад, поштового).
Умови використання
Листування в ICQ не є особистим (конфіденційної) у буквальному значенні цього слова, навіть попри те, що активних співбесідників, як правило, двоє. Відповідно до правил користування сервісом, всі права на передану в рамках сервісу інформацію передаються AOL Inc., У тому числі права на публікацію і поширення на свій розсуд. Факт використання сервісу означає прийняття користувачем цих умов.
З визнанням правил користування (acceptable use policy) користувач передає ICQ Inc. Всі авторські права на дані, які він опублікував в рамках служби ICQ.
Правила користування від 7 червня 2000 ріку свідчать[1]:
Ви погоджуєтесь, що, відправляючи будь-який матеріал чи інформацію через який-небудь ICQ сервіс, ви поступаєтеся авторські і будь-які інші майнові права на опублікований матеріал чи інформацію. Надалі ви погоджуєтесь, що ICQ Inc. Має право використовувати опублікований матеріал чи інформацію в будь-якому вигляді і з будь-якою метою, включаючи, але не обмежуючись, його публікацію і розповсюдження.
Оригінальний текст (англ.)
Практика використання
Клієнти сторонніх розробників
Див. Також: Порівняння месенджерів
Крім офіційних клієнтів, що надаються компанією AOL і її партнерами, існує цілий ряд неофіційних клієнтів, створюваних сторонніми розробниками. Серед них клієнти для різних платформ, що виходять під вільними і власницькими ліцензіями, багатопротокольний і підтримують виключно сервіс ICQ.
Ці клієнти створювалися з використанням зворотної розробки протоколу OSCAR, тим самим порушуючи ICQ Terms of Services. Специфікація протоколу OSCAR була відкрита тільки в 2008 році.
Такі клієнти, в силу особливостей їхньої реалізації, як правило, надають користувачеві деякі можливості, які не можуть бути забезпечені існуючими версіями клієнтів AOL. Серед таких можливостей можуть бути:
· Можливість використання сервісу на ширшому спектрі платформ -- а саме, на тих платформах, для яких не випускаються версії офіційного клієнта або підтримка яких була припинена (наприклад, Windows Mobile);
· Менша вимогливість до апаратних ресурсів комп'ютера;
· Великі можливості в конфігурації поведінки програми, її графічного інтерфейсу, використання додаткових функцій (наприклад, перевірку на ігнор) тощо;
· Для клієнтів з відкритою моделлю розробки -- можливість досліджувати і модифікувати початковий код програми;
· Для багатопротокольних клієнтів -- можливість поєднати в одній програмі спілкування відразу по декількох різних протоколах.
З іншого боку, для них не доступні можливості ICQ Xtraz, що надає розважальні послуги.
Неофіційні клієнти також можуть додавати додаткову функціональність, пов'язану з реалізацією сервісу. Зокрема, можуть бути доступні наступні можливості:
· Відправлення тексту будь-якої довжини шляхом його розбивки на окремі повідомлення самим клієнтом;
· Заборона відправки співрозмовнику повідомлень про набір повідомлення;
· Додавання до списку контактів користувача, що вимагає авторизації, без проходження такої;
· Шифрування переданих повідомлень, якщо обидва співрозмовники використовують сумісний клієнт.
Універсальні клієнти
· Miranda IM -- багатопротокольний клієнт для Windows з відкритим вихідним кодом. Підтримка ICQ здійснюється за допомогою одного з доступних плагінів (можуть відрізнятися по функціональності), один з яких входить в стандартний дистрибутив програми. Відноситься до вільного програмного забезпечення і поширюється згідно з GNU General Public License.
· QIP Infium -- багатопротокольний клієнт для Windows, створюваний розробниками QIP2005. Підтримує, крім ICQ, протоколи Mail.ru Agent, XMPP і ряд інших. [2]
· Клієнти, що використовують вільну многопротокольную бібліотеку libpurple, підтримуючу більше десятка різних протоколів, у тому числі і ICQ:
· Pidgin -- багатоплатформовий вільний клієнт на GTK2;
· Adium -- вільний клієнт для Mac OS X;
· Proteus -- вільний клієнт для Mac OS X;
· Instantbird -- крос-платформовим вільний клієнт, заснований на XULRunner;
· Empathy
· Kopete
· Trillian
· Meetro
· Centericq
· QutIM
· Naim
· Шаблон:Чи не перекладено
Альтернативні клієнти
· QIP2005 -- російський пропріетарний безкоштовний клієнт для Windows. [2]
· & RQ і його форк і (R & Q та ін)
· Licq
· StICQ
· iChat
Спеціалізовані клієнти
· Jimm і його модифікації -- для мобільних телефонів і смартфон ів.
· Wapalta -- мобільний додаток, що має модуль ICQ. Призначено для мобільних телефонів з підтримкою Java MIDP 2.0.
· Pigeon! -- Клієнт ICQ під Windows Mobile, пізніше була додана підтримка ряду інших сервісів.
Веб-служби
· Meebo -- клієнт, реалізований у вигляді веб-сервіс а.
· Imo.im -- альтернативний веб-клієнт з шифруванням.
Шлюзи
Неправомірне використання
Сервіс ICQ також використовується для розсилки небажаної реклами. При реєстрації новому користувачеві привласнюється UIN, що є випадковим числом з певного діапазону, раніше номера реєструвалися в порядку зростання. Це сильно полегшує завдання складання списку існуючих адресатів для спаму і зводить її до простого перебору заданого діапазону. Для багатьох клієнтів існують плагіни, що блокують повідомлення від ботів (т. Зв. «Антиспам-боти», що задають питання, що вимагають осмислених відповідей) для відсіву автоматично розсилаємих повідомлень.
Існує практика крадіжки коротких і «красивих» номерів крекери ами, які підбирають паролі, або використовують інші методи угону ( трояни) з метою подальшого перепродажу чи вимагання грошей з колишнього господаря номери. В наш час[Коли?] на офіційному сайті ICQ можна зареєструвати дев'ятизначний номер ICQ, а шестизначні номери ICQ реєструвалися в 1996 - 1997 ах. Зараз такі номери можна купити в інтернет-магазинах, а їх ціна коливається від п'яти до декількох тисяч доларів, залежно від номера.
Історія
У 1996 році Арік Варді, Яйр Голдфінгер, Сефі Вігісер і Амнон Амір, старшокласники з Тель-Авів а (Ізраїль), заснували компанію Mirabilis і створили інтернет-пейджер ICQ.
Програмне забезпечення спочатку поширювалося безкоштовно (на відміну від конкурентів).
Число користувачів зростала лавиноподібно. Mirabilis пропонувала IM не лише приватним користувачам, але і корпоративним клієнтам.
У 1998 році компанія була викуплена американською корпорацією AOL за 289 млн доларів і була перетворена в частину відділення Time Warner -- ICQ, Incorporated.
Microsoft робила спроби переманити користувачів ICQ :
· Намагалася спочатку розробити IM протокол, який був би привабливішим ICQ.
· Намагалася купити компанію, але отримала відмову.
· Намагалася зробити протоколи сумісними (щоб користувачі Windows Messenger могли спілкуватися з користувачами ICQ), але власник ICQ кожен раз міняв протокол.
У результаті Microsoft відмовилася від своїх планів.
У квітні 2010 року інвестиційний фонд Digital Sky Technologies (DST), співвласником якого є Алішер Усманов, уклав угоду з AOL про придбання сервісу миттєвих повідомлень ICQ за 187 500 000 доларів.
Модифікації протоколу
З середини 2008 року до початку 2009 року служба виробляла технічні зміни в протоколі, фактичним наслідком яких ставали перебої в роботі неофіційних клієнтів. У цей же період компанія AOL в прес-релізах і на сайті служби розміщувала повідомлення, що рекомендують використовувати тільки офіційні, т. Зв. Авторизовані клієнти служби. Нижче наведена хронологія значущих подій.
· У липні 2008 рік а були зроблені зміни на серверах ICQ, внаслідок чого перестали працювати багато неофіційні клієнти. Вони отримали офіційне сповіщення від контакту «ICQ System».
· 9 грудня були проведені чергові зміни на серверах ICQ, після чого перестали працювати клієнти, що відсилають ідентифікатор, що не відповідає ICQ 5.1 і вище.
· 29 грудня прес-служба ICQ розповсюдила заяву, в якій назвала сторонні клієнти небезпечними.
· 21 січня Шаблон:Уточнити 2009 рік а серверами стали блокуватися всі неофіційні клієнти для території країн СНД.
Користувачі з IP-адресу ами Росії і країн СНД отримують повідомлення від контакту з UIN 1:
Системне повідомлення
ICQ не підтримує використовувану вами версію. Завантажте безкоштовну авторизовану версію ICQ з офіційного web-сайту ICQ.
На icq.com для російськомовних користувачів з'являється «важливе повідомлення для користувачів ICQ»: «ICQ здійснює підтримку тільки авторизованих версій програм: ICQ Lite і ICQ 6.5».
До 22 січня 2009 виправлені версії своїх альтернативних клієнтів випустили: QIP (всі версії, включаючи мобільні), Miranda.
· 3 лютого 2009 року повторилася ситуація 21 січня.
Атаки зломщиків
· 16 серпня 2010 року зловмисники за допомогою спілкується бота почали розсилати файл з вірусом, який змінює пароль від UIN'a і розсилає такий же вірус всьому контакт-листу.
Збої в роботі
У різний час ЗМІ повідомляли про збої в роботі сервісу, в результаті яких він на деякий час ставав недоступним для користувачів.
Бренд
ICQ і її логотип -- досить відомий і впізнаваний бренд. Логотип представляє з себе стилізоване зображення квітки ромашки з диском жовтого кольору і вісьмома пелюстками, сім з яких пофарбовані в зелений колір, а один -- у червоний.
Це зображення використовується не тільки в якості логотипу служби, але і в інтерфейсі офіційного клієнта для візуалізації процесу підключення клієнта до сервера, а також як ідеограма статусів присутності.
Сама назва ICQ є англійським омофон ом фрази «I seek you» [20] (рос. Я шукаю тебе).
У Росії
Слово «аська», у свою чергу, є сленговим назвою будь-якого ICQ-клієнта, ім'ям прозивним, і, отже, пишеться з маленької літери (проте, в залежності від контексту, це слово може означати так само аккаунт - «зареєструвати аську», або номер облікового запису - «шестизначна ася»).
У Китаї
Станом на 29 січня 2010 року, ICQ в Китаї заблокована, однак користувачі можуть користуватися китайським аналогом - QQ.
Перспективи
За даними Mail.ru Group щомісячна аудиторія ICQ у всьому світі з грудня 2009 року по грудень 2010 року скоротилася на 35% (17,6 млн.чол) і склала 33,5 млн. чоловік. У Росії до грудня 2010 року аудиторія склала 16,4 млн. осіб (скоротилася за рік на 9%). На думку Mail.ru Group таке падіння аудиторії пов'язано з посиленням боротьби зі спам-ботами, але інші представники IT індустрії з цим не згодні. Старший менеджер з розвитку Comscore в Європі Оснат Зарецький і голова правління «Фінама» Владислав Кочетков вважають, що падіння аудиторії ICQ - частиною загальносвітової тенденції. Все більша кількість користувачів інтернету за краще використовувати в якості засобу комунікації соціальні мережі.
1. Online -- доступний
2. Away -- відійшов від комп'ютера (довго не працював)
3. N/A (Not available) -- не доступний
4. Occupied -- зайнятий
5. Do not disturb -- не турбувати
6. Invisible -- невидимий
7. Offline -- відключений
Проблеми безпеки
Після купівлі російською компанією популярність ICQ в США та ЄС різко пішла на спад і зараз майже не використовується. Причинами є побоювання контролю за повідомленнями з боку російської ФСБ.
Огляд Методу лдя нашої програми:
WinSock
Матеріал з Вікіпедії -- вільної енциклопедії.
WinSock (Windows Sockets API (WSA) пізніше був скорочений до Winsock) -- це технічна специфікація, яка визначає доступ мережевого програмного забезпечення Windows до мережевих служб TCP/IP. Вона визначає стандартний інтерфейс між Windows TCP/IP клієнтськими програмами (такими як FTP-клієнт чи веб-браузер) і базується на протоколі TCP/IP. Визначення засноване на Berkeley Sockets API моделі, використовуваної в BSD для зв'язку між програмами.
Передісторія
Ранні операційні системи Microsoft, такі, як MS-DOS та Microsoft Windows, мали обмежені можливості роботи з мережею, головним чином засновані на протоколі NetBIOS. В той час, операційні системи Microsoft не підтримували протоколу TCP/IP. Кілька університетських груп та комерційних фірм, в тому числі група PC/IP в МТІ, FTP Software, Sun Microsystems,Ungermann-Bass і Excelan представили TCP/IP розробки для MS-DOS, часто як частина апаратно-програмного комплексу.
Після випуску Microsoft Windows 2.0 до цих розробників приєдналися інші, такі як Distinct та NetManage, які допомогли в наданні підтримки протоколів TCP/IP для Windows. Недолік, з якими стикнулись всі вищеперелічені розробники, полягав, в тому, що кожен з них використовували свої власні API (Application Programming Interface). Без єдиної стандартної моделі програмування, важко було переконати незалежних розробників програмного забезпечення у створенні мережних програм, які-б працювати на основі TCP/IP реалізації будь якого з розробників. Додайте до цього той факт, що кінцеві користувачі скептично ставились до можливості використання рішень одного розробника тому, стало зрозуміло, що стала необхідною деяка стандартизація.
Модель Sockets API Windows була запропонована Мартіном Холлом із JSB Software (пізніше Stardust Technologies), як BOF (Birds of a Feather) узгоджена на CompuServe BBS мережі в жовтні 1991 року. Перше видання специфікації було написане Мартіном Холлом, Марком Tовфіком з Microdyne (пізніше Sun Microsystems), Джеффоом Арнольдом (Sun Microsystems), Генрі Сандерсом та Дж. Алардом від Microsoft, та за участю багатьох інших розробників. Було обговорено про те, кому присвоїти авторські права, права інтелектуальної власності, та потенційних питань боротьби з протиправними порушеннями, також увагу було приділено роботі через IETF або створення некомерційного фонду. Врешті-решт, було вирішено, що авторські права на специфікацію належатимуть п'ятьом авторам, як фізичним особам.
Технологія
Sockets API Windows специфікація визначає два інтерфейси: API, який використовується для розробки програм, та SPI, який забезпечує засоби для розробників мережевого програмного забезпечення, для додавання нових модулів та протоколів до системи. Кожен інтерфейс являє собою з'єднання. API гарантує, що відповідна програма буде працювати правильно із сумісною реалізацією протоколу від будь-якого постачальника мережевого програмного забезпечення. Договір SPI гарантує, що відповідний модуль протоколу може бути доданий до Windows і тим самим може бути використаний API-сумісними програмами. Хоча ці договори були важливими при створенні Windows Sockets як мережевого середовища, але тепер вони представляють лише академічний інтерес. Функції, які включені в Sockets API Windows версії 2.0 використовують функції протоколів IPX / SPX, проте немає комерційного програмного забезпечення, яке б використовувало даний набір протоколів. Microsoft впровадила протоколи TCP/IP в усі сучасні версії Windows, тому, що немає ніяких суттєвих незалежних альтернатив даним протоколам. Також не було зацікавленості у реалізації протоколів, відмінних від TCP/IP.
Windows Sockets заснована на Sockets BSD, проте, надає додаткові функціональні можливості, що дозволяють API дотримуватися стандартної моделі програмування Windows. Sockets API Windows охоплюють майже всі особливості BSD-Sockets API, але є деякі неминучі перешкоди, які виникли головним чином із основних відмінностей між Windows і Unix, тому всі виклики функцій в API починаються з еліасу(Alias) WSA, наприклад WSASend () для відправки даних на сокет.
При розробці Windows Sockets основним критерієм розробки був відносно легкий імпорт використовючих socket прграм із Unix систем у Windows. Це не вважається достатнім для створення API, яка була корисна тільки для програм у Windows. Тому, у Windows Sockets включено ряд елементів, які були розроблені для полегшення портування. Наприклад, Unix програм можуть використати ті ж позначення помилок запису, мережевих помилок та помилок, розміщених в стандартній бібліотеці З функціями. Оскільки це не було можливо в Windows, Windows Sockets отримав окрему функцію, WSAGetLastError (), для отримання інформації про помилки. Подібні механізми були корисними, але застосування портування залишається надзвичайно складним. Багато оригінальних TCP/IP програм були реалізовані за допомогою системи функцій, специфічних для Unix, таких, як псевдо термінали та системи виклику вилки, відтворення такого функціоналу в Windows було проблематичним.
2. Написання програми
Було написано 2 програми: Серверна і клієнтська:
Серверна:
#include <stdio.h>
#include <winsock2.h>
#include <windows.h>
#define MY_PORT 666
#define PRINTNUSERS if (nclients)\
printf("%d user on-line\n",nclients);\
else printf("No User on line\n");
DWORD WINAPI SexToClient(LPVOID client_socket);
int nclients = 0;
int main(int argc, char* argv[])
{
char buff[1024];
printf("TCP SERVER DEMO\n");
if (WSAStartup(0x0202,(WSADATA *) &buff[0]))
{
printf("Error WSAStartup %d\n",
WSAGetLastError());
return -1;
}
SOCKET mysocket;
if ((mysocket=socket(AF_INET,SOCK_STREAM,0))<0)
{
printf("Error socket %d\n",WSAGetLastError());
WSACleanup();
return -1;
}
sockaddr_in local_addr;
local_addr.sin_family=AF_INET;
local_addr.sin_port=htons(MY_PORT);
local_addr.sin_addr.s_addr=0;
if (bind(mysocket,(sockaddr *) &local_addr,
sizeof(local_addr)))
{
printf("Error bind %d\n",WSAGetLastError());
closesocket(mysocket);
WSACleanup();
return -1;
}
if (listen(mysocket, 0x100))
{
printf("Error listen %d\n",WSAGetLastError());
closesocket(mysocket);
WSACleanup();
return -1;
}
printf("Очікування підключень\n");
SOCKET client_socket;
sockaddr_in client_addr;
int client_addr_size=sizeof(client_addr);
while((client_socket=accept(mysocket, (sockaddr *)
&client_addr, &client_addr_size)))
{
nclients++;
HOSTENT *hst;
hst=gethostbyaddr((char *)
&client_addr.sin_addr.s_addr,4, AF_INET);
printf("+%s [%s] new connect!\n",
(hst)?hst->h_name:"",
inet_ntoa(client_addr.sin_addr));
PRINTNUSERS
DWORD thID;
CreateThread(NULL,NULL,SexToClient,
&client_socket,NULL,&thID);
}
return 0;
}
DWORD WINAPI SexToClient(LPVOID client_socket)
{
SOCKET my_sock;
my_sock=((SOCKET *) client_socket)[0];
char buff[20*1024];
#define sHELLO "Hello, Sailor\r\n"
send(my_sock,sHELLO,sizeof(sHELLO),0);
while( (int bytes_recv=
recv(my_sock,&buff[0],sizeof(buff),0))
&& bytes_recv !=SOCKET_ERROR)
send(my_sock,&buff[0],bytes_recv,0);
nclients--;
printf("-disconnect\n"); PRINTNUSERS
closesocket(my_sock);
return 0;
}
Клієнтська:
#include <stdio.h>
#include <string.h>
#include <winsock2.h>
#include <windows.h>
#define PORT 666
#define SERVERADDR "127.0.0.1"
int main(int argc, char* argv[])
{
char buff[1024];
printf("TCP DEMO CLIENT\n");
if (WSAStartup(0x202,(WSADATA *)&buff[0]))
{
printf("WSAStart error %d\n",WSAGetLastError());
return -1;
}
SOCKET my_sock;
my_sock=socket(AF_INET,SOCK_STREAM,0);
if (my_sock < 0)
{
printf("Socket() error %d\n",WSAGetLastError());
return -1;
}
sockaddr_in dest_addr;
dest_addr.sin_family=AF_INET;
dest_addr.sin_port=htons(PORT);
HOSTENT *hst;
if (inet_addr(SERVERADDR)!=INADDR_NONE)
dest_addr.sin_addr.s_addr=inet_addr(SERVERADDR);
else
if (hst=gethostbyname(SERVERADDR))
((unsigned long *)&dest_addr.sin_addr)[0]=
((unsigned long **)hst->h_addr_list)[0][0];
else
{
printf("Invalid address %s\n",SERVERADDR);
closesocket(my_sock);
WSACleanup();
return -1;
}
if (connect(my_sock,(sockaddr *)&dest_addr,
sizeof(dest_addr)))
{
printf("Connect error %d\n",WSAGetLastError());
return -1;
}
printf("З'єднання з %s успішне\n\
Type quit for quit\n\n",SERVERADDR);
int nsize;
while((nsize=recv(my_sock,&buff[0],
sizeof(buff)-1,0))
!=SOCKET_ERROR)
{
buff[nsize]=0;
printf("S=>C:%s",buff);
printf("S<=C:"); fgets(&buff[0],sizeof(buff)-1,
stdin);
if (!strcmp(&buff[0],"quit\n"))
{
printf("Exit...");
closesocket(my_sock);
WSACleanup();
return 0;
}
send(my_sock,&buff[0],nsize,0);
}
printf("Recv error %d\n",WSAGetLastError());
closesocket(my_sock);
WSACleanup();
return -1;
}
3. Приклад реалізації
Рис. 1 Вікно, котре відображає кількість підключених в данний момент користувачів:
Рис. 2 Вікно першого користувача:
Рис. 2 Вікно другого користувача
Рис. 3 Вікно для приєднання до користувачів, по виділиному ІР адресу
Висновок
Виконуючи курсову роботу я навчився програмно описати алгоритм розв'язання задач написання мережевих програм, та реалізацію їх на практиці, на базі WINSOCK.
Також я здобув досвід у написанні програм на мові програмування С та С++.
Це перший мій великий проект, пов'язаний з програмуванням, котрий створив мені повне уявлення про методи аналізу та роботи з програмними продуктами. Також, я детально навчився аналізувати ринок подібних продуктів, та робити висновки, на основі яких можна робити ефективне та корисне програмне забезпечення.
мережевий протокол чат
Список літератури
1. Касперски К. «Секреты поваров компьютерной кухни или ПК: решение проблем»,Издано: 2003, BHV, Твердый переплет, 560 стр..
2. Бібліотека MSDN
3. Шпак З.Я. Програмування мовою С. - Львів:Оріяна-Нова, 2006. - 432 с.
4. Дейтел Х.М., Дейтел П.Дж. Как программировать на С: 4-е издание. Пер. с англ. - М.:ООО “Бином - Пресс”, 2009. - 912 с.
5. Шилдт Г. Полный справочник по С, 4-е издание.: Пер. с англ. - М.: издательский дом “Вильямс”, 2010. - 704 с.
Размещено на Allbest.ru
Подобные документы
Алгоритми розв’язання задач у вигляді блок–схем. Використання мови програмування MS VisualBasic for Application для написання програм у ході вирішення задач на одномірний, двовимірний масив, порядок розв’язання задачі на використання символьних величин.
контрольная работа [742,9 K], добавлен 27.04.2010Аналіз параметрів та характеристик аудіо та відео кодеків. Аналіз параметрів протоколів сигналізації медіатрафіку та мережного рівня медіа систем. Вербальні моделі взаємодії відкритих систем. Математичні моделі процесів інкапсуляції та передачі даних.
курсовая работа [573,9 K], добавлен 22.03.2015Структура мережевої підсистеми Linux. Створення мережевого інтерфейсу. Передача пакетів та аналіз поведінки інтерфейсу. Протокол транспортного рівня. Використання модулів ядра. Вплив маршрутизації на процес розробки і налагодження мережевих модулів.
курсовая работа [56,2 K], добавлен 23.05.2013Особливості налагодження протоколів канального рівня для з’єднань глобальних мереж на базі обладнання Cisco. Методика та головні етапи налагодження з’єднання мереж через маршрутизатори Cisco з використанням протоколів HDLC, PPP та технології Frame Relay.
лабораторная работа [1,1 M], добавлен 17.06.2012Дослідження призначення та видів мережевих технологій - погодженого набору стандартних протоколів та програмно-апаратних засобів, достатнього для побудови локальної обчислювальної мережі. Комбінування архітектури комутаційної матриці й загальної шини.
реферат [523,1 K], добавлен 18.02.2011Оптимізація розташування посилань на інформаційні ресурсах у мережевих пошукових системах за допомогою спеціальних вірно обраних ключових слів. Розробка програмного забезпечення SEO-системи для тестування і читання RSS каналів відвідувачами сайту.
дипломная работа [2,3 M], добавлен 14.06.2013Формати прийому та передачі даних через послідовний порт, його технічні характеристики, будова і принцип роботи. Характеристика протоколів послідовної передачі. Способи керування портами у WINDOWS95 та WINDOWS XP. Опис алгоритму і функціонування програми.
дипломная работа [752,6 K], добавлен 09.06.2010Структура захищених систем і їх характеристики. Моделі елементів захищених систем. Оцінка стійкості криптографічних протоколів на основі імовірнісних моделей. Нормативно-правова база розробки, впровадження захищених систем.
дипломная работа [332,1 K], добавлен 28.06.2007Постановка та описання алгоритму розв’язання задачі про оптимальне призначення, формулювання вимог. Обґрунтування вибору засобів програмування. Розробка структури програми та системи її візуалізації, тестування та верифікація, оцінка ефективності.
курсовая работа [1,1 M], добавлен 12.05.2013Визначення і розв’язання задачі Коші для звичайних диференціальних рівнянь першого порядку методом Ейлера, алгоритм розв’язання, похибка при вирішенні. Складання блок-схеми. Реалізація алгоритму у середовищі Borland Pascal. Результат роботи програми.
курсовая работа [264,0 K], добавлен 20.08.2010