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