Sobes.tech
Back to questions
Junior — Middle
66

Какие основные отличия между протоколами TCP и UDP в сетевом взаимодействии?

Companies where asked
СБЕР Бизнес
ВайлдберрисВайлдберрис
Black Wall Group

Answer from AI

sobes.tech AI

Основные отличия между протоколами TCP и UDP:

  • Надёжность: TCP — надёжный протокол, обеспечивает доставку данных, контроль ошибок и повторную отправку потерянных пакетов. UDP — ненадёжный, не гарантирует доставку.

  • Установка соединения: TCP устанавливает соединение через трехстороннее рукопожатие (handshake), UDP — без установления соединения (connectionless).

  • Скорость: UDP быстрее, так как не тратит время на установку соединения и контроль доставки.

  • Порядок доставки: TCP гарантирует, что данные придут в том же порядке, в каком были отправлены. UDP не гарантирует порядок.

  • Использование: TCP подходит для приложений, где важна надёжность (веб, почта, файлы). UDP — для приложений, где важна скорость и допускается потеря данных (стриминг, игры, VoIP).

Пример использования TCP в Python:

import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  # TCP
sock.connect(('example.com', 80))

sock.sendall(b'GET / HTTP/1.1\r\nHost: example.com\r\n\r\n')
response = sock.recv(4096)
print(response.decode())
sock.close()

Пример использования UDP:

import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)  # UDP
sock.sendto(b'Hello', ('example.com', 12345))
data, addr = sock.recvfrom(1024)
print(data.decode())
sock.close()