TCP (Transmission Control Protocol) — це протокол передачі, який забезпечує впорядковану та безпечну передачу даних. Він надсилає та отримує пакети даних у тому самому порядку. TCP - це a чотиришаровий протокол у порівнянні з OSI (модель взаємозв’язку відкритої системи), яка є a семишаровий процес передачі. Рекомендується передавати дані з протоколів високого рівня через їх цілісність і безпеку між сервером і клієнтом.
TCP потребує 4-стороннього рукостискання для завершення. Щоб встановити з’єднання, TCP потребує тристороннього рукостискання. Отже, тут ми обговоримо детальний процес створення TCP 3-стороннє рукостискання для підключення та a 4-стороннє рукостискання для його завершення . Тут ми обговоримо наступне:
Що таке TCP?
Рівні TCP
отримати довжину масиву в c
Підключення TCP (тристороннє рукостискання)
Термінація TCP (4-стороннє рукостискання)
Давайте розпочнемо.
Що таке TCP?
TCP є протоколом, орієнтованим на з’єднання, що означає, що він спочатку встановлює з’єднання між відправником і одержувачем у формі рукостискання . Після перевірки обох з’єднань він починає передачу пакетів. Це робить процес передачі безпомилковим і забезпечує доставку даних. Це важлива частина комунікаційних протоколів, які використовуються для з’єднання мережевих пристроїв в Інтернеті. Вся система Інтернету спирається на цю мережу.
TCP є одним із найпоширеніших протоколів, які забезпечують кінець в кінець доставка. Це гарантує безпеку та цілісність даних, що передаються. Він завжди встановлює безпечне з’єднання між відправником і одержувачем. Передавач є сервер , а приймач відомий як клієнт . Можна також сказати, що передача даних відбувається між сервером і клієнтом. Таким чином, TCP використовується в більшості протоколів високого рівня, таких як FTP (Протокол передачі файлів) , HTTP (Протокол передачі гіпертексту) , і SMTP (Простий протокол передачі Mai) .
Рівні TCP
Потім дані поділяються на пакети, призначаються адреси, передаються, маршрутизуються та отримуються в пункті призначення. Процес передачі складається з чотирьох рівнів: прикладного рівня, транспортного рівня, Інтернет-рівня та рівня каналу передачі даних. The прикладний рівень виконує функції, подібні до трьох верхніх рівнів (додаток, презентація та сеанс) у Модель OSI і контролювати характеристики інтерфейсу користувача. Користувач взаємодіє з прикладним рівнем моделі TCP, таким як системи обміну повідомленнями та електронної пошти. The транспортний шар забезпечує надійне та безпомилкове з’єднання для передачі даних. Він розділяє дані, отримані від прикладного рівня, на пакети, що допомагає створити впорядковану послідовність. The інтернет-шар контролює маршрутизацію пакетів і забезпечує доставку пакета в пункт призначення. Канальний рівень виконує функції, подібні до двох нижніх рівнів (канального та фізичного) моделі OSI. Він відповідає за передачу даних між програмами або пристроями в мережі.
Перш ніж перейти до завершення TCP, важливо зрозуміти концепцію TCP-з'єднання. Це допоможе нам краще зрозуміти процес розірвання.
Підключення TCP (тристороннє рукостискання)
Рукостискання відноситься до процесу встановлення з'єднання між клієнтом і сервером. Рукостискання просто визначається як процес встановлення зв’язку. Щоб передати пакет, TCP потребує тристороннього рукостискання, перш ніж розпочне надсилання даних. Надійний зв'язок у TCP називається як ПРО (Повторна передача позитивного підтвердження). Коли відправник надсилає дані одержувачу, це вимагає позитивного підтвердження від одержувача, що підтверджує надходження даних. Якщо підтвердження не надійшло до відправника, йому необхідно повторно надіслати ці дані. Позитивне підтвердження від одержувача встановлює успішне з’єднання.
Тут сервер є сервером, а клієнт є одержувачем. На діаграмі вище показано 3 кроки для успішного підключення. Тристороннє рукостискання широко відоме як SYN-SYN-ACK і вимагає відповіді як клієнта, так і сервера для обміну даними. SYN означає синхронізувати порядковий номер і ACK означає підтвердження . Кожен крок є типом рукостискання між відправником і одержувачем.
java listnode
Нижче наведено діаграму успішного TCP-з’єднання, що показує три рукостискання:
Три рукостискання обговорюються в наступних кроках:
програмування на коболі
Крок 1: SYN
SYN — це сегмент, надісланий клієнтом на сервер. Він діє як a запит на підключення між клієнтом і сервером. Він інформує сервер про те, що клієнт хоче встановити з'єднання. Синхронізація порядкових номерів також допомагає синхронізувати порядкові номери, надіслані між будь-якими двома пристроями, де той самий сегмент SYN запитує порядковий номер із запитом на з’єднання.
Крок 2: SYN-ACK
Це сегмент SYN-ACK або сегмент SYN + ACK, надісланий сервером. Сегмент ACK інформує клієнта про те, що сервер отримав запит на з’єднання та готовий до встановлення з’єднання. Сегмент SYN повідомляє порядковий номер, з яким сервер готовий почати роботу з сегментами.
Крок 3: ACK
ACK (підтвердження) — це останній крок перед встановленням успішного TCP-з’єднання між клієнтом і сервером. Сегмент ACK надсилається клієнтом як відповідь на отриманий ACK і SN від сервера. Це призводить до встановлення надійного з’єднання даних.
Після цих трьох кроків клієнт і сервер готові до процесу передачі даних. TCP-з’єднання та завершення є повнодуплексними, що означає, що дані можуть переміщатися в обох напрямках одночасно.
Термінація TCP (4-стороннє рукостискання)
Будь-який пристрій встановлює з’єднання перед тим, як продовжити завершення. TCP вимагає тристороннього рукостискання для встановлення з’єднання між клієнтом і сервером перед надсиланням даних. Так само, щоб завершити або зупинити передачу даних, потрібне 4-стороннє рукостискання. Сегменти, необхідні для завершення TCP, подібні до сегментів для побудови TCP-з'єднання (ACK і SYN), за винятком сегмента FIN. Сегмент FIN визначає запит на завершення, надісланий одним пристроєм іншому.
Клієнт є передавачем даних, а сервер є одержувачем у процесі передачі даних між відправником і одержувачем. Розглянемо наведену нижче схему завершення TCP, яка показує обмін сегментами між клієнтом і сервером.
Нижче наведено діаграму успішного завершення TCP, що показує чотири рукостискання:
Давайте обговоримо процес завершення TCP за допомогою шести кроків, які включають надіслані запити та стани очікування. Кроки такі:
Крок 1: FIN
FIN відноситься до запит на припинення надісланий клієнтом на сервер. Перший запит на завершення FIN надсилається клієнтом на сервер. Він зображує початок процесу завершення між клієнтом і сервером.
Крок 2: FIN_ACK_WAIT
Клієнт очікує ACK запиту на завершення FIN від сервера. Це стан очікування для клієнта.
Крок 3: ACK
Сервер надсилає сегмент ACK (Acknowledgement), коли отримує запит на завершення FIN. Він показує, що сервер готовий закрити та припинити з’єднання.
python зменшити
Крок 4: FIN _WAIT_2
Клієнт чекає сегмент FIN від сервера. Це тип схваленого сигналу, надісланого сервером, який показує, що сервер готовий припинити з’єднання.
Крок 5: FIN
Тепер сегмент FIN надсилається сервером клієнту. Це сигнал підтвердження, який сервер надсилає клієнту. Він відображає успішне схвалення припинення.
Крок 6: ACK
Тепер клієнт надсилає серверу сегмент ACK (підтвердження) про те, що він отримав сигнал FIN, який є сигналом від сервера для припинення з’єднання. Як тільки сервер отримує сегмент ACK, він припиняє з'єднання.