Хост получателя, приняв датаграмму, помеченную как 'Last' и имеющую смещение 0, знает, что она не фрагментирована.
6.14.4 Сборка фрагментированной датаграммы
Совпадающие по полям
Таким образом, система-получатель должна иметь возможность предвидеть, сколько именно буферного пространства нужно зарезервировать для принимаемой датаграммы. Разработчики решают эту проблему различными способами. Некоторые последовательно выделяют для буфера небольшие части памяти, другие сразу предоставляют единый большой буфер.
В любом случае при реализации
6.14.5 Тайм-аут сборки датаграммы
Рассмотрим следующую последовательность событий:
■ Пересылается датаграмма.
■ Пославший ее процесс аварийно завершается.
■ Датаграмма фрагментируется при пересылке.
■ По пути следования теряется один из фрагментов.
При потере отправленного фрагмента хост получателя должен ждать, пока этот фрагмент не будет отправлен повторно. При этом, разумеется, необходимо
6.14.6 Фрагментировать или не фрагментировать
Учитывая все проблемы поддержки фрагментации, можно сказать, что она приводит к снижению производительности. Поэтому многие программисты стремятся аккуратно разрабатывать приложения, чтобы формируемые датаграммы были достаточно малы и не фрагментировались при пересылке.
В главе 7 мы познакомимся с протоколом исследования MTU, позволяющим исключить фрагментировать датаграмм и использовать наибольший размер MTU при пересылке информации.
6.15 Просмотр статистики IP
Узнать о том, как работает IP, можно по достаточно приблизительным статистическим отчетам. Команда
> netstat -s
ip:
13572051 total packets received
0 bad header checksums
0 with size smaller than minimum
8 with data size < data length
0 with header length < data size
0 with data length < header length
90 fragments received
0 fragments dropped (dup or out of space)
2 fragments dropped after timeout
0 packets forwarded
10 packets not forwardable
0 redirects sent 0
ip input queue drops
За отчетный период не было ни одной датаграммы с плохой контрольной суммой (checksums) и
6.16 Варианты
Для одного или нескольких дополнительных вариантов доступно 40 специальных октетов в заголовке IP. Варианты датаграмм выбираются отсылающими их приложениями. Применяются они крайне редко. Список вариантов включает:
■ Strict Source Route (Точный маршрут от источника)
■ Loose Source Route (Произвольный маршрут от источника)
■ Record Route (Запись маршрута)
■ Timestamp (Временная метка)
■ Department of Defense Basic Security (Базовая безопасность Министерства обороны)
■ Department of Defense Extended Security (Улучшенная безопасность Министерства обороны)
■ No Operation (Без операций)