Межсетевые протоколы
Internet Protocol (IP)
Протокол IP используется для управления рассылкой TCP/IP-пакетов по сети Internet. Среди различных функций, возложенных на IP, обычно выделяют следующие:
- определение пакета, который является базовым понятием и единицей передачи данных в сети Internet;
- определение адресной схемы, которая используется в сети Internet;
- передача данных между канальным уровнем (уровнем доступа к среде передачи) и транспортным уровнем (другими словами, преобразование транспортных дейтаграмм во фреймы канального уровня);
- маршрутизация пакетов по сети, т.е. передача пакетов от одного шлюза к другому с целью передачи пакета машине-получателю;
- фрагментация и дефрагментация пакетов транспортного уровня.
Главной особенностью протокола IP является отсутствие ориентации на физическое или виртуальное соединение. Это значит, что, прежде чем послать пакет в сеть, модуль операционной системы, реализующий IP, не проверяет возможность установк4и соединения, т.е. никакой управляющей информации кроме той, что содержится в самом IP-пакете, по сети не передается. Кроме того, IP не заботится о проверке целостности информации в поле данных пакета, что заставляет отнести его к протоколам ненадежной доставки. Целостность данных проверяется протоколами транспортного уровня (TCP) или протоколами приложений.
Таким образом, вся информация о пути, по которому должен пройти пакет, определяется по состоянию сети в момент прохождения пакета. Эта процедура называется маршрутизацией, в отличие от коммутации, используемой для предварительного установления маршрута следования отправляемых данных.
Принцип маршрутизации является одним из тех факторов, которые определяют гибкость сети Internet и ее преимущества по отношению к другим сетевым технологиям. Маршрутизация представляет собой ресурсоемкую процедуру, т.к. предполагает анализ каждого пакета, который проходит через шлюз или маршрутизатор, в то время как при коммутации анализируется только управляющая информация, устанавливается канал (физический или виртуальный), и все пакеты пересылаются по этому каналу без анализа маршрутной информации. Однако при неустойчивой работе сети пакеты могут пересылаться по различным маршрутам и затем собираться в единое сообщение. При коммутации путь придется устанавливать заново для каждого пакета, и при этом потребуется больше накладных затрат, чем при маршрутизации.
Существует несколько версий протокола IP. В настоящее время используется версия Ipv4 (RFC 791), структура пакета которой представлена на рис. 3.
Рис. 3. формат пакета Ipv4
Фактически в заголовке пакета определены все основные данные, необходимые для перечисленных выше функций протокола IP: адрес отправителя, адрес получателя, общая длина пакета и тип пересылаемой дейтаграммы.
Используя данные заголовка, машина может определить, на какой сетевой интерфейс отправлять пакет. Если IP-адрес получателя принадлежит одной из ее сетей, то на интерфейс этой сети пакет и будет отправлен, в противном случае пакет отправят на другой шлюз.
На основе протокола транспортного уровня IP-модуль производит экскапсуляцию информации из IP-пакета и ее передачу на модуль обслуживания соответствующего транспорта.
При обсуждении формата заголовка пакета IP вернемся еще раз к инкапсулированию. Как уже отмечалось, при обычной процедуре инкапсулирован я пакет просто помещается в поле данных фрейма, а в случае, когда это не может быть осуществлено, разбивается на более мелкие фрагменты. Размер максимально возможного фре2йма, который передается по сети, определяется величиной MTU (Maximum Transmission Unit), определенной для протокола канального уровня. Для последующего восстановления пакет IP должен держать информацию о своем разбиении, и для этой цели используются поля Flags и Fragmentation offset. В этих полях определяется, какая часть пакета получена в данном фрейме, если этот пакет был фрагментирован на более мелкие части.
Internet Control Message Protocol (ICMP)
Протокол ICMP, наряду с IP и ARP, относится к межсетевому уровню. Протокол используется для рассылки информационных и управляющих сообщений. При этом используются следующие виды сообщений:
Flow control -
если принимающая машина (шлюз или реальный получатель информации) не успевает перерабатывать информацию, то данное сообщение приостанавливает отправку пакетов по сети.
Detecting unreachable destination -
если пакет не может достичь места назначения, то шлюз, который не может доставить пакет, сообщает об этом отправителю пакета. Информировать о невозможности доставки сообщения может и машина, чей IP-адрес указан в пакете. Только в этом случае речь будет идти о портах TCP и UDP, о чем будет сказано чуть позже.
Redirect routing -
это сообщение посылается в том случае, если шлюз не может доставить пакет, но у него есть на этот счет некоторые соображения, а именно - адрес другого шлюза.
Checking remote host -
в этом случае используется так называемое ICMP Echo Message. Если необходимо проверить наличие стека TCP/IP на удаленной машине, то на нее посылается сообщение данного типа. Как только система получит это сообщение, она немедленно высылает подтверждение.
Эхо-запрос ICMP и эхо-ответ ICMP отправляются и принимаются с помощью команды ping. Эхо-запрос подразумевает, что компьютер, которому он был отправлен, должен ответить на этот пакет. Эхо-ответ - это тип ICMP-сообщения, которое используется для ответа на такой запрос.
ICMP используется также для получения сообщения об истечении "срока жизни" пакета на шлюзе. При этом используется "время жизни" пакета, определяющее число шлюзов, через которые пакет может пройти. Программа, использующая эту информацию (сообщение Time execeed протокола ICMP), называется Traceroute.
При посылке пакета через Internet Traceroute устанавливает значение TTL (Time to Live) последовательно от 1 до 30 (значение по умолчанию). TTL определяет число шлюзов, через которые может пройти IP-пакет. Если это число превышено, то шлюз, на котором происходит обнуление TTL, высылает ICMP-пакет. Если же пакет достиг получателя, то в этом случае возвращается сообщение другого типа - Detecting unreachable destination, т.к. IP-пакет передается на транспортный уровень.
Routing Information Protocol (RIP)
Протокол RIP - наиболее распространенный из протоколов управления маршрутизацией. Он предназначен для автоматического обновления таблицы маршрутов, при этом используется информация о состоянии сети, которая рассылается маршрутизаторами (routers). В соответствии с протоколом RIP любая машина может быть маршрутизатором. При этом все маршрутизаторы делятся на активные и пассивные. Активные маршрутизаторы сообщают о маршрутах, которые они поддерживают в сети. Пассивные маршрутизаторы читают эти широковещательные сообщения и исправляют свои таблицы маршрутов, но при этом сами информацию в сеть не предоставляют. Обычно в качестве активных маршутизаторов выступают шлюзы, а в качестве пассивных - обычные машины (hosts).
В основу алгоритма маршрутизации по протоколу RIP положена простая идея: чем больше шлюзов надо пройти пакету, тем больше времени требуется для прохождения маршрута. При обмене сообщениями маршрутизаторы сообщают в сеть IP-номер сети и число "прыжков" (hops), которое надо совершить, пользуясь данным маршрутом. Надо сразу заметить, что такой алгоритм эффективен только для сетей, которые имеют одинаковую скорость передачи по любому сегменту сети.
Address Resolution Protocol (ARP)
К моменту, когда протокол IP должен отправлять дейтаграмму, он уже информирован протоколами верхних уровней об IP-адресе получателя. В свою очередь, он должен сообщить протоколу канального уровня аппаратный адрес удаленного компьютера. Если этот адрес не известен, для поиска нужной информации применяется протокол определения адресов ARP (Address Resolution Protocol - протокол разрешения адресов), который ведет широковещательный опрос сети - запрашивает у каждого имеющего определенный IP-адрес компьютера адрес его аппаратного обеспечения (или, другими словами, MAC-адрес). Протокол ARP может перевести IP-адрес в адрес аппаратного обеспечения, например, в MAC-адрес сетевой платы удаленного компьютера.
Дата добавления: 2015-05-13; просмотров: 3661;