Эта статья содержит:

  • Что такое TCP/IP и для чего он нужен?
  • Что делает TCP/IP?
  • С какими IP-адресами работает TCP/IP?
  • Какой у меня адрес TCP/IP?
  • Являются ли мои пакеты данных конфиденциальными?

Что такое TCP/IP и что он означает?

Протокол управления передачей (TCP) — это транспортный протокол, который используется поверх IP для обеспечения надежной передачи пакетов.

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

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

Поскольку протокол TCP чаще всего используется поверх IP, стек интернет-протоколов иногда называют TCP/IP.

Что делает TCP/IP?

Исходный порт (16 бит) – определяет исходный порт процесса приложения на отправляющем устройстве.

Порт назначения (16 бит) — определяет порт назначения процесса приложения на принимающем устройстве.

Порядковый номер (32 бита) — порядковый номер байтов данных сегмента в сеансе.

Номер подтверждения (32 бита) — когда установлен флаг ACK, этот номер содержит следующий порядковый номер ожидаемого байта данных и работает как подтверждение получения предыдущих данных.

Смещение данных (4 бита). В этом поле указывается как размер заголовка TCP (32-битные слова), так и смещение данных в текущем пакете во всем сегменте TCP.

Зарезервировано (3 бита) — зарезервировано для использования в будущем, и по умолчанию все значения равны нулю.

Размер окна — это поле используется для управления потоком данных между двумя станциями и указывает объем буфера (в байтах), который приемник выделил для сегмента, т. е. сколько данных ожидает приемник.

Флаги (каждый по 1 биту)

NS — Бит Nonce Sum используется в процессе сигнализации Explicit Congestion Notification.

CWR — когда хост получает пакет с установленным битом ECE, он устанавливает Windows Congestion Reduced, чтобы подтвердить получение ECE.

ECE — имеет два значения:

  • Если бит SYN очищен до 0, то ECE означает, что в IP-пакете установлен бит CE (опыт перегрузки).
  • Если бит SYN установлен в 1, ECE означает, что устройство поддерживает ECT.

URG — указывает на то, что поле «Указатель срочности» содержит важные данные и должно быть обработано.

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

PSH — когда установлено, это запрос к принимающей станции на отправку данных (как только они поступят) принимающему приложению без их буферизации.

RST — флаг сброса имеет следующие особенности:

  • Используется для отказа от входящего соединения.
  • Используется для отклонения сегмента.
  • Используется для перезапуска соединения.

SYN — этот флаг используется для установки соединения между хостами.

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

Контрольная сумма — в этом поле хранится контрольная сумма заголовка, данных и псевдозаголовков.

Указатель срочности — указывает на байт срочных данных, если для флага URG установлено значение 1.

Параметры. Позволяет использовать дополнительные параметры, не указанные в обычном заголовке. Поле опций всегда записывается 32-битными словами. Если данные в этом поле меньше 32 бит, используется заполнение, чтобы покрыть оставшиеся биты, чтобы достичь 32-битной границы.

Преимущества

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

Недостатки

  • TCP был разработан для глобальных сетей, поэтому его размер может быть проблемой для небольших сетей с ограниченными ресурсами.
  • TCP работает на нескольких уровнях, что может снизить производительность сети.
  • Это никоим образом не является общим. То есть он не может представлять никакой другой стек протоколов, кроме набора TCP/IP. Например, он не будет работать с соединением Bluetooth.

Демонстрация TCP

Клиент.js

Сервер.js

Ресурс