Суть фрагментации — разбиение пакета, пришедшего из сети с большим значением MTU и направляемого в сеть с меньшим значением MTU, на более короткие пакеты-фрагменты. Фрагмент, путешествуя по сети, может вторично подвергнуться фрагментации на каком-либо из промежуточных маршрутизаторов. Каждый из фрагментов должен быть снабжен полноценным заголовком IP.
Некоторые из полей заголовка (идентификатор, TTL, флаги DF и MF, смещение) непосредственно предназначены для проведения последующей процедуры сборки фрагментов в исходное сообщение.
□ Получатель фрагмента использует идентификатор для того, чтобы опознать все фрагменты одного и того же пакета. Модуль IP, отправляющий пакет, устанавливает в поле идентификатора значение, которое должно быть уникальным для данной пары отправителя и получателя в течение всего времени, пока данный пакет (или любой его фрагмент) может существовать в составной IP- сети. Модуль IP может обеспечивать уникальность идентификаторов, например, поддерживая таблицу, где каждая запись соотносится с каждым отдельным получателем, с которым осуществлялась связь, и содержит последнее значение времени жизни пакета в IP-сети. Однако поскольку поле идентификатора допускает 65 536 различных значений, некоторые реализации IP выбирают из этого диапазона идентификаторы случайным образом, полагаясь на высокую вероятность того, что идентификатор окажется уникальным в те-: чение времени передачи пакета.
□ Отправитель устанавливает в поле TTL время, в течение которого пакет может существовать в сети.
□ Поле смещения фрагмента предоставляет получателю информацию о положении фрагмента в исходном пакете. Так, первый фрагмент будет иметь в поле смещения нулевое значение. В пакете, не разбитом на фрагменты, поле смещения также имеет нулевое значение.
□ Флаг MF (More Fragments — больше фрагментов), установленный в 1, — признак того, что пришедший фрагмент не является последним. Модуль IP, отправляющий нефрагментированный пакет, устанавливает флаг MF в нуль.
□ Флаг DF (Do not Fragment — не фрагментировать), установленный в 1, — признак того, что данный пакет не подлежит фрагментации ни при каких условиях. Если помеченный таким образом пакет не может достигнуть получателя без фрагментации, то модуль IP просто уничтожает пакет, а узлу-отпра- вителю посылается диагностическое ICMP-сообщение.
ПРИМЕЧАНИЕ -----------------------------------------------------------------------------------------------------
Наличие возможности запретить фрагментацию позволяет в некоторых случаях ускорить работу приложений. Для этого вначале необходимо исследовать сеть, определить максимальный размер пакета, который сможет пройти весь путь без фрагментации, а затем использовать пакеты такого или меньшего размера для обмена данными. Данное средство позволяет также предотвратить фрагментацию в тех случаях, когда хост-получатель не имеет достаточных ресурсов для сборки фрагментов.