Протокол IP

Протокол IP (Internet Protocol) является основным протоколом для всего набора TCP/IP и используется для управления рассылкой TCP/IP-пакетов по сети Internet.

Функционируя на сетевом уровне модели OSI, протокол IP относится к протоколам без установления соединения. Перед IP не ставится задача надежной доставки сообщений от отправителя к получателю.

IP – протокол выполняет несколько задач, среди которых основные: адресация, упаковка, фрагментация и маршрутизация.

Адресация. Протокол IP отвечает за доставку TCP/IP – пакетов до их конечного назначения и адрес назначения не меняется в процессе прохождения пакета по маршруту.

Упаковка. Протокол IP несет ответственность за упаковку данных протоколов транспортного уровня в структуры, называемые дейтаграммами, предназначенные для транспортировки передаваемой информации. Во время путешествия пакета маршрутизаторы создают дейтаграмме новый заголовок для каждого транзитного участка. Прежде чем попасть в место конечного назначения, пакет может пройти через различные сети, использующие разные протоколы, каждый из которых требует наличия собственного заголовка. Но, с другой стороны, IP – «конверт» остается без изменений в течение всего путешествия, за исключением нескольких битов, которые модифицируются в процессе следования (уместна аналогия с нанесением почтовых штемпелей на конверт).

Фрагментация. Размер IP – дейтаграмм, используемых для передачи данных транспортного уровня, зависит от применяемого протокола канального уровня. Сети Ethernet, например, могут переносить дейтаграммы размером до 1500 байт, а Token Ring способны поддерживать максимальный размер пакетов, равный 17914 байт. Система, передающая дейтаграммы, ограничивает размер пакета величиной максимально передаваемого блока (MTU – maximum transfer unit) конкретной сети, которая представляет собой наибольший размер кадра, транспортировку которого может осуществлять протокол канального уровня.

На пути следования к месту назначения пакеты могут проходить через сети с различными MTU.

Фрагментация реализуется, если разрешённая длина пакета нижнего уровня недостаточна для размещения первичного пакета, при этом осуществляется «нарезка» пакетов, затем маршрутизатор направляет каждый фрагмент дальше, но уже в изолированном пакете с собственным IP заголовком, аналогично при возврате на первичный уровень пакет должен быть дефрагментирован.

В зависимости от количества и характеристик сетей, встречающихся на трассе дейтаграммы, она может неоднократно подвергаться дроблению, прежде чем достигнет пункта назначения.

Фрагментация нежелательна, но это – необходимое зло.

Если даже только один из фрагментов дейтаграммы будет потерян или поврежден, потребуется повторная передача всей дейтаграммы.

Не существует способа повторной передачи только отдельного фрагмента, т.к. система – отправитель совершенно не в курсе процесса фрагментации, произведенной промежуточными маршрутизаторами. Протокол IP системы – получателя не пересылает входящую информацию вверх, протоколу транспортного уровня до тех пор, пока не получены все фрагменты дейтаграммы, и она не собрана полностью.

Маршрутизация. Так как протокол IP отвечает за доставку пакетов по месту конечного назначения, он определяет и путь, по которому направится пакет, но вся информация о пути, по которому должен пройти пакет, определяется по состоянию сети в момент прохождения пакета. Эта процедура называется маршрутизацией в отличие от коммутации (физической или виртуальной), используемой для предварительного установления маршрута следования отправляемых данных.

В комплексных сетях возможен выбор из множества вариантов маршрута, который может быть пройден пакетом на пути от источника к цели.

Маршрутизаторы постоянно оценивают имеющиеся для пакета варианты маршрута через сеть и могут определить самый оптимальный из них.

Протокол ICMP - Internet Control Message Protocol – протокол контроля сообщений в сети Internet.

Протокол ICMP выполняет сразу две роли в стеке TCP/IP, а именно: обеспечивает выработку управляющих сообщений об ошибках, например, информирует систему-источник о том, что переданные данные не достигли места назначения, а также переносит сообщения-запросы и сообщения-ответы для диагностических программ.

Так как сеть TCP/IP распределяет рутинные операции по маршрутизации между многими системами, не существует способа, с помощью которого любая из оконечных систем, вовлеченных в передачу пакета, могла бы иметь информацию о том, что же происходило на пути следования пакета. Протокол IP не устанавливает соединения, поэтому никаких подтверждающих сообщений на этом уровне отправителю не поступает. При использовании протокола Транспортного уровня, ориентированного на соединение, например, TCP, система-получатель подтверждает передачу, но только тех пакетов, которые она получает. Если же в процессе передачи происходит что-либо, не позволяющее пакету прибыть по месту назначения, протоколы TCP или IP не имеют никакой возможности известить отправителя о том, почему и как это случилось. Сообщения об ошибках протокола ICMP разработаны для компенсации этого недостатка. Когда промежуточная система, например, маршрутизатор, испытывает трудности с обработкой пакета, она обычно просто отбрасывает его, оставляя для протоколов более высоких уровней работу по отслеживанию отсутствующих пакетов и организации повторной передачи. Сообщения протокола ICMP позволяют маршрутизатору информировать отправителя о конкретной причине возникшей проблемы. Системы-получатели также могут посылать ICMP-сообщения, когда сталкиваются с тем, что пакет успешно прибывает, но его невозможно обработать.

Вместе с тем, ICMP-сообщения об ошибках являются только информационными. Система, получающая их, никак не отвечает и не обязана предпринимать никаких действий в плане исправления ситуации. Пользователю или администратору придется самим решать проблему, приводящую к неполадкам.

TCP/IP-системы могут совершенно свободно посылать ICMP-сообщения об ошибках, кроме некоторых специфических ситуаций:

· TCP/IP-системы не вырабатывают ICMP-сообщения об ошибках в ответ на другие ICMP-сообщения об ошибках. Без подобной оговорки две системы могут обмениваться ICMP-сообщениями об ошибках в обоих направлениях до бесконечности.

· В случае фрагментированной дейтаграммы система генерирует ICMP- сообщение об ошибке только для первого фрагмента.

· TCP/IP-системы никогда не посылают ICMP-сообщения об ошибках в ответ на широковещательные или групповые сообщения.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: