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

Почему NFS использует UDP по умолчанию?

Я уверен, что есть какая-то древняя причина для этого, но что это? Это похоже на сервис, ориентированный на надежную доставку данных.

4b9b3361

Ответ 1

  • NFS изначально была предназначена для использования в локальной сети, где уровень потерь очень низкий.
  • UDP быстрее и имеет меньше служебных
  • NFS не имеет статуса, поэтому для клиентов просто повторить попытку

Обратите внимание, что NFS v3 + может использовать TCP.

Ответ 2

UDP - это значение по умолчанию для NFSv2 (которое никто не должен действительно использовать в наши дни), но NFSv3 использует TCP по умолчанию. Соединения TCP более надежны, и вы знаете, что у вас есть сетевая проблема намного быстрее, чем с UDP.

Ответ 3

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

Когда UDP используется как транспортный протокол, предположительно, клиент NFS должен будет управлять повторными передачами, если это необходимо.

Ответ 4

UDP является апатридом, TCP - нет, но TCP имеет множество предопределенных свойств, в которых не было ни одной NFS, или, скорее, что NFS хочет регулировать специфику. В частности, когда TCP выполняет передачу пакетов, он определяет тайм-ауты и т.д.

С UDP вы теряете накладные расходы, которые вы особенно не хотите. Когда в NFS файловой системе возникла мысль, что система выполняет запись, и если она будет только наполовину завершена, это будет плохо... поэтому NFS (в жестком режиме) будет продолжать повторять попытку, чтобы завершить транзакцию навсегда, 1 минуту, 5, 10 и час, в день... когда соединение вернется, транзакция может продолжить завершение...

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

Аналогия несколько похожа на то, как работа RS232 работала... электроника выполнила свою задачу и загрузила свои буферы и заполнила бы ее, и она должна была бы прекратить (или потерять информацию), они могли бы передать этот поток информации (и пустой их буферы и продолжить), когда CTS (Clear для отправки pin-as в металлическом штыре на штепсельной вилке) был высоким или низким (что когда-либо предполагалось).

Ответ 5

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

Ответ 6

Производительность. У UDP намного меньше накладных расходов, чем TCP. С другой стороны, NFS должна самостоятельно обрабатывать надежный транспорт (по сравнению с TCP), но поскольку это протокол для локальных сетей, где проблемы с подключением и падение пакетов (или лучше: должно быть) не являются проблемой, они оптимизированы для производительности.

Ответ 7

Соединение UDP без сохранения состояния минимизирует сетевой трафик, так как сервер NFS отправляет клиенту куки файл после того, как клиент имеет право доступа к общему тому. Этот файл cookie представляет собой случайное значение, хранящееся на стороне сервера, и передается вместе с запросами RPC от клиента.