Розробка програми чату для локальної мережі

Визначення локальних обчислювальних мереж, способи передачі даних в них. Багаторівнева модель міжпроцесних взаємодій. Протоколи передачі даних TCP/IP, UDP. Система об'єктно-орієнтованого програмування Delphi. Особливості розробки програми і робота з нею.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 10.03.2011
Размер файла 1,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

2

2

МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ

ВОЛИНСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ

ІМЕНІ ЛЕСІ УКРАЇНКИ

Кафедра прикладної математики

КУРСОВА РОБОТА

З ПРОГРАМУВАННЯ

Розробка програми чату для локальної мережі

ЛУЦЬК 2010

Зміст

локальна протокол мережа програма

  • ВСТУП
    • Розділ 1. Локальні комп'ютерні мережі
      • 1.1 Визначення локальної обчислювальної мережі
      • 1.2 Види класифікацій локальних обчислювальних мереж
      • 1.3 Модульна структура локальної мережі
      • 1.4 Способи передачі даних в локальних обчислювальних мережах
      • 1.5 Багаторівнева модель міжпроцесних взаємодій
      • 1.6 Протокол передачі даних TCP/IP
      • 1.7 Протокол UDP
      • 1.8 Аналогічні програмні засоби
    • Розділ 2. РОЗРОБКА ПРОЕКТУ
    • 2.1 Система об'єктно-орієнтованого програмування Delphi
    • 2.2 Стек протоколів та його використання.
    • 2.3 Особливості розробки програми
    • 2.4 Робота з програмою
    • ВИСНОВКИ
    • Список використаної літератури
    • Вступ

Сучасній людині важко уявити своє життя без різних засобів зв'язку. Телефон, інтернет,телебачення, радіо та інші комунікації перетворили людство в єдиний “живий” організм, змусивши його обробляти величезний потік інформації. Сьогодні підручним і основним засобом для обробки інформації став комп'ютер.

Однак масове використання окремих, не взаємозвязаних комп'ютерів породжує ряд серйозних проблем: як зберігати використовувану інформацію, як зробити її загальнодоступною, як обмінюватися цією інформацією з іншими користувачами, як спільно використовувати деякі ресурси (диски, принтери, сканери, модеми) декільком користувачам. Рішенням цих проблем є об'єднання комп'ютерів у єдину комунікаційну систему - комп'ютерну мережу. Ця мережа являє собою сукупність комп'ютерів, здатних обмінюватися між собою повідомленнями та інформацією через середовище передачі даних. Комп'ютери, що входять до складу мережi, виконують досить широке коло функцiй, основними з яких є: органiзацiя доступу до мережi, управління передачею інформації, надання обчислювальних ресурсів і послуг користувачам мережі. В свою чергу, засоби зв'язку покликанi забезпечити надiйну передачу iнформацiї мiж комп'ютерами цієї мережi. Звичайно, комп'ютерна мережа може складатися i з двох комп'ютерiв, але, як правило, їх кiлькiсть в мережi бiльша. При цьому комп'ютерна мережа не являє собою просте об'єднання комп'ютерiв - це досить складна система. Для користування цією мережею використовується багато різних програм, що забезпечують зв'язок між користувачами.

Метою моєї роботи є розгляд особливостей локальної комп'ютерної мережі,робота з протоколами, а також створення чату, який буде в цій же мережі працювати і застосовуватись для передачі повідомлень між його кристувачами.

Розділ 1. Локальні комп'ютерні мережі

1.1 Визначення локальної обчислювальної мережі

Локальна мережа ( Local Area Network, LAN ) -- група персональних комп'юте рів або периферійних пристроїв, які об'єднані між собою високошвидкісним каналом передачі цифрових даних в межах одного або декількох довколишніх будівель. Також зустрічається термін "локальна обчислювальна мережа"(ЛВС). Основне призначення будь-яких видів комп'ютерних мереж -- організація спільного доступу до ресурсів будь-якого з комп'ютерів, підключеного до даної мережі. Перш за все, це спільний доступ до даних і програм. Це коли дані або програми, що знаходяться на одному з комп'ютерів мережі (файловому сервері), можуть використовуватися на будь-якому з підключених до нього комп'ютерів. Так усе відбувається, наприклад, при використанні мережевої бухгалтерської програми, коли працівники, які мають доступ до мережі, можуть вносити зміни в єдину базу даних. Для організації постійного зв'язку між комп'ютерами локальної мережі їх об'єднують в робочі групи. Робоча група -- це група осіб (наприклад, співробітників організації), які займаються одним проектом. Сучасні локальні мережі направлені, робочою групою можна назвати групу комп'ютерів, які, наприклад, зайняті обробкою однієї мережевої гри. Комп'ютери кожної робочої групи складають окремий сегмент

У окрему групу можна віднести сервери друку з підключеними до них декількома звичайними принтерами, які при цьому набувають мережевих можливостей і можуть працювати по мережі незалежно від наявності підтримки в них цього режиму роботи. Зазвичай сервери друку мають LPT - роз'єми. Такі сервери використовуються в дуже крупних організаціях, в домашніх умовах сповна досить мати один принтер на комп'ютері, підключеному до локальної мережі, щоб до нього мали доступ всі комп'ютери робочої групи. Все вищесказане можна виразити єдиним терміном -- "спільний достип до ресурсів". [6]

Окрім вже розглянутих, є ще одна досить важлива перевага локальної мережі. Завдяки наявності постійного зв'язку між комп'ютерами з'являється можливість видаленого адміністрування, коли, сидячи за одним комп'ютером, можна стежити за роботою всіх інших комп'ютерів, підключенних до локальної мережі. Саме звідси став вживаним термін "системний адміністратор" -- це користувач, що відповідає за роботу всієї локальної мережі і керівник режимами спільного доступу до ресурсів мережі.

