Физический аспект сетевых портов

Физический аспект сетевых портов

Я наткнулся наЭта статьяв которой, в отличие от любой двусмысленной статьи, которую я читал, утверждается, что мой

«Сетевой кабель толщиной с карандаш (или беспроводной сетевой адаптер) на задней панели вашего компьютера содержит внутри себя 65 536 микроскопических проводящих путей».

Мне всегда говорили, что порт — это просто номер (а не провод), используемый для различения различных виртуальных соединений друг от друга, поэтомукак эти два объяснения могут сосуществовать??

  • Кроме того, это не может означать, что часть сетевого кабеля не используется для передачи сигналов, когда порт не используется, не так ли?

В статье также говорилось, что

пакеты должны останавливаться на каждом узле сети и:

  1. Найдите открытый порт,
  2. Пройти идентификационный тест, который позволит пройти через этот порт, а если нет,
  3. Двигайтесь к следующему порту и повторяйте попытки, пока не будет разрешен проезд через пункт взимания платы.
  • Я думал, что пакеты содержат определенный порт назначения, так зачем же им искать новый открытый порт?
  • Наконец, что нужно, чтобы пройти тест на идентификацию?

решение1

Мне всегда говорили, что порт — это всего лишь номер (а не провод), используемый для различения различных виртуальных соединений. Так как же эти два объяснения могут сосуществовать?

Процитированный вами абзац перегруженметафоры. На транспортном уровне портыявляютсяпросто числа в пакетах; они не являются физическими.

Физический, или «связующий», уровень не знаетчто-либони о портах TCP/UDP, ни об IP-адресах — он лишь передает последовательность битов с одного конца на другой.

Кроме того, это не может означать, что часть сетевого кабеля не используется для передачи сигналов, когда порт не используется, не так ли?

Нет. Кабель используется совершенно одинаково, независимо от того, одно у вас соединение или двадцать. В проводных сетях Ethernet всего четыре пары проводов — две пары в старых кабелях; определенно не 65536; все они используются одновременно.

В статье также говорилось, что <...> Я думал, что пакеты содержат определенный порт назначения, так зачем же им искать новый открытый порт?

На данном этапе статья медленно переходит грань между «метафорой» и « чушью».

Номера портов TCP назначаются при установлении соединения и используются только двумя концами этого соединения. Между тем, маршрутизация происходит на уровне «интернета», используя только IP-адреса и не обращая никакого внимания на данные, содержащиеся в IP-пакетах, или изменяя их каким-либо образом.

(Единственным исключением является случай, когда выполняется NAPT, например, вашим домашним маршрутизатором, чтобы несколько компьютеров совместно использовали один IP-адрес. В этом случае пакеты, полученные вашим компьютером, могут иметь другие номера портов TCP или UDP, чем те, которые были отправлены изначально.)

Тест идентификации может быть ссылкой на сетевые брандмауэры. Но тогда пакеты, заблокированные правилом брандмауэра, будутнет«отправиться на поиски следующего порта»; их просто отбрасывали.

решение2

Статья написана ужасно. Она использует метафорический язык и "популярные знания", чтобы попытаться объяснить сетевые концепции. Существует 65 536 адресуемых портов, но они не существуют как физическая оптоволоконная жила или что там еще пытается описать статья. Количество доступных портов выводится несколько произвольно (16-битное целое число, вероятно, имело смысл в свое время) и, вероятно, стандартизировано в RFC.

Я не эксперт по сетям, но я почти уверен, что сетевое оборудование (коммутаторы и т. д.) использует правила типа брандмауэра, чтобы определить, следует ли пересылать трафик на определенном порту по линии (например, ваш интернет-провайдер может заблокировать трафик на порту, используемом Bittorrent, или ваш домашний маршрутизатор может заблокировать порт для ping).

решение3

«Сетевой кабель толщиной с карандаш (или беспроводной сетевой адаптер) на задней панели вашего компьютера содержит внутри себя 65 536 микроскопических проводящих путей».

TCP отвечает за разделение трафика по портам на обоих концах и частично абстрагирует понятие одного из многих мультиплексированных «соединений» на последовательной среде. TCP использует понятие «сокета», которое является исходным IP+портом и конечным IP+портом. Несколько сокетов могут существовать на одной и той же среде, но стек TCP/IP на другом конце рассортирует их, и трафик на двух сокетах не будет смешиваться друг с другом. Так что это, в некотором смысле, путь.

TCP и UDP используют понятие портов и сокетов. Другие протоколы, такие как IP нижнего уровня, этого не делают. Не все, что выходит из сетевого интерфейса, должно быть TCP или UDP.

пакеты должны останавливаться на каждом узле сети и:

Найдите открытый порт, пройдите идентификационный тест, который позволит проехать через этот порт, а если нет, перейдите к следующему порту и повторите попытку, пока не будет разрешен проезд через пункт пропуска.

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

Возможно, вышеизложенное описывает часть протокола более высокого уровня. Мне нужно больше контекста, чтобы полностью понять приведенное выше утверждение.

Связанный контент