Порядковые номера в UDP

Мне задали интересный вопрос о дейтаграммах и о том, как они фрагментированы, а именно о том, что используется для повторной сборки исходной дейтаграммы.

  • Я знаю, что идентификационный номер в каждом фрагменте будет одинаковым, чтобы показать, что все они принадлежат одной большой датаграмме.
  • Я знаю, что FragFlag, установленный в 1, означает, что есть еще фрагменты на пути, однако фрагмент с FragFlag, равным 0, означает, что это последний фрагмент.

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

Напротив, TCP должен быть надежным и лучшим способом гарантировать отправку пакетов в правильном порядке. Здесь все работает по-другому, потому что мы имеем дело с дейтаграммами, а не с пакетами? Или порядковые номера были созданы только для того, чтобы сделать UDP более «надежным».

Спасибо за любую помощь.


person JimmyK    schedule 28.04.2013    source источник


Ответы (2)


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

person j.holetzeck    schedule 28.04.2013

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

Почему это сбивает с толку? Если все фрагменты прибывают, дейтаграмма повторно собирается (на уровне IP) и доставляется приложению. Если они этого не сделают, то не повезло.

person user207421    schedule 30.04.2013