Как происходит связь между двумя компьютерами в одной сети? [закрыто]

-2

Допустим, я и мой друг соединяем наши компьютеры кабелем локальной сети.

Я пинг своего друга с его IP-адресом.

Как это работает?

Поскольку мы находимся в одной сети, нам даже не нужны IP-адреса?

Разве IP-адресация не имеет значения только в случае межсетевого взаимодействия?

Что команда ping сделает со своим IP-адресом? Как он в конечном итоге найдет его физический адрес (адрес NIC)? (здесь нет ARP, потому что это будет связано с маршрутизатором на границе сети, что здесь не применимо).

Я где то не прав?

learner
источник
Downvoter, хочешь объяснить? Я готов что-нибудь объяснить здесь. Я сделал свое чтение, но все еще есть эти вопросы.
learner
2
Вы сделали много плохих предположений в этом «вопросе». Не все сети основаны на IP. IP-адреса основаны на хосте, а не на межсетевом. ARP требуется для IP-сети, и компьютеры используют ARP, а также маршрутизаторы, коммутаторы L3 и т. Д. В конце ваш вопрос: «Как два компьютера взаимодействуют в одной сети?» слишком широк.
Ƭᴇcʜιᴇ007
1
@learner - Вы спрашиваете, как работает сетевой пинг, что хорошо задокументировано. IP-адрес также требуется для внутрисетевой связи. Во внутренней сети его физический адрес - это IP-адрес, который он ему назначил.
Ramhound
Возможный обман: как на самом деле работает команда ping?
Ƭᴇcʜιᴇ007
@Ramhound, что вы подразумеваете под: «его физический адрес - это IP-адрес, который он назначил» Физические адреса зафиксированы и отпечатаны на компьютерах.
learner

Ответы:

4

Вы спрашиваете о Модель сети OSI даже если вы этого не понимаете, и хотя модель OSI не совсем относится к TCP / IP.

Как работает компьютерная сеть в слои , Уровни в модели OSI:

  1. Физический (например, медь, волокно и т. Д.)
  2. Канал передачи данных (например, Ethernet, ppp, fddi и т. Д.)
  3. Сеть (например, IPv4, IPv6, IPX и т. Д.)
  4. Транспорт (например, TCP, UDP и т. Д.)
  5. Сеанс (используется в OSI, но большинство вещей здесь обрабатываются уровнем 4 в TCP / IP)
  6. Презентация (например, ASCII против EBCDIC или MIME)
  7. Приложение (например, HTTP, SMTP, DNS и т. Д.)

Чтобы два компьютера могли общаться по сети, они должны говорить одинаково сеть протокол уровня. Это не обязательно должен быть IPv4 или IPv6, это может быть IPX или X.25. Но это должно быть что-то ,

Мы просто примем IPv4, так как это наиболее распространенный вариант.

Оба компьютера будут нуждаться в IP-адресе. В этот день и возраст, скорее всего, им будет назначен один из серверов DHCP или они будут динамически назначаться с помощью ZeroConf. Поэтому они будут есть IP-адреса.

Что происходит, когда вы пингуете?

Первый компьютер, инициирующий сеанс, отправит пакет ARP широковещательного уровня 2. ARP - это протокол разрешения адресов. ARP используется для обнаружения адреса уровня 2, связанного с конкретным адресом уровня 3. Широковещательная рассылка - это специальный пакет, который инструктирует сетевому коммутатору отправлять пакет на все физические порты с подключенным каналом (т. Е. С подключением L1). Компьютер с указанным адресом уровня 3 будет отвечать одноадресным ARP-ответом. ARP происходит полностью через адресацию L2 (результаты ARP кэшируются для последующего поиска, поэтому не нужно продолжать посылать запросы ARP).

следующий пакет эхо-запроса ICMP создается. Адрес L2 источника будет Ether-адресом исходного компьютера. Источником L3 будет IP-адрес исходного компьютера. Адрес L2 и L3 получателя будут теми, которые обнаружены из ARP. Пакет затем отправляется по проводу на коммутатор.

Коммутатор проверяет адрес L2 назначения и смотрит в него CAM таблица, чтобы определить, какой физический порт имеет указанный адрес Ether. Пакет затем отправляется по проводам на правильный физический порт.

