Какие основные отличия между протоколами TCP и UDP в сетевом взаимодействии?
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()