1.2 Види класифікацій локальних обчислювальних мереж

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

призначенням;

типом використовуваних ЕОМ;

організацією управління;

організації передачі інформації;

топологією;

методах теледоступу;

фізичних носіях сигналів;

управлінню доступом до фізичного середовища передачі і так далі. [5,c.54]

Розглянемо деякі з них.

Класифікація за призначенням. За призначенню локальні обчислювальні мережі можна розділити на: керуючі (організаційними, технологічними, адміністративними та іншими процесами), інформаційні (інформаційно-пошукові), розрахункові, інформаційно-розрахункові, обробки документальної інформації і так далі.

Класифікація за типом використовуваних в мережі ЕОМ. Такі локальні мережі можна розділити на однорідні і неоднорідні. Прикладом однорідної локальної обчислювальної мережі може служити мережа DECNET, в яку входять ЕОМ тільки фірми DEC. Часто однорідні локальні обчислювальні мережі характеризуються і однотиповим складом абонентських засобів, наприклад, тільки комплексами машинної графіки або тільки дисплеями. Неоднорідні локальні обчислювальні мережі містять різні класи ЕОМ (мікро-, міні-, великі) і різні моделі всередині класів ЕОМ, а також різне абонентське обладнання.

Класифікація за організацією управління. За організацією управління однорідні локальні обчислювальні мережі в залежності від наявності (або відсутності) центральної абонентської системи діляться на дві групи. До першої групи відносяться мережі з централізованим управлінням. Для таких мереж характерні велика кількість службової інформації і пріоритетність під'єднаних до моноканалу станцій (по розміщенню або прийнятому пріоритету). В загальному випадку локальна обчислювальна мережа з централізованим управлінням (не обов'язково на основі моноканалу) має централізовану систему (ЕОМ), яка керує роботою мережі. Прикладний процес центральної системи організовує проведення сеансів, зв'язаних з передачею даних, здійснює діагностику мережі, веде статистику і облік роботи. В локальній обчислювальній мережі з моноканалом центральна система реалізовує, також, загальну ступінь захисту від конфліктів. При виході із ладу центральної системи вся локальна обчислювальна мережа зупиняє роботу. Мережі з централізованим управлінням відрізняється простотою забезпечення функцій взаємодії між ЕОМ в локальній мережі і, як правило, характеризуються тим, що більша частина інформаційно-обчислювальних ресурсів концентрується в центральній системі. Застосування локальної мережі з централізованим управлінням доцільне при невеликому числі абонентських систем. У тому випадку, коли інформаційно-обчислювальні ресурси локальної мережі рівномірно розподілені по великому числу абонентських систем, централізоване управління малопридатне, оскільки не забезпечує потрібну надійність мережі і призводить до різкого збільшення службової (управлінської) інформації. В цьому випадку доцільно застосовувати локальні мережі з децентралізованим або розподіленим управлінням. В цих мережах всі функції управління розподілені між системами мережі. Однак, для проведення діагностики, збору статистики і проведення інших адміністративних функцій, в мережі використовується спеціально виділена абонентська система або прикладний процес в такій системі. Одна із найрозповсюдженіших децентралізованих форм управління передбачає два рівні захисту від конфліктів. На першому рівні сконцентровані функції, що визначають активність моноканалу і блокування передачі у випадку виявлення будь-якої активності. На другому рівні виконуються складніші функції аналізу системних затримок, які управляють моментами початку передачі інформації якійсь із підсистем локальної мережі. [5,с.61]

Класифікація за формуванням передачі інформації. По формуванню передачі інформації локальні мережі поділяються на мережі з маршрутизацією інформації і селекцією інформації. Взаємодія абонентських систем з маршрутизацією інформації забезпечується визначенням шляхів передачі блоків даних по адресах їх призначення. Цей процес виконується всіма комунікаційними системами, що знаходяться в мережі. При цьому абонентські системи можуть взаємодіяти по різних шляхах (маршрутах) передачі блоків даних, а для скорочення часу передачі здійснюється пошук найкоротшого по часу маршруту.

В мережах з селекцією інформації взаємодія абонентських систем проводиться вибором (селекцією) адресованих їм блоків даних. При цьому всім абонентським системам доступні всі блоки даних, що передаються в мережі. Як правило, це пов'язано з тим, що локальна мережа з селекцією інформації, будується на основі моноканалу.

Класифікація за топологією мережі (порівняльна таблиця можливостей). Топологія, тобто конфігурація з'єднання елементів в локальних мережах, притягує до себе увагу більше, ніж інші характеристики мережі. Це пов'язано з тим, що саме топологія багато в чому визначає основні властивості мережі, наприклад, такі, як надійність (живучість), продуктивність та інші. Механізм передачі даних, допустимий в тій чи іншій локальній мережі, багато в чому визначається топологією мережі. По топологічних ознаках локальні мережі поділяються на мережі з довільною, кільцевою, деревовидною конфігурацією, мережі типу “загальна шина” (моноканал), “зірка” та інші.

Зіркоподібна топологія передбачає з'єднання каналів приєднаних до різних абонентів в одній точці, яка називається центральним вузлом.

Рис. 1 З'єднання типу зірка

Кільцева топологія передбачає послідовне з'єднання абонентів з каналами передачі даних, внаслідок чого утворюється замкнуте кільце. Кожен абонент відіграє роль ретранслятора повідомлення з невеликою часовою затримкою.

Рис. 2 Кільцеве з'єднання

