Отказ IP-фрагментов в сети?
Экзаменационный вопрос (без дополнительной информации):
Что произойдет, когда по сети будет отправлено несколько фрагментов IP-датаграмм, и только один из них не попадет в пункт назначения?
Я не уверен, задействован ли ICMP здесь или нет. Отправляет ли ICMP сообщение об ошибке, сообщающее источнику, что ему необходимо повторно отправить этот же фрагмент (только этот один фрагмент)?
Проблема здесь в том, что я не знаю, используют ли фрагменты IP UDP или TCP, поэтому я не знаю ответа на вопрос.
(Я разместил в сети engineering.stackexchange, но мой вопрос был отклонен)
1 ответ
Решение
Очки для покрытия:
- После истечения таймера, сработавшего при получении первого фрагмента, узел повторной сборки отбросит все фрагменты.
- Узел повторной сборки может генерировать
ICMP Time Exceeded (Fragment reassembly time exceeded)
, - Первый фрагмент должен был быть получен для того, чтобы ICMP включал в себя первые 8 байтов инициирующей полезной нагрузки. IPv6 не будет генерировать превышение времени ICMP, пока не будет получен первый фрагмент.
- С IPv6, если повторно собранная датаграмма будет больше 1500 байт, она может быть отброшена без уведомления.
- Если использовался протокол более высокого уровня с надежной доставкой (например, TCP), то исходящий хост должен повторно передавать дейтаграммы, для которых подтверждение не было получено.