Вы спрашиваете о сетевой модели OSI, даже если вы этого не понимаете, и хотя модель OSI не совсем относится к TCP/IP.
Принцип работы компьютерной сети состоит из нескольких слоев. Уровни в модели OSI:
- Физический (например, медь, волокно и т.д.)
- Канал передачи данных (например, Ethernet, ppp, fddi и т.д.)
- Сеть (например, IPv4, IPv6, IPX и т.д.)
- Транспорт (например, TCP, UDP и т.д.)
- Сеанс (используется в OSI, но большинство вещей здесь обрабатываются уровнем 4 в TCP/IP)
- Презентация (например, ASCII против EBCDIC или MIME)
- Приложение (например, 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.