На каком уровне сетевой модели OSI работает протокол TCP

Ответ

Протокол 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")