Характеристика протоколу TCP/IP
Зміст
Вступ.....................................................................................................................3
І. Поняття локальної мережі...............................................................................4
ІІ. Мережеві транспортні протоколи.................................................................5
IІІ. Характеристика протоколу TCP/IP..............................................................7
1.Вимоги до конфігурації TCP/IP............................................................9
2.Протокол IP версії 6.............................................................................13
а) підвищена гнучкість маршрутизації.................................................14
б) мітки протоколів (flow labeling)........................................................15
в) пріоритет пакету..................................................................................15
г) підтримка найбільших пакетів...........................................................17
ІV. Опис програми SashaPopUp.......................................................................19
Висновок............................................................................................................27
Список використаної літератури.....................................................................29
Вступ
Протокол Internet створений для використання в об'єднаних системах комп'ютерних комунікаційних мереж з комутацією пакетів. Такі системи були названі "catenet". Протокол Internet забезпечує передачу блоків даних, називаних датаграмами, від відправника до одержувачів, де відправники й одержувачі є хост-комп’ютерами, ідентифікованими адресами фіксованої довжини. Протокол Internet забезпечує при необхідності також фрагментацію і збір датаграм для передачі даних через мережі з малим розміром пакетів.
Протокол Internet спеціально обмежений задачами забезпечення функцій, необхідних для передачі бітового пакета (датаграми Internet) від відправника до одержувача через об'єднану систему комп'ютерних мереж. Немає механізмів для збільшення вірогідності кінцевого даних, керування протоколом, чи синхронізації інших послуг, звичайно застосовуваних у протоколах передачі від хоста до хосту. Протокол Ineternet може узагальнити послуги підтримуючих його мереж з метою надання послуг різних типів і якостей.
І. Поняття локальної мережі
Локальною мережею (LAN – local area network) називають групу зв'язаних один з одним комп'ютерів, розташовану в деякій обмеженій області, наприклад, будинку. Розміри LAN можуть значно відрізнятись. Локальна мережа може складатися з двох робочих станцій, що працюють під керівництвом Windows 98, розташованих в одній кімнаті, або з декількох сотень робочих станцій, розкиданих по різних поверхах адміністративного будинку. Особливість LAN у тім, що в такій мережі всі комп'ютери яким-небудь чином згруповані, тим чи іншим чином з'єднані один з одним, і знаходяться в одному будинку. У більшості LAN для з'єднання комп'ютерів можуть використовуватися кабелі різного типу.
На практиці локальні мережі частіше визначають по функціональним, а не по фізичних характеристиках. У цьому, більш загальному розумінні, локальні мережі є засобом зв'язку комп'ютерів, що дозволяє їм одержувати доступ до пристроїв. Іншими словами, з урахуванням обмежень системи захисту, комп'ютери локальних мереж одержують доступ до загальних пристроїв (принтерів, сканерам, приводам компакт-дисків, жорстким дискам, модемам і т.д.) так, ніби то воно встановлено локально. Зрозуміло, доступ до пристроїв означає і доступ до даних, що зберігається на цих пристроях.
Отже, усі комп'ютери локальної мережі можуть не тільки одержувати доступ до компонентів яких-небудь інших апаратних засобів (з урахуванням обмежень систем захисту), але також використовувати їх так, ніби вони були доступні локально, що припускає спільне використання даних користувачами комп'ютерів.
ІІ. Мережеві транспортні протоколи
Спеціальна програма для передачі даних в мережі, їх розшифрування і розуміння становить протокол роботи мережі.
Протокол – це набір правил, які регламентують порядок збирання пакетів з даних і управління інформацією на роботі станції відправника для передачі і правила збирання пакетів на робочій станції отримувача. Протокол забезпечує передачу даних в мережі за рахунок того, що в ньому вказується які біти містить заголовок, які значення розміру інформації. Які містять саму інформацію, а які потрібні для контролю помилок. Протоколи охоплюють всі фази обміну в мережі.
а) синхронізацію тактових генераторів комп’ютера-отримувача і комп’ютера-відправника;
б) методику кодування двійкових даних;
в) інструкції про передачу інформації по декількох різних мережах без втрати їх цілісності.Мережні транспортні протоколи визначають метод передачі даних по мережі, а також метод їх пакетування й адресації. Щоб два мережних комп'ютери могли встановити зв'язок, вони повинні використовувати однакові транспортні протоколи, оскільки протокол визначає метод пакетування й обміну даними.
З технічної точки зору до протоколів можна віднести будь-яку систему, що задає метод передачі даних через мережу, незалежно від того, чи функціонує ця система на канальному чи прикладному рівнях. Однак часто протоколами називають системи, що задають метод пакетування і передачі даних по мережі. Протоколи NetBEUI. IPX/SPX і TCP/IP працюють на мережному і транспортному рівнях моделі OSI. Оскільки вони працюють на декількох рівнях, їх часто називають стеками протоколів, а не просто протоколами.
Сучасні операційні системи можуть одночасно підтримувати декілька протоколів, тому ви завжди можете використовувати для встановлення зв'язку протокол потрібного типу. На жаль, не всі операційні системи підтримують усі транспортні протоколи. Фактично вони "схильні" до спеціалізації, і навіть деякі протоколи з однаковими іменами неможливо використовувати на всіх платформах. Однак у даний час можливості операційних систем у достатній мері перекриваються, що допускає зв'язок і взаємодія між ними.
Використання декількох транспортних протоколів додатково завантажує оперативну пам'ять (RAM). Тому, хоча сучасні операційні системи дозволяють завантажувати кілька транспортних протоколів, рекомендуємо вибрати тільки ті, котрі дійсно необхідні.
ІІІ. Характеристика протоколу TCP/IP
Протокол TCP/IP був розроблений ARPANET (мережа перспективних досліджень і розробок) за замовленням міністерства оборони США. Призначений для з'єднання мереж з різнорідними пристроями, скажемо, систем Sun з мейнфреймами, а мейнфреймов – з персональними комп’ютерами. Кожна половина імені протоколу "TCP/IP" означає його орієнтованість на рішення власної задачі.
Строго говорячи, TCP/IP складається не з двох частин - фактично це набір з декількох протоколів. Однак абревіатури IP і TCP відомі краще усіх. Протокол TCP/IP надзвичайно складний, у ньому передбачені численні параметри конфігурації.
Протокол IP (Internet Protocol) працює на мережному рівні, надаючи різним мережам стандартний набір правил і специфікацій для міжмережевої пакетної маршрутизації за допомогою IP-адрес. Протокол IP дозволяє встановлювати зв’язок як між локальними мережами, так і між окремими комп’ютерами. З іншого боку, протокол керування передачею даних (TCP – Transmission Control Protocol), працює на транспортному рівні моделі OSI. Він забезпечує прийом мережної інформації і трансляцію її у форму, "зрозумілу" мережі, і в такий спосіб організує взаємодію процесів між двома чи комп’ютерами клієнтами. IP можна уявити собі як частину, що задає правила встановлення зв’язку, a TCP – як частина, що відповідає за інтерпретацію даних.
Ви можете самі оцінити роботу TCP/IP по тим задачам, що він вирішує. Це – транспортний протокол Internet, системи, що з'єднує тисячі окремих комп'ютерів і мереж по всій планеті. Хоча TCP/IP спочатку призначався для використання університетами й армією, він став самим популярним протоколом, тому що дозволяє з'єднувати локальні мережі, UNIX-машини, мінікомп’ютери DEC VAX, а також і безліч комп'ютерів інших типів.
Що відбувається, якщо комп'ютер який знаходиться на відстані (Makcintosh) відсилає дані на персональний комп'ютер головного офісу? По-перше, засоби протоколу TCP забезпечують встановлення зв'язку, що гарантує дуплексний контроль помилок (контроль помилок даних в обох
напрямках) між обома платформами. По-друге, IP задає правила встановлення зв'язку і забезпечує з'єднання портів комп'ютерів. До цього
часу відповідно до TCP підготовляються дані. Відповідна програма забирає їх, розділяє на менші частини, якщо їхній обсяг занадто великий, і вставляє в пакет новий заголовок ("адреса пересилки"), щоб гарантувати правильну доставку пакета. Крім того, у пакеті вказується тип даних які містяться і їхній обсяг. Потім пакет конвертується в стандартний зашифрований формат і передається на персональний комп'ютер головного офісу. Нарешті, програма, яка встановлена на персональному комп'ютері в головному офісі, транслює шифрований пакет у власний формат відповідно до TCP. Цей процес показаний на малюнку.
У багатьох мережах, розкиданих по усьому світі, протокол TCP/IP використовується як стандартний. Це – єдиний засіб комунікації, що дозволяє зв'язуватися робочим станціям усіх типів – PC, Macintosh, UNIX. Крім того, він необхідний для виходу в Internet. TCP/IP працює трошки повільніше NetBEUI, однак витрати продуктивності компенсуються широкою підтримкою протоколу. І дійсно, краще працювати трошки повільніше, але мати можливість зв'язатися з усім світом, чим швидше, але в межах невеликої робочої групи.
1. Вимоги до конфігурації TCP/IPОдин з недоліків протоколу TCP/IP складається в труднощі його встановленням недосвідченими користувачами, оскільки необхідно задати безліч адрес і серверів. При використанні NetBEUI ви вказуєте ім'я комп'ютера, а при IPX/SPX – ідентифікатор мережі (network identifier) і дозволяєте системі призначити власний ідентифікатор вузла (node identifier), ґрунтуючись на адресі апаратних засобів мережної плати комп'ютера. Однак протокол TCP/IP вимагає вказівки безлічі адрес, а саме:
• локальна IP-адреса;
• IP-адреса сервера DNS (Domain Name Service – служба імен домена), що транслює адреси які легко запам'ятовуються людиною, наприклад, computer.company.com, в IP-адресі;
• у мережах Windows NT, що використовує імена NetBIOS для ідентифікації комп'ютерів, варто вказати IP-адресу сервера WINS (Windows Internet Name Service – система присвоєння імен Internet для Windows), що транслює імена NetBIOS у IP-адреси;
• шлюз (gateway) за замовчуванням (тобто портал (головний вхід) у наступний сегмент мережі), що необхідний також і для доступу в Internet;
• число (яке називається “маскою підмережі”), що ідентифікує мережний сегмент у якому розташований даний комп'ютер;
• якщо задіяне динамічне присвоєння IP-адрес, варто вказати IP-адресу сервера, що призначає IP-адреси.
Поруч із доменним ім’ям комп’ютер повинен мати унікальний числовий номер. Цей номер однозначно ідентифікується серед всіх комп’ютерів, які входять в мережу Internet. Цей номер і називається IP-адресою.
IP-адреса має довжину 32-біта і складається з чотирьох частин по 8 біт, які називаються октетами.
Кожна частина записується у вигляді десяткових значень розділених крапками. В IP-адресі виділяються дві частини: адреса мережі та адреса хоста. В даний час існує 5 категорій IP-адреси, які визначаються на основі типу адреси-мережі. Типи мережі називаються класом мережі. Ці класи відповідно позначаються літерами: A, B, C, D, E. В адресах класу А перший октет набуває значення від 1 до 126, а мережева частота адреси складається з одного октета. Тому число мереж класу А не перевищує 126, проте кожна мережа може включати більше 16 мільйонів комп’ютерів. Мережі класу А належать великим корпораціям і мережевим провайдерам.
В мережах класу В мережева адреса визначається двома октетами. Переше значення якого знаходиться в діапазоні 128-191. В адресі хоста знаходяться два останніх октета, тому в класі В визначено 16328 мережеві адреси, а в кожній мережі може бути видано 65534 адреси хоста. Мережі класу В належать великим організаціям і університетам.
В адресах класу С адреса займає 3 октета. Перше значення знаходиться в діапазоні 192-223. Такий порядок організації адреси дозволяє організувати близько 2 мільйонів мереж, проте кожна мережа може включати не більше ніж 354 хоста. Мережі класу С належать невеликим організаціям і установам.
Адреси класу D використовуються в службових цілях в для одночасної передачі даних по багатьом адресах. Значення адреси першого октета знаходиться в межах 224-239.
В мережах класу Е перший октет набуває значення від 240-242. Не використовується, а зарезервований для використання в майбутньому. При обміні інформацією між протоколами TCP/IP використовуються тільки числові IP-адреси, а домені імена допомагають лише орієнтуватись, якій мережі належить той чи інший комп’ютер.
По суті, це програмна адреса комп'ютера, на відміну від апаратної адреси, "встроєного" в мережну плату. У двійковій форматі IP-адреса виглядає приблизно так:
11000000 01101010 01111110 11000001
У такому вигляді його нелегко зрозуміти користувачам, за винятком хіба що програмістів (і комп'ютерів). Тому, винятково для зручності, IP-адреси звичайно записують у форматі октетів, розділених крапками. У цьому форматі кожен байт із 32 бітів номера перетвориться в десяткове число.
192.106.126.193
Кожній мережній платі, що працює в мережі TCP/IP, привласнюється унікальна IP-адреса, що ідентифікує її у всій мережі, а не тільки в локальному сегменті.
Відкіля беруться ці IP-адреси? Де довідатися, які числа варто включати в них? Відповідь залежить від "області охоплення" вашої мережі. Якщо ви створюєте IP-адреси для локальної мережі TCP/IP, що ніколи не буде підключена до Internet, то можете призначати їх до деякої міри довільно (досить тільки пам'ятати, що двом мережним платам не можна призначати однакову адресу). Якщо ж ви збираєтеся підключитися до Internet, необхідно одержати унікальні IP-адреси, звернувшись у міжнародну організацію InterNIC.InterNIC - єдина організація, що уповноважена виділяти IP-адреси заінтересованим фірмам і організаціям. У перший погляд можна вважати, що вона виділяє групи IP-адрес, ґрунтуючись на розмірах організацій. З цією метою InterNIC надає організації конкретні числа для першого байта (перших двох, чи трьох байтів), а для призначення інших адрес дозволяє організації використовувати номери, що залишилися, на власний розсуд. Так, наприклад, якщо ви запросили в InterNIC набір адрес Internet, вам можуть надати набір, скажемо, 192.106.Х.Х. Це означало б, що всі ваші IP-адреси повинні починатися з префікса 192.106, але ви можете призначити номера (аж до 255) по власному бажані іншим двом октетам. Частину, призначену InterNIC, називають полем мережі адреси, а ту, що призначено вами, – полем вузла (host portion).
Останній крок адресації Internet полягає в ідентифікації не власне комп'ютера, а підмережі, тобто тієї частини мережі, до якої комп'ютер входить. Це досягається не за допомогою зовнішньої мережевої адреси, як в адресах IPX/SPX, а з масками підмережі. Маска підмережі – число, яке можна "накласти" на IP-адресу. Якщо мережна частина IP-адрес комп'ютерів збігається з нею, значить, машина знаходяться в одній підмережі. У противному випадку, дві IP-адреси відносяться до різних підмереж.
Встановити зв'язок між двома комп'ютерами однієї підмережі неважко. Пристрої передають дані (відповідно до вимог протоколу TCP/IP) за допомогою широкомовної передачі, а комп'ютер, адреса якого збігається з зазначеним у пакеті IP, приймає дані. Якщо комп'ютеру однієї підмережі необхідно зв'язатися з комп'ютером в інший, – запит повинен надійти на маршрутизатор, що з'єднує підмережі. Маршрутизатор переглядає мережну адресу місця призначення, визначає, чи знаходиться він у даній підсмережі чи ні, а потім направляє пакет у наступну підмережу. Потім цей маршрутизатор перевіряє IP-адресу місця призначення, визначає, чи знаходиться він у даній підмережі, і слідом за цим або передає повідомлення за допомогою широкомовної передачі, або знову направляє пакет в наступну підмережу. Ця процедура продовжується до виявлення потрібної підмережі.
Коли пакет надходить в місце призначення, протокол визначення адреси (ARP) перетворить IP-адресу в апаратну адресу мережної плати. Крім того, протокол ARP відповідає за трансляцію адрес вихідних даних.
2. Протокол IP версії 6
Internet втілив пророкування авторів фантастичних романів про створення світової комп'ютерної мережі. Оскільки ж ця мережа працює по протоколі TCP/IP, його зміни відповідно відбивають і потреби цієї глобальної мережі.
Наприкінці 1998 р. протокол IP – частина набору протоколів TCP/IP, що відповідає за маршрутизацію пакетів по мережі, – почали адаптувати до змін типів переданих даних і для поліпшення керування зростаючого графіка Internet. Зміни в протоколі дозволяють:
• поліпшити адресацію, що підтримує більш довші (до 128 біт) адреси, а також кластерні адреси (cluster address) чи групові адреси (anycast address), що ідентифікують групи вузлів мережі TCP/IP;
• спростити формати заголовків, що дозволяють компенсувати вплив на мережу громістких пакетів IP;
• поліпшити підтримку розширень і параметрів, включаючи пробіл для порожніх розширень з метою полегшення зміни формату пакета (якщо це знадобиться надалі);
• ввести мітки потоків, що ідентифікують потоки пакетів, що надходять з конкретного вузла;
• ввести додаткові розширення, що підвищують можливість контролю помилок і ідентифікації користувачів, а також (при необхідності) захист даних.
Підвищена гнучкість маршрутизації. Логічно IP-адреси зовсім нескладні: їхнє число не перевищує того, що можна "вижати" з 32 біт, тобто всього-на-всього 4 294 967 296 (близько 4 мільярдів), а кожен пристрій у Internet "вимагає" власної IP-адреси. Якщо взяти до уваги, що не всі адреси доступні, то це число додатково обмежується наступними причинами:
• Десяткове значення кожного октету 32-бітової адреси не перевищує 255.
• Багато адрес резервуються для цілей, відмінних від тих, для яких призначені звичайні IP-адреси. Наприклад, адреси, що починаються з 10 у першому октеті використовуються тільки локально.
• Фірмам і організаціям видають групи адрес, якими вони розпоряджаються самостійно, незалежно від того, потрібні вони їм чи ні. Наприклад, всі адреси, що починаються з 192.233.х.х належать фірмі Novell. І навіть якщо адреса 192.233.54.5 у ній не використовується, ніхто, крім Novell, не зможе їм скористатися.
Для зменшення числа необхідних IP-адрес використовувалось кілька спроб (сервери DHCP для тимчасового виділення адрес, CIDR і т.п.). Однак число користувачів Internet росте, і незабаром будуть потрібні 128-бітові адреси. 128-бітові IP-адреси необхідні точно так само, як телефонні номери з 10 цифр – більш короткі ідентифікатори вже непридатні.Для полегшення адресації пакетів групам користувачів (не обов'язково підмережам чи мережам) передбачається використання групових адрес (anycast address). Замість відсилання пакетів індивідуально кожному члену групи, ви повинні будете відсилати їхньому кластеру, що являє собою логічну, а не фізичну групу. Групові адреси (anycast addresses) замінять широкомовні адреси (broadcast address), використання яких передбачено протоколом IPv4.
Мітки потоків (Flow labelling). Подовження адрес може заподіяти незручності користувачам, якою прийдеться їх вводити, однак спростить ідентифікацію комп'ютерів Internet. Інша проблема Internet, що викликає занепокоєння, – трафік.
На початку своєї появи Internet підтримувала невеликий трафік. Велику частину даних, переданих по мережі, складали файли і повідомлення електронної пошти. Однак згодом характер трафіка змінився. Тепер він складається з підтримки груп новин і дошок оголошень, що дозволяють посилати повідомлення на загальний огляд. З'явилися кімнати для переговорів (chat rooms) і Web. Крім того, у даний час стали можливі і телефонні переговори по Internet. Завантаження даними продовжує рости, і це викликано ростом числа служб і користувачів – вони самі по собі завантажують трафік значно більше, ніж передача файлів.
Однак уявіть собі на мить, що Internet – це безліч мереж, з'єднаних маршрутизаторами. Кожен маршрутизатор відповідає за ідентифікацію найкращого шляху передачі даних до місця призначення. З цією метою він повинен ідентифікувати місце призначення кожного прийнятого пакета, тобто відкрити і досліджувати безліч пакетів. Отож, у пакеті IPv6 є поле, де можна вказати конкретний потік, до якого відноситься пакет. Ідея така: якщо маршрутизатор установить, що пакет є частиною потоку пакетів, що йдуть в те саме місце, йому фактично немає потреби визначати, де знаходиться це місце, після того, як він досліджує перший же пакет у минаючій групі (flow group). За замовчуванням маршрутизатор повинний "пам'ятати" мітку потоку протягом шести секунд, однак цей час можна збільшити вручну.
Пріоритет пакета. Іноді трафік Internet може стати настільки важким, що пакет може "загинути". Як правило, пакети відкидаються без обліку їхньої важливості. Однак пакетам IPv6 можна привласнювати пріоритети відповідно до призначення.
Значення пріоритетів розділені на два діапазони: 0 – 7 і 8 – 15. При перевантаженні мережі пакети з нижчим пріоритетом (номером) в межах даного діапазону відкидаються в першу чергу, причому кожен діапазон розглядається окремо. Іншими словами, пакет із пріоритетом 6 не обов'язково відкидається раніше пакета з пріоритетом 8, оскільки пакет із пріоритетом 6 у межах свого діапазону має вищий пріоритет.
Значення пріоритетів 0 – 7 використовують для вказівки пріоритету трафіка, для якого джерело забезпечує контроль перевантаження (congestion control), тобто трафік, що використовує протокол вищого рівня (наприклад, TCP) для відстеження здатності системи керувати потоком даних, при перевантаженні системи переривається. Нижче приведені значення пріоритетів графіка з контролем перевантаження, передбачені специфікацією IPv6.
0 – трафік без пріоритету.
1 – трафік-"заповнювач" ("Filler" traffic) (мережні новини).
2 – передача, що необслуговується, даних (електронна пошта).
4 – передача великого обсягу, що обслуговується, даних (FTP, NFS).
6 – інтерактивний трафік (telnet, протокол дисплея).
7 – керуючий трафік Internet (маршрутизуючі протоколи, SNMP).
Пріоритети 3 і 5 зарезервовані на майбутні категорії. Значення 8 – 15 використовують для вказівки пріоритету трафіка, що не переривається у відповідь на перевантаження. До нього відносяться пакети мовної і відеоінформації, що відсилаються з постійною швидкістю. Вони не відзначені в специфікації, але, як правило, більш важлива інформація (скажемо, слабко помітний голос) повинна мати пріоритет вище, ніж інформація, що при передачі мала б чудову якість, але малоістотна (скажемо, високоякісна відеоінформація).
Підтримка найбільших пакетів. Серед інших розширень (extensions), призначених для поліпшення "відгуку" IPv6 на умови роботи в Internet, можна відзначити ті, котрі дозволяють збільшити розмір пакетів IP, тобто нести більший обсяг корисних даних у порівнянні з IPv4. Це дуже корисна можливість, оскільки застосування великих пакетів дозволяє передати дані за допомогою меншого числа пакетів, що, у свою чергу, зменшує затримку при маршрутизації пакетів.
Без використання нових параметрів, таких як пріоритети і керування потоками, адресація пакетів була б значно складнішою. Якщо ж у пакеті цих установок не існує, нові можливості ігноруються. Перехід на новий протокол не відбувається автоматично.
Задача переходу від IPv4 до IPv6 аж ніяк не проста. В даний час відкрилися курси, на яких навчають рішенню цієї проблеми і, крім того, можна використовувати деякі мережні ресурси. Кращі з них знаходяться за адресою http://www.emos.be/coexist/etg071/gintrod.htmttINICIO.Не вдаючись у деталі, вкажу чотири методи переходу мережі на протокол IPv6:
• Підтримка обох протоколів.
• Включення в один пакет адрес для обох протоколів.
• Створення тунелю IPv6 за допомогою протоколу IPv4.
• Трансляція заголовків для того, щоб вузли IPv6 могли зв'язуватися з вузлами IPv4.
Якщо ж ви зважитеся пройти весь цей шлях, вам доведеться обновити всю мережу в наступному порядку.
1. Обновити сервер DNS для підтримки нових адрес.
2. Обновити вузли для підтримки як IPv4, так і IPv6.
3. Розгорнути обновлені вузли.
4. Обновити область (сегмент мережі) для повного переходу на протокол IPv6, причому обидва протоколи повинні підтримувати тільки граничні маршрутизатори..
5. Обновити маршрутизатори для повного переходу на протокол IPv6.
6. Розгорнути нові маршрутизатори.
Отже, ви обновляєте систему визначення імен, а потім, працюючи "зсередини", поширюєте IPv6 по всій мережі, причому по ходу процесу забезпечуєте сумісність протоколів.
IV. Опис програми SashaPopUp
Програма SashaPopUp була розроблена з допомогою системи програмування Delphi 5 з ціллю глибшого розуміння дії такого протокола як IP (Internet Protocol). В програмі застосований метод пошуку за допомогою IP-адресації. Застосовується технологія Сервер-Клієнт. В цілому робота базується на використанні загально визначених сокетів клієнта та сокетів сервера. Передача інформації здійснюється саме по ним. Застосовуються порти для відкриття і закриття сокетів.
Саму програму можна охарактеризувати як звичайну чат-програму подібну до програми Windows WinPopUp. Основний принцип роботи заключається в обміні інформацією між клієнтом та сервером. При чому сервер може бути лише один, а клієнтів може бути безліч. Клієнт для того щоб послати яку-небудь текстову інформацію іншому клієнту повинен послати цю інформацію на сервер, а вже потім сервер посилає цю інформацію клієнту, для якого вона призначувалась. І так відбувається завжди коли який-небудь клієнт хоче послати інформацію іншому клієнту. Для зручності клієнт і сервер обидва поміщаються в дану єдину програму. Отже, перед користувачем який працює з програмою не постає проблема про постійне підключення до сервера для того щоб зв’язатись з іншим користувачем. Зв’язуватись з сервером потрібно лише один раз.
Під час роботи програми користувачеві постійно сповіщається який статус має його програма, наприклад, про те що він підключився до сервера, або про те що підключення хибне.
Кожен користувач коли посилає повідомлення вводить своє ім’я щоб інший користувач знав з ким він розмовляє. Все відбувається як у звичайному чаті. Коли приходить повідомлення в полі Memo з’являється ім’я того хто послав це повідомлення, а вже потім після двох крапок сам текст повідомлення.
ТЕКСТ ПРОГРАМИ:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Buttons, ScktComp, StdCtrls, ComCtrls;
const maxmemolines=20;
type
TForm1 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
ClientSocket1: TClientSocket;
ServerSocket1: TServerSocket;
SpeedButton1: TSpeedButton;
StatusBar1: TStatusBar;
procedure Form1Create(Sender: TObject);
procedure ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure Form1Close(Sender: TObject; var Action: TCloseAction);
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure SpeedButton1Click(Sender: TObject);
procedure ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
procedure Memo2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
procedure ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure Memo1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
server:string;
clientname:string;
IsServer:boolean;
talk:boolean;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Form1Create(Sender: TObject);
begin
memo1.lines.clear;
memo2.lines.clear;
talk:=false;
try
serversocket1.active:=true;
clientsocket1.active:=false;
IsServer:=true;
statusbar1.panels[1].text:=' I am server ';
except
serversocket1.active:=false;
IsServer:=false;
statusbar1.panels[1].text:=' I am client ';
end;
end;
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
statusbar1.panels[2].text:=' Client connected';
if not talk then
talk:=true else begin
serversocket1.socket.connections[1].sendtext(' I am Busy ');
serversocket1.socket.connections[1].Close;
end;// socket.sendtext('Welcome to Sasha PopUp');
memo2.setfocus;
end;
procedure TForm1.Form1Close(Sender: TObject; var Action: TCloseAction);
begin
serversocket1.close;
end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
i:integer;
s:string;
begin
s:=socket.receivetext;
memo1.lines.add(s);
{ with serversocket1.socket do
for i:=1 to activeconnections do begin
if connections[i-1].handle <> socket.handle
then
connections[i-1].sendtext(s);
end;
if memo1.lines.count>maxmemolines then
memo1.lines.delete(0);}
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if clientsocket1.active then clientsocket1.active:=false;
if inputquery('Connect to server','IP address:',server)
then
begin
with clientsocket1 do
begin
IsServer:=false;
serversocket1.active:=false;
address:=server;
active:=true;
statusbar1.panels[1].text:=' I am client';
end;
memo2.lines.clear;
end;
end;
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
statusbar1.panels[2].text:=
'I connected to server';//+Socket.remotehost;
end;
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo1.lines.add(socket.receivetext);
end;
procedure TForm1.Memo2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (key=vk_return) //and (length(memo1.lines[
// memo1.lines.count-1])>0)
then begin
if (length(clientname)<=0) then begin
inputquery('Registration','Your nickname:',clientname); end;
memo1.lines.add(clientname+':'+memo2.lines[memo2.lines.count-1]);
if IsServer then
serversocket1.socket.connections[0].sendtext(clientname+': '+memo2.lines
[memo2.lines.count-1])
else
clientsocket1.socket.sendtext(clientname+': '+memo2.lines
[memo2.lines.count-1]);
memo2.lines.clear;
end;
end;
procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
memo2.lines.add('Connection to '+server+' failed');
errorcode:=0;
end;
procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
try
serversocket1.active:=true;
clientsocket1.active:=false;
IsServer:=true;
statusbar1.panels[1].text:=' I am server ';
except
serversocket1.active:=false;
IsServer:=false;
statusbar1.panels[1].text:=' I am client ';
end;
end;
procedure TForm1.Memo1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
memo2.setfocus;
end;
end.
ОСНОВНІ ПРОЦЕДУРИ:
procedure ServerSocket1ClientConnect – з’єднує клієнта з сервером і сповіщає про успіх чи провал з’єднання.
procedure ServerSocket1ClientRead – сервер-процедура, яка приймає повідомлення від клієнта і розсилає його всім підключеним до даного сервера клієнтам.
procedure ClientSocket1Connect – сповіщає клієнта про те, що він під’єднався до сервера.
procedure ClientSocket1Read – клієнт-процедура, яка отримує повідомлення від сервера.
procedure ClientSocket1Error – сповіщає клієнта про невдачу з’єднання до сервера.
procedure ClientSocket1Disconnect – процедура, яка визначає пріоритети. Якщо клієнт звертається до другого клієнта то другий клієнт за допомогою цієї процедури стає сервером. В подальшому ця процедура слідкує за тим щоб другий клієнт завжди був сервером, а перший клієнтом.
Системні вимоги: Intel 80486, OS Windows 32x, 16 Mb RAM
Висновок
Строго говорячи, TCP/IP складається не з двох частин - фактично це набір з декількох протоколів. Однак абревіатури IP і TCP відомі краще усіх. Протокол TCP/IP надзвичайно складний, у ньому передбачені численні параметри конфігурації.
Протокол Internet створений для використання в об'єднаних системах комп'ютерних комунікаційних мереж з комутацією пакетів. Такі системи були названі "catenet". Протокол Internet забезпечує передачу блоків даних, називаних датаграмами, від відправника до одержувачів, де відправники й одержувачі є хост-комп’ютерами, ідентифікованими адресами фіксованої довжини. Протокол Internet забезпечує при необхідності також фрагментацію і збір датаграм для передачі даних через мережі з малим розміром пакетів.
Отже, використання протоколу TCP/IP займає значне місце у розвитку сучасних інформаційних технологіях. Зчитування будь-якої інформації з Internet здійснюється з його допомогою. Основне призначення – забезпечення необхідної швидкості зчитування інформації. Використо-вується в дуже багатьох сучасних програмах.Протокол – це набір правил, які регламентують порядок збирання пакетів з даних і управління інформацією на роботі станції відправника для передачі і правила збирання пакетів на робочій станції отримувача. Протокол забезпечує передачу даних в мережі за рахунок того, що в ньому вказується які біти містить заголовок, які значення розміру інформації. Які містять саму інформацію, а які потрібні для контролю помилок.
В IP-адресі виділяються дві частини: адреса мережі та адреса хоста. В даний час існує 5 категорій IP-адреси, які визначаються на основі типу адреси-мережі. Типи мережі називаються класом мережі. Ці класи відповідно позначаються літерами: A, B, C, D, E. IP-адреса має довжину 32-біта і складається з чотирьох частин по 8 біт, які називаються октетами.
Література
1. Власов В.Н. Локальные сети. Полное руководство – М.: Просвещение, 1999.– 492 с
2. Волков В.П. IP-протокол. – М.: Просвещение, 1999.– 790 с
3. Паномаренко Т.Р. Локальные сети. – Сан.-Пет.: 1999.– 580 с
4. Cайт в Internet http://www-sbras.nsc.ru/win/fedotov/inter/http/http-con.html
5. Федотов А.М. Введение в Internet.