Введение
Протокол связи, обеспечивающий соединения между сетями.
Протокол Интернета (IP) — это сетевой протокол, используемый в наборе протоколов Интернета для передачи дейтаграмм через границы сети. Его функция маршрутизации обеспечивает взаимодействие сетей и, по сути, формирует Интернет. Задача IP заключается в доставке пакетов от исходного хоста к конечному хосту исключительно на основе IP-адресов в заголовках пакетов. Для этого IP определяет структуры пакетов, которые инкапсулируют передаваемые данные, а также методы адресации, используемые для маркировки дейтаграмм информацией об источнике и назначении. IP изначально представлял собой службу передачи дейтаграмм без установления соединения в оригинальной программе управления передачей, разработанной Винтом Серфом и Бобом Каном в 1974 году, и дополнялся службой с установлением соединения, которая стала основой для протокола управления передачей (TCP). Поэтому набор протоколов Интернета часто называют TCP/IP. Первая основная версия IP, Интернет-протокол версии 4 (IPv4), является доминирующим протоколом Интернета. Его преемником является Интернет-протокол версии 6 (IPv6), который с 2006 года все активнее внедряется в общедоступный Интернет.
Надежность
Конструкция стека протоколов Интернет придерживается принципа «от конца до конца», концепции, адаптированной из проекта CYCLADES. В соответствии с принципом «от конца до конца» сетевая инфраструктура считается изначально ненадежной на любом отдельном сетевом элементе или среде передачи и динамична с точки зрения доступности каналов и узлов. Отсутствуют централизованные средства мониторинга или измерения производительности, отслеживающие или поддерживающие состояние сети. Для снижения сложности сети, интеллектуальные функции сосредоточены в конечных узлах. Как следствие этой конструкции, протокол Интернет обеспечивает только доставку по принципу наилучших усилий, и его сервис характеризуется как ненадежный. В терминологии сетевой архитектуры это протокол без установления соединения, в отличие от соединительно-ориентированной связи. Могут возникать различные нештатные ситуации, такие как повреждение данных, потеря и дублирование пакетов. Поскольку маршрутизация динамическая, то есть каждый пакет обрабатывается независимо, и поскольку сеть не хранит информацию о состоянии на основе маршрута предыдущих пакетов, разные пакеты могут быть направлены к одному и тому же получателю по разным путям, что приводит к доставке пакетов не по порядку. Все нештатные ситуации в сети должны обнаруживаться и компенсироваться участвующими конечными узлами. Протоколы верхнего уровня стека протоколов Интернет отвечают за обеспечение надежности. Например, хост может буферизировать сетевые данные для обеспечения правильной последовательности перед передачей данных приложению. IPv4 предоставляет механизмы защиты для обеспечения целостности заголовка IP-пакета. Маршрутизирующий узел отбрасывает пакеты, не прошедшие проверку контрольной суммы заголовка. Хотя протокол ICMP (Internet Control Message Protocol) предоставляет уведомления об ошибках, маршрутизирующий узел не обязан уведомлять ни один из конечных узлов об этих ошибках. В отличие от него, IPv6 работает без контрольных сумм заголовков, поскольку предполагается, что современные канальные технологии обеспечивают достаточную детекцию ошибок.
Пропускная способность и возможности связи
Динамичный характер Интернета и разнообразие его компонентов не гарантируют, что какой-либо конкретный путь способен или пригоден для выполнения запрошенной передачи данных. Одним из технических ограничений является размер пакетов данных, допустимый на данном канале связи. Существуют механизмы для определения максимального размера блока передачи (MTU) локального канала, а Path MTU Discovery может использоваться для всего предполагаемого пути к месту назначения. IPv4 сетевой уровень автоматически фрагментирует датаграмму на более мелкие части для передачи, когда MTU канала связи превышен. IP обеспечивает повторную сборку фрагментов, полученных не по порядку. В сети IPv6 фрагментация в сетевых элементах не выполняется, но требуется, чтобы конечные хосты и протоколы более высокого уровня избегали превышения MTU пути. Протокол управления передачей (TCP) является примером протокола, который подстраивает размер сегмента, чтобы он был меньше MTU. Протокол пользовательских данных (UDP) и ICMP не учитывают размер MTU, тем самым вынуждая IP фрагментировать датаграммы, превышающие допустимый размер.
Безопасность
На этапе проектирования ARPANET и раннего Интернета невозможно было в полной мере предвидеть аспекты безопасности и потребности публичной международной сети. В результате многие интернет-протоколы содержали уязвимости, которые проявились в сетевых атаках и последующих оценках безопасности. В 2008 году была опубликована подробная оценка безопасности и предложены способы устранения выявленных проблем. IETF продолжает проводить дальнейшие исследования.