Tcp соединение что это

TCP протокол — что это такое, понятным языком

Каждый из нас знает, что по интернету можно передавать различные данные: голосовые сообщения, видео, документы, различные файлы и многое другое, но не все знают, как же это происходит.

А происходит это все посредством особого набора/стеку правил — TCP/IP, благодаря которому и работает интернет. Он включает в себя протоколы, каждый из которых ответственен за определенную функцию в сети.

Tcp соединение что это. tcp protokol. Tcp соединение что это фото. Tcp соединение что это-tcp protokol. картинка Tcp соединение что это. картинка tcp protokol

Прошлый материал был, как раз посвящен TCP IP, сегодня же мы разберем за что отвечает протокол TCP и что это вообще такое.

TCP протокол

TCP — это транспортный протокол, является частью стека протоколов TCP IP, он выполняет функции управления передачей данных и следит за их сохранностью, считается надежным. Расшифровывается как Transmission Control Protocol (протокол управления передачей).

Tcp соединение что это. tcp protokol 1. Tcp соединение что это фото. Tcp соединение что это-tcp protokol 1. картинка Tcp соединение что это. картинка tcp protokol 1

Это стандарт, который определяет как нужно устанавливать связь и поддерживать ее, чтобы две программы могли обмениваться данными между собой.

Интересно! Существует еще один транспортный протокол UDP, о нем мы поговорим в следующей отдельной статье, там же и разберем, чем они вообще отличаются друг от друга.

Является именно надежным протоколом так как:

1. Использует логическое соединение, благодаря чему обеспечивается надежная доставка данных.
2. Пронумеровывает передаваемые пакеты данных и проверяет их доставку, принимающая сторона высылает подтверждение о получении, в случае потери каких-либо пакетов создается повторная передача.
3. Делит передаваемые данные на части — пакеты данных, затем передает их нижнему уровню, и собирает их, когда они приходят к получателю.
4. Проверяет контрольную сумму передаваемых пакетов, если она отличается — создается новая отправка.
5. Проверяет пакеты на дубликаты, в случае обнаружения таковых — уничтожает.
6. Контролирует скорость передачи.

Заголовок TCP протокола

Весит 20 байт, если нет дополнительных опций, вот как он выглядит:

Tcp соединение что это. tcp protokol 2. Tcp соединение что это фото. Tcp соединение что это-tcp protokol 2. картинка Tcp соединение что это. картинка tcp protokol 2

У каждого TCP сегмента указывается порт источника и назначения, с помощью которых происходит идентификация отправляющего и принимающего приложения. Эти порты вместе с IP адресами уникально идентифицируют каждое соединение. Комбинация IP и порта — это сокет (socket).

Номер последовательности — нумерация каждого отправляемого байта в потоке передаваемых данных. А номер подтверждения — это следующий номер байта после полученного, который ждет получатель. Т.е. передача идет последовательно, например, получатель получил 100-ый байт, следующим ждет 101.

Остальные значения можно понять из самой картинки. Разве, что размер окна — он скользящий, т.е. зависит от качества сети. Если много данных теряется он может уменьшаться и наоборот. Он регулирует количество передаваемых байтов.

А флаги: URG, ACK, PSH и т.д. — описывают дополнительные значения сегмента, так, например, флаг FIN применяется для завершения соединения.

Также, вам может быть интересна статья о том, что такое dns сервер. В ней очень подробно и интересно описано об этой глобальной системе.

Как работает TCP соединение

Соединение отправителя и получателя (два узла) происходит так:

1. Отправитель отсылает получателю специальный пакет, именуемый SYN, т.е. пригашает к соединению
2. Получатель отвечает уже пакетом SYN-ACK, т.е. соглашается
3. Отправитель отсылает спец. пакет ACK, т.е. подтверждает, что согласие получено

Tcp соединение что это. tcp protokol 3. Tcp соединение что это фото. Tcp соединение что это-tcp protokol 3. картинка Tcp соединение что это. картинка tcp protokol 3

На этом TCP-соединение успешно установлено и получатель с отправителем могут спокойно обмениваться информацией. При передаче все пакеты данных нумеруются, отсылаются подтверждения о получении каждого из них, а потерянные пересылаются заново.

TCP порты

На каждом компьютере установлено, как минимум несколько программ. И сразу несколько из них могут обмениваться информацией, как же их различать? Именно для этого и были придуманы TCP порты, это по сути уникальный идентификатор соединения между двумя программами.

Номер порта — это число от 0 до 65535 в 16 битном формате, оно указывает какому именно приложению предназначается определенный пакет данных. Т.е. позволяет различным программам, работающим на одном компьютере, независимо друг от друга отправлять и получать информацию.

Есть целый ряд уже зарезервированных портов, которые являются стандартом:

Tcp соединение что это. tcp protokol 4. Tcp соединение что это фото. Tcp соединение что это-tcp protokol 4. картинка Tcp соединение что это. картинка tcp protokol 4

Также, стоит отметить, что порты данного протокола никак не пересекаются с такими же, но у UDP. Так, например, порт: 1234 не пересечется с таким же, но у UDP.

В заключение

Вот вы и узнали, что это такое, постарался написать, как можно более понятно, без лишних терминов. Главное знать, как это работает и серфинг в интернете станет еще куда интереснее.

Источник

Протокол TCP

TCP или Transmission Control Protocol, используется как надежный протокол, обеспечивающий взаимодействие через взаимосвязанную сеть компьютеров. TCP проверяет, что данные доставляются по назначению и правильно.

— это ориентированный на соединения протокол, предназначенный для обеспечения надежной передачи данных между процессами, выполняемыми или на одном и том же компьютере или на разных компьютерах. Термин «ориентированный на соединения» означает, что два процесса или приложения прежде чем обмениваться какими-либо данными должны установить TCP-соединение. В этом TCP отличается от протокола UDP, являющегося протоколом «без организации соединения», позволяющим выполнять широковещательную передачу данных неопределенному числу клиентов.

Когда приложение отправляет данные, используя TCP, они перемещаются вниз по стеку протоколов. Данные проходят по всем уровням и в конце концов передаются через сеть как поток битов. Каждый уровень в наборе протоколов TCP/IP добавляет к данным некоторую информацию в форме заголовков.

Когда пакет прибывает на конечный узел в сети, он снова проходит через все уровни снизу доверху. Каждый уровень проверяет данные, отделяя от пакета свою информацию в заголовке и наконец данные достигают серверного приложения в той же самой форме, в какой они покинули приложение-клиент:

Tcp соединение что это. img90102. Tcp соединение что это фото. Tcp соединение что это-img90102. картинка Tcp соединение что это. картинка img90102

Прежде чем рассматривать, как TCP устанавливает соединение с другим хостом TCP, приведем несколько терминов, которые необходимо определить:

Сегмент

Порция данных, которую TCP отправляет IP, называется сегментом TCP.

Дейтаграмма

Порция данных, которую IP отправляет уровню сетевого интерфейса, называется дейтаграммой IP.

Порядковый номер

Каждый сегмент TCP, отправленный через соединение, имеет назначенное ему число, которое называется «порядковым номером» (sequence number). Оно используется, чтобы гарантировать прибытие данных в правильном порядке.

Чтобы понять, как работает TCP, вкратце рассмотрим структуру заголовка TCP:

Tcp соединение что это. img90103. Tcp соединение что это фото. Tcp соединение что это-img90103. картинка Tcp соединение что это. картинка img90103

Порядковые номера и номера подтверждений используются TCP, чтобы гарантировать, что все данные прибывают в правильном порядке, а биты управления содержат разнообразные флаги, указывающие статус данных. Таких битов управления (обычно представляемых трехбуквенными сокращениями) всего шесть:

URG — указывает, что сегмент содержит срочные данные.

ACK — указывает, что сегмент содержит номер подтверждения.

PSH — указывает, что данные нужно протолкнуть к получающему пользователю.

RST — сбрасывает соединение.

SYN — используется для синхронизации порядковых номеров.

FIN — указывает конец данных.

Для установления соединения TCP использует процесс, называемый «трехфазным квитированием» (Three-Phase Handshake). Как следует из названия, этот процесс включает три шага:

Клиент инициирует взаимодействие с сервером, посылая сегмент с установленным битом SYN. Этот сегмент содержит начальный порядковый номер клиента.

