Я знаю, что на канальном уровне есть Ethernet, Token Ring, FDDI и т. Д.,
но как узнать точный протокол, используемый для выполнения конкретной задачи, например, просмотра веб-страницы?
Сначала вы должны понять то, в чем может помочь модель OSI:
Протоколы, о которых вы говорите, являются протоколами приложений и обрабатываются на уровне приложения, содержимое этого уровня инкапсулируется и передается на уровень сразу после него (презентация) и так далее. Таким образом, каждому слою нужно только знать, в каком формате слои напрямую связаны с ним.
Это означает, что протоколы приложений, такие как FTP, HTTP и т. Д., На самом деле не распознаются канальным уровнем, канальный уровень заботится только об MAC-адресах и взаимодействует с сетевым и физическим уровнями.
Если вы хотите знать, какой уровень или какой протокол используется для чего-либо, вы можете бороться с длинными списками IANA или использовать Википедию. упрощенный список протоколов.
Есть уловки, чтобы реконструировать то, что мощь продолжаться. Зависит от того, пытаетесь ли вы посетить веб-страницу или выполнять разведку.
Не существует однозначного способа отслеживания носителей, используемых на пути передачи TCP / IP, протокол был специально разработан для абстрагирования этого пути от протоколов более высокого уровня. Иногда подсказки можно почерпнуть, исследуя такие вещи, как размер MTU, поскольку некоторые среды передачи используют немного разные MTU, но более модные маршрутизаторы будут повторно собирать пакеты, чтобы скрыть даже такой объем информации.
Лучше всего проложить маршрут следа вдоль пути. Иногда имена, которые телекоммуникационные компании дают переходам, могут сказать вам, что это за ссылка, и оттуда достаточный поиск в Google может иногда дать вам, какой тип медиа-пути может быть вдоль этого сегмента.
Имейте в виду, что медиа-перевод все это скрывает. В одном моем запоминающемся случае устранения неполадок десять лет назад один сегмент Ethernet переводился 3 раза между переходами (Маршрутизатор -> Волоконно -> витая пара -> толстая сеть -> витая пара -> распределительный коммутатор), который был невидимым при взгляде. у пакетов; Единственным признаком того, что это происходило, были задержки между пакетами и время приема-передачи, и даже тогда требовалось свериться с сетевой документацией, чтобы точно выяснить, что происходит. Еще хуже, когда речь идет об Интернет-общении.
Не существует очевидного и надежного способа определить базовый транспорт, используемый для подключения вас к веб-странице. Иногда traceroute дает подсказки ... например, когда я отправляю трассировку в Google, я вижу:
Кроме того, знать, перемещаются ли ваши биты по сети ATM, SONET, DOCSIS, DWDM и т. Д., Интересно, но не очень важно.
Я добавлю свой ответ, возможно, с другой точки зрения.
Посмотрите на модель OSI в ответе coredump.
Это слой «Сеть» (уровень 3 снизу вверх). В его обязанности входит перемещаться по беспорядку сетей и маршрутизаторов в Интернете и «находить способ» добраться до пункта назначения. Пакет уровня 3 обычно остается неизменным на всем пути от отправляющего устройства к принимающему компьютеру (пожалуйста, не обращайте внимания на некоторые незначительные изменения на этом пути). Зачем? Потому что это его задача: заставить две конечные точки связи достичь друг друга, пересекая разные и многочисленные сети.
Протокол уровня 2, «Канал передачи данных» (и кадры, созданные с использованием этого протокола), выполняет совсем другую работу. Его задача - заставить две сетевые карты (NIC) общаться друг с другом. в той же сети. Когда ваши сообщения (пакеты внутри фреймов) отправляются с вашего компьютера в вашу домашнюю сеть и достигают следующего сетевого адаптера (я полагаю, на маршрутизаторе), кадр уровня 2 отбрасывается, и проходят только пакеты уровня 3 и выше. На другой стороне маршрутизатора создается еще один новый кадр уровня 2, возможно построенный в соответствии с другим протоколом, содержащий исходный пакет уровня 3.
Допустим, у вас есть домашняя сеть и подключение к Интернету ADSL. Если вы хотите просмотреть facebook.com, ваш компьютер всегда будет генерировать IP-пакет (уровень 3), который всегда будет инкапсулирован внутри кадра Ethernet (уровень 2). Протокол не меняется, это всегда Ethernet. Этот фрейм (содержащий пакет) будет перенесен синими кабелями к вашему маршрутизатору. На маршрутизаторе, который все еще находится в вашем доме, ваш Ethernet-фрейм будет отброшен, и IP-пакет будет инкапсулирован в другой кадр уровня 2, но на этот раз в кадр ADSL, а не в Ethernet!
Каждый раз, когда вы меняете сети (и вы часто меняете сети, путешествуя по морю Интернета!), Этот фрейм Уровня 2 отбрасывается и создается другой.
Так что вам бессмысленно спрашивать "как узнать точный протокол, используемый для выполнения конкретной задачи, например, просмотра веб-страницы", потому что протоколы уровня 2 даже не знают, что такое веб-страница. Их задача - принять IP-пакет и передать его от NIC a к NIC B в той же сети. И какой протокол уровня 2 использовать, зависит от сети. , а не в приложении (это работа протоколов уровня 7).
Резюме:
- Протоколы уровня 2 (Ethernet, FDDI и т. Д.) Связаны с используемой физической сетевой технологией.
- Протоколы уровня 3 (сегодня в основном IP) связаны с путём достижения пункта назначения.
- Пакеты уровня 3 перемещаются внутри кадров уровня 2.
- Пакеты уровня 3 переживают весь путь, кадры уровня 2 умирают на каждом маршрутизаторе по пути - и на вашем пути есть несколько маршрутизаторов.
- Оба уровня протоколов, 2 и 3, не обращают внимания на то, что делает приложение. Они просто не знают!
- Если вы хотите знать, какие протоколы используются для какого приложения, вы должны изучить протоколы уровня 4 (транспортный) и уровня 7 (приложение).
Резюме: если вы находитесь дома, ваше оборудование (кабели, сетевые адаптеры, маршрутизатор), вероятно, является Ethernet, поэтому кадры всегда будут оставлять ваш компьютер как Ethernet, независимо от того, что вы делаете (просмотр, FTP, потоковая передача, чат и т. Д.) . Так что ваш вопрос даже не имеет смысла.