Почему создатели интернет-протокола решили использовать IP-адреса для идентификации конкретного компьютера? [закрыто]


10

Почему создатели интернет-протокола решили использовать IP-адреса для идентификации конкретного компьютера?

Почему бы просто не иметь уникальный идентификатор, назначенный каждому компьютеру при изготовлении, а затем использовать этот идентификатор для идентификации компьютера?


3
Там нет никакого способа, который бы работал в реальном мире ...
Раду Мурзеа


12
@JerryRockwell Вы понимаете, что MAC-адреса, наиболее близкие к тому, что вы описываете, также могут быть подделаны? Другими словами, в этом мире, вероятно, потребуются только служебная программа и удачное предположение, чтобы получить новый рабочий идентификатор. С другой стороны, если прокси и VPN действительно становятся невозможными, многие честные люди тоже облажались.

2
Этот вопрос кажется не по теме, поскольку он касается разработки программного обеспечения, как это определено в Справочном центре . Ваш вопрос может быть более уместным на superuser.com или serverfault.com
Филипп

2
IP-адрес является идентификатором. Обычно он постоянно меняется из-за широкого использования DHCP.
Сиюань Рен,

Ответы:


34

IP не идентифицирует компьютер - один компьютер может иметь несколько IP-адресов, а один IP-адрес может принадлежать нескольким компьютерам, если они находятся в разных сетях.

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

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


2
как это связано с вопросом, заданным «Почему создатели интернет-протокола решили»
коммент

5
Это отличный пример с именем (как MAC) и адресом (как IP).
SerG

Истинные вещи; но ответа недостаточно, чтобы объяснить, почему IP работает лучше для маршрутизации, чем ... Я не знаю. Что-нибудь еще.
svidgen

1
Вопрос не в том, чтобы объяснить, как работает IP-маршрутизация и как IP-адрес является ее частью. Хотя есть и другие ответы, которые объясняют это. Есть и другие способы маршрутизации, не только IP.
aragaer

См. HIP (Протокол идентификации хоста, RFC4423), чтобы попытаться добавить уровень для идентификаторов хоста (хранящихся в виде адресов IPv6) между сетевым уровнем и транспортным уровнем.
ysdx

22

Если бы у каждого компьютера были уникальные идентификаторы, таблицы маршрутизации должны были бы включать все маршруты ко всем устройствам в Интернете. Это непрактично.

Вот почему tcp / ip использует многоуровневый подход.

Если мой компьютер 1.1.1.1 хочет связаться с 2.2.2.2, он в основном просит шлюз переслать пакет, поэтому он связывается с: 1.1.1.0, но этот шлюз также не знает, где находится 2.2.2.2, поэтому он запрашивает его шлюз для пересылки пакета шлюз 1.1.0.0 поднимает его и запрашивает 1.0.0.0. 1.0.0.0 тоже не знает, где находится 2.2.2.2, но он знает, где находится 2.0.0.0 (в своей таблице маршрутизации), поэтому запрос теперь не работает, потому что 2.0.0.0 знает, где находится 2.2.0.0, и пересылает пакет, это все, пока пакет не достигнет 2.2.2.2

(Это КРАЙНЕЕ упрощение того, что происходит, и между 1.0.0.0 и 2.0.0.0 может быть любое количество прыжков).

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


11

По той же причине почтовая служба использует адреса, а не имена .

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

Интернет не использует только один протокол: он фактически объединяет несколько протоколов, один поверх другого. Там находитесь протоколы , которые используют уникальные идентификаторы, и они находятся в самом низком уровне, называется канального уровня . Ethernet (который использует MAC-адреса) и PPP (который чаще всего использует телефонные номера) являются двумя популярными примерами протоколов канального уровня. Но у канального уровня есть свои ограничения: вы можете получать сигнал только между компьютерами, которые напрямую связаны друг с другом , потому что каждый уже должен знать, где все находятся. Это делает его похожим на людей в пункте назначения пакета: все уже знают друг друга, поэтому они могут разобраться между собой, кто на самом деле получит пакет.

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

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

Интернет должен уметь обрабатывать все эти случаи. Чтобы сделать это простым и эффективным способом, они используют адреса, а не идентификаторы. Таким образом, IP не должен знать или заботиться о том, что находится на каждом конце соединения: есть только сигнал, место, откуда он исходит, и место, куда его можно перенести . Другие протоколы в стеке могут позаботиться о других деталях.


отличная аналогия ...
Чарльз Сальвия

2

MAC-адрес - это то, что идентифицирует компьютер, а точнее его сетевое оборудование.

