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

Article on other languages:

del.icio.us del.icio.us
Digg Digg
Furl Furl
Reddit Reddit
Rojo Rojo
Add to OnlyWire
П'ять рівнів моделі 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

This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.


Giant Panda

Mercedes Car
James Bond Guide
This site monitored by SitePinger.net