Сервер отвечает отправкой сегмента с установленными битами SYN и ACK. Этот сегмент содержит начальный порядковый номер сервера (не связанный с порядковым номером клиента) и номер подтверждения, на единицу больший порядкового номера клиента (т.е. равный следующему порядковому номеру, ожидаемому от клиента).

Клиент должен подтвердить этот сегмент отправкой обратно сегмента с установленным битом ACK. Номер подтверждения будет на единицу больше порядкового номера сервера, а порядковый номер будет равен номеру подтверждения сервера (т. е. на единицу больше начального порядкового номера клиента).

Теперь, узнав в общих чертах, как TCP устанавливает соединения, рассмотрим немного подробнее несколько операций TCP, чтобы понять, как TCP передает данные.

TCP использует порядковые номера, чтобы гарантировать, что дублирующие данные получающему приложению переданы не будут и данные будут доставлены в правильном порядке. Заголовок TCP содержит контрольную сумму, чтобы гарантировать корректность данных при доставке. Если получен сегмент с неверной контрольной суммой, он просто отбрасывается, и подтверждение не отправляется. Это означает, что, когда значение тайм-аута истечет, отправитель повторит передачу сегмента.

TCP управляет объемом направляемых ему данных, возвращая с каждым подтверждением «размер окна». «Окно» — это объем данных, который может принять получатель. Между прикладной программой и потоком данных в сети располагается буфер данных. «Размер окна» фактически представляет собой разность между размером буфера и объемом сохраненных в нем данных. Это число отправляется в заголовке, чтобы информировать удаленный хост о текущем размере окна. Такой прием называется «скользящим окном» («Sliding Window»).

На рисунке ниже показан алгоритм Sliding Window, управляющий потоком данных, передаваемых в сети:

Tcp соединение что это. img90104. Tcp соединение что это фото. Tcp соединение что это-img90104. картинка Tcp соединение что это. картинка img90104

Полученные данные сохраняются в этом буфере, и приложение может обращаться к буферу и считывать из него данные со свойственной ему скоростью. По мере того как приложение считывает данные, буфер опустошается и может принимать следующие данные, поступающие из сети.

Если приложение считывает данные из буфера слишком медленно, размер окна падает до нуля, и удаленный хост получает команду прекратить передачу данных. Как только локальное приложение обработает данные в буфере, размер окна возрастает и поступление данных из сета возобновляется. Если размер окна больше размера пакета, отправитель знает, что получатель может хранить одновременно несколько пакетов, что повышает производительность.

TCP дает возможность нескольким процессам на одной машине одновременно использовать сокет TCP. Сокет TCP состоит из адреса хоста и уникального номера порта, а TCP-соединение включает два сокета на разных концах сети. Порт может использоваться для нескольких соединений одновременно — один сокет на одном конце может использоваться для нескольких соединений с разными сокетами на другом конце. Примером этой ситуации служит Web-cepвep, слушающий порт 80 и отвечающий на запросы от нескольких компьютеров.

Источник

Протокол TCP

Tcp соединение что это. 17975. Tcp соединение что это фото. Tcp соединение что это-17975. картинка Tcp соединение что это. картинка 17975

Что такое протокол TCP?

В отличие от протокола UDP гарантирует целостность передаваемых данных и подтверждения отправителя о результатах передачи. Используется при передаче файлов, где потеря одного пакета может привести к искажению всего файла.

TCP обеспечивает свою надежность благодаря следующему:

Заголовок TCP

Tcp соединение что это. TCP in IP. Tcp соединение что это фото. Tcp соединение что это-TCP in IP. картинка Tcp соединение что это. картинка TCP in IP

Tcp соединение что это. TCP title. Tcp соединение что это фото. Tcp соединение что это-TCP title. картинка Tcp соединение что это. картинка TCP title

Рассмотрим структуру заголовка TCP с помощью сетевого анализатора Wireshark:

Tcp соединение что это. TCP sniffer. Tcp соединение что это фото. Tcp соединение что это-TCP sniffer. картинка Tcp соединение что это. картинка TCP sniffer

TCP порты

Так как на одном и том же компьютере могут быть запущены несколько программ, то для доставки TCP-пакета конкретной программе, используется уникальный идентификатор каждой программы или номер порта.

Номер порта — это условное 16-битное число от 1 до 65535, указывающее, какой программе предназначается пакет.

