Задать вопрос
@Andreany

Как принимающая сторона сопоставляет пакеты с сообщениями при передаче данных по сети?

На собеседовании на позицию C++ разработчика задали следующий вопрос:

"Мы отправляем несколько логических сообщений по сети. Каждое сообщение разбивается
на пакеты и передаётся получателю. Пакеты могут приходить не по порядку.
Вопрос: как принимающее устройство понимает, к какому сообщению относится каждый пакет,
и в каком порядке их нужно собрать?"

Интересует ответ на уровне сетевых протоколов (TCP/UDP), а не прикладной логики.
Также буду благодарен за пояснение, какие механизмы работают на разных уровнях OSI.
  • Вопрос задан
  • 225 просмотров
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    1C-программист: расширенный курс
    18 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик
    9 месяцев
    Далее
  • Skillbox
    Профессия 1С-программист
    8 месяцев
    Далее
Решения вопроса 2
@66demon666
Сетевой админ, АТС-админ
Этот момент описан в RFC по TCP и полезнее для Вас же будет изучить этот момент самостоятельно. Вопрос простой, только вот непонятно почему он прозвучал на собесе на разработчика C++, если в вакансии не было заявлено хорошее понимание TCP/IP
Ответ написан
@SunTechnik
При использовании TCP - устанавливается соединение. Протокол сам разбивает данные на пакеты, отслеживает доставку, порядок. Если в течении timeout пакет не был доставлен - делает повторную отправку данных (пока не сможет доставить, или вернёт ошибку, что соединение умерло) . Ваша задача - только кидать и забирать данные.

При использовании UDP —не гарантируется ничего. Пакеты могут приходить в любом порядке, теряется, задваиваться - задача самого приложения разруливать этот бардак... Но если частичные потери пакетов не страшны - это позволяет экономить время/ресурсы что бы не посылать повторно, что уже не актуально...

Ps, но лучше все же - почитать теорию. Главы из учебника тут никто цитировать не будет...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы