Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Порти, з’єднання і кінцеві точки.Содержание книги
Поиск на нашем сайте
Як і UDP, протокол TCP застосовує поняття номера протокольного порта для ідентифікації остаточного призначення в машині. Порту відповідає мале ціле число, яке ідентифікує його. Однак, фундаментальною абстракцією для TCP є з’єднання (connection), а не порт; з’єднання ідентифікується парою кінцевих точок. TCP визначає кінцеву точку (endpoint) як пару цілих < вузол, порт >, де вузол є IP-адреса вузла і порт - TCP-порт цього вузла. Наприклад, кінцева точка <128.10.2.3,25> визначає порт 25 на машині з IP-адресою 128.10.2.3. З’єднання може бути виражене як <18.26.0.36, 1069>&<128.10.2.3,25>. Зауважимо, що даний номер TCP-порта може бути розділений серед багатьох з’єднпнь на тій самій машині, бо з’єднання в TCP ідентифікується парою кінцевих точок. Пасивні та активні відкриття. Оскільки TCP є протоколом, орієнтованим на з’єднання, то прикладна програма на обидвох кінцевих точках з’єднання мусить узгодити, що з’єднання є бажане. На одному кінці з’єднання прикладна програма здійсює функцію пасивного відкриття, контактуючи з операційною системою та відзначаючи, чи вона може погодитися на майбутнє з’єднання. При цьому операційна система виділяє номер TCP-порта для кінцевої точки. Прикладна програма на другому кінці здійснює запит активного відкриття для встановлення з’єднання. Ці два програмні модулі TCP повинні скомунікуватися, щоб встановити і перевірити з’єднання.
Сегменти, потоки і номери послідовностей. TCP розглядає потік даних як послідовність октетів (байтів), які для передачі поділені на сегменти. Звичайно один сегмент передається однією данограмою. TCP застосовує спеціалізований механізм ковзного вікна для вирішення двох важливих задач: ефективність передавання (описано вище) та управління потоком. Управління потоком дозволяє обмежити передавання, доки не буде достатньо місця в буфері для нагромадження більшої кількості даних.
Механізм ковзного вікна TCP оперує рівнем октетів, а не сегментів чи пакетів. Октети потоку даних пронумеровані послідовно і передавач утримує три показники, асоційовані з деяким з’єднанням (див. рис. 3.87). На рисунку зображений приклад ковзного вікна. Октети до 2 передані і підтверджені; октети від 3 до 6 передані, але не підтверджені; октети від 7 до 9 не передані, але можуть бути передані без затримки; октети від 10 і вище не можуть бути передані, доки вікно не переміститься. Змінний розмір вікна і управління потоком. Одна різниця між протоколом ковзного вікна TCP/IP та простим протоколом ковзного вікна, описаним вище, полягає в тому, що TCP дозволяє змінювани розмір вікна в часі. Кожне підтвердження, яке визначає, скільки октетів буде передано, містить оголошення вікна (window advertisement), яке визначає, скільки додаткових октетів даних приймач підготований прийняти. Можна розглядати оголошення вікна як визначення поточного розміру буфера. Відповідно до збільшення оголошеного розміру вікна передавач збільшує розмір свого ковзного вікна і приступає до передачі октетів, які не були підтверджені. У відповідь на зменшення оголошеного розміру вікна передавач зменшує розмір свого вікна і зупиняє передачу октетів поза границями вікна. Перевагою використання змінного розміру вікна є те, що воно передбачає здійснення управління потоком. Якщо буфер приймача стає заповненим настільки, що не може сприйняти більше пакетів, то він висилає оголошення меншого вікна. В екстремальному випадку приймач оголошує розмір вікна, рівний ную, і тим зупиняє передачу. Пізніше, коли місце у буфері з’явилося, приймач оголошує ненульовий розмір вікна і знову вмикає потік даних. Наявність механізму управління потоком є важливе в internet-оточенні, оскільки комп’ютери з різними швидкостями і розмрами зв’язуються між собою через мережі і раутери з різними швидкостями і ємностями. При цьому існує дві проблеми: · internet-протоколи потребують наскрізного управління потоком між джерелом і призначенням; · internet-протоколи потребують механізму управління потоком, який дозволяє проміжним системам (напр., раутерам) управляти джерелом, яке висилає більший трафік, ніж ця проміжна система може допустити. Коли проміжна машина перевантажена, то ця проблема називається переповнення (congestion) і механізм, який дозволяє вирішити проблему, відомий як управління переповненням. TCP/IP не має чіткого механізму управління переповненням. Формат сегменту TCP. Одиниця передавання між програмним забезпеченням TCP на двох машинах називається сегментом. Сегментами обмінюються для встановлення з’єднання, для передавання даних, для пересилання підтвердження, для оголошення розміру вікна і для закриття зв’язку. Обмін сегментами TCP відбувається шляхом їх інкапсуляції в IP-данограму (рис. 3.88). Оскільки переміщення підтвердження від станції A до станції B може здійснюватися в тому самому сегменті, що й передавання даних від машини A до машини B, то підтверджнення відноситься до даних, переданих від B до A. Подальший рис. 3.89 показує формат TCP-сегменту. Рис. 3.89. Формат TCP-сегменту. Будь-який сегмент ділиться на дві частини: заголовок і дані. TCP-заголовок переносить інформацію, потрібну для ідентифікації та управління. Звичайно розмір TCP-заголовку становить 20 байтів (при відсутності опцій). В TCP-сегменті як опції так і дані можуть бути відсутні. Значення полів в TCP заголовку:
Поля Порт джерела та Порт призначення містять номери портів TCP, які ідентифікують прикладну програму і кінцеву точку з’єднання. Поле Номер послідовності ідентифікує позицію даних сегменту в потоці байтів передавача. Поле Номер підтвердження ідентифікує номер октету, який джерело визначило для наступної передачі. Зауважимо, що номер послідовності відноситься до потоку, який переміщається в тому ж напрямку, що й сегмент, тоді як номер підтвердження відноситься до потоку, який передається в протилежному напрямку, ніж сегмент. Поле HLEN містить ціле число, яке визначає довжину заголовка сегменту в одиницях, кратних 32 бітам. Це потрібно, окільки довжина поля ОПЦІЇ змінюється в залежності від того, які опції включаються в сегмент. Деякі сегменти передають тільки підтвердження, тоді як інші передають дані. Інші передають запити для встановлення з’єднання або для його припинення. Програмне забезпечення TCP використовує 6-бітова поле КОД для визначення мети і змісту сегменту: Поле ВІКНО визначає розмір буфера в байтах (октетах). Хоч TCP є протоколом, орієнтованим на потік даних, часом необхідно терміново подати сигнал про закінчення зв’язку. Для цього дані можуть бути означені як термінові, і приймач може відзначити їх прибуття незалежно від їх позиції в потоці. TCP на приймальній стороні відзначає, яка прикладна програма є віжповідальна за з’єднання в “терміновому режимі”.Після того, як всі термінові дані використані, TCP втановлює прикладну програму до нармального функціонування. Механізм, який використовує позначку термінових даних, складається з біта URG і поля Показник терміновості. Коли біт URG встановлений в 1, показник визначає позицію в сегменті, де закінчуються термінові дані. Не всі сегменти протягом з’єднання мають однакову довжину. Програмне забезпечення TCP використовує поле ОПЦІЇ; одна з них визначає максимальний розмір сегменту (maximum segment size - MSS). q Опція максимальний розмір сегменту для приймання (maximum receive segment size). Ця опція використовується, коли відкривається сполучення. Вона потрібна для інформування віддаленого кінця сполучення про максимальний розмір сегменту в октетах, бажаний для приймання у сполученні TCP. Цяопця вживається тільки у посатковому пакеті SYN, який відкриває сполучення TCP. Він встановлює як максимальний розмір сегменту для приймання, так і максимальний розмір оголошеного вікна TCP, пересланого до віддаленого кінця сполучення. У деяких стійких (robust) впровадженнях TCP ця опція може бути використана разом з дослідженням значення MTU шляху для встановлення розміру сегменту, який може пересилатися через сполучення без фрагментації, що є суттєвою властивістю потоку даних з високими характеристиками. q Опція масштабування вікна (window scale). Ця опція призначена для вирішення проблеми максимального розміру вікна для шляху, який виявляє високу затримку. Опція дозволяє зсувати вправо оголошення розміру вікна на визначену величину (у двійковій арифметиці зсув вправо на один розряд відповідає множенню на 2). Без цієї опції максимальний розмір вікна, який може бути оголошений, становить 65535 байтів (максимальне можливе значення для 16-бітового поля). Обмеження швидкості пересилання для TCP здійснюється фіксацією розміру одного вікна для пересилання між надавачем і приймачем. Для високошвидкісний мереж з великою затримкою (наприклад, при використанні сателітарного каналу) це обмеження є вагомим фактором, бо воно обмежує швидкість пересилання до 65535 байтів на інтервал часу обігу петлі незалежно від перепускної здатності мережі. Використання опції масштабування вікна дозволяє надавачу TCP ефективно пристосовуватися до широкосмугових шляхів з високою затримкою, дозволяючи помістити більше даних до отримання підтвердження. Максимальний розмір вікна з цією опцією становить 230 байтів. Опція узгоджується при старті сполучення TCP і може бути вислана у пакеті тільки з прапорцем SYN. Слід відзначити, що доки процес дослідження MTU дозволяє оптимальне встановлення опції максимальний розмір сегменту для приймання, доти відповідне дослідження затримки не дозволяє надійного автоматичного встановлення опції масштабування вікна. q Опція дозволене селективне підтвердження і селективне підтвердження (SACK-permitted and SACK). SACK – це абревіатура від selective acknowledgment (селективне підтвердження). Ця опція змінює поведінку для підтверджень TCP. Опція дозволене селективне підтвердження пропонується для віддаленого кінця сполучення при встановленні сполучення TCP як опція для пакету SYN, який відкриває сполучення. Опція селективне підтвердження (SACK) дозволяє селективне підтвердження дозволених даних. Поведінка підтверджень TCP за замовчуванням полягає у підтвердженні найбільшого номера байту у вхідній послідовності. Ця поведінка за замовчуванням може спричинити непотрібне повторне пересилання, яке може загострити умови перевантаження і обумовити втрату оригінальних пакетів. Опція SACK дозволяє приймачу модифікувати поле підтвердження для опису непослідовних блоків прийнятих даних, так що надавач може повторно переслати тільки ті блоки, які відсутні на приймальному кінці. Будь яке стійке впровадження TCP з високими характеристиками повинне узгоджувати ці параметри при старті сесії TCP, досягаючи при цьому того, що: q сесія використовує максимально можливий розмір IP-пакету без фрагментування при транспортуванні; q розміри вікна, використані при транспортуванні, адекватні затримці на шляху; q селективне підтвердження може бути використане для швидкого коригування виникнення помилок в лінії або при короткочасному погіршенні характеристик мережі.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-08-01; просмотров: 260; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.214.16 (0.008 с.) |