TCP порты используют определенный порт программы для доставки данных, передаваемых с помощью протокола управления передачей (TCP). TCP порты являются более сложными и работают иначе, чем порты UDP. В то время как порт UDP работает как одиночная очередь сообщений и как точка входа для UDP-соединения, окончательной точкой входа для всех соединений TCP является уникальное соединение. Каждое соединение TCP однозначно идентифицируется двумя точками входа.

Каждый отдельный порт сервера TCP может предложить общий доступ к нескольким соединениям, потому что все TCP соединения идентифицируются двумя значениями: IP-адресом и TCP портом (сокет).

Номера портов UDP и TCP не пересекаются.

TCP программы используют зарезервированные или хорошо известные номера портов, как показано на следующем рисунке.

Tcp соединение что это. port TCP. Tcp соединение что это фото. Tcp соединение что это-port TCP. картинка Tcp соединение что это. картинка port TCP

Установление соединения TCP

Давайте теперь посмотрим, как устанавливается TCP-соединения. Предположим, что процесс, работающий на одном хосте, хочет установить соединение с другим процессом на другом хосте. Напомним, что хост, который инициирует соединение называется «клиентом», в то время как другой узел называется «сервером».

Перед началом передачи каких-либо данных, согласно протоколу TCP, стороны должны установить соединение. Соединение устанавливается в три этапа (процесс «трёхкратного рукопожатия» TCP).

Tcp соединение что это. three handshake. Tcp соединение что это фото. Tcp соединение что это-three handshake. картинка Tcp соединение что это. картинка three handshake

После установления соединения TCP, эти два хоста могут передавать данные друг другу, так как TCP-соединение является полнодуплексным, они могут передавать данные одновременно.

Источник

Sysadminium

База знаний системного администратора

Транспортный протокол TCP

Протокол TCP является одним из важнейших протоколов связи в компьютерных сетях. В этой статье познакомимся с ним поближе.

Что такое транспортные протоколы

Транспортные протоколы (TCP и UDP) используются для передачи информации. Информация передаётся маленькими частями – сетевыми пакетами. То есть поток информации разбивается на много маленьких пакетов.

Каждый пакет состоит из заголовка и самих данных. Заголовок содержит служебную информацию, например порт источника и назначения.

Особенности TCP

Главной особенностью TCP (Transmission Control Protocol) является то, что он гарантирует доставку всех отправленных пакетов. При этом проверяется целостность пакетов и их порядок. Если пакет потерялся или испортился, то получатель запросит эти пакеты у отправителя снова. Если пакеты пришли не в том порядке, то они на принимающей стороне всё равно обработаются в правильном. Этот механизм контроля доставки накладывает дополнительную нагрузку в виде увеличения служебной информации, которую нужно передать вместе с полезными данными.

TCP делит поток информации на сегменты. В одном сегменте может быть несколько пакетов. Каждый сегмент проверяется на целостность, и если все хорошо, отправляется подтверждение передающей стороне. Таким образом подтверждается не каждый пакет, а каждый сегмент, но в сегменте может оказаться и всего лишь один пакет.

Поверх протокола TCP работают многие прикладные протоколы:

TCP пакеты передаются не просто так, а в рамках установленного соединения – которое называют TCP сессией.

Подключение можно выполнить только если вторая сторона прослушивает порт, к которому будет выполняться подключение.

Алгоритм работы TCP

Алгоритм работы TCP следующий:

При открытии даже одной веб странички создаются несколько TCP соединений для:

И для каждого такого соединения вначале устанавливается сеанс, что замедляет передачу данных.

Заголовок TCP пакета

Заголовок TCP пакета состоит из следующих полей:

Флаги в заголовке TCP

Создание TCP сессии

Для установления соединения использует трехкратное рукопожатие.

Tcp соединение что это. image 4. Tcp соединение что это фото. Tcp соединение что это-image 4. картинка Tcp соединение что это. картинка image 4

Первый этап. Клиент отправляет на сервер пакет с флагом SYN. При этом клиент устанавливает порядковый номер сегмента на случайное значение A.

Второй этап. В ответ сервер отвечает пакетом с флагами SYN и ACK. Номер подтверждения установлен на единицу больше принятого (A+1). Поскольку сервер также будет отправлять данные, то для себя он тоже выбирает номер первого пакета, который будет другим случайным числом B.

