Транспортный уровень TCP/IP обеспечивает связь между процессами, запущенными на разных хостах. Основные задачи:
- Идентификация приложений/процессов на хосте (через порты).
- Предоставление сервисов доставки данных:
- Надежная, упорядоченная доставка (TCP).
- Ненадежная, безгарантийная доставка (UDP).
Два основных протокола:
- Transmission Control Protocol (TCP):
- Соединение ориентированный.
- Гарантирует доставку пакетов, сохранение порядка, контроль потока и управление перегрузками.
- Используется для приложений, требующих надежной передачи (HTTP, FTP, SMTP).
- User Datagram Protocol (UDP):
- Без соединения.
- Не гарантирует доставку, порядок или контроль потока.
- Низкие задержки, подходит для приложений, чувствительных ко времени, где небольшая потеря данных допустима (DNS, VoIP, потоковое видео).
Сегменты TCP включают поля для: портов источника/назначения, порядковых номеров (sequence numbers), номеров подтверждения (acknowledgment numbers), флагов (SYN, ACK, FIN), контрольной суммы.
Дейтаграммы UDP включают поля для: портов источника/назначения, длины и контрольной суммы.
Ports (порты): 16-битные числа, используемые для мультиплексирования/демультиплексирования данных между процессами.
- Well-known ports (0-1023): Зарезервированы для стандартных сервисов (80 для HTTP, 443 для HTTPS, 22 для SSH).
- Registered ports (1024-49151): Используются для частных приложений, зарегистрированных в IANA.
- Dynamic/Private ports (49152-65535): Используются клиентами для исходящих подключений.
Пример установления соединения TCP (Three-way Handshake):
- Клиент отправляет сегмент с флагом SYN и начальным порядковым номером.
- Сервер получает SYN, отвечает сегментом с флагами SYN и ACK, своим начальным порядковым номером и ACK номером, равным client_seq + 1.
- Клиент получает SIN+ACK, отвечает сегментом с флагом ACK и ACK номером, равным server_seq + 1. Соединение установлено.
c
c