Подтвердить что ты не робот

TCP vs UDP - Что такое TCP-соединение?

Что такое TCP-соединение? Я понимаю, что нет физического подключения от клиента к серверу. Связано ли это соединение только сокета клиента с новым сокетом, созданным сервером после трехстороннего рукопожатия? После этого, когда "соединение" настроено, сокеты на обоих концах соединения затем знают, куда отправлять свои пакеты.

Как это отличается от того, как работают функции UDP, кроме первоначального рукопожатия с TCP? Разве каждый серверный сокет имеет только один клиент, который отправляет пакеты в этот конкретный сокет?

Каковы некоторые преимущества наличия выделенного соединения между хостами? Мое понимание TCP и UDP по-прежнему очень простое, поэтому достаточно широкого обобщения.

4b9b3361

Ответ 1

Позвольте разбить это на части. Первая из сети основана на IP-адресе, который является протоколом, который присваивает адрес каждой сети node, и который позволяет отправлять небольшие объемы данных (обычно до 64 КБ, но обычно только 1500B) от одного node к другому.

Это само по себе не стоит многого, потому что мы не можем делать какие-либо проверки, что данные действительно прибыли, и что он прибыл в правильном порядке. Если мы хотим, чтобы абстрактный механизм передавал произвольные объемы данных и обеспечивал их прибытие, нам нужен еще один протокол поверх сети, который обрабатывает эту "передачу". И что цель TCP.

Однако параллельно с TCP существует еще один "протокол передачи", который вообще не выполняет никаких проверок и не имеет надежности, UDP. UDP - это всего лишь тонкая оболочка вокруг необработанных IP-пакетов, которая добавляет немного метаданных (например, номер порта).

UDP по-прежнему полезен, так как существует много ситуаций, когда целостность данных уже передана еще более высокому протоколу, поэтому нет необходимости в сложном протоколе передачи. Это, например, используется в виртуальных сетевых службах, где другой экземпляр TCP/IP обычно запускается по каналу UDP. (Обеспечение канала использованием надежного протокола, такого как TCP, может фактически иметь катастрофические последствия в этом случае из-за повторных каскадов.)

Таким образом, термин "TCP-соединение" относится к приложению TCProtocol. Естественно, протокол является естественным, и обычно он выполняется в последовательности SYN-ACK-данных-FIN или SYN/RST в случае отклоненной передачи; оба партнера поддерживают статус соединения (рукопожатие, установлено, закрыто, закрыто). TCP также вводит термины "сервер" и "клиент", а сервер - это одноранговый узел listen() для входящего соединения.

Ответ 2

Основное различие между сокетами TCP и UDP заключается в том, что UDP является бездисковым и на самом деле не ожидает подтверждения того, что другой конец получил данные.

"Протокол управления передачей (TCP) является одним из основных протоколов пакета Internet Protocol Suite. TCP является одним из двух оригинальных компонентов пакета, дополняющим протокол Интернета (IP), и поэтому весь пакет обычно называемый TCP/IP. TCP обеспечивает надежную, упорядоченную доставку потока байтов из программы на одном компьютере на другую программу на другом компьютере. TCP - это протокол, в котором используются основные интернет-приложения, такие как Всемирная паутина, электронная почта, удаленное администрирование и передача файлов зависит от них. Другие приложения, которые не требуют надежной службы потока данных, могут использовать протокол пользовательских дейтаграмм (UDP), который предоставляет службу дейтаграмм, которая подчеркивает снижение латентности по надежности. 1