Тридцатидвухразрядное пространство имен, которое используется в сетях IPv4, теоретически позволяет поддерживать миллиарды узлов, однако из-за способа структурирования и выделения адресов их реальное количество оказалось значительно меньшим. Именно потенциальная нехватка IPv4-адресов послужила одной из главных причин создания IPv6.
Краткую историю протокола IPv6 можно найти на странице www.laynetworks.com/IPv6.htm.
В связи с существованием протоколов IPv4 и IPv6 напрашивается вопрос: «А что насчет IPv5?» Такой версии никогда не существовало. Заголовок каждой IP-датаграммы включает четырехразрядное поле для хранения номера версии (IPv4-датаграммы всегда хранят в этом поле значение 4), а номер 5 был выделен для экспериментального протокола Internet Stream Protocol (его вторая версия, известная как ST-II, описана в документе RFC 1819). Данный протокол, ориентированный на соединения, был создан в 1970-х и предназначался для передачи голоса, видео и распределенного моделирования. В связи с тем что номер 5 уже был занят, наследником протокола IPv4 стала версия 6.
На рис. 54.2 показан
Протокол передает данные в виде датаграмм (пакетов). Каждая из них, передаваемая от одного узла к другому, перемещается по сети независимо и может иметь уникальный маршрут. IP-датаграмма содержит заголовок, размер которого варьируется от 20 до 60 байт. В нем хранится адрес получателя, чтобы датаграмма могла быть направлена в пункт назначения, а также адрес отправителя для определения получателем ее происхождения.
Отправляющий узел может подменить исходный адрес пакета. Это является основой для простой DoS-атаки по протоколу TCP, известной как SYN-флуд (англ. SYN-flood). [Lemon, 2002] описывает детали такой атаки и меры защиты от нее, предпринимаемые современными реализациями TCP.
Реализация протокола IP может устанавливать ограничение на максимальный размер датаграммы. Существует также минимальный размер, который реализация обязана поддерживать; он равен
В описании протокола IP отмечается: он
Протокол IPv4 вычисляет контрольную сумму заголовка, что позволяет определять связанные с ним ошибки. Однако ошибки, которые происходят с данными, передающимися внутри пакетов, остаются без внимания. Разработчики IPv6 отказались от контрольной суммы заголовка и возложили ответственность за проверку ошибок и надежность на протоколы более высокого уровня. (Протокол UDP тоже поддерживает контрольные суммы; в IPv4 эта возможность является опциональной, а в IPv6 — обязательной; вычисление контрольных сумм в протоколе TCP является обязательным вне зависимости от версии IP.)
Дублирование IP-датаграмм может возникнуть из-за методик, применяемых некоторыми протоколами канального уровня для надежной передачи данных, или в результате прохождения IP-датаграмм через сеть, не основанную на стеке TCP/IP, поддерживающую повторную передачу пакетов.
IPv4-датаграммы могут достигать 65 535 байт. Протокол IPv6 поддерживает датаграммы размером 65 575 байт (40 байт для заголовка, 65 535 — для данных) и позволяет передавать сообщения еще большего размера (так называемые