Эта статья содержит:
- Что такое 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