- •Модель osi і набір протоколів Інтернету (Internet.)
- •Мережений рівень керування протоколами іРv4 і іРv6
- •Модель протоколу тср/ір
- •Відмінності оsi і сімейства протоколів тср/ip
- •Огляд протоколів tcp ip
- •Передача udp .Ідентифікація кінцевого споживача.
- •Протокол передачі датаграм користувача udp.
- •Формат udp-повідомлення.
- •Псевдозаголовок користувацьких датаграм
- •Інкапсуляція і розділення на рівні.
- •Мультиплексування та демультиплексування udp-датаграм за допомогою портів.
- •Зарезервовані і вільні номери портів udp.
- •Надійна потокова транспортна служба tcp
- •Встановлення і завершення з’єднання tcp.
- •Параметри тср
- •Розрив з’єднання тср
- •Діаграма станів тср
- •Перегляд пакетів
- •Стан time_wait
- •Порти тср
- •Файли – сокети
- •Номер портів тср і паралельні сервери
- •Розміри буфера і його обмеження
- •Зміни, що відбудуться при переході від iPv4 до iPv6
- •Відправка по udp
- •Інтерфейс сокета
- •Створення сокету
- •Ф-ція Connect
- •Ф-ція Bind
- •Очікування з’єднання listen
- •Отримання з’єднання accept
- •Інша інформація Дескриптор файлу
- •11.1 Понятие Сокета
- •11.4 Именное пространство Файла
- •11.4.1 Понятия Именного пространства Файла
- •11.4.2 Подробности Именного пространства Файла
- •11.5 Именное пространство Internet
Надійна потокова транспортна служба tcp
TCP-протокол управління передачею. TCP забезпечує встановлення з’єднання між клієнтами і серверами. Клієнт встановлює з’єднання з сервером, обмінюється з ним даними, і розриває його.
TCP забезпечує надійність. Коли TCP відправляє дані на другий кінець зв’язку, він вимагає, щоб при їх отриманні було вислано підтвердження. Якщо його нема, TCP автоматично передає дані повторно і збільшує час очікування на підтвердження.
Сумарний час відправки займає від 4-10 хв. TCP містить алгоритми, які дозволяють динамічно прогнозувати час і період звернення (RTT) між клієнтом і сервером, і в тому числі вказати, скільки треба часу для підтвердження.
В певний момент часу TCP може отримати значення RTT між клієнтом і сервером =1с., а потім через 30 с. змінити RTT і отримати значення 2-3 с., що пояснюється відмінностями мережевого трафіка. TCP упорядковує дані, зв’язуючи даний порядковий номер з кожним відправленим байтом.
Сегмент – це блок даних, що передається протоколом TCP до протоколу IP. Якщо який-небудь сегмент приходить поза чергою, приймальний TCP заново впорядковує сегменти, базуючись на їх порядкових номерах, перед тим як відправити дані прикладній програмі.
Якщо TCP отримує продубльовані дані, він може виявити цю ситуацію по порядкових номерах, і ці дані будуть проігноровані.
TCP забезпечує управління потоком (flow control). TCP повідомляє партнеру, скільки байтів він хоче отримати від нього – оголошення вікна. Вікно відповідає вільному місцю в приймальному буфері. Таким чином гарантується, що відправник не переповнить буфер отримувача. Вікно може змінюватись динамічно з впливом часу. Вікно може стати нульовим, якщо приймальні буфери TCP для даного сокета заповнені.
З’єднання TCP є двостороннім (full duplex) – аплікація відправляє і приймає дані в обох напрямках в любий момент часу. TCP повинен відслідковувати порядкові номери і розміри вікна для кожного напрямку потоку даних.
Встановлення і завершення з’єднання tcp.
При встановленні з’єднання TCP дії відбуваються в наступній послідовності:
1) сервер повинен бути підготовлений для того щоб прийняти з’єднання, переважно це досягається шляхом виклику функцій socket, bind, listen, і називається пасивним відкриттям.
2) клієнт виконує активне відкриття, викликаючи функцію connect. Це заставляє клієнта TCP послати сегмент SYN. Для того щоб повідомити серверу початковий порядковий номер даних, в який клієнт буде посилати для з’єднання. З сегментом SYN не посилаються дані. Він містить заголовок IP, заголовок TCP і певні параметри TCP.
3) сервер повинен підтвердити отримання клієнтського сегмента SYN, а також сервер повинен послати власний сегмент SYN, що містить початковий порядковий номер для даних, які сервер буде посилати по з’єднанню. Сервер посилає SYN i ASK – підтвердження прийому клієнтського SYN у вигляді клієнтського сегменту.
4) клієнт повинен підтвердити SYN від себе.
j – початковий порядковий номер клієнта
k – початковий порядковий номер сервера
Номер підтвердження в ASK – це наступний порядковий номер, який передбачається на тому кінці зв’язку, який відправив сегмент SYN. Так як SYN займає 1 байт простору порядкових номерів, номер підтвердження в сегменті ASK кожного сегмента SYN – це початковий порядковий номер, збільшений на 1.