Что делает IP-адрес, так это описывает, где находится аппаратное обеспечение. Маршрутизаторы используют его, чтобы выяснить, куда направить пакеты, чтобы они прибыли в правильный пункт назначения.

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


1
это, кажется, просто повторяет высказанные и объясненные в предыдущем ответе
замечания

Интересно, почему MAC-адреса должны назначаться глобально уникально, учитывая, что даже назначение случайных 32-битных адресов вряд ли вызовет какие-либо коллизии в подсетях, у которых нет тысяч машин (в большинстве подсетей меньше 100), и разрешение коллизий может быть обработано просто с помощью любой машины, которая обнаруживает коллизию, случайным образом выбирает новый адрес; если он не отвечает на старый адрес, машина, с которой требуется установить связь, перезапустит ARP, найдет новый адрес, и все будет хорошо.
суперкат

1

Почему создатели интернет-протокола решили использовать IP-адреса для идентификации конкретного компьютера?

Они не Он идентифицирует сетевое соединение, хотя у этого же соединения могут быть и другие IP-адреса.

Почему бы просто не иметь уникальный идентификатор, назначенный каждому компьютеру при изготовлении, а затем использовать этот идентификатор для идентификации компьютера?

Во-первых, они не идентифицируют компьютеры, как указано выше.

Хорошо, скажем, они хотели сделать это с помощью сетевых адаптеров. Им пришлось бы убедить каждого изготовителя сетевого адаптера использовать идентификатор из набора, контролируемого людьми, участвующими в этом конкретном плане, для подключения сетей, которые, как многие думали, не будут работать, прежде чем он сможет работать. Удачи с этим.

Кроме того, эти производители сетевого оборудования не заботились о TCP / IP, они заботились о своих собственных сетевых протоколах и, возможно, о тех, с которыми они конкурировали. В некоторых случаях наличие надстройки, которая делала различия между, например, Ethernet, ALOHAnet, шиной токена и т. Д., Было плохой вещью для некоторых технологий в долгосрочной перспективе, потому что некоторые из них делали менее полезными (TCP / IP мог сделайте это вместо этого), и люди могут в конечном итоге перейти к тем, кто делает только то, что нужно TCP / IP, и немного больше (как это делал Ethernet). TCP / IP был троянским конем для этих компаний; счастливо играя с ними, но разрушая их бизнес в то же время. Почему они должны помочь.

Кроме того, некоторые из этих технологий предшествовали TCP / IP, и поэтому они не могли взаимодействовать, а TCP / IP не мог использоваться практически на всех типах сетей.

Кроме того, какой адрес где? Моя машина в настоящее время имеет адрес 192.168.1.24 (среди прочих), который также используется тысячами других машин в других сетях. Мне не нужен уникальный адрес, потому что я не подключен напрямую к Интернету. С IPv6 мы начинаем переходить к точке, где мы могли бы иметь по-настоящему уникальный идентификатор для каждой машины, если бы мы действительно этого хотели, но до этого это было бы ограниченным числом (четыре миллиарда, вероятно, показались бы очень большими устройств в то время, но это потребовало бы очень жесткого распределения чисел, так что на практике их было бы намного меньше, даже если бы это было реальной проблемой) и бессмысленно; весь смысл IP заключается не в сети, а во взаимодействии, поэтому нам нужно беспокоиться только об одной сети за раз, когда дело доходит до идентификаторов,


0

Но с таким уникальным идентификатором, как MAC, по-прежнему существует проблема размещения устройства в сети. Невозможно соединить все устройства и просто искать пункт назначения один за другим по всем хостам в мире. Это цель изобретения некоторых иерархических адресов, таких как IP.


это, кажется, просто повторяет высказанные и объясненные в предыдущем ответе
замечания

@gnat посмотрите на отметку времени последних изменений.
SerG

0

Ключом к пониманию оригинального дизайна протокола межсетевого взаимодействия является то, что сети уже существуют, и планировалось объединить сети, используя существующие технологии, такие как DECnet. Требование, чтобы люди добавили новое оборудование с уникальным идентификатором, сделало бы это недостатком, и не требовалось по какой-либо технологической причине. Система использовалась для выделения префикса (такого как 8.0.0.0/24) для организации, а затем возложить на эту организацию ответственность за назначение адресов в этом диапазоне.

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

Ethernet использует MAC-адреса, чтобы различать узлы в одной и той же локальной сети, но Ethernet делает постер в Интернете и черпает вдохновение из этого: http://inventors.about.com/library/weekly/aa111598.htm утверждает, что не ранее 1973 года, в то время как первые интернет-RFC были сделаны в 1969 году ( http://www.ietf.org/download/rfc-index.txt ), примерно в то же время, что и при посадке на Луну.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.