Третий этап. Клиент отправляет ACK на сервер. Порядковый номер устанавливается равным A+1, а номер подтверждения устанавливается на B+1.

На этом этапе клиент и сервер получили подтверждение соединения и образовали двухстороннюю связь.

Передача данных в TCP

Теперь разберём пример передачи данных в уже установленном сеансе.

Tcp соединение что это. image 5. Tcp соединение что это фото. Tcp соединение что это-image 5. картинка Tcp соединение что это. картинка image 5

Клиент отравляет запрос к серверу. Поскольку данные поместились в один пакет TCP, он получил флаг PSH, чтобы сервер не ждал продолжение получения данных. При этом пакет получил 2 флага: ACK (подтвердил предыдущею передачу пакетов от сервера) и PSH.

В ответ на это сервер отправляет пакет ACK с номером успешно полученных данных.

Далее сервер обработал запрос и отправляет данные клиенту. Эти данные делятся на пакеты и отправляются сегментами.

Далее клиент подтверждает, что данные получены отправляя пакеты с флагом ACK.

Завершение сеанса TCP

Завершение сеанса использует четырёхкратное рукопожатие, причём каждая сторона завершает своё соединение независимо.

Tcp соединение что это. image 6. Tcp соединение что это фото. Tcp соединение что это-image 6. картинка Tcp соединение что это. картинка image 6

Когда одна из сторон хочет остановить свою половину соединения, она передаёт пакет FIN, который другая сторона подтверждает пакетом с ACK.

После того, как сторона, отправившая первый FIN, ответила с последним ACK, она ожидает некоторое время прежде чем окончательно закрыть соединение. В течение этого времени локальный порт недоступен для новых соединений.

Соединение может быть «полуоткрытым», и в этом случае одна сторона завершила свою часть, а другая — нет. Завершившая сторона больше не может отправлять какие-либо данные, но другая сторона может. Завершающая сторона должна продолжить чтение данных, пока другая сторона также не завершит свою работу.

Также возможно разорвать соединение трёхкратным рукопожатием, когда первая сторона отправляет FIN, а вторая отвечает FIN и ACK (просто объединяет 2 шага в один). Дальше первая сторона подтверждает завершение сеанса с помощью ACK.

Состояния сеанса TCP

Сеанс TCP может находится в следующих состояниях:

Вот мы и познакомились с одним из самых важных протоколов сети Интернет. Разобрались с его особенностями, алгоритмом работы. Узнали про сеансы TCP, пакеты и сегменты.

Источник

Что такое TCP/IP и как работает этот протокол

Tcp соединение что это. 0d3a62f309bba54d5de3341fb30a0bfb. Tcp соединение что это фото. Tcp соединение что это-0d3a62f309bba54d5de3341fb30a0bfb. картинка Tcp соединение что это. картинка 0d3a62f309bba54d5de3341fb30a0bfb

Протокол TCP/IP – это целая сетевая модель, описывающая способ передачи данных в цифровом виде. На правилах, включенных в нее, базируется работа интернета и локальных сетей независимо от их назначения и структуры.

Что такое TCP/IP

Произошло наименование протокола от сокращения двух английских понятий – Transmission Control Protocol и Internet Protocol. Набор правил, входящий в него, позволяет обрабатывать как сквозную передачу данных, так и другие детали этого механизма. Сюда входит формирование пакетов, способ их отправки, получения, маршрутизации, распаковки для передачи программному обеспечению.

Tcp соединение что это. b86b77733fe77c77d2ec802863a52d93cedbfe5e. Tcp соединение что это фото. Tcp соединение что это-b86b77733fe77c77d2ec802863a52d93cedbfe5e. картинка Tcp соединение что это. картинка b86b77733fe77c77d2ec802863a52d93cedbfe5e

Стек протоколов TCP/IP был создан в 1972 году на базе NCP (Network Control Protocol), в январе 1983 года он стал официальным стандартом для всего интернета. Техническая спецификация уровней взаимодействия описана в документе RFC 1122.

В составе стека есть и другие известные протоколы передачи данных – UDP, FTP, ICMP, IGMP, SMTP. Они представляют собой частные случаи применения технологии: например, у SMTP единственное предназначение заключается в отправке электронных писем.

Уровни модели TCP/IP

