ЛЕКЦИИ / Лекции1
.docxВОПРОС 24 ФРАГМЕНТАЦИЯ, ПРОТОКОЛ IP С2 напомню что протокол IP работает на сетевом уровне модель взаимодействия открытых систем, и одна из задач этого уровня - объединения сетей построенных на основе разных технологий. одно из возможных различий в сетях - это максимальный размер передаваемых данных или максимум трансмишн юнит MTU. для ethernet это 1500 байт. для Token Ring 4464 байта, для FDDI 4352 байта. а также раньше встречались сети и с другим размером MTU. что делать если на маршрутизатор пришел пакет размер которого больше чем может передать сеть? С3 в этом случае используется фрагментация - разделение пакета на отдельные части, так называемые фрагменты, каждый из которых меньше чем у сети. в протоколе IP для реализации фрагментации используются три поля заголовка. идентификатор пакета, флаги и смещение фрагмента. идентификатор пакета задает номер пакета который разбит на фрагменты. это поле должно быть одинаково во всех фрагментах пакета. С4 следующее поле - флаги. размер поля 3 бита, но на практике используются только два. флаг DF don't Fragment означает запрет фрагментирования. флаг MF или More fragment говорит о том что полученный фрагмент пакета не последний, будут еще пакеты. мы помним что сети IP не обеспечивают гарантию доставки и сохранения порядка следования сообщений. поэтому фрагменты пакета могут прийти в разном порядке. например сначала может прийти фрагмент который мы отправили первым, затем третий фрагмент, и после этого второй. С5 в протоколе IP для того чтобы определить в каком порядке собирать фрагменты в один большой пакет используется поле смещение фрагмента. причем в протоколе IP смещение измеряется не в байтах, а в восьми байтовых блоках. давайте рассмотрим пример. у нас есть большой пакет размером 4 тысячи байт. в этом пакете 20 байт это заголовок IP, а полезных данных 3980 байт. мы хотим передать полученные пакет по сети ethernet у который максимальный размер передаваемых данных 1500 байт. опять же с 1500 байт 20 байт отдается под заголовок IP и 1480 байт под полезные данные. таким образом исходные данные размером 3980 байт будут разделены на три фрагмента от 0 до 1479 байт, от 1480 до 2959, и от 2960 до 3980. для того чтобы получить смещение каждого фрагмента мы должны взять значение первого байта и разделить на 8. таким образом смещение получается 0 для первого фрагмента, 185 для второго фрагмента, и 370 для третьего фрагмента. С6 рассмотрим как работает фрагментация на том же самом примере большого пакета размером 4 тысячи байт который нужно передать через сеть ethernet с MTU 1500 байт. С7 формируется первый фрагмент. здесь показаны поля IP заголовка которые имеют отношение к фрагментации. маршрутизатор сгенерировал номер пакета 81. номер может быть любой. главное чтобы этот номер был одинаковым во всех фрагментах. смещение фрагмента равно нулю. это означает что во фрагменте находится самое начало большого пакета. устанавливается полем MF, и затем записывается первая порция данных 1480 байт. С8 после этого формируется второй фрагмент с тем же самым номером пакета. значение смещения фрагмента равно 185. 1480 деленное на 8 и более MF говорит о том что будут ещё фрагменты/ С9 формируется третий пакет с тем же самым номером пакетов 81 смещением 370, и так как это последний фрагмент, то полем MF устанавливается в 0. С10 сборка пакетов происходит в обратном порядке. принимающий маршрутизатор должен определить что он получил неполный пакет, а фрагмент. для этого маршрутизатор используют либо полем у фрагмент если поле установлена в единицу значит это фрагмент другим признакам фрагментации является ненулевое значение в поле смещения фрагмента например 185 или 370. когда маршрутизатор принимает фрагмент пакета он сохраняют его в память, и затем сохраняют все фрагменты с тем же самым номером. в нашем случае 81. С11 после того как пришел последний фрагмент маршрутизатор может посчитать размер большого пакета - 4000 байт. затем из отдельных фрагментов используя смещение собирается большой пакет. С12 флаг df или don't fragment заголовка IP используется для того чтобы запретить фрагментацию на маршрутизаторах. если этот флаг установлен, то маршрутизатор не имеет права фрагментировать пакет. что же будет если размер пакета больше чем максимальный размер пакета которые может передать данные? в этом случае маршрутизатор просто отбросить пакет, и отправит получателю ICMP сообщение с типом 3 кодом 4 это означает что данный узел недоступен, необходима фрагментация, но установлен флаг DF запрещающий эту фрагментацию. итак мы рассмотрели фрагментацию. это разбиение IP пакета на несколько частей - фрагментов для передачи по сети с маленьким MTU. фрагментации используются для объединения сетей построенных на основе разных технологий у которых отличается MTU. в заголовке IP пакета для фрагментации используются три поля идентификатор пакета, флаги и смещение фрагмента. следует отметить что в следующей версии протокола IPv6 отказались от фрагментации на маршрутизаторах. В IPv6 узлы отправителей должны сами подобрать максимальный размер пакета с помощью технологии paw MTU Discovery. ¶
ВОПРОС 25 УПРАВЛЯЮЩИЕ ПРОТОКОЛы СЕТЕВОГО УРОВНЯ С2 на сетевом уровне для передачи данных используется протокола IP, но одного протокола IP недостаточно для корректной работы крупной составной сети. поэтому на сетевом уровне используются дополнительные так называемые управляющие протоколы: ARP, DHCP, ICMP. C3 протокол DHCP расшифровывается Dinamic Host configuration Protocol - протокол динамической конфигурации хостов. для того чтобы компьютер работал в сети ему необходимо получить IP адрес. конечно IP адрес можно назначить вручную, но в крупной сети с большим количеством компьютеров это делать неудобно. необходим механизм автоматического назначения IP адресов в крупной сети, и именно это и позволяет делать протокол DHCP. С4 протокол ARP расшифровывается Adress Resolution protocol протокол разрешения адресов. ARP обеспечивает связь сетевого и канального уровня. кроме IP адреса каждый компьютер сети имеет MAC-адрес. при передаче пакета необходимо определить какой MAC-адрес соответствует компьютеру с заданным IP адресом. именно это и позволяет сделать протокол ARP. С5 протокола ICMP - internet control message protocol - протокол межсетевых управляющих сообщений. он используется для двух целей - первая цель это сообщение об ошибках которые возникают в сети. например получателей может быть недоступен по какой то причине, или закончилось время жизни пакета, или пакет слишком большой для передачи по текущей сети, фрагментировать его запрещено. другое применение протокола ICMP - тестирование работы сети. ICMP применяется в утилитах ping, которая позволяет проверить доступность получателя и traceroute, которая позволяет определить маршрут получателя, то есть перечень всех промежуточных маршрутизаторов. С6 и так на сетевом уровне используются протоколы двух типов. протокол IP используется для передачи данных. управляющие протоколы хотя также находится на сетевом уровне, но для передачи данных не используются, а применяются для обеспечения работоспособности сети. управляющие протоколы сетевого уровня это ARP, DHCP, ICMP. Рассмотрим их поотдельности. ¶
ВОПРОС 26 ПРОТОКОЛ DHCP С2 DHCP расшифровывается как Dinamic Host Configuration Protocol - протокол динамической конфигурации хостов. компьютеру для того чтобы он мог работать в сети нужно получить IP адрес. есть два варианта назначение IP адресов. во-первых IP адреса можно назначать вручную. это удобно делать когда в сети мало компьютеров - например дома или в небольшой организации. но если в нашей сети сотни или тысячи компьютеров назначить на каждый IP-адрес вручную практически невозможно. для этого необходимы какие-то методы автоматического назначения IP адресов и как раз протокол DHCP предоставляет такую возможность. это позволяет существенно снизить трудозатраты по настройки сетевых параметров компьютера в больших сетях. с другой стороны для того чтобы использовать протокол DHCP необходимо создать соответствующую инфраструктуру, создать в сети DHCP-сервер и поддерживать его. другой недостаток DHCP заключается в том, что одному и тому же компьютеру в разное время DHCP сервер может назначать разные IP адреса. С3 DHCP работает по модели клиент-сервер. клиент это компьютер который получает IP адрес, а сервер DHCP это такой компьютер который раздает IP адреса и следит за тем чтобы один и тот же IP адрес не был выдан двум клиентам, в противном случае они не смогут работать с сетью. для того чтобы получить IP адрес клиент и сервер обмениваются между собой так называемыми сообщениями DHCP вопрос-ответ. С4 рассмотрим как происходит получение IP адреса по протоколу DHCP. когда клиент включается у него нет никакой информации о той сети в которой он находится. его первая задача узнать где находится DHCP сервер. С5 для этого он посылает сообщение DHCP discover. С6 для того чтобы найти DHCP сервер сообщение DHCP discover посылается на широковещательный MAC-адрес. это сообщение принимают все компьютеры в сети. С7 сервер после того как получил сообщение DHCP discover в ответ посылают сообщения DHCP Offer - предложение. В сообщении DHCP сервер включает IP адрес который предлагают использовать клиенту. С8 клиент в ответ посылает сообщение DHCP request с тем же самым IP адресом. C9 на следующем шаге сервер высылают подтверждающее сообщение DHCP ACK, куда еще раз включаются IP адрес. после этого клиент может использовать IP адрес для работы в сети. С10 проще всего запомнить процесс получения IP адреса по протоколу DHCP по первым буквам DHCP сообщений - DORA. С11 кроме тех сообщения которые мы рассмотрели есть и другие . сообщения NACK запрещает использование клиентом IP адреса который он запросил в DHCP request. сообщение RELEASE используется для освобождения IP адреса который уже не нужен клиенту. и сообщение DHCP inform используется для получения информации о сети если клиент уже знает свой IP адрес, и ему не надо получать его с помощью протокола DHCP. например адрес может быть сконфигурирован вручную. С12 может возникнуть вопрос - а зачем нам нужно четыре шага? ведь на первый взгляд вполне достаточно трех шагов. С13 DHCP server предлагают клиенту IP адрес, и клиент высылают сообщение с подтверждением что он действительно будет использовать этот IP-адрес, но с такой схемой есть две возможные проблемы. С14 первая проблема связана с тем что в сети может быть два DHCP и сервера и это допустимая ситуация. в этом случае сообщение DHCP Discover которое клиент посылает на широковещательный адрес получат оба сервера. оба сервера вылют сообщение DHCP OFFER - каждый вsiktn свой IP адрес который он под играет клиенту. но клиент должен будет выбрать только один IP адрес. этот IP-адрес он включить запрос DHCP request. этот запрос опять получат оба сервера, но ответит на него только тот, который опознал свой IP адрес. в нашем случае это server 2. он вышлет сообщение ACK. server 1 увидит сообщение DHCP request что клиент запрашивает не тот IP адрес который он предложил, поэтому он не будет послать сообщение DHCP ACK, а наоборот пометит адрес который он предлагал как неиспользуемый, и может предложить его другому клиенту. С15 другая проблема связана с возможностью ошибки при передаче IP адреса по сети. предположим что сервер отправил сообщение DHCP Offer с IP адресом, но при передаче по сети этот IP-адрес исказился. если бы мы использовали всего лишь три шага для получения IP адреса по протоколу DHCP, то у клиент выслал бы сообщение о подтверждении что он будет использовать IP адрес, С16 но вставил бы в него неправильный IP адрес, и клиент несмог бы узнать что тот IP адрес который он получил на самом деле является неправильным. С17 но так как на самом деле процесс состоит из четырех шагов, то сервер на последнем этапе вместо сообщения DHCP ACK отправляет сообщение DHCP NACK, в котором он говорит что у клиент не может использовать искаженный IP адрес. клиент после того как получил сообщение NACK должен подождать некоторое время, и после этого может начать процесс получения IP-адреса заново. С18 DHCP сервер может использовать два способа назначение IP адресов компьютерам. первый способ это фиксированный. в этом случае в конфигурации DHCP сервера для каждого MAC-адреса прописывается соответствующий ему IP адрес, который DHCP сервер должен выдавать клиенту. это удобно делать в небольшой сети где вы знаете MAC адреса всех компьютеров. но в крупный сети, или если вы не знаете MAC адреса всех компьютеров, это сделать невозможно. например если вы делаете сеть в кафе, куда люди приходят со своими ноутбуками, планшетами и смартфонами вы не можете знать заранее MAC-адреса. другой подход - динамический. в этом случае у DHCP сервера есть так называемый пул адресов. это диапазон адресов из которого DHCP сервер может взять любой IP адрес и назначить компьютеру. при этом DHCP server следит за тем чтобы один и тот же IP адрес из пула не был назначен двум компьютерам одновременно. C19 DHCP сервер выделяет IP адрес компьютеру на некоторое ограниченное время, которые называются временем аренды. по английский Lease Time - время аренды может быть разное. от нескольких минут до нескольких часов и нескольких суток. в зависимости от потребностей конкретной сети и конкретной организации. после того как время аренды закончилась IP адрес освобождаются, и DHCP сервер может отдать его другому клиенту. но что делать если текущий клиент хочет использовать этот IP-адрес дальше? для этого клиенту необходимо продлить аренду. обычно клиенты начинают это делать после того как пройдет половина времени аренды. для продления аренды используются специальные сокращенная процедура получения IP адреса. С20 так как клиент уже знаю свой IP адрес он сразу пересылает серверу сообщений DHCP REQUEST, в котором указывает этот IP-адрес. C21 если все нормально, то сервер в ответ высылают сообщению DHCP ACK, в котором подтверждает что у клиент может использовать этот IP-адрес дальше. С22 после того как компьютер перестал работать с сетью, например при выключении, ему необходимо сказать об этом DHCP серверу. для этого используются сообщение DHCP release. после получения такого сообщения DHCP сервер может отдать этот IP-адрес какому-нибудь другому компьютеру в сети. все современные операционные системы автоматически отправляют сообщение DHCP Release при выключении. никаких дополнительных действий от пользователя не требуется. если сообщение DHCP Release не будет отправлено, например в случае когда компьютер выключен некорректно, или произошел сбой в операционной системе, то DHCP сервер будет считать что этот адрес занят пока не закончится время аренды. и только после окончания времени аренды он может отдать этот IP-адрес другому компьютеру. С23 компьютеру для корректной работы в сети обычно нужен не только IP адрес. как правило нужно знать маску подсети и маршрутизатор по умолчанию. также очень хорошо узнать адреса серверов имен DNS. DHCP позволяет передавать эти и другие сведения о конфигурации сети с помощью так называемых опций. опции включаются в пакет DHCP и передаются вместе с IP адресом. кроме маски подсети и маршрутизатора по умолчанию обычно передаются адреса DNS-серверов, которые используются для разрешения имен, адреса серверов времени, какие-либо полезные локальные маршруты, а также другая конфигурационная информация. С24 если используете DHCP для назначения IP адресов в своей сети, то при планировании сети необходимо обращать внимание на то где расположен DHCP сервер. он должен располагаться в той же самой подсети что их клиенты которые будут получать IP адреса по протоколу DHCP. почему так происходит? С25 клиент DHCP при включении не знает где находится DHCP сервер и отправляет запрос DHCP Discover на широковещательный адрес. С26 его получают все компьютеры которые находятся в данной подсети, в том числе и DHCP сервер. С27 посмотрим что происходит если DHCP сервер находится в другой подсети, то есть отделен от клиента одним или несколькими маршрутизаторами. Клиент DHCP отправляет сообщение DHCP Discover на широковещательный MAC-адрес. С28 но маршрутизатор не передает широковещательный трафик, поэтому сообщение DHCP Discover не доходит до сервера DHCP. соответственно он не может выдать клиенту IP адрес. С29 для того чтобы решить эту проблему используются так называемые DHCP Relay - это специальная конфигурация маршрутизаторов, или маршрутизирующих коммутаторов, которая позволяет им передавать широковещательный трафик. но не весь, а только тот который относится к протоколу DHCP. если наш маршрутизатор способен работать в режим DHCP Relay, то он передаст сообщение DHCP Discover от клиента DHCP серверу который находится в другой сети. С30 и только в этом случае DHCP сервер может выдать адрес клиенту, который находится за маршрутизатором. С31 итак мы рассмотрели протокол DHCP который используются для автоматического назначения IP-адресов компьютерам в сети, а также другой конфигурационной информации. протокол DHCP использует архитектуру клиент-сервер, и работает в режиме запрос-ответ при котором клиент и сервер обмениваются между собой DHCP сообщениами. для того чтобы получить IP адрес используется четыре DHCP сообщения. сокращенно dora. DHCP сервер выдает IP адреса ненавсегда, а на ограниченный срок, который называются сроком аренды. и для того чтобы DHCP сервер мог выдавать IP адреса клиентам он должен находиться с ними в одной подсети, или необходимо использовать DHCP Relay на маршрутизаторах и коммутаторах. ¶
ВОПРОС 27 ПРОТОКОЛ ARP С2 расшифровывается как Adress resolution protocol или протокол разрешения адресов. в сети мы обычного взаимодействуем с компьютерами с помощью IP адресов или с помощью доменных имен которые службой DNS все равно преобразуются в IP адреса, но в реальности данные передаются с помощью какой-либо технологии канального уровня например ethernet. коммутаторы ethernet ничего не знает об IP-адресах и для передачи данных использует MAC-адреса. следовательно нам необходимо какое-то средство, которое позволяет пах IP адресу компьютера определить его MAC-адрес. С3 самое простое средство эта таблица соответствия мы создаем какую-то табличку в котором пишем IP адрес и соответствующий ему MAC-адрес. и такое средство действительно используются на практике например в linux такая табличка хранится в файле эти /etc/ethers. однако в крупной сети такой подход не работает. С4 протокол ARP который мы изучаем как раз и позволяет автоматически определить MAC адрес компьютера по его IP адресу. протокол ARP работает в режиме запрос ответ. С5 компьютер который хочет узнать MAC адрес по известному IP адресу направляет так называемый ARP запрос - у кого IP 192.168.10.43. С6 запрос отправляется на широковещательный MAC-адрес, С7 и этот запрос получают все компьютеры в сети. С8 тот компьютер который узнал в запросе свой IP адрес подготавливает и отправляет ARP ответ. в ответ включается IP-адрес компьютера и его MAC адрес. С9 отправитель ARP запроса получает ответ, извлекает из него MAC-адрес и использует его для передачи данных по технологии канального уровня. С10 сейчас мы рассмотрим формат ARP пакета. ARP разрабатывался как протокол общего назначения с возможностью применять его не только в ethernet, и не только для IP адресов. поэтому в начале ARP пакета идет служебная информация, которая позволяет определить с каким типом сетевого оборудования и с каким протоколом сетевого уровня мы работаем. первое поле тип сети говорит о том какое оборудование мы используем в сети. единица соответствует ethernet. второе поле - тип протокола. в нем указывается протокол сетевого уровня. 2048 означает IP. дальше идет длина адресов. длина локального адреса в нашем случае MAC-адреса шесть байт. длина глобального адреса - в нашем случае IP адреса четыре байта. следующее поле - код операции. единица соответствует ARP запросу, а двойка ARP ответу. и затем идет полезная информация алла локальных и глобальных адресах. указывается MAC-адрес и IP адрес отправителя для того чтобы получатель знал кому отправлять ответ. глобальный адрес получателя, IP адрес, локальный адрес получателя нам неизвестен - он заполняется нулями. С11 формат ARP ответа точно такой же. только в поле операции стоит значение 2 и адрес которые мы ищем находится в поле локальный адрес отправителя. С12 в модели взаимодействия открытых систем протокол ARP находится между канальным и сетевым уровнем. пакеты ARP вкладывается напрямую в кадры ethernet, без IP. С13 из-за того что ARP находится ниже сетевого уровня, пакеты ARP не проходят через маршрутизатор, таким образом с помощью ARP можно узнать только MAC адреса компьютеров которые находятся в одной подсети. а адреса компьютеров которые находятся в другой подсети, отделенной маршрутизатором узнать нельзя. почему так происходи? С14 ARP запрос отправляется на широковещательный адрес, который получают все компьютеры внутри сети. но широковещательный трафик не проходит через маршрутизаторы. С15 поэтому компьютеры в другой подсети за маршрутизатором ARP запрос не получат, и не смогут отправить на него ответ. С16 после того как MAC адрес получателя найден он кэшируется на компьютере отправителя в так называемый ARP таблице для того чтобы не запрашивать MAC-адрес каждый раз по протоколу ARP. таблица состоит из трех полей. первое поле это IP-адрес, второе соответствующим MAC-адрес, и третье поле это тип записи в таблице. есть два типа записи - статическая запись, это такая которая внесена в таблицу вручную. и динамическая - запись которая появилась в результате работы протокола ARP. динамические записи и имеют срок жизни после которого они удаляются. это нужно для того чтобы отслеживать изменения IP адресов в компьютерах. посмотреть ARP таблицы на компьютере можно с помощью команды arp минус a. С17 а какие возможны оптимизации ARP? ARP запрос отправляется на широковещательный адрес. его получают все компьютеры в сети. кроме IP адреса для которого необходимо получить MAC-адрес, в ARP запрос отправитель также включает свой IP адрес и свой MAC-адрес. эти данные могут быть записаны всеми компьютерами в сети в ARP таблицу для того чтобы использовать когда они понадобятся. другая оптимизация - так называемый добровольный или беспричинной ARP запрос это запрос по ARP собственного IP адреса. он используется для двух целей - первая цель это быстро и оповещение всех компьютеров в сети о том что у компьютера появился новый IP-адрес. другая цель - это проверка использования данного IP адреса другим компьютером. если на добровольный ARP запрос пришел ответ это значит что какой-то компьютер в сети уже используют этот IP-адрес, и назначать его компьютеру отправителя нельзя. С18 итак мы рассмотрели протокол ARP - адрес resolution protocol. протокол разрешения адресов который позволяют по IP адресу определить MAC адрес компьютера в сети. ARP работают в режиме запрос-ответ. запрос отправляется на широковещательный адрес, и его получают все компьютеры в сети. отвечают только тот компьютер, которую узнал свой IP адрес. и в ответ он вкладывает икомый MAC-адрес. результаты ARP запросов для повышения производительности кэшируются на стороне отправителя в ARP таблице. ¶
ВОПРОС 28 ПРОТОКОЛ ICMP С2 протокол ICMP расшифровывается как internet control message protocol. по-русски - протокол межсетевых управляющих сообщений. протокол IP, который используется для передачи данных на сетевом уровне, обеспечивает так называемый сервис передачи данных без гарантии доставки. если по пути передачи данных с пакетом что-то произойдет, то никаких действий не предпринимается. сообщение об ошибке не отправляется. попыток передать снова этот же пакет не предпринимается. информация о возникающих ошибках в сети передается не по протоколу IP, а по протоколу ICMP. также ICMP и может использоваться для диагностики работы в сети даже когда в ней не возникают ошибки. так как IP предоставляет сервис без гарантии доставки, то сообщения об ошибках ICMP не обязаны обрабатываться ни протоколом ICMP, ни протоколом IP. С3 рассмотрим формат пакета ICMP. первое поле в заголовке - тип сообщения. оно говорит о том, что произошло в сети. . какая ошибка или какое действие по диагностике пытаются выполнить. второе поле - код сообщения. в нем более подробно описывается тип ошибки, или ее причина, или диагностическое действие. дальше идет контрольная сумма, которая используется для проверки правильности доставки. следующие четыре байта - служебная информация, которая зависит от типа и кода сообщения. и в поле данных ICMP как правило включается фрагмент пакета при передаче которого произошла ошибка. С4 самое важное в пакете ICMP это тип. именно тип говорит о том что произошло в сети. есть два вида ICMP сообщений. первый вид это запрос-ответ. например тип 0 и тип 8 - это эхо ответ и эхо запрос, который используется для проверки доступности компьютеров в сети. а тип 13 и 14 запрос и ответ отметки времени. эти запросы используются для проверки быстродействия сети. другой вид - это просто сообщение без запроса. тип 3 это сообщение об ошибке - узел назначения недостижим. тип 5 - сообщение о новом маршруте, который позволяет быстрее попасть к необходимой сети. тип 9 - сообщения о маршрутизаторе. маршрутизаторы в сети периодически рассылают такие сообщения, чтобы компьютеры которые находятся в сети могли узнать какие есть маршрутизаторы. тип 10 - это запрос сообщения о маршрутизаторе, если компьютер только что подключился к сети он может не дожидаться периодического сообщения от маршрутизаторов, отправить такой запрос, и маршрутизатор сразу отправит ответ о себе. сообщение с типом 11 используется если маршрутизатор отбросил пакет время жизни которого истекло. как правило такая ситуация возникает если в сети появилось петля. сообщение с типом 12 - проблемы с параметрами, говорит о том что в заголовке IP какая-то ошибка, и маршрутизатор не может отправить такой пакет. С5 следующее поле в заголовке ICMP - это код сообщения. здесь представлено несколько возможных кодов для типа сообщения 3 - узел назначения недостижимым. какие могут быть причины? код 0 - сеть недостижима. код 1 - узел недостижим. код 2 - протокол недостижим. код 4 - ошибка фрагментации, и так далее. С6 большая часть пакетов ICMP формируется и отправляется автоматический сетевым оборудованием, но некоторые типы сообщений формируются утилитами которые применяются для диагностики сети. сейчас мы рассмотрим такие утилиты. это утилита ping и утилита traceroute (в windows tracert). C7 утилита ping используется для того чтобы проверить доступность компьютеров в сети/ возможно подключиться к этому компьютеру через сеть нельзя. ping используют так называемый эхо протокол ICMP. С8 компьютер который хочет проверить доступность другого отправляет эхо запрос. ICMP пакет тип сообщения 8 код 0. С9 компьютер, который получил такой запрос, в ответ отправляет эхо ответ с типом 0. если эхо ответ не пришел, значит установить с компьютером соединение по сети невозможно. С10 вот пример использования утилиты ping для проверки возможности подключиться к сайту вконтакте. по умолчанию утилита ping запускает 4е эхо запроса, и мы видим что для каждого эхо запроса получен эхо ответ. также в ответе указывается некоторая диагностическая информация. С11 следующая утилита которая использует в своей работе протокол ICMP это утилита traceroute. она позволяет определить маршрут от отправителя к получателю. под маршрутом имеется ввиду перечень всех маршрутизаторов через которые проходит пакет. С12 пример работы утилиты traceroute и windows варианта tracert и для определения маршрута к сайту в контакте. перечень маршрутизаторов указан спарва. C13 как утилита traceroute узнает маршрутизаторы? для этого утилита используют ICMP сообщение - время жизни истекло. чтобы этого достичь сначала отправляется сообщение у которого время жизни установлено в единицу. С14 пакет доходит до первого маршрутизатора, маршрутизатор уменьшает время жизни, время жизни становится нулевым, маршрутизатор отбрасывает пакет. С15 и генерирует сообщение об ошибке ICMP с типом 11 код 0 - время жизни истекло. С16 утилита traceroute из заголовка IP пакета, в которого вложен ICMP, извлекает IP адрес маршрутизатора. С17 на следующем этапе отправляется пакет с временем жизни равным двум. С18 на первом маршрутизаторе время жизни уменьшается до единицы, и пакет переходит на второй маршрутизатор. С20 Второй маршрутизатор снова уменьшает время на единицу, время жизни становится нулем, С21 пакет отбрасывается и уже второй маршрутизатор отправляет сообщение - время жизни истекло. утилита traceroute извлекает адрес второго маршрутизатора из заголовка этого сообщения. и так происходит до тех пор пока пакет не дойдет до узла назначения. С22 итак мы рассмотрели протокола ICMP - internet control message protocol протокол межсетевых управляющих сообщений. ICMP используется для сообщения об ошибках которые происходят в сети и для тестирования работоспособности сети. следует отметить что сообщение об ошибках которые передают ICMP не обязан обрабатывать ни протокол IP, ни протокол ICMP. в заголовке ICMP самыми важными полями является тип сообщения, которое говорит какая ошибка произошла в сети, или какое диагностическое действие нужно сделать. и код сообщения, который содержит дополнительную информацию о причине ошибки, или подробности о диагностике сети. протокол ICMP используется в утилитах ping и traceroute ¶
