Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_методичка.doc
Скачиваний:
103
Добавлен:
11.03.2016
Размер:
861.7 Кб
Скачать

Сетевой уровень

Создатели первых сетей, объединяющих несколько сред передачи данных, для идентификации абонента таких сетей пытались использовать те же аппаратные адреса. Это оказалось делом неблагодарным: если в Ethernet аппаратный адрес уникален всегда, то в других сетях аппаратные адреса могут быть уникальны только в рамках однойсреды (например, все устройства нумеруются, начиная с 0) или даже могут выдаваться динамически, да и форматы аппаратных адресов в разных средах различны. Возникла необходимость присвоить каждому сетевому интерфейсу некоторый единственный на всю глобальную сеть адрес, который бы не зависел от среды передачи данных и всегда имел один и тот же формат.

Адресация в ip-сетях

Адрес, определяемый протоколом IP (InternetworkProtocol), состоит из четырех байтов (IPv4), записываемых традиционно в десятичной системе счисления и разделяемых точкой. Адрес сетевого интерфейса eth0 из примера – 217.71.130.131. Второй сетевой интерфейс из примера lo – так называемаязаглушка(loopback), которая используется для организации сетевых взаимодействий компьютера с самим собой: любой посланный в заглушку пакет немедленно обрабатывается как принятый оттуда. Заглушка обычно имеет адрес 127.0.0.1. (один из важнейших инструментов отладки сетевых приложений).

Отдельная среда передачи данных (локальная сеть) также имеет собственный адрес. Если представить IP-адрес в виде линейки из 32 битов, она строго разделяется на две части: столько-то битов слева отводится под адрес сети, а оставшиеся – под адрес абонента в этой сети. Для того чтобы определить размер адреса сети, используется сетевая маска – линейка из 32 битов, в которой на месте адреса сети стоят единицы, а на месте адреса компьютера – нули. При наложении маски на IP-адрес все единицы в нем, которым соответствуют нули в маске, превращаются в нули. Таким образом вычисляется IP-адрес сети. В примере сетевая маска интерфейса eth0 равна 255.255.255.128, т. е. 25 единицы и 7 нулей. Тогда IP-адрес сети будет равен 217.71.130.128. Если сетевая маска выровнена по границе байта, производить двоичные операции вообще не надо.

Заметим, что адрес сети может содержать значащиенули: например, в адресе 10.0.0.1 при сетевой маске 255.255.0.0 адрес сети занимает два байта, из которых второй – полностью нулевой. Чтобы не гадать, какие нули – значащие, а какие – отрезаны маской, к адресу сети принято приписывать уточнение вида / количество_единиц_в_маске. В приведенном случае адрес сети выглядел бы так: 10.0.0.0/16, а в предыдущем – 217.71.130.131/25.

IP-адрес, составленный из адреса сети, за которым следуют все единицы(в примере – 217.71.130.255), называется широковещательный адрес: любой принадлежащий сети 217.71.130.128 компьютер, получивший IP-пакет с адресом получателя 217.71.130.255, должен обработать его, как если бы в поле «получатель» стоял его собственный IP-адрес.

Когда компьютер, с некоторым IP-адресом, решает отправить пакет другому компьютеру, он выясняет, принадлежит ли адресат той же локальной сети, что и отправитель (т. е. подключены ли они к одной среде передачи данных). Делается это так: на IP-адрес получателя накладывается сетевая маска, и таким образом вычисляется адрес сети, которой принадлежит получатель. Если этот адрес совпадает с адресом сети отправителя, значит, оба находятся в одной локальной сети. Это, в свою очередь, означает, что аппаратныйадрес (MAC) получателя должен быть отправителю известен.

MAC-адреса компьютеров локальной сети хранятся в специальной таблице ядра, называемой «таблица ARP». Просмотреть содержимое этой таблицы можно с помощью команды arp -a:

Пример. Просмотр таблицы ARP

-bash-3.2$ /sbin/arp -a

pc-208b-11.ami.nstu.ru (217.71.130.238) at 00:0F:EA:30:16:B0 [ether] on eth0

pc-203b-05.ami.nstu.ru (217.71.130.208) at 00:1D:92:06:B6:6A [ether] on eth0

pc-204-06.ami.nstu.ru (217.71.130.221) at 00:14:85:19:3C:7A [ether] on eth0

fpm3.ami.nstu.ru (217.71.130.133) at 00:1D:92:06:B6:8E [ether] on eth0

pc-203a-06.ami.nstu.ru (217.71.130.197) at 00:1D:92:00:BB:36 [ether] on eth0

pc-204-09.ami.nstu.ru (217.71.130.224) at 00:14:85:26:EE:F4 [ether] on eth0

pc-203a-03.ami.nstu.ru (217.71.130.194) at 00:1D:92:06:B0:6E [ether] on eth0

pc-208b-05.ami.nstu.ru (217.71.130.232) at 00:15:58:3F:FC:03 [ether] on eth0

pc-203b-03.ami.nstu.ru (217.71.130.206) at 00:1D:92:00:BE:22 [ether] on eth0

pc-203b-06.ami.nstu.ru (217.71.130.209) at 00:1D:92:01:E6:3D [ether] on eth0

pc-203a-04.ami.nstu.ru (217.71.130.195) at 00:1D:92:07:05:30 [ether] on eth0

pc-203b-12.ami.nstu.ru (217.71.130.215) at 00:1D:92:01:F4:68 [ether] on eth0

pc-203b-09.ami.nstu.ru (217.71.130.212) at 00:1D:92:00:BB:DB [ether] on eth0

pc-204-07.ami.nstu.ru (217.71.130.222) at 00:14:85:2C:88:FF [ether] on eth0

pc-203a-02.ami.nstu.ru (217.71.130.193) at 00:1D:92:00:BD:08 [ether] on eth0

pc-204-12.ami.nstu.ru (217.71.130.227) at 00:14:85:26:EE:A7 [ether] on eth0

screamer.ami.nstu.ru (217.71.130.135) at 00:E0:29:24:F1:59 [ether] on eth0

pc-203a-05.ami.nstu.ru (217.71.130.196) at 00:1D:92:01:E5:EF [ether] on eth0

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

Устанавливать соответствие между адресами сетевого и интерфейсного уровня – дело протокола ARP (AddressResolutionProtocol, «протокол преобразования адресов»). В случае преобразования IP в MAC он работает так: отправляется широковещательный Ethernet-фрейм типа «ARP-запрос», внутри которого – IP-адрес, что означает «Эй! У кого такой IP?». Каждый работающий компьютер обрабатывает этот фрейм. И тот, чей IP-адрес совпадает с запрошенным, возвращает отправителю пустой фрейм типа «ARP-ответ», в поле «отправитель» которого указан искомый MAC-адрес. Это означает: «У меня. А что?". Тут ARP-таблица заполняется и первый компьютер готов к инкапсуляции IP-пакета.