Ответ
Протокол TCP (Transmission Control Protocol) работает на транспортном уровне (L4) сетевой модели OSI.
Его основная задача — обеспечить надежную, сквозную (end-to-end) доставку данных между приложениями. Ключевые характеристики TCP:
- Установка соединения: Перед обменом данными TCP устанавливает соединение через "трехэтапное рукопожатие" (three-way handshake).
- Гарантия доставки: Потерянные пакеты запрашиваются и отправляются повторно.
- Упорядоченная передача: Данные доставляются получателю в том же порядке, в котором были отправлены.
- Контроль перегрузки: Протокол адаптирует скорость передачи, чтобы не перегружать сеть.
Это отличает его от UDP, который также работает на 4-м уровне, но не предоставляет гарантий доставки (работает по принципу "отправил и забыл").
Пример создания TCP-сервера на Python:
import socket
# AF_INET указывает на использование IPv4
# SOCK_STREAM указывает на использование протокола TCP
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind(('127.0.0.1', 65432)) # Привязка к адресу и порту
s.listen() # Начало прослушивания порта
print("TCP-сервер ожидает подключения...")
conn, addr = s.accept() # Принятие входящего подключения
with conn:
print(f"Установлено TCP-соединение с {addr}")
data = conn.recv(1024)
if data:
conn.sendall(b"Data received by TCP server")