Магістральна (шинна) топологія реалізується у вигляді пасивного моноканалу (магістралі). Ця топологія найпоширеніша. Вона використовується у випадку, коли інформація передається рідко (в порівнянні з можливостями комп'ютерів), дані комплектуються в пакет, дістають адресу і після того, як магістраль стане доступною, відбувається передача повідомлення.

Рис. 3 Магістральне з'єднання (шинна топологія).

Існують інші підходи до класифікації топології локальних мереж. Згідно одного з них конфігурації локальних мереж ділять на два основні класи - широкотрансляційні і послідовні. В широкотрансляційних конфігураціях кожний персональний комп'ютер передає сигнали, які можуть бути сприйняті всіма іншими персональними комп'ютерами. До таких конфігурацій відносяться загальна шина, дерево, зірка з пасивним центром. В послідовних конфігураціях кожен фізичний підрівень передає інформацію тільки одному персональному комп'ютеру. Широкотрансляційні конфігурації -- це, як правило, локальна мережа з селекцією інформації, а послідовні - локальні мережі з маршрутизацією інформації.

Класифікація мереж по методах теледоступу. Крім топології локальної мережі процес передачі даних багато в чому визначається програмним забезпеченням ЕОМ абонентських систем, в основному їх операційними системами, оскільки кожна з них підтримує відповідний метод теледоступу зі сторони терміналів. Моноканал розглядається також, як один із терміналів, тому дуже важливо знати, наскільки розрізняються операційні системи і методи теледоступу всіх абонентських комплексів, під'єднаних до мережі. Розрізняють локальні мережі з єдиною операційною підтримкою і єдиними методами теледоступу, орієнтованими на локальні мережі, і локальні мережі з різними фізичними носіями сигналів. Тип носія визначає основні властивості пристрою обміну сигналами, який під'єднується до фізичного середовища передачі. Єдина операційна підтримка, що включає метод теледоступу, передбачена в однорідних локальних мережах. Складніше з локальними мережами, що використовують ЕОМ різних класів і моделей, наприклад міні-ЕОМ і великі обчислювальні машини. Методи теледоступу підтримують багаторівневі системи інтерфейсів.

Класифікація мереж за методом управління середовищем передачі даних. Важливою класифікаційною ознакою локальної обчислювальної мережі є метод управління середовищем передачі даних. У локальній обчислювальній мережі з моноканалом можна виділити два методи доступу до моноканалу: детермінований і імовірнісний. До першої групи відносяться: метод вставки реєстру, метод циклічного опиту, централізований і децентралізований маркерний метод і інші. До другої групи (імовірнісні методи доступу) - методи прослуховування моноканалу на початок передачі, з прогнозуванням, зіткненням та деякі інші. [5,с.67]

Рис.4 Ієрархічне з'єднання

Рис.5 Зєднання клієнт-сервер

1.3 Модульна структура локальної мережі

Важливою характеристикою локальної мережі є швидкість передачі інформації. В ідеальному варіанті при відсиланні і отриманні даних через мережу час відгуку повинен бути таким же, як і при роботі з особистим персональним комп'ютером користувача, а не з якогось місця поза ним у мережі. Це вимагає швидкості передачі даних від 1 до10 Мбіт/с і більше.

Поряд з цим локальні мережі повинні не тільки швидко передавати інформацію, але і легко адаптуватися до нових умов, мати гнучку архітектуру, яка дозволяла б розташовувати автоматизовані робочі місця (або робочі станції) там, де це потрібно. Користувач повинен мати можливість встановлювати нові або переносити існуючі робочі місця або інші пристрої мережі, а також, від'єднувати їх у випадку необхідності без переривань роботи мережі. Задоволення перерахованих вимог досягається модульною побудовою локальної мережі, яка дозволяє будувати комп'ютерні мережі різної конфігурації і з різними можливостями. Основними фізичними компонентами локальних комп'ютерних мереж є: кабелі, робочі станції, інтерфейсні плати мережі, сервери мережі.

Кожен пристрій локальної мережі під'єднується до кабелю передачі даних, що дозволяє їм взаємодіяти. Під'єднуючі кабелі можуть бути різноманітними: від найпростіших двожильних телефонних до дорогих волоконно-оптичних. Пристрої мережі з'єднуються кабелями за допомогою інтерфейсних плат. Специфічними компонентами локальної обчислювальної мережі є сервери. Вони виконують функції управління розподілом мережних ресурсів загального доступу. Сервери - це апаратно-програмні системи. Апаратним засобом, звичайно, є достатньо потужній персональний комп'ютер, міні-ЕОМ, велика ЕОМ або комп'ютер, спеціально спроектований як сервер. Локальна мережа може мати декілька серверів для управління мережними ресурсами, але завжди повинен бути один або більше файл - серверів чи серверів баз даних. Сервер управляє зовнішніми запам'ятовуючими пристроями загального доступу і дозволяє формувати потрібні бази даних. У випадку файл - серверу кожній під'єднаній робочій станції забезпечується доступ до цілого файлу баз даних. Це зокрема означає, що робота відбувається із всіма записами в конкретній базі даних, а не тільки з потрібними. Тобто по мережі на конкретну робочу станцію передається повна база даних, хоча цьому користувачу був потрібний лише один чи декілька записів з багатьох. Все це може призвести до непотрібного перевантаження локальної обчислювальної мережі. Сервер баз даних працює в таких випадках набагато продуктивніше, тому що він обробляє лише ті записи, з якими працює користувач в даний момент часу.

1.4 Способи передачі даних в локальних обчислювальних мереж

Для передачі даних в мережі використовуються такі основні способи:

Комутація каналів. Мережа комутації каналів працює так, що вона встановлює весь шлях із з'єднаних ліній від відправника до адресата. Цей повний шлях встановлюється з допомогою спеціальних повідомлень сигналізації, які самі прокладають собі шлях по мережі і займають канали після їх проходження. Після встановлення шляху сигнали повідомляють джерело про можливість починати передачу, і всі канали цього шляху пізніше використовуються одночасно. Весь шлях залишається зв'язаним цією передачею (незалежно від того чи використовується він чи ні), і тільки після того коли один з абонентів звільнює ланцюжок зв'язку - всі канали звільняються. Основною перевагою методу комутації каналів є можливість використання широко розгалуженої системи телефонних каналів. Наприклад, описаний метод використовується в телефонії.

Комутація повідомлень. При комутації повідомлень у визначений момент часу використовується тільки один канал для даної передачі (між двома сусідніми вузлами комутації, а між двома наступними - інший канал). Повідомлення спочатку передається від джерела до другого вузла на його шляху; після прийому повідомлення цим вузлом вибирається наступний вузол в напрямі адресата у відповідності з маршрутизацією. Якщо канал зайнятий, тоді повідомлення очікує черги і передача продовжується після звільнення каналу. Таким чином, при передачі по мережі з проміжним збереженням, повідомлення перестрибує через ділянки мережі від одного вузла до іншого, використовуючи в кожен момент часу тільки один канал. Для нормальної роботи мережі і ефективного використання каналів вимагається велика кількість пристроїв проміжного запам'ятовування. Класичним прикладом є телеграфна мережа і системи електронної пошти.

Комутація пакетів. Метод комутації пакетів нагадує метод комутації повідомлень, з тою різницею, що повідомлення розбиваються на частини (пакети), кожен з яких має встановлену максимальну довжину. Ці пакети нумеруються і помічаються деякою адресою (як і при комутації повідомлень) і прокладають собі шлях по мережі (методом передачі з проміжним зберіганням), яка їх комутує. Таким чином, множина пакетів одного повідомлення може передаватися одночасно, що є найбільшою перевагою цього методу. Приймач здійснює зшивку повідомлення з пакетів у відповідності з їх нумерацією і відправляє його адресату. Завдяки можливості не нагромаджувати повідомлення цілком у вузлі мережі при передачі не вимагається додаткових пристроїв запам'ятовування. [6,4]

1.5 Багаторівнева модель міжпроцесних взаємодій

Реалізація розподільчої служби зв'язку передбачає кооперацію між складовими системами, а правила, які регулюють такі операції, складають протокол. В моделі міжпроцесних взаємодій між окремими системами можна виділити декілька взаємонезалежних рівнів, на яких проводиться узгодження процесів обміну інформацією. Стандартами передбачається семирівнева модель архітектури мережі - базова еталонна модель взаємодії відкритих систем (OSI). Проте на практиці, зокрема в мережі Internet, число цих рівнів менше. Основними з них є:

Прикладний рівень (application) - в його компетенції знаходяться функції, пов'язані з організацією міжпроцесних взаємодій. Прикладний рівень містить прикладне забезпечення користувача та необхідне управління і забезпечує загальні базові функції (електронна пошта, обробка текстів і редагування, передача файлів і доступ до них, ввід і обробка інформації); спеціальні проблемно-орієнтовані функції (інформаційний пошук, управління базами даних, робота з електронними таблицями) та загальні службові функції (приєднання користувача до прикладення, перевірка санкціонованості доступу, доступ до довідкових даних).

Рівень представлення (presentation) забезпечує незалежність прикладних процесів від різних форм представлення даних і містить засоби перетворення даних, форматів і кодів, виконуючи наступні функції: синтаксичні та форматні перетворення символів, керуючих знаків, типів і полів даних, сторінок екранів; структурні перетворення синтаксичного та семантичного типів, необхідних як для доступу до файлів, так і для управління форматами відображень, графічними атрибутами.

Сеансний рівень (session) забезпечує механічну організацію і формування структури взаємодій між прикладними процесами. Такий механізм зокрема дозволяє реалізувати двостороннє одночасне або двостороннє почергове функціонування процесів. Він також формує надійне управління сеансами зв'язку між двома користувачами за допомогою таких функцій: управління початком і завершенням сеансу; управління взаємодією між процесами; управління взаємодією користувачів і прикладних програм; підтримку інтерфейсу з транспортним рівнем.

Транспортний рівень (transport) забезпечує прозору передачу даних між кінцевими системами та розмежування засобів формування і передавання даних у мережі. Пов'язує нижні апаратно залежні рівні з верхніми, що повністю реалізується програмними засобами. Реалізує функції запиту та індикації з'єднання та роз'єднання, запис передачі даних.

Мережний рівень (network) забезпечує незалежність від методів передачі даних і від функцій ретрансляції та маршрутизації даних. Він проводить маршрутизацію повідомлень, контроль помилок, мультиплексування і управління потоками даних; визначає, яка частина повідомлень або пакетів може надходити від передавального вузла до прийомного.

Канальний рівень (data link) забезпечує функціонування мережного рівня, а також виправлення помилок, що виникають на фізичному рівні. Канальний рівень проводить доставку пакетів повідомлень з одного вузла мережі до іншого та визначає необхідні для цього керуючі процеси протоколу. Його функціями є кадрова синхронізація (визначення початкової та кінцевої точки повідомлень), адресація (визначення адреса приймального вузла), виявлення помилок, управління каналами передачі даних. Канальний рівень реалізується апаратними та програмними засобами. Канальний та фізичний рівні визначають такі характеристики мережі, як швидкість передачі даних; топологію; метод доступу; вартість передачі одиниці інформації.

Фізичний рівень (physical) забезпечує механічні, електричні і процедурні стандарти фізичних засобів передачі даних. Фізичний рівень визначає вимоги до каналу передачі та електромеханічних з'єднань. Функціями цього рівня є кодування, декодування даних, повідомлення канального рівня про спотворення сигналу при його виявленні, повідомлення про прийом даних, запит даних про передавання по канальному рівню, прийом від канального рівня повідомлень про передачу даних, завершення передачі даних і запиту на їх видачу.

Рис.6 Структура з'єднань

1.6 Протокол передачі даних TCP/IP

Протокол - це набір угод і правил, які визначають тип, фізичні сигнали, їх послідовність в часі, алгоритми прийому, контролю і передачі повідомлень, а також склад службової інформації самих повідомлень. На основі розбиття процесу передачі на описаних рівнях формуються різноманітні протоколи передачі даних.

Найвідоміший і найпоширеніший - TCP/IP. Він містить тисячі окремих протоколів для узгодження процесу прийому-передачі на всіх рівнях. Реалізація протоколів зв'язку між процесами локальної обчислювальної мережі, як правило, передбачає використання принципу пакетної комутації для обміну інформацією між взаємодіючими процесами. При пакетній комутації інформація перед передачею розбивається на сегменти (блоки). Ці сегменти у вигляді пакетів визначеної довжини містять крім інформації користувача деяку службову інформацію, призначену для ідентифікації пакетів і виявлення помилок передачі. Оскільки при передачі інформації по довгому ланцюжку не виключені збої, дані розбиваються на IP-пакети (IP - Internet Protocol - міжмережний протокол), розміром від 1 до 60.000 байт. Кожен такий пакет передається автономно, тобто втрата або пошкодження його при передачі не впливає на передачу решти даних. IP-пакет містить в собі TCP-пакет (Transmition Control Protocol - протокол контролю передачі), в якому міститься службова інформація, в тому числі про те, як конкретний кусок інформації приєднати до решти, щоб з отриманих IP-пакетів знову отримати файл (одиницю зберігання інформації), а також контрольне число, по якому ведеться перевірка неушкодження інформації. Якщо виявлено пошкоджений пакет, здійснюється повторна його передача. [7]

На основі протоколу IP побудовано ціле сімейство протоколів (більше 100) старшого рівня TCP/IP. Найнижчий рівень із них має власне протокол IP - третій рівень - пакетний. У цьому випадку два нижніх рівні складали протоколи локальної мережі Ethernet. Зараз протоколи TCP/IP широко використовуються в цілому світі для об'єднання комп'ютерів в мережу INTERNET. Більша частина комп'ютерів в INTERNET зв'язана по протоколу TCP/IP.

1.7 Протокол UDP

Також для побудови локальної мережі використовують UDP протокол. Він представляє собою немаршрутизований і не дуже надійний протокол транспортного рівня моделі OSI.

Протокол дейтаграм користувача (англ. User Datagram Protocol, UDP) -- один із протоколів в стеку TCP/IP. Від протоколу TCP він відрізняється тим, що працює без встановлення з'єднання. При використанні протоколу UDP обробка помилок і повторна передача даних має виконуватися протоколом більш високого рівня. Але, не зважаючи на всі недоліки, протокол UDP є ефективним для серверів, що надсилають невеличкі відповіді великій кількості клієнтів.

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

· TFTP (англ. Trivial File Transfer Protocol, найпростіший протокол передачі файлів),

· SNMP (англ. Simple Network Management Protocol, простий протокол управління мережею),

· DHCP (англ. Dynamic Host Configuration Protocol, протокол динамічної конфігурації вузла),

· DNS (англ. Domain Name System, служба доменних імен).

Також цей протокол може використовуватися для різноматніх мережевих ігор реального часу, потокового відео та аудіо, інших типів даних. [8]

UDP забезпечує дуже простий інтерфейс між мережним та програмним рівнями. UDP не гарантує доставку повідомлень, та відправник не запам'ятовує стан вже відісланих повідомлень. З цієї причини протокол UDP іноді розшифровують як “Unreliable Datagram Protocol” (протокол ненадіних дейтаграм). Якщо на базі UDP треба організувати надійну передачу даних, то для цього необхідно залучити протоколи більш високого рівня.

Заголовок UDP конверту складається з 4 полів, з яких 2 є опціональними. “Порт відправника” та “порт одержувача” -- це 16-бітні поля, котрі ідентифікують відправляючий та одержуючий процеси. “Порт відправника” є необов'язковим, оскільки UDP працює без встановлення з'єднання та відправник може не потребувати відповіді. В такій ситуації "порт відправника" повинен дорівнюватися нулю. Поле "Розмір" є обов'язковим, воно визначає довжину усієї UDP дейтаграми в байтах, з полем "Дані" включно. Мінімальне значення цього поля дорівнює 8 байт. Останнє поле заголовка довжиною 16 біт містить у собі контрольну суму заголовка і поля даних. "Контрольна сума" теж є необов'язковим полем, але на практиці воно майже завжди використовується.

Програми, що використовують UDP в якості транспортного протоколу, мають бути готові до помилок, втрати деяких конвертів та повторної передачі даних. Якщо ж програма потребує висого рівня надійності, то може використовуватися такий протокол як TCP або збитковість коду, за допомогою якої можна знаходити помилки при передачі даних.

Оскільки у протоколі UDP відсутній будь-який контрольний механізм запобігання перавантаженням, мережні механізми повинні мати засоби для зменшення ефекту потенційних перевантажень від великого неконтрольованого потоку UDP-трафіку. Кажучи інакше, оскільки UDP-відправники не спроможні виявляти перевантаженість, мережні елементи, такі як роутери, що використовують “черги конвертів” та “відкидання конвертів”, залишаються єдиним інструментом для призупинення надмірного UDP-трафіку. DCCP(англ. Datagram Congestion Control Protocol, протокол контролю навантаженості дейтаграм) був створений як часткове рішення цієї проблеми. Він контролює навантаження на кінцевих вузлах високошвидкісних потоків UDP-трафіку, наприклад, потокового відео. Хоча кількість UDP трафіку в типовій мережі сягає лишень кількох відсотків, проте багато важливих програм використовують UDP.

1.8 Аналогічні програмні засоби

На сьогодні широкого поширення набуло використання різних чатів як в локальних так і в глобальних мережах. Одним із таких прикладів є Vypress Chat . Це чат для локальної мережі створений компанією VyPRESS Research. Програма не потребує віддаленого сервера - кожна запущена копія програми є і сервером і клієнтом одночасно, тим самим роблячи усіх користувачів рівноправними. Він має такий вигляд:

Рис. 7 Головне вікно Vypress Chat

Основними особливостями Vypress Chat є:

· Не потребує віддаленого сервера;

· Приємний і зручний інтерфейс;

· Крім загального каналу,можна створити персональні(приватні) канали(1 на 1) і другі канали в залежності від інтересів (в тому числі з зхисто та паролем);

· Підтримка надсилання особистих та багатоадресних повідомлень;

· Наявність дошки оголошень;

· Передача файлів;

· Відкриття доступу до файлів по протоколу HTTP;

· Можливість самостійно налагоджквати кольори та звукові схеми;

· Фільтрація небажаних повідомлень; [10]

Цей чат є зручним у використання у невеликих мережах (до 200 користувчів), він є досить ефективним та зручним хоч і має деякі недоліки.

Є досить багато інших аналогічних програм, наприклад MyChat та CommFort, усі вони дуже схожі.

Моя програ мастворена саме на прикладі Vypress Chat . Вона має деякі аналогічні функції. Наприклад однаковим є спосіб відправки повідомлень, можливість відправки масових повідомлень, вивід інформації про дії користувачів чату. Також мій чат має дуже схожий до Vypress Chat інтерфейс головного вікна програми.

Розділ 2. Розробка проекту

2.1 Система об'єктно-орієнтованого програмування Delphi

В даний час серед широкого кола користувачів популярна система об'єктно-орієнтованого програмування Delphi, основу якої становить мова Object Pascal . Delphi дозволяє швидко створювати додатки різного ступеня складності на основі застосування технології візуального програмування. Саме тому ми вибрали середовище Delphi для розробки своєї програми.

Інтегроване середовище розробки Delphi є багатовіконною системою. Вид інтегрованого середовища розробки (інтерфейс) може змінюватись залежно від настройок. Після завантаження інтерфейс Delphi включає п'ять вікон.

Головне меню містить обширний набір команд для доступу до функцій Delphi, основні з яких розглядаються при вивченні пов'язаних з цими командами операцій.

Палітра компонентів містить в собі багато компонентів, які ми розміщуємо на формі для створення програми. Всі компоненти розбиті на групи, кожна з яких розміщена на окремій сторінці палітри, а компоненти представлені у вигляді кнопок. Усе розподілено у зв'язку з виконуваними функціями та сферою застосування. Наприклад там містяться компоненти для роботи з базами даних, для створення звітів, для доступу до системних функцій, для створення стандартних діалогових вікон та інші. [3,с.23]

Ми вибрали середовище програмування Delphi саме тому, що тут є усі можливості для реалізації чату, а також можна створити зручний і яскравий інтерфейс. Програма створена для обміну повідомленями між її користувачами в локальній мережі.

2.2 Стек протоколів та його використання

Стек протоколів - це набір стандартів обробки даних на всіх рівнях моделі OSI, котрий є обов'язковим в розробці мережевого апаратного та програмного забезпечення.[9]

Деякі стеки протоколів можуть працювати на усіх типах мереж, забезпечуючи мінімальну пропускну здатність (це стек протоколів TCP/IP, SPX/IPX).

Рівні моделі OSI, що реалізуються в протоколах можуть бути об'єднані між собою, але їх не можна переставляти місцями.

Стек TCP/IP (Transmission Control Protocol/Internet Protocol) містить до 64 різних протоколів. В кожен момент часу роботи системи в оперативній пам'яті може перебувати одночасно кілька функціонально незалежних служб, які реалізують протоколи зі служби TCP/IP. Стек TCP/IP побудований як деревовидна структура з двонапрямленими зв'язками між всіма її компонентами.

Размещено на http://www.allbest.ru/

2

2

При відправці файлу на комп'ютер, що подав на нього запит, стек TCP/IP працює наступним чином: на прикладному рівні до файлу дописується тип кодування прикладного рівня для даного файлу, інформація разом з файлом передається в протокол TCP/IP. В протоколі TCP файл розбивається на пакети або кадри. Пакети даних (кадри) передаються в протокол IP, де до даних дописується адреса відправника та отримувача, маска мережі та основний сервер, котрий передає пакети від свого імені.

З протоколу ARP в кожен пакет вписується перелік адрес, по яких даний пакет повинен пройти. Якщо Пакет, адресований комп'ютеру з власної мережі, то в шляху вказується лише адреса найближчого сервера. Якщо зв'язок з комп'ютером-отримувачем пакетів організовується вперше або не зв'язувались протягом великого проміжку часу, то виконуються наступні дії:

1. Протокол UDP формує пакети сканування мережі (ping-пакети) і відправляє їх на адресу отримувача інформації. Якщо отримувач відсутній в локальній мережі, то ping-пакети будуть не підтвердженими. Якщо отримувач присутній, то з підтвердженням надійде статистична інформація про стан каналу зв'язку.

2. UDP-протокол генерує пакети збору інформації про найближчу локальну мережу за допомогою команди NetStat (якщо в локальній мережі присутні комп'ютери лише з ОС Microsoft Windows, то генерується команда nbtstat). Після отримання пакетів зі статистичною інформацією про локальну мережу створюється графік передачі даних на найближчий сервер.

3. За допомогою команди net та набору ключів до неї відбувається організація каналу зв'язку з віддаленими комп'ютером або з сервером.

4. Протокол IP, отримавши інформацію про канали зв'язку та стан мережі, визначає оптимальний розмір пакетів, або кадрів і перекодовує інформацію до даного розміру.

Готові до відправки пакети (або кадри) обробляються на апаратному рівні в одній з мережевих плат. Тут вони перетворюються до оптичних або електромагнітних імпульсів, котрі описані в стандарті до мережі даного типу і відправляються в передаюче середовище мережі.

2.3 Особливості розробки програми

Основою роботи чату є формування підключення до локальної мережі. Воно здійснене за допомогою TCP i UDP потоколів. UDP протокол формує з'єднання з мережею надсилаючи пакети з даними про користувача який наявний в мережі. TCP забеспечує надійне передання інформації, він використовується в тих випадках коли доставка повідомлень є обов'язкова. В програмі для створення з'єднань ми підключаємо мережеву бібліотеку winsock, яка робить роботу з мережею через компоненти Dеlphi простою і швидкою. Вся робота мережевої бібліотеки побудована навколо поняття socket.

Сокетом (від англ. socket - гніздо, розетка) називається спеціальний об'єкт, що створюється для відправки і отримання даних через мережу. Відзначимо, що під терміном "об'єкт" в даному випадку мається на увазі не об'єкт в термінах об'єктно-орієнтованого програмування, а деяка суть, внутрішня структура якої прихована від нас, тому з цією суттю ми можемо оперувати тільки як з єдиним і неподільним (атомарним) об'єктом. Цей об'єкт створюється усередині бібліотеки сокетів, а програміст, що використовує цю бібліотеку, отримує унікальний номер (дескриптор) цього сокета. Конкретне значення цього дескриптора не несе для програміста ніякої корисної інформації і може бути використане тільки для того, щоб при виклику функції з бібліотеки сокетів вказати, з яким сокетом потрібно виконати операцію.[8]

Для з'єднання з сервером ми підготували такий канал до роботи, після чого можна з'єднуватися на будь-який порт сервер.

Найперше, що треба зробити - підключити бібліотеку . Для цього потрібно викликати функцію WASStartUp. Далі перш ніж виробляти підключення до сервера,ми готуємо socket до роботи. Для підготовки потрібно виконати функцію socket, у якої є три параметри:

1. Тип використовуваної адресації. Ми будемо вказувати значення pf_inet,при якому робота буде синхронною. Синхронна робота полягає в тому що коли викликається функція, то програма зупиняється і чекає повного її виконання.

2. Базовий протокол. Тут ми вказуємо, на основі якого протоколу буде відбуватися робота. Взято два базових протоколи - TCP (з надійним з'єднанням) і UDP (не виробляє з'єднань, а просто надсилає дані в порт). Для TCP в цьому параметрі ми вказуємо sock_stream, а для UDP вказуємо sock_dgram.

3. Далі ми вказуємо, який конкретно протокол нас цікавить (IPPROTO_UDP і IPPROTO_TCP).

В тексті програми це реалізується наступним чином:

procedure TMainForm.initChat;

var wsaData: TWSAData;

S:String;

SockOpt: BOOL;

lname,lIp:String;

begin

// init sock library

WSAStartUp($101,wsaData);

UDPSock:=Socket(PF_INET,SOCK_DGRAM,IPPROTO_UDP);

SockOpt:=TRUE;

SetSockOpt(UdpSock,SOL_SOCKET,SO_BROADCAST, PChar(@SockOpt),SizeOf(SockOpt)) ;

//read options or create options

assignFile(fileOptions,NameFileOptions);

with ChatOptions do

if fileExists(NameFileOptions) then

begin

reset(fileOptions);

readln(fileoptions,MyName);

readln(fileoptions,MyIP);

GetHost_Name_IP(lName,lIp);

if lIp<> MyIp then

GetStandartOptions

else

begin

readln(fileoptions,MyPort);

readln(fileoptions,S);

ShowIp:=(S='true');

readln(fileoptions,S);

ShowTime:=(S='true');

closeFile(fileOptions);

end;

end

else

GetStandartOptions;

// init UdpClient

UdpClient := Socket(PF_INET,SOCK_DGRAM,IPPROTO_UDP);

Addr.sin_family := AF_Inet;

Addr.sin_addr.S_addr := Inet_Addr(PAnsiChar(ChatOptions.MyIp));

Addr.sin_port := HtoNS(StrToInt(ChatOPtions.MyPort));

FillChar(Addr.sin_zero,sizeof(Addr.sin_zero),0);

if Bind(UdpClient,addr,SizeOf(TSockAddr))=Socket_Error then

begin

ShowMessage('bing error by UDPclient');

end;

// init TCPClient Socket

TCPServer := Socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);

Addr.sin_family := AF_Inet;

Addr.sin_addr.S_addr := Inet_Addr(PAnsiChar(ChatOptions.MyIp));

Addr.sin_port := HtoNS(StrToInt(ChatOPtions.MyPort));

FillChar(Addr.sin_zero,sizeof(Addr.sin_zero),0);

if Bind(TCPServer,addr,SizeOf(TSockAddr))=Socket_Error then

begin

ShowMessage('bing error by tcpserver');

end;

listen(TcpServer,SoMaxConn);

fd_zero(gfds);

fd_set(UdpClient,gfds);

fd_set(TcpServer,gfds);

mythread:=ChatTheard.create(false);

UserName.Caption:=ChatOptions.MyName;

SendBroadcast(cstarted,'start ');

end;

Тут ми спостерігаємо, що спочатку здійснюється створення зєднання, а далі надсилаються пакети з інформацією. При програмуванні TCP використовуються ті ж функції, що і при програмуванні UDP, але їх поведінка при цьому інша. Для передачі даних за допомогою TCP необхідно спочатку встановити з'єднання, і після цього можливий обмін даними тільки з тією адресою, з якою це з'єднання встановлене.

Також важливою процедурою є пошук IP адреси та імені комп'ютера. Спочатку будемо отримувати з нього хост комп'ютера, присвоюємо якійсь змінній його значення та відображаємо ім'я комп'ютера. Це ж саме виконуємо і для IP адреси. Реалізується це саме так:

procedure TmainForm.GetHost_Name_IP(var Name,Ip:string);

var

i: pchar;

h: PHostEnt;

c: array[0..128] of char;

begin

{Отримуєм хост (імя) комп'ютера}

GetHostName(@c, 128);

h := GetHostByName(@c);

Name := h^.h_Name; //Host відображає хост(імя) комп'ютера

{Дістаєм IP}

i := iNet_ntoa( PInAddr( h^.h_addr_list^ )^ );

ip := i; //тепер IPaddr відображає IP-адресу

end;

Для вводу та відображеня повідомлень ми обрами компонент RichEdit. Це тому, що він має широкі можливості роботи з текстом. Тут ми маємо можливість редагувати окремі частини тексту. Наприклад підчас переписки змінюється колір імені коримтувача, взалежності від того хто відправник а хто одержувач.

Також у вікні відправки повідомлень застосовано компонент StatuBar, в якому відображається інформація про те чи здійснено з'яднання,чи воно ще не відбулось.

Для сторення кнопок використано SpeedButton, щоб мати можливість надати їм бажаний вигляд, змінювати іконки кнопок.

Ще є наєвним компонент ToolBar в якому відображається нікнейм кристувача. Спочатку він має такеж значення як і ім'я комп'ютера, але його можна змінювати у вікні “опції”.

Також використано MainMenu для створення меню програми в яке внесені основні для користування програми функцій. Це значно спрощує роботу з прогрмою і робить її зрозумілою для пересічного користувача.

2.4 Робота з програмою

Важливим є те що інтерфейс досить простий і схожий на ті програми які уже давно створені і набули широкого розповсюдження. Загалом моя програма має такий вигляд:

Рис. 9 Головне вікно чату

Для доступу до кожної з функцій чату створені окремі кнопки при натисканні яких ми отримуємо бажаний результат. Ми маємо кнопку згортання вікна, виходу з чату , настройки, показ інформації про програму та про автора. Після запуску програми справа ми бачимо список користувачів чату які зараз є в режимі “online”. Там повідомляється ім'я та IP-адреса комп'ютера в мережі. Також в головному вікні програми відображається інформація про те коли користувач зайшов чи вийшов з чату, а також загальні (багатоадресні) повідомлення які можуть прочитати усі користувачі.

Для написання повідомлення необхідно натиснути правою кнопкою миші на їм'я потрібного користувача тоді відкриється вікно обміну повідомленнями.

Рис. 10 Вікно переписки

Переписка відбувається в режимі ділогу. Це робить її швидкою і досить зручною. Натиснувши кнопку опції, ми бачимо IP дресу компютера та номер порту з'єднання. Також саме тут надається можливість змінити нікнейм під яким користувач підписаний в чаті.

Рис. 11 Налаштування

Ще ми можемо вибрати чи буде відображатися час та IP адреса корисувача при написанні загальних повідомлень, а також при виведенні інформації про його дії.

Висновки

В даній роботі було розроблено програмний продукт для здійснення мережевого з'єднання, який також дозволяє передавати інформацію по мережі. Під час роботи була розглянута відповідна література, проаналізована методика розв'язання поставленої задачі, а також визначено, якими саме методами розв'язати поставлену задачу.

Отже, даний чат є функціональним в будь-якій локальній мережі. Програма працює у всіх оперційних системах Windows, але іноді виникають проблеми в роботі на Windows 7. Мережеве з'єднання відбувається швидко та без помилок, що сприяє швидкому обміну повідомленнями між користувачами.

Розроблений чат перебуває в стані розробки і на даний момент реалізовано не всі заплановані до втілення можливості. Тому поряд з уже доступними планується додати наступні можливості:

- можливість обміну смайлами ;

- передачу файлів;

- доступ до ресурсів комп'ютерів інших користувачів.

Список використаної літератури

1. Фленов М. Програмування в Delphi / М. Фленов - СПб. : БХВ-Санкт-Петербург, 2003. - 368 с.

2. Гофман В. Delphi. Швидкий старт / В. Гофман, М. Хоменко - СПб. : БХВ-Санкт-Петербург, 2003. - 288 с.

3. Культин Н.Б. Основы програмирования в Delphi7 / Культин Н.Б. - СПб.: БВХ-Петербург, 2003. - 608с.

4. Шпак Ю.А. Delphi 7 на примерах / Под ред. Ю.С. Ковтанюка - К.: Издательство Юниор, 2003. - 384с.

5. Джон Буравчик Локальна мережа без проблем / Джон Буравчик, - Лучшие книги, 2005. - 224 с.

6. Локальні і глобальні мережі [Електронний ресурс] - Режим доступу: http://prvo.dynalias.net/book/archnet/glava1/004.htm

7. TCP/IP [Електронний ресурс] - Режим доступу: http://uk.wikipedia.org/wiki/TCP/IP

8. UDP протокол [Електронний ресурс] - Режим доступу: http://uk.wikipedia.org/wiki/UDP

9. Буров А. Компьютерные сети.-М.: Питер,2002.-754с.

10. VypressChat [Електронний ресурс] - Режим доступу http://www.vypress.com/rus/products/chat/

Размещено на Allbest


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.