> For the complete documentation index, see [llms.txt](https://linkmeup.gitbook.io/sdsm/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://linkmeup.gitbook.io/sdsm/2.-switching/00-teoriya/05-put-paketa.md).

# Путь пакета

Теперь проследим нелёгкий путь кадра.\
Состояние покоя сети — утопия.

<figure><img src="https://3903873742-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LIgRTPaaN7wUujKIWEz%2Fuploads%2Fgit-blob-773a4756990c0e22fe3558f6a231c94f22549044%2FDSCF6048.%D0%BC%D0%B0%D1%81%D1%88%D1%82%D0%B0%D0%B1%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5.jpg?alt=media" alt=""><figcaption></figcaption></figure>

Вы пытаетесь пропинговать, например, адрес соседнего компьютера командой **ping 192.168.1.118**. Данные этого приложения показаны фиолетовым параллелепипедом.

<figure><img src="https://3903873742-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LIgRTPaaN7wUujKIWEz%2Fuploads%2Fgit-blob-0c25cfeba132f80449116c8795355e4d5f5213a6%2FDSCF6049.%D0%BC%D0%B0%D1%81%D1%88%D1%82%D0%B0%D0%B1%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5.jpg?alt=media" alt=""><figcaption></figcaption></figure>

За это отвечает протокол [ICMP](http://ru.wikipedia.org/wiki/ICMP). В него инкапсулируется информация от приложения — это означает, что к данным 5-го уровня добавляется заголовок со служебной информацией 4-го уровня.

<figure><img src="https://3903873742-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LIgRTPaaN7wUujKIWEz%2Fuploads%2Fgit-blob-0f566068c215ac82f3d29d11cb7af4299b712d0a%2Ff7bdff454e14f2a19e2af08974f33bbf.jpg?alt=media" alt=""><figcaption></figcaption></figure>

Его данные упаковываются (инкапсулируются) в IP-пакеты, где в заголовке указан IP-адрес получателя (192.168.1.118) и IP-адрес отправителя — логические адреса.

<figure><img src="https://3903873742-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LIgRTPaaN7wUujKIWEz%2Fuploads%2Fgit-blob-1467793378483ea685db05ea777a2b9b9329a940%2FDSCF6051.%D0%BC%D0%B0%D1%81%D1%88%D1%82%D0%B0%D0%B1%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5.jpg?alt=media" alt=""><figcaption></figcaption></figure>

А затем всё это инкапсулируется в Ethernet-кадры с MAC-адресами отправителя и получателя — физическими адресами.

<figure><img src="https://3903873742-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LIgRTPaaN7wUujKIWEz%2Fuploads%2Fgit-blob-6069b31362b1bf8f84990602f8a704c5b5b9c12c%2Fa016ccafd998fe772fa06d324783047b.jpeg?alt=media" alt=""><figcaption></figcaption></figure>

При формировании кадров в заголовке в качестве MAC-адреса источника (source) подставляется адрес вашего компьютера, а адресом получателя (destinantion) будет MAC-адрес компьютера — владельца IP-адреса 192.168.1.118 (о механизмах такого преобразования поговорим в следующий раз). То есть если бы вы смогли сфотографировать кадр, то вы бы увидели все эти данные в разрезе, так сказать.

На самом деле, нет ничего проще: запускаете какой-нибудь анализатор трафика, например, замечательный [Wireshark](http://www.wireshark.org/) и [Ethereal](http://www.ethereal.com), на своём компьютере и пингуете другой хост. Вот такую картину вы сможете лицезреть:

<figure><img src="https://3903873742-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LIgRTPaaN7wUujKIWEz%2Fuploads%2Fgit-blob-c4d5e53472ba649a6242686d9e12b52c53b5eeb5%2Fdump_524021.png?alt=media" alt=""><figcaption></figcaption></figure>

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

В последнюю очередь сетевая карта вашего компьютера дробит фрейм на биты и отправляет их в кабель.

<figure><img src="https://3903873742-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LIgRTPaaN7wUujKIWEz%2Fuploads%2Fgit-blob-cbafcc86753fe12d85b704b2bbbe01d396b03de0%2FDSCF6055.%D0%BC%D0%B0%D1%81%D1%88%D1%82%D0%B0%D0%B1%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5.jpg?alt=media" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3903873742-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LIgRTPaaN7wUujKIWEz%2Fuploads%2Fgit-blob-36fbb978c03e8c52dbce1fc3151a749bebc11319%2FDSCF6056.%D0%BC%D0%B0%D1%81%D1%88%D1%82%D0%B0%D0%B1%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5.jpg?alt=media" alt=""><figcaption></figcaption></figure>

Коммутатор из поступивших битов собирает первоначальный кадр

<figure><img src="https://3903873742-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LIgRTPaaN7wUujKIWEz%2Fuploads%2Fgit-blob-808c5ddd02a62f75f3cfc839707c542ba7120da1%2FDSCF6053.%D0%BC%D0%B0%D1%81%D1%88%D1%82%D0%B0%D0%B1%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5.jpg?alt=media" alt=""><figcaption></figcaption></figure>

Далее начинается интеллектуальный труд: из заголовка извлекается адрес получателя, перетрясается таблица MAC-адресов на предмет совпадения и, как только оное найдено, кадр без изменений отправляется в указанный порт. Если же адреса пока ещё нет или кадр пришёл широковещательный, то он направляется на все порты, кроме того, откуда пришёл.

Если адреса отправителя в таблице до сих пор не было, то в этот момент коммутатор добавит его.\
Естественно, кадр опять передаётся в виде битов — это закон электроники, и вы должны просто всегда иметь это в виду.

<figure><img src="https://3903873742-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LIgRTPaaN7wUujKIWEz%2Fuploads%2Fgit-blob-36fbb978c03e8c52dbce1fc3151a749bebc11319%2FDSCF6056.%D0%BC%D0%B0%D1%81%D1%88%D1%82%D0%B0%D0%B1%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5.jpg?alt=media" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3903873742-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LIgRTPaaN7wUujKIWEz%2Fuploads%2Fgit-blob-f293631e57b1b3a5ebd37585c96f2e29204e44b6%2FDSCF6057.%D0%BC%D0%B0%D1%81%D1%88%D1%82%D0%B0%D0%B1%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5.jpg?alt=media" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://3903873742-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LIgRTPaaN7wUujKIWEz%2Fuploads%2Fgit-blob-9ae6b76391bfdc399a94ae6fbffe75ca8926b928%2FDSCF6054.%D0%BC%D0%B0%D1%81%D1%88%D1%82%D0%B0%D0%B1%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5.jpg?alt=media" alt=""><figcaption></figcaption></figure>

Далее он сравнивает MAC-адрес получателя со своим и, если они совпадают, то заголовок второго уровня отбрасывается, а IP-данные передаются на обработку вышестоящему протоколу. Если адреса не совпадают, то кадр отбрасывается вместе со всем содержимым.

<figure><img src="https://3903873742-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LIgRTPaaN7wUujKIWEz%2Fuploads%2Fgit-blob-8e8db191803edc975583874fde2cb664a7824d55%2FDSCF6059.%D0%BC%D0%B0%D1%81%D1%88%D1%82%D0%B0%D0%B1%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5.jpg?alt=media" alt=""><figcaption></figcaption></figure>

Далее сравниваются IP-адрес получателя и этого устройства. Если совпадают, то заголовок сетевого уровня отбрасывается, и данные передаются транспортному уровню (ICMP)

<figure><img src="https://3903873742-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LIgRTPaaN7wUujKIWEz%2Fuploads%2Fgit-blob-74d40bea81d0bcae51715950a1de1c26fe80a2ce%2FDSCF6060.%D0%BC%D0%B0%D1%81%D1%88%D1%82%D0%B0%D0%B1%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5.jpg?alt=media" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3903873742-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LIgRTPaaN7wUujKIWEz%2Fuploads%2Fgit-blob-8877dc13d2569dfc61e59869400f326a5e1a5e7f%2FDSCF6061.%D0%BC%D0%B0%D1%81%D1%88%D1%82%D0%B0%D0%B1%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5.jpg?alt=media" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3903873742-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LIgRTPaaN7wUujKIWEz%2Fuploads%2Fgit-blob-5acec0df9868cce84fdc19d3df5235618c993b54%2FDSCF6062.%D0%BC%D0%B0%D1%81%D1%88%D1%82%D0%B0%D0%B1%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5.jpg?alt=media" alt=""><figcaption></figcaption></figure>

Конечный хост обработал ICMP-запрос (echo-request) и готов послать ICMP-ответ (echo-reply) вашему компьютеру с адресом 192.168.1.131 и далее пункты 1-3 повторяются уже для нового кадра

То, о чём мы писали до сих пор — это принцип работы любого коммутатора. Так делают даже простые длинки за 300 рублей.
