Сети TCP/IP > Добавление про ethernet

В прошлый раз было сказано, что для выяснение MAC-адреса по известному IP-адресу посылается ARP-запрос. Но этот запрос посылается по Ethernet, следовательно имеет вид стандартного Ethernet-пакета.

Source Destination Frame type Сам пакет End

Таким образом, чтобы послать этот пакет необходимо знать Destination MAC-адрес получателя, но ведь для того, чтобы узнать этот адрес, и формировался ARP-запрос!

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

В связи с этим стоит поправиться в том, что говорилось на тему работы Ethernet-драйвера. Раньше было сказано, что драйвер смотрит только на Destination и если указанный там MAC-адрес совпадает с адресом данной машины, то драйвер обрабатывает пакет и передает его на следующий уровень, иначе – игнорирует пакет. На самом деле драйвер сначала смотрит на Frame type и, если там указан ARP, RARP (или другие Broadcast протоколы), то пакет передается выше не зависимо от того, что написано в Destination. Если во Frame type указаны другие протоколы, то пакет рассматривается так, как говорилось до этого…

Ответ на ARP-запрос имеет тип Unicast.

IP-адреса

Про уникальность IP-адресов.

IP-адрес – 32 битовое число, обычно представляемое в виде 4 чисел (от 0 до 255), разделенных точками, например 194.85.238.99

Откуда у компьютера берется IP-адрес?

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

Все это наводит на мысль о существовании "центра Интернета". Действительно такой существует – это InterNIC (такой институт в США), который занимает тем, что раздает группы IP-адресов. Для него принципиально деление на 4 группы (другие деление его не интересуют, т.к. более мелкими делениями он не занимается, да и не знает о том, как эти группы делятся дальше).

Class A

В него входят все адреса, которые начинаются с нулевого бита.

0 Номер сети Номер хоста
1 бит 7 бит 24 бита

Например, 53.15.125.19. Таких сетей всего 128. И у каждой из них 224 хостов. Номера таких сетей лежат между 0.*.*.* до 127.*.*.*.

Class B

В него входят все адреса, которые начинаются с битов 10.

10 Номер сети Номер хоста
2 бита 14 бит 16 бит

Например, 153.43.122.58. Таких сетей всего 214. И у каждой из них 216 хостов. Номера таких сетей лежат между 128.x.*.* до 191.x.*.*.

Class C

В него входят все адреса, которые начинаются с битов 110.

110 Номер сети Номер хоста
3 бита 21 бит 8 бит

Например, 194.85.238.99. Таких сетей всего 221. И у каждой из них 28 хостов. Номера таких сетей лежат между 192.x.y.* до 223.c.y.*.

Есть еще классы D и E, начинающиеся соответственно и битов 1110 и 1111, но у них все по-особому, поэтому пока разговаривать про них не будем.

Несколько замечаний про IP-адреса

  1. Не правда, что каждый адрес соответствует только одному компьютеру. Дело в том, что IP-адреса делятся на три типа:

    • Unicast (один компьютер)
    • Broadcast (вся сеть)
    • Multicast (группа компьютеров)

    По внешнему виду адреса нельзя понять, к какому из 3-х типов он относится... Приведем пример про наш школьный сервер.

    Наш конкретный компьютер имеет внутри сети ДК IP 192.168.5.100. Таким образом, весь наш класс – сеть класса C. Но мы не получали этой сети от InterNIC! Дело в том, что есть зарезервированные адреса: 10.*.*.* и 192.168.*.*. Так что любой человек может организовать свою собственную сеть, как сеть класса C или A. Но нужно, чтобы снаружи они выглядели нормальными существующими IP.

    А снаружи этот же Конкретный компьютер будет казаться 194.85.238.97. В чем же дело? Дело в том, что на сервере есть специальное устройство, которое заменяет у пакетов, идущих из ДК, адрес отправителя на 194.85.238.97 (обратно переименование осуществляет по порту, на который идет пакет).

  2. Не правда, что у каждого компьютера IP-адрес единственен. Снаружи один компьютер может выглядеть, как много IP-адресов.

    Пример про наш школьный сервер (продолжение): на самом деле снаружи наш сервер выглядит как 4 отдельных IP: 194.85.238.96, 194.85.238.97, 194.85.238.98 и 194.85.238.99.

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

Антон Кузнецов