протоколи tcp
Протоколи Інтернет - ТСР / IP.
Вузли (відділення) не мають прямих зв'язків з усіма іншими, просто місцеве поштове відділення відправляє послання на підстанцію в потрібному напрямку, та в свою чергу, далі в напрямку пункту призначення, на наступну підстанцію; таким чином лист (пакет) послідовно наближається до пункту призначення, поки не досягне поштового відділення (вузла), у віданні якого знаходиться потрібний об'єкт і яке доставить повідомлення одержувачеві.
Сучасні мережі побудовані по багаторівневому принципі. Щоб організувати зв'язок комп'ютерів, потрібно спочатку створити звід правил їх взаємодії, визначити мову спілкування, тобто визначити, що означають їх посилають сигнали і т.д. Ці правила і визначення називаються протоколом. Для роботи мереж необхідно запастися безліччю різних протоколів. наприклад, керуючих фізичної зв'язком, встановленням зв'язку по мережі, доступом до ресурсів і т.д. Загальноприйнята багаторівнева структура, відома як "еталонна модель ISO OSI '' і спроектована з метою спростити й упорядкувати цю безліч протоколів і відносин.
По ряду причин (особливо, - практичних, через обмеження обладнання) інформація, що пересилається по мережі IP, ділиться на частини (по межах байтів), що розкладаються в окремі пакети. Довжина інформації усередині пакета зазвичай складає від 1 до 1500 байт. Це захищає мережу від захоплення яким-небудь одним користувачем і надає всім приблизно рівні права. Тому. якщо мережа недостатньо швидка, чим більше користувачів її одночасно використовує, тим повільніше вона спілкуватиметься з кожним.
Одна з переваг Internet полягає в тому, що протоколу IP самого по собі вже цілком достатньо для роботи (в принципі). Це незручно, але можливо. Як тільки дані містяться в оболонку IP, мережа має всю необхідну інформацію для передачі їх з вихідного комп'ютера одержувачеві. Однак більша частина інформації, що пересилається більше 1500 байт, крім того можливі й втрати при передачі. Таким чином, наступний рівень протоколів Internet повинен забезпечити спосіб пересилання великих масивів інформації і подбати про помилки, які можуть виникати з вини мережі.
Протоколи управління передачею (TCP).
T ransmission C ontrol P rotocol - це протокол. тісно пов'язаний з IP, який займається проблемою пересилання великих обсягів інформації, грунтуючись на можливостях протоколу IP. Часто ці протоколи. через їхній тісний зв'язок, іменують разом, як TCP / IP. Термін "TCP / IP '' зазвичай означає все, що пов'язано з протоколами TCP і IP. Він охоплює ціле сімейство протоколів. Прикладні програми і навіть саму мережу. До складу сімейства входять протоколи TCP, UDP, ICMP, telnet. FTP і багато інших. ієрархія протоколів сімейства TCP / IP показана на малюнку.
Фактично TCP / IP - це технологія міжмережевої взаємодії, тобто технологія Internet. І мережу, яка використовує цю технологію, називають Internet ..
TCP поділяє інформацію, яку треба переслати, на кілька частин. Нумерує кожну частину, щоб пізніше відновити порядок. Щоб пересилати цю нумерацію разом з даними, він обкладає кожен шматочок інформації своєю обкладинкою - конвертом, який містить відповідну інформацію. Це і є TCP-конверт. Одержаний TCP-пакет поміщається в окремий IP-конверт і виходить IP-пакет. з яким мережа уже вміє поводитися.
Одержувач (TCP -модуль (процес)) після отримання розпаковує IP-конверти і бачить TCP-конверти, розпаковує і їх і поміщає дані в послідовність частин у відповідне місце. Якщо чогось не дістає, він вимагає переслати цей шматочок знову. Зрештою інформація збирається в потрібному порядку і повністю відновлюється. Ось тепер цей масив пересилається вище до користувача (на диск, на екран, на друк).
Насправді, це злегка перебільшений погляд на TCP. В реальності пакети не тільки губляться, але і можуть спотворюватися при передачі через наявність перешкод на лініях зв'язку. TCP вирішує і цю проблему. Для цього він користується системою кодів, що виправляють помилки. Найпростішим прикладом такого служить код з додаванням до кожного пакету контрольної суми (і до кожного байту біта перевірки на парність). При приміщенні в TCP-конверт обчислюється контрольна сума, яка записується в TCP-заголовок. Якщо при прийомі заново обчислена сума не збігається з тією, що вказана на конверті, значить щось тут не те і десь в дорозі сталася помилка, так що треба переслати цей пакет по-новій, що і робиться.
Для ясності і повноти картини, необхідно зробити тут важливе зауваження. Модуль TCP розбиває потік байтів на пакети. без збереження при цьому меж між записами. Тобто якщо один прикладний процес робить 3 записи в порт. то зовсім не обов'язково, що інший прикладний процес на іншому кінці віртуального каналу отримає зі свого порту саме 3 записи, причому саме таких (по розподіленню), що були передані з іншого кінця. Вся інформація буде отримана справно і зі збереженням порядку передачі, але вона може вже бути розбита по іншому і на іншу кількість частин. Не існує залежності між числом і розміром записуваних повідомлень з одного боку і числом і розміром зчитувальних повідомлень з іншого боку. TCP вимагає, щоб всі відправлені дані були підтверджені прийняла їх стороною. Він використовує очікування (тайм-аути) і повторні передачі для забезпечення надійної доставки. Відправнику дозволяється передавати деяку кількість даних, не чекаючи підтвердження прийому раніше відправлених даних. Таким чином, між відправленими і підтвердженими даними існує вікно вже відправлених, але ще не підтверджених даних. Кількість байт, яке можна передавати без підтвердження, називається розміром вікна. Як правило, розмір вікна встановлюється в стартових файлах мережного програмного забезпечення. Так як по TCP-канали. дані можуть одночасно передаватися в обох напрямках, то підтвердження для даних, що йдуть в одному напрямку, можуть передаватися разом з даними, що йдуть в протилежному напрямку. Приймачі на обох сторонах віртуального каналу виконують управління потоком переданих даних для того, щоб не допускати переповнення буферів.
Таким чином, протокол TCP забезпечує гарантовану доставку з встановленням логічного з'єднання у вигляді байтових потоків. Він звільняє прикладні процеси від необхідності використовувати очікування і повторні передачі для забезпечення надійності. Найбільш типовими прикладними процесами, що використовують TCP, є www, ftp і telnet.
Великі можливості TCP даються не безкоштовно, реалізація TCP вимагає швидкого процесора і великої пропускної здатності мережі. Коли прикладний процес починає використовувати TCP, то починають спілкуватися модуль TCP на машині користувача та модуль на машині сервера. Ці два кінцевих модуля TCP підтримують інформацію про стан з'єднання - віртуального каналу. Цей віртуальний канал споживає ресурси обох кінцевих модулів TCP. Канал цей є дуплексним. Один прикладний процес пише дані в TCP-порт. звідки вони модулями відповідних рівнів по ланцюжку передаються по мережі і видаються в TCP-порт на іншому кінці каналу, і інший прикладний процес Новомосковскет їх звідси - зі свого TCP-порту. емулює (створює видимість) виділену лінію зв'язку двох користувачів. Гарантує незмінність переданої інформації. Що входить на одному кінці, вийде з іншого. Хоча насправді ніяка пряма лінія відправникові й одержувачеві в безроздільне володіння не виділяється (інші користувачі можуть використовувати ті ж вузли і канали зв'язку в мережі в проміжках між пакетами цих), але ззовні це, практично, саме так і виглядає.
Протокол призначених для користувача дейтаграм (UDP).
Є інший стандартний протокол транспортного рівня, який не обтяжений такими накладними витратами. Цей протокол називається UDP - U ser D atagram P rotocol - протокол призначених для користувача дейтаграм. Він використовується замість TCP. Тут дані містяться не в TCP, а в UDP-конверт, який також міститься в IP-конверт. Цей протокол реалізує дейтаграм ний спосіб передачі даних.
Дейтаграмма - це пакет. переданий через мережу незалежно від інших пакетів без встановлення логічного з'єднання і підтвердження прийому. Дейтаграмма - абсолютно самостійний пакет. оскільки сама містить всю необхідну для її передачі інформацію. Її передача відбувається без будь-якого попереджання і підготовки. Дейтаграми. самі по собі, не містять засобів виявлення та виправлення помилок передачі, тому при передачі даних з їх допомогою слід вживати заходів щодо забезпечення надійності пересилки інформації. Методи організації надійності можуть бути самими різними, звичайно ж використовується метод підтвердження прийому посилкою луна-відгуку при отриманні кожного пакета з дейтаграмою.
Альтернатива TCP-UDP дозволяє програмісту гнучко і раціонально використовувати надані ресурси. виходячи зі своїх можливостей і потреб. Якщо потрібна надійна доставка, то краще використовувати TCP. Якщо потрібна ефективність на швидких мережах з короткими сполуками, то - UDP. Прикладні програми, звичайно, можуть усувати деякі недоліки обраного протоколу. Наприклад, якщо ви вибрали UDP, а вам необхідна надійність, то прикладна програма повинна забезпечити надійність сама, як описано вище: вимагати підтвердження, пересилання загублених або калік пакетів і т.д. Якщо ви вибрали TCP, а вам потрібно передавати записи, то прикладна програма повинна вставляти мітки в потік байтів так, щоб можна було розрізнити записи.