Протокол TCP/IP основан на OSI и так же, как предшественник, имеет несколько уровней, которые и составляют его архитектуру. Всего выделяют 4 уровня – канальный (интерфейсный), межсетевой, транспортный и прикладной.

Tcp соединение что это. 8ecffc89c6fedc8f38c0f14e89c3c934754e6e5d. Tcp соединение что это фото. Tcp соединение что это-8ecffc89c6fedc8f38c0f14e89c3c934754e6e5d. картинка Tcp соединение что это. картинка 8ecffc89c6fedc8f38c0f14e89c3c934754e6e5d

Канальный (сетевой интерфейс)

Аппаратный уровень обеспечивает взаимодействие сетевого оборудования Ethernet и Wi-Fi. Он соответствует физическому из предыдущего стандарта OSI. Здесь задача состоит в кодировании информации, ее делению на пакеты и отправке по нужному каналу. Также измеряются параметры сигнала вроде задержки ответа и расстояния между хостами.

Межсетевой (Internet Layer)

Интернет состоит из множества локальных сетей, объединенных между собой как раз за счет протокола связи TCP/IP. Межсетевой уровень регламентирует взаимодействие между отдельными подсетями. Маршрутизация осуществляется путем обращения к определенному IP-адресу с использованием маски.

Если хосты находятся в одной подсети, маркируемой одной маской, данные передаются напрямую. В противном случае информация «путешествует» по целой цепочке промежуточных звеньев, пока не достигнет нужной точки. Назначение IP-адреса проводится по стандарту IPv4 или IPv6 (они не совместимы между собой).

Транспортный уровень (Transport Layer)

Следующий уровень отвечает за контроль доставки, чтобы не возникало дублей пакетов данных. В случае обнаружения потерь или ошибок информация запрашивается повторно. Такой подход дает возможность полностью автоматизировать процессы независимо от скорости и качества связи между отдельными участками интернета или внутри конкретной подсети.

Протокол TCP отличается большей достоверностью передачи данных по сравнению с тем же UDP, который подходит только для передачи потокового видео и игровой графики. Там некритичны потери части пакетов, чего нельзя сказать о копировании программных файлов и документов. На этом уровне данные не интерпретируются.

Прикладной уровень (Application Layer)

Здесь объединены 3 уровня модели OSI – сеансовый, представления и прикладной. На него ложатся задачи по поддержанию сеанса связи, преобразованию данных, взаимодействию с пользователем и сетью. На этом уровне применяются стандарты интерфейса API, позволяющего передавать команды на выполнение определенных задач.

Возможно и использование «производных» протоколов. Например, для открытия сайтов используется HTTPS, при отправке электронной почты – SMTP, для назначения IP-адресов – DHCP. Такой подход упрощает программирование, снижает нагрузку на сеть, увеличивает скорость обработки команд и передачи данных.

Порты и сокеты – что это и зачем они нужны

Процессы, работающие на прикладном уровне, «общаются» с транспортным, но они видны ему как «черные ящики» с зашифрованной информацией. Зато он понимает, на какой IP-адрес адресованы данные и через какой порт надо их принимать. Этого достаточно для точного распределения пакетов по сети независимо от месторасположения хостов. Порты с 0 до 1023 зарезервированы операционными системами, остальные, в диапазоне от 1024 до 49151, условно свободны и могут использоваться сторонними приложениями.

Комбинация IP-адреса и порта называется сокетом и используется при идентификации компьютера. Если первый критерий уникален для каждого хоста, второй обычно фиксирован для определенного типа приложений. Так, получение электронной почты проходит через 110 порт, передача данных по протоколу FTP – по 21, открытие сайтов – по 80.

Преобразование IP-адресов в символьные адреса

Технология активно используется для назначения буквенно-цифровых названий веб-ресурсов. При вводе домена в адресной строке браузера сначала происходит обращение к специальному серверу DNS. Он всегда прослушивает порт 53 у всех компьютеров, которые подключены к интернету, и по запросу преобразует введенное название в стандартный IP-адрес.

После определения точного местонахождения файлов сайта включается обычная схема работы – от прикладного уровня с кодированием данных до обращения к физическому оборудованию на уровне сетевых интерфейсов. Процесс называется инкапсуляцией информации. На принимающей стороне происходит обратная процедура – декапсуляция.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *