Как на самом деле передаются биты по сетевому кабелю?

Вот есть длинная цепь кабелей, соединяющих ПК рядового пользователя и сервер YouTube. Соответственно если пользователь сидит в Таганроге, то биту информации придётся пройти кучу проводов, где-то медных, где-то ещё каких.
В некоторых источниках говорится, что биты упаковываются в виртуальный контейнер (пакет) и летят к адресату. Но тут то и возникает большой вопрос. Что из себя представляет этот контейнер? Как можно передать контейнер, если провод передаёт лишь 2 состояния: есть сигнал или нет сигнала.
И вот еще схожий вопрос. Допустим расстояние кабеля 1.000 км. Вот мы выпустили бит (единицу) по этому кабелю в виде "есть сигнал". Значит на всей протяженности кабеля в 1 тысячу км "есть сигнал"? А через наносекунду мы пускаем второй бит (ноль) "нет сигнала", то и на всей протяженности нет сигнала? Иначе говоря, как один и тот же проводник одновременно может иметь напряжение и не иметь?
  • Вопрос задан
  • 14817 просмотров
Решения вопроса 3
pi314
@pi314
Президент Солнечной системы и окрестностей
Наличие-отсутствие сигнала в проводе было во времена телеграфных аппаратов, т.е. примерно лет двести назад. С тех пор много чего изменилось. В современном сетевом кабеле (возьмем для примера только медь), по кабелю передаются импульсы с частотой 100, 250, 500 и более МГц, причем, не по одной, а по 2, 4 или даже 6 парам. (Вообще-то, там все несколько сложнее, но для понимания сути вполне достаточно считать пары параллельными линиями передачи.) Принято говорить о парах проводов, т.к. не бывает уровня (потенциала), самого по себе; уровень - он всегда относительно чего-то другого, например, в одном проводе относительно другого провода. Отсюда пары, а почему они называются витыми - гуглить самостоятельно. Передаваемый сигнал промодулирован т.н. Импульсно-Амплитудной модуляцией (PAM), т.е. передающая и принимающая стороны различают 3, 5 или даже 16 разных уровней сигнала, которыми, грубо говоря, и закодированы соотв. биты.

66e6c58266524ec6bb132fb384638d75.jpg

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

Теперь о скорости и расстоянии. Скорость распространения сигнала в проводнике на уровне школьной физики (если там, конечно, сейчас об этом вообще рассказывают) принято считать равной скорости света в вакууме, около 3m за 1 ns, но на практике она меньше, т.к. проводник не идеален и, как правило, находится не в вакууме, а в изоляции из диэлектрика. Привносимая диэлектриком паразитная емкость снижает скорость распространения сигнала в проводнике (не путать со скоростью распространения поля!) Но те, кто не прогуливал физику с математикой, вполне могут прикинуть порядок цифр для проводника длиной 1000км, как для поезда, идущего из А в Б или даже "расстояние" между двумя соседними битами, передаваемыми по одной паре :)

Правда, полученые таким нехитрым рассчетом результаты (пусть даже с учетом волновых характеристик кабеля) все еще далеки от реальности для расстояний в тысячи км, т.к. даже в самом лучшем кабеле такой длины вся энергия сигнала передающей стороны превратилась бы в тепло и излучение, и принимающей стороне осталась бы только дырка от бублика. Длина реального сетевого кабеля между двумя устройствами (витая пара!), грубо говоря, не может превышать 100м. Дальше сигнал попадает в другое устройство, которое вносит свои задержки, и т.д. и т.п. от Таганрога, и до самого Ютюба. Конечно, не все эти устройства соединены медью, но мы не станем вдаваться в тонкости распространения света в разных оптических средах, и радиоволн в ионосфере, чтоб у среднестатистической аудитории Тостера ненароком не снесло крышу. Тут важно только то, что на практике мы имеем уже не ns, а десятки, сотни и более ms задержки.

Это было даже не введение, а популярно-упрощенная шпаргалка на тему того, "как биты идут по проводам", или, выражаясь проще, что происходит в сети на уровне 1 семиуровневой модели ISO/OSI. Пакеты, а также фреймы, датаграммы и пр. абстрактные договоренности о том, как именно считать биты - это уже из другой оперы, точнее, на других уровнях, причем, на каждом свои, и одни в других. Учитывая то, что внутри процессора и памяти (где мы имеем дело с данными из этих пакетов) происходит все то же самое, что и в кабеле, на любом уровне модели вполне корректно считать, что пакет этого уровня доставляется "единомоментно".
Ответ написан
@0x131315
Интернет - это целый мир. Этот мир состоит из миллиардов узлов, соединенных между собой линиями связи - это и есть сеть. Некоторые линии связи тонкие, они соединяют несколько узлов, например несколько компьютеров в здании, или несколько зданий в локальную сеть, некоторые средние - они соединяют одни подсети с другими подсетями, например несколько локальных сетей в пределах города, некоторые - очень толстые, магистрали, они соединяют целые сегменты сети, города, страны, и даже целые материки.
Для того, чтобы разобраться во всех этих миллиардах связей, чтобы понять, кому и что отправлять, давно, еще за тысячи лет до интернета, придумали такую вещь, как маршрутизация.

