|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Лекція №10. Протокол транспортного рівня
Протокол TCP (стандартизований RFC 793). Протокол забезпечує надійне передавання пакетів, які називають сегментами, у вигляді байтових потоків зі встановленням логічного з'єднання. Протокол TCP діє між прикладними процесами та протоколом IP мережного рівня. Пакети, що надходять на транспортний рівень від прикладних процесів, за допомогою операційної системи утворюють велику кількість черг, які мають точку входу до транспортного рівня. Ці черги з точками входу називають портами прикладних процесів. Порт разом з номером мережі і номером вузла визначає прикладний процес у мережі. Такий набір параметрів має назву сокет (socket). Визначенням портів прикладних процесів займається організація IANA (Internet Assigned Numbers Authority). Наприклад, порт 27 закріплено за службою електронної пошти (smtp), а 23 - за службою віддаленого доступу (telnet). Протокол TCP здійснює підтримку двох черг для кожного порту: черги пакетів, які надходять від мережі, та чергу пакетів, що надходять від прикладних процесів у мережу. Обслуговання запитів від прикладних процесів називають мультиплексуванням даних, а зворотну процедуру, тобто надходження пакетів від мережного рівня та їх розподіл між прикладними - процесами демультиплексуванням даних. Порт у протоколі TCP відіграє роль адреси. Сегмент TCP складається із заголовка та поля даних. Формат заголовка сегмента показано на рис. 6.4.4. • Зміщення даних - чотирибітове поле, що містить довжину заголовка TCP сегмента, тобто вказує на початок поля даних. • Резерв - це поле довжиною 6 біт, заповнюється нулями і призначене для подальшого розширення протоколу. • Контрольні біти - поле довжиною 6 біт і, якщо кожний біт встановлений в 1, то вони мають такі значення: • біт - URG - сегмент, що містить важливі дані; • біт - ACK - сегмент, що містить правильні дані; • біт - PSH - включена функція, яка дозволяє швидко передати сегмент порту, якому він адресований, а також вказує на те, що попередні сегменти досягли адресата; • біт - RST - вказівка на переустановлення логічного з'єднання, або відповідь на неправильно переданий сегмент; • біт - SYN - вказує на те, що сегмент є запит на встановлення логічного з'єднання; • біт - FIN - вказує на те, що даних для передавання немає і сегмент є запит на закриття логічного з'єднання. • Розмір вікна. Це 2 байтове поле, що вказує кількість байтів, які готовий прийняти одержувач інформації. За допомогою вікна реалізується функція управління потоком даних. Чим більше вікно, тим більше даних можна передати в мережу, а якщо значення поля 0, то передавання даних зупиняється. Таким чином, змінюючи розмір вікна, можна впливати на завантаження мережі. • Контрольна сума. Поле довжиною 2 байти, що містить контрольну суму по полях заголовка сегмента, включаючи і так званий псевдо- заголовок. Псевдозаголовок має такі поля заголовка IP-пакета: адреси джерел і приймача, поле протокол та поле довжини IP-пакета. Додання псевдозаголовка дозволяє захистити TCP сегмент від помилкової інформації, що може бути передана за допомогою ІР-пакета. • Покажчик важливості. 2-байтове поле, яке містить значення, що вказує зміщення відносно номера байта в черзі, тобто вказує номер байта, що йде за важливими даними. Починаючи з цього моменту байти даних мають загальний статус. Поле використовується разом з бітом URG. Процедурні характеристики протоколу TCP. Встановлення та закриття з 'єднання. Для цієї процедури послідовність дій така: • прикладний процес, що має дані для передавання, надсилає протоколу TCP запит на відкриття порту для передавання; • після відкриття порту робоча станція, на якій виконується прикладний процес, за допомогою TCP надсилає запит (зі встановленим бітом SYN і початковим значенням номера у послідовності даних) на робочу станцію, з якою встановлюється з'єднання; • приймальна станція відкриває порт прикладного процесу для приймання даних і відсилає квитанцію, яка підтверджує прийом запиту (поле «Номер підтвердження» на одиницю більше ніж початковий номер у послідовності для передавання зі встановленим бітом АСК); • приймальна станція також відкриває свій порт для передавання і відсилає запит на передавання станції, яка ініціювала процес (встановлений біт SYN та початковий номер у своїй послідовності даних); • станція - ініціатор приймає запит, відкриває свій порт для приймання даних та повертає квитанцію. Після цього етапу логічне з'єднання вважається встановленим і дозволяється обмін інформацією між прикладними процесами. \ Процедура «ковзного вікна» (sliding window) - дозволяє виконувати управління потоком даних та полягає в тому, що кожна сторона, яка бере участь у сеансі обміну інформацією, може надіслати стільки байтів, скільки зазначено в полі «Розмір вікна» без їх підтвердження. Тобто, вікно яке передається з кожним сегментом визначає діапазон номерів черги, які готові прийняти відправник вікна. Цей механізм пов'язаний з наявністю місця у буферній пам'яті. Надійність передавання забезпечується підтвердженнями (надісланням квитанції) та нумерацією сегментів у черзі. Номер сегмента в черзі передається разом з сегментом. Сегменти також включають у себе номер підтвердження, який є номером для наступного сегмента. Якщо TCP передає сегмент з даними, то його копія розміщується в черзі повторної передавання, при цьому включається таймер. Якщо підтвердження прийшло для вже переданих даних, то цей сегмент виключається з черги повторної передачі. У випадку коли підтвердження не надійшло до закінчення строку, який задається таймером, сегмент надсилають повторно. Такий механізм значно підвищує надійність передавання даних в мережі. Механізм таймерів. Якщо сегмент приймається з помилками (неправильна контрольна сума) чи не приймається зовсім, то в цих ситуаціях біт ACK не формується і не відсилається. В цих випадках потрібне повторне передавання. Для прийняття рішення, коли слід здійснювати повторне передавання сегмента вводять поняття таймера, який відноситься до кожного сегмента, що передається. Якщо час таймера закінчився до одержання біта АСК, то відправник сегмента повторює передавання. Час таймера вибирають трохи більшим, ніж час проходження сегмента до одержувача, та одержання підтвердження від нього. Цей час називають RTT (Round Trip Time). Є два способи задавання таймера повторного передавання: • фіксований. У даному випадку використовують фіксоване значення таймера, яке визначається за статистичними даними, що характеризують нормальну роботу розподіленої мережі. Такий метод не дозволяє швидко реагувати на зміни, які можуть виникнути в мережі; • адаптований. Коли протокол TCP постійно відстежує час одержання підтвердження на сегмент, що відіслав та встановлює своє значення таймера. Процедура визначення таймера в цьому випадку достатньо складна і описана у документі RFC 793.
Мінімальна довжина заголовка 20 байтів. Поля заголовка сегмента мають такі призначення: • Порт відправника та порт одержувача довжиною 16 байт кожний. • Номер у послідовності даних довжиною 32 біти, який визначає порядковий номер першого байта даних користувача. • Номер підтвердження довжиною 32 байти. Поле, де вказується номер підтвердження на відправлений сегмент з даними, який очікує відправник. Протокол TCP постійно удосконалюється. Так, він дороблений для використання у ATM технології, а також модернізований та адаптований для використання в мережах швидкості передавання інформації, в яких складає Терабіт/с. Протокол UDP (стандартизований RFC 768). Це датаграмний протокол транспортного рівня, що не встановлює логічного з'єднання та не гарантує надійного передавання даних (можлива втрата пакетів, відсутні механізми повідомлення відправника про правильність чи хибність його прийому з боку одержувача). Довжина заголовка UDP-пакета складає 8 байтів, що значно менше ніж заголовок TCP-сегмента. До заголовка відносяться поля порту відправника та порту одержувача (по 2 байти), поле довжини повідомлення (2 байти) та контрольна сума (2 байти). Контрольна сума має структуру таку саму, як і TCP сегмент (обчислюється по полях заголовка UDP-пакета та полях псевдозаголов- ка). Робота UDP-протоколу після отримання датаграми від мережного рівня (IP-протоколу) полягає в тому, що в першу чергу перевіряється контрольна сума заголовка. Якщо вона не вірна, то пакет знищується. В іншому випадку відбувається аналіз порту в датаграмі і вона направляється в чергу цього порту. Якщо черга порту переповнена, то UDP-протокол знищує датаграму. Протокол UDP-обслуговує прикладні процеси, які не чутливі до втрат інформації. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |