Протокол керування передачею
Матеріал з Вікіпедії — вільної енциклопедії.
| П'ять рівнів моделі TCP/IP |
| 5. Прикладний рівень |
|
DHCP · DNS · FTP · Gopher · HTTP · IMAP4 · IRC · NNTP · XMPP · POP3 · RTP · SIP · SMTP · SNMP · SSH · TELNET · RPC · RTCP · RTSP · TLS (також SSL) · SDP · SOAP · GTP · STUN · NTP · (інші) |
| 4. Транспортний рівень |
| TCP · UDP · DCCP · SCTP · RSVP · (інші) |
| 3. Мережевий рівень |
| IP (IPv4 · IPv6) · OSPF · IS-IS · BGP · IPsec · ARP · RARP · RIP · IGMP · ICMP · ICMPv6 · (інші) |
| 2. Канальний рівень |
| 802.11 (WLAN) · 802.16 · Wi-Fi · WiMAX · ATM · DTM · Token ring · Ethernet · FDDI · Frame Relay · GPRS · EVDO · HSPA · HDLC · PPP · PPTP · L2TP · ISDN · ARCnet · (інші) |
| 1. Фізичний рівень |
| Ethernet physical layer · Модеми · PLC · SONET/SDH · G.709 · Optical fiber · Коаксіальний кабель · Подвійна пара · (інші) |
Прото́кол керува́ння переда́чею (Transmission Control Protocol, TCP) — один з основних мережевих протоколів Інтернету, призначений для управління передачею даних в мережах і підмережах TCP/IP.
Інформацію, яку потрібно передати, TCP розбиває на порції-сегменти. Кожна порція нумерується, щоб можна було перевірити, чи вся інформація отримана, і розташувати інформацію в правильному порядку. Для передачі цього порядкового номера по мережі у протоколу є свій власний сегмент даних, в якому зокрема написана службова необхідна інформація. Порція ваших даних розміщується в сегмент TCP. Сегмент TCP в свою чергу розміщується в сегменті IP і передається в мережу.
На приймаючій стороні програмне забезпечення протоколу TCP збирає сегменти, витягує з них дані і розташовує їх в правильному порядку. Коли якихось сегментів немає, програма просить відправника передати їх ще раз. Після розміщення всієї інформації в правильному порядку ці дані передаються тій програмі, яка використовує послуги TCP.
В реальній ситуації пакети не тільки загублюються, але й отримують зміни у зв'язку з короткочасними неполадками в лінії передачі. TCP вирішує і цю проблему. При розміщенні даних виробляється так звана контрольна сума. Контрольна сума — це число, яке дозволяє приймаючому TCP виявити помилки в пакеті. Коли пакет прибуває в пункт призначення, приймаючий TCP обраховує контрольну суму і порівнює її з тою, яку послав відправник TCP. Якщо значення не співпадають, то при передачі виникла помилка. Приймаючий TCP відкидає цей пакет і просить повторну передачу.
Зміст |
[ред.] Формат TCP-сегменту
| Біт | 0 - 3 | 4 - 7 | 8 - 15 | 16 - 31 | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Порт джерела | Порт призначення | ||||||||||||||||||||||||||||||
| 32 | Номер послідовності | |||||||||||||||||||||||||||||||
| 64 | Номер підтвердження | |||||||||||||||||||||||||||||||
| 96 | Зсув даних | Зарезервовано | Прапорці | Вікно | ||||||||||||||||||||||||||||
| 128 | Контрольна сума | Вказівник важливості | ||||||||||||||||||||||||||||||
| 160 | Опції (необов'язково) | |||||||||||||||||||||||||||||||
| 160/192+ | Дані |
|||||||||||||||||||||||||||||||
[ред.] Порт джерела
Порт джерела ідентифікує порт, з якого відправлений пакет.
[ред.] Порт призначення
Порт призначення ідентифікує порт, на який відправлений пакет
[ред.] Номер послідовності
Номер послідовності виконує два завдання:
- Якщо встановлений прапор SYN, то це початкове значення номера послідовності і перший байт даних - це номер послідовності плюс 1.
- Інакше, якщо SYN не встановлений, перший байт даних - номер послідовності
[ред.] Номер підтвердження
Якщо встановлений прапор ACK, то це поле містить номер послідовності, очікуваний відправником наступного разу. Позначає цей пакет як підтвердження отримання.
[ред.] Зсув даних
Це поле визначає розмір заголовка пакету TCP в 32-бітових словах. Мінімальний розмір складає 5 слів, а максимальний - 15, що складає 20 і 60 байт відповідно. Зсув рахується від початку заголовка TCP.
[ред.] Зарезервовано
4 біта зарезервовано для майбутнього використання і повинні встановлюватися в нуль.
[ред.] Прапорці (керівники биті)
Це поле містить 8 бітових прапорців:
- CWR - Поле з man tcpdump (8) 18 April 2005 Linux 2.6.20-15-server
- ECE - Поле з man tcpdump (8) 18 April 2005 Linux 2.6.20-15-server
- URG - Поле Покажчик важливості значущо (англ. Urgent pointer field is significant)
- ACK - Поле Номер підтвердження значущо (англ. Acknowledgement field is significant)
- PSH - (англ. Push function)
- RST - Обірвати з'єднання, скинути буфер (очищення буфера) (англ. Reset the connection)
- SYN - Синхронізація номерів послідовності (англ. Synchronize sequence numbers)
- FIN (англ. final) - прапорець, якщо встановлений, указує на завершення з'єднання (англ. FIN bit used for connection termination).
[ред.] Контрольна сума
Поле контрольної суми - це 16-бітове доповнення суми всіх 16-бітових слів заголовка і тексту. Якщо сегмент містить непарне число октетів в заголовку /або тексті, останні октети доповнюються справа 8 нулями для вирівнювання по 16-бітовій межі. Біти заповнення (0) не передаються в сегменті і служать тільки для розрахунку контрольної суми. При розрахунку контрольної суми значення самого поля контрольної суми приймається рівним 0.
[ред.] Покажчик важливості
16-бітове значення позитивного зсуву від порядкового номера в даному сегменті. Це поле вказує порядковий номер октету, з якого починаються важливі (urgent) дані. Поле береться до уваги тільки для пакетів зі встановленим прапором U.
[ред.] Посилання
- RFC 793 — Transmission Control Protocol
- Специфікація протоколу TCP(рос.)
[ред.] Література
- Douglas E. Comer. Internetworking with TCP/IP, Vol. 1: Principles, Protocols and Architecture
- російський переклад: Дуглас Камер. Сети TCP/IP, том 1. Принципы, протоколы и структура. М. «Вильямс» 2003, ISBN 0-13-018380-6,