Что такое маршрутизация?
Маршрутизация - это принцип, определяющий кому передать то или иное сообщение. Он довольно прост: если ты видишь получателя - передай сообщение ему, если не видишь, но знаешь того, кто видит - передай сообщение ему, если не видишь и не знаешь того, кто видит - передай сообщение узлу уровнем выше, дефолтному шлюзу, может быть он сумеет найти получателя.
Таблица маршрутизации - список узлов, которые ты видишь, а также узлов, известных тебе, которые видят кого-то еще. Также в таблицу маршрутизации входит адрес вышестоящего узла - шлюза по умолчанию, на случай если ты не будешь знать, кому еще передать сообщение.
Сообщений на узлах скапливается много, поэтому их упаковывают в контейнеры, и отправляют сразу по много штук. В сети такие контейнеры - протоколы, пакеты же - мельчайшие единицы информации, атомы, с которыми эти протоколы работают. В реале - это транспортные контейнеры размером с трейлер, а пакеты - мешки с письмами.
Узел - любое устройство, подключенное к сети, имеющее заполненную таблицу маршрутизации, т.е. имеющее возможность участвовать в пересылке сообщений. Это не только серверы, аппаратные маршрутизаторы, но и даже твой компьютер.
Отправители и адресаты же - конкретные приложения, работающие на твоем и других компьютерах, за которыми закреплены определенные номера портов. Именно по номерам портов и идет идентификация отправителей и получателей, номера портов - это адреса отправителей и получателей

Представь, что тебе надо отправить письмо в другую страну. Письмо - это сообщение.
Ты пишешь его, опускаешь в почтовый ящик, его забирает почтальон, доставляет на почту. На почту поступают письма от всех жителей района, все они сваливаются в одну большую кучу, и разбираются сортировщиками. Сортировщики - те, кто проверяет письма по таблице маршрутизации.
Сортировщики, ориентируясь на индекс, разбирают кучу на две части: локальные сообщения и внешние.
Локальные - предназначенные жителям того же района, почтовое отделение знает, где находятся получатели. Это так называемый localhost. Позже эти сообщения еще раз разбираются по домам: каждый дом обслуживает свой почтальон, он просто берет пачку писем для своих домов и разносит по адресам.
Внешние - почтовое отделение не знает, где находятся получатели, поэтому отправляется эти сообщения машиной на дефолтный шлюз почтового отделения, городской почтовый узел, где они точно также все складываются в одну кучу, которую точно такие же сортировщики разбирают на те же две кучи: локальные сообщения и внешние.
Локальные сообщения позже делят на несколько кучек - по одной на каждое почтовое отделение города, их заберут машины этих почтовых отделений, когда доставят новую порцию исходящих писем. Несколько локальных кучек - городской почтовый узел знает тех, кто знает, где находятся получатели - другие городские почтовые отделения.
Внешние - на две больших группы: сообщения для тех городов, с которыми у этого города налажено регулярное почтовое сообщение - эти сообщения отправляются непосредственно в город, где живет получатель. Все остальные сообщения - их неизвестно куда отправить, поэтому они отправляются на дефолтный шлюз городского почтового отделения - в главпочтамп, в Москву.
В Москве - центральный сортировочный узел, который имеет связь не только с другими городами и областями, но и с другими странами. Поэтому там письма сортируются на гораздо большее количество кучек, и каждая отправляется в свою сторону.
Москва также - пограничный шлюз, шлюз между двумя разными сетями, например локальной сетью и городской, или между медью и оптикой, или между городами или материками, в реале - между разными странами.
На пограничных шлюзах, помимо маршрутизации, осуществляется также конвертация сообщений - преобразование их из одного вида в другой, например из электричества в свет, или меняется адресация подсети, сам формат адресов или же просто смена номера подсети, в реале - проставляется международный штемпель. Также на пограничных шлюзах может идти перепаковка сообщений из одного контейнера в другой, например вместо автомобилей - погрузка на поезд, корабль, или самолет.
Таким вот образом сообщение попадает на другой пограничный шлюз - центральное почтовое отделение страны назначения, откуда, сверяясь по индексам на конверте, отправляется в городское отделение города назначения, откуда переправляется в отделение с указанным индексом (читай - на компьютер получателя), откуда уже почтальон доставляет его непосредственно получателю - передается в конкретный порт, который слушает приложение, которому предназначено это сообщение.
Ответ написан
Комментировать
@throughtheether
human after all
Как на самом деле передаются биты по сетевому кабелю?
В честь первого апреля открою вам страшную тайну, а в случае нашествия апологетов ISO/OSI ("на физическом уровне биты, потому что так написано в стандарте/Олифере") скажу, что это шутка.

Биты по кабелю не передаются. Их вообще в компьютере нет. Их нет на экране - там пиксели, их нет на жестком диске - там намагниченность поверхности, их нет в оперативной памяти - там заряд конденсатора. Биты (байты) - это абстракция, упрощающая разработку протоколов взаимодействия устройств. Вместо того, чтобы требовать "при падении интенсивности излучения менее такого-то порога подать на выход такое-то напряжение", оперируют битами и байтами (хотя люди, разрабатывающие трансиверы/PHY, этой роскоши лишены).

Итак, биты по кабелю не передаются, по кабелю (точнее, в среде) передаются сигналы. Каждому типу среды - свой сигнал. В электрическом кабеле сигнал представляет собой изменение тока или напряжения во времени. В оптоволоконном - изменение интенсивности излучения во времени. При передаче при помощи радиоволн - изменение напряженности электрического и магнитного полей или же наведенного в антенне тока во времени.

Далее, при помощи различных видов модуляции (modulation, keying) можно поставить в соответствие группу бит (абстрактных двоичных циферок, придуманных для удобства) некоему "кусочку" (иногда используют термин "чип", "chip") сигнала определенной формы. Допустим, биты 00 представляются как напряжение +5 вольт в течение установленного периода, 01 - +2.5 вольт, 10 - -2.5 вольт, 11 - -5 вольт. Если при этом в этот же период на кабель наведена внешняя помеха или другой трансивер передает по этой же линии, то напряжения просто-напросто сложатся (например, будет +5.1 вольт вместо +5). Тогда перед принимающим трансивером встает задача - из наблюдаемого сигнала сложной формы извлечь и обработать установленный паттерн. Это к вопросу "как один и тот же проводник одновременно может иметь напряжение и не иметь?". Более того, некоторые трансиверы отправляют сигналы по тому же каналу и в то же время, что и принимают (1000BASE-T, по-моему), то есть в кабеле наблюдается "каша" из двух передаваемых сигналов одновременно, что решается путем применения различных DSP-алгоритмов. Именно поэтому, если не ошибаюсь, нет внятного способа снять дамп трафика с гигабитной Ethernet-линии на витой паре при помощи пассивного устройства.

Если что-то непонятно объяснил или остались еще вопросы, готов пояснить.
Ответ написан
Пригласить эксперта
Ответы на вопрос 6
@n3k0
Сетевая модель ISO/OSI подробно расскажет об этом. Возможно даже с картинками.
Ответ написан
Комментировать
ifaustrue
@ifaustrue
Пишу интересное в теллеграмм канале @cooladmin
Если это троллинг - то я аплодирую стоя! =)

ОТВЕТ ТАКОЙ: никто мать его не знает как это работает! Это магия! Реально! Все лишь делают вид, говорят про всякие там модели, среды передачи, но это всё фигня! МАГИЯ!!

www.youtube.com/watch?v=Hu6MVnwPClA
Ответ написан
Комментировать
edinorog
@edinorog
Троллей не кормить!
ужас нах! мой мозг взарвалсо на середине вопроса. вызовите мне санитаров.
Ответ написан
Комментировать
@luxter
Почитайте у Олифера в книге по сетям устройство физических соединений, там всё подробно написано.
Ответ написан
Комментировать
Spetros
@Spetros
IT-шник
Сеть интернет состоит из множества сетей, современные сети используют технологию коммутации пакетов. Единовременно пакет существует лишь на небольшом участке сети, после прихода на маршрутизатор он передается в следующую сеть(сегмент сети).

Насчет пакетов, есть такое понятие как Инкапсуляция.

Рекомендую взять почитать книжку "Компьютерные сети. Принципы, технологии, протоколы" авторов: Виктор Олифер, Наталия Олифер.
Ответ написан
Комментировать
@ColdSpirit
Насколько я знаю, "ноль" - это не отсутствие сигнала, а просто меньший брат "единицы". Тоесть это тот же сигнал, но с меньшим зарядом, ну или как-то так.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы