Протокол керування передачею

Матеріал з Вікіпедії — вільної енциклопедії.

Перейти до: навігація, пошук
П'ять рівнів моделі 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.

[ред.] Посилання

[ред.] Література

  • Douglas E. Comer. Internetworking with TCP/IP, Vol. 1: Principles, Protocols and Architecture
  • російський переклад: Дуглас Камер. Сети TCP/IP, том 1. Принципы, протоколы и структура. М. «Вильямс» 2003, ISBN 0-13-018380-6,

http://www.williamspublishing.com/Books/5-8459-0419-6.html

Особисті інструменти