когда целевой компьютер получает его, сначала он проверяет адрес L2, чтобы убедиться, что он совпадает с адресом L2 физического интерфейса, который получил пакет. Если он совпадает, он проверяет адрес L3, чтобы убедиться, что он совпадает с адресом уровня 3, назначенным физическому интерфейсу. Если все это проверено, то пакет будет обрабатываться протоколами верхнего уровня (в этом случае ICMP, обрабатывается ядром). Если нет, пакет отбрасывается.

Для ответа ICMP все работает примерно так же, за исключением того, что отвечающему компьютеру не нужно отправлять запрос ARP, поскольку он получил пакет с парой L2 / L3, он может установить его непосредственно в кэш ARP.

bahamat
источник
Большое спасибо! Как изменилась бы часть ARP, если бы я пинговал google.com? Когда я использую IP-адрес Google, что именно отправляет мне мой пакет на ближайший маршрутизатор? Здесь ARP не будет полезен, так как знание физического адреса компьютера Google для меня бесполезно. Он понадобится последнему маршрутизатору, который отправит его в Google. Но для моего компьютера это бесполезно. Кроме того, у меня нет таблицы маршрутизации на моем компьютере. Как тогда такой пакет автоматически отправляется на ближайший маршрутизатор?
learner
1
Смотрите ссылку, которую я разместил. Пакет IP (с дейтаграммой эхо-запроса ICMP) будет отправлен маршрутизатору с IP-адресом назначения от Google. ARP используется только в локальной сети (для получения MAC-адреса шлюза по умолчанию). Насколько вам известно, это ICMP / IP.
Hennes
3

Поскольку мы находимся в одной сети, нам даже не нужны IP-адреса?

Эмм. Технически нет.

Но если вы хотите общаться по TCP / IP тогда вам нужен один. И почти все это использует.

Допустим, я и мой друг соединяем наши компьютеры кабелем локальной сети.   Я пинг своего друга с его IP-адресом.   Как это работает?

Ваш компьютер проверяет, находится ли целевой IP в той же подсети.
Если это так (проверка таблицы маршрутизации!), То он проверяет, кэширован ли он ARP.
Нет arp - & gt; ARP discovery Затем эхо-запрос ICMP (эхо-запрос) отправляется по IP на сетевой адаптер назначения (на основе MAC-адреса назначения).

Как он в конечном итоге найдет его физический адрес (адрес NIC)?

Он будет смотреть в кеше ARP, и, если адресата там нет, будет транслироваться пакет, который сводится к «У кого есть IP номер a.b.c.d?». И на это ПК ответит: «Я MAC aa: bb: cc: dd: ee: ff. У меня есть IP a.b.c.d.»

здесь нет ARP, потому что это будет связано с маршрутизатором на границе сети, что здесь не применимо.

Нет ARP будет использоваться. ARP очень локальный. ARP не будет использоваться один раз за пределами локальной сети (и, следовательно, ARP за пределами маршрутизатора).

Разве IP-адресация не имеет значения только в случае межсетевого взаимодействия?

Нет.

Я даже не буду пытаться написать хороший длинный ответ. Вместо этого я укажу вам на этот хорошо написанный ранее пост: https://serverfault.com/questions/49765/how-does-ipv4-subnetting-work

Hennes
источник
+1 за попытку спасти эту душу от использования гугла
M.Bennett
0

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

Keltari
источник
Да, но вопрос в том, как мой компьютер в конечном итоге найдет адрес сетевой карты моего друга? Мое единственное знание логического адреса - & gt; сопоставление физических адресов - это сопоставление ARP, которое здесь не применимо.
learner
2
ARP очень применимо здесь. ARP является только локальным (маршрутизатор и все локальные компьютеры находятся в локальной сети).
Hennes
0

Ваша путаница идет глубже, чем может ответить даже длинный пост. Вам нужно прочитать хороший сетевой учебник.

Если вы не хотите тратить время, попробуйте прочитать страницы Википедии на APIPA , ARP и разница между сетевой уровень и канальный уровень , но это только начало.

David
источник