1

Я читаю о TCP и UDP из статьи. В конце концов я понял, что UDP работает быстрее, чем TCP, но это ненадежно. Так что, если я собираюсь отправить файл, если использовать UDP, будет ли он быстрее, чем TCP? Может кто-нибудь объяснить, как он будет доставлять быстрее, чем TCP?

1 ответ1

6

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

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

TCP подходит для случаев, когда информация в потерянных пакетах не нуждается в повторной отправке, если вы хотите реализовать свой собственный контроль потока или вы оборачиваете потоки TCP и тому подобное в свой собственный поток (т. Е. Вы реализуете VPN - TCP через TCP может иметь значительные проблемы с производительностью, когда периодически возникают перегрузки), это не хорошо для передачи больших объемов данных, например, при попытке надежно передать файл (конечно, за исключением случая VPN, но вы все еще используете TCP в оболочке VPN).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .