Acerfans.ru - Компьютерные сети

Компьютерные сети. Введение

Адресация в сети

Одним из ключевых элементов любой сети является схема адресации. Именно она определяет как информация от источника попадет к получателю.

Рассмотрим этот вопрос более-детально на примере университета. В университете есть много факультетов, на факультете есть несколько курсов, на курсе есть несколько групп, а группе есть десяток студентов, у каждого студента есть свое уникальное имя, по которому можно его однозначно определить. Стоит задача: один студент должен передать другому книжку, например. Если оба студента учатся в одной группе, то с этим проблем не будет, все всех знают. А вот если студенты учатся на разных факультетах, то здесь уже сложней. Запомнить как зовут каждого студента в университете, на каком факультете учится, на каком курсе, в какой группе почти не реально. Поэтому чтобы книжка попала от одного студента ко второму, первый должен знать на каком факультете, на каком курсе, в какой группе и как зовут второго студента. На таком же принципе построена работа локальной компьютерной сети.

Работу локальной сети будем рассматривать на примере наиболее-распространенной технологии Ethernet.

Примечание: технология Ethernet описывается стандартом 802.3 и соответствует 1 и 2 уровням эталонной модели OSI. Она описывает метод доступа к общей среде CSMA/CD, процедуры LLC, методы передачи данных и др. Изначально она разрабатывалась под коаксиальный кабель с полудуплексным режимом передачи данных и механизмом выявления коллизий (это когда два устройства начинают одновременно что-то передавать и информация сильно искажается). В условиях полнодуплексных сетей коллизий нет. Сейчас в основном используются стандарты 100BASE-T и 1000BASE-T (100 МБит и 1 ГБит Ethernet с использованием витой пары). Для стандарта 100BASE-T задействуются только витые 2 пары из 4, для 1000BASE-T используются все 4 пары. В качестве среды передачи может так же выступать оптоволокно. Технология Wi-Fi (802.11) очень похожа на Ethernet. Отличия сводятся к тому, что используется другая среда передачи информации, как следствие — другой метод доступа к среде CSMA/CA, а также изменен формат фрейма.

У каждого компьютера, который подключен к сети, есть два основных адреса: IP-адрес и MAC-адрес. Если вспомнить пример с студентами, то MAC-адрес будет соответствовать имени студента, а IP адрес будет указывать на каком факультете, курсе, группе учится студент и какой он по списку. Основная задача MAC-адреса — это однозначная идентификация конкретного устройства. По MAC-адресу можно однозначно идентифицировать устройство, которое подключено в сеть. MAC-адреса имеют линейную структуру, то есть по имени студента невозможно сказать где он учится, с кем он учится итд. MAC-адрес прошит в сетевую плату и его изменить невозможно (хотя существуют разные методы обхода этого ограничения ). MAC-адрес состоит из 48 бит, которые сгруппированы в 12 шестнадцатиразрядных чисел. Первые 6 задают производителя сетевой карты, последние 6 задают конкретное устройство.

Примечание: MAC-адреса используются для адресации на канальном уровне модели OSI в рамках одной сети. Всего в этой модели 7 уровней. Ее создали для упрощения понимания работы сети. Более-подробно о ней сказано в Википедии. Сетевую модель OSI не стоит путать со стеком протоколов OSI, это разные вещи. Сейчас активно на практике используется стек протоколов TCP/IP

В примере со студентом аналогом информации о факультете, группе, номера в списке служит IP-адрес. В отличие от MAC-адресов, IP-адреса имеют четкую иерархическую структуру. Это значит, что по IP-адресу можно точно определить на каком континенте, в какой стране, в каком населенном пункте, на какой улице и в какой квартире находится компьютер с определенным IP-адресом. Возникает вполне логичный вопрос: а зачем тогда MAC-адреса, если точно определить конкретный компьютер можно только по IP-адресу? Ответ довольно прост: очень часто IP-адреса присваиваются в сети динамически. Процесс выглядит примерно так: компьютер посылает запрос на получение IP-адрес на сервер. Но тут же возникает проблема: кому отправлять ответ? Адреса у запросившей станции нет. Вот для этого и были разработаны MAC-адреса. IP-адрес состоит из четырех восьмибитных чисел от 0 до 255. В IPv6 адрес состоит из четырех 32-битных чисел.

Примечание: IP-адреса используются для адресации на сетевом уровне модели OSI в рамках глобальных и локальных сетей.

Теперь запустим Командную строку (сделать это можно через меню Пуск или введя в окошко Выполнить команду cmd). Вводим команду ipconfig /all и нажимаем Enter

На экран вывелась информация о сетевых подключениях. Здесь можно увидеть IP-адрес, физический адрес (он же MAC-адрес) интерфейсов. Как видим, ноутбук сейчас подключен к домашней Wi-Fi сети, а также подключен к интернету.

Как и MAC-адрес, так и IP-адрес должны быть уникальными для каждого устройства в сети, иначе она просто не будет правильно работать. В этом кроется еще одна проблема. IP-адрес состоит из 32-бит (4 числа по 8 бит), что в сумме дает около 4 миллиардов комбинаций. Возникает вполне предсказуемая проблема: а что делать, если число компьютеров, которые должны быть обьеденены в сети превысит 4 миллиарда? Одним из решений является переход с IPv4 на IPv6. Число возможных комбинаций резко увеличивается (чуть меньше за 2 в 128 степени ). Это один из выходов. Но и существует другой способ. Не всем компьютерам нужен доступ в интернет. Некоторые из них вполне могут обойтись и локальной сетью. Для этих целей все IP-адреса были поделены на глобальные и приватные.

К приватным относятся такие диапазоны адресов:

— 10.0.0.0 — 10.255.255.255

— 172.16.0.0 — 172.31.255.255

— 192.168.0.0 — 192.168.255.255

Эти адреса использоваться ТОЛЬКО в локальных сетях. В глобальной сети интернет они не используются. Это значит, что компьютера с адресами из приватных диапазонов и интернете нет. Если есть необходимость создать небольшую домашнюю или большую и не домашнюю ЛОКАЛЬНУЮ сеть — нужно использовать адреса из приватного диапазона!

Возникает вполне логичный вопрос: а как предоставить доступ в интернет компьютерам из локальной сети? У них ведь IP-адреса из приватного диапазона, которые в интернете не используются. Вот здесь на помощь приходят NAT-сервера. Задачей NAT-сервера является преобразование внутренних приватных адресов локальной сети в глобальные адреса интернета. То есть, на таком сервере есть таблица соответствия адресов в локальной сети и глобальных адресов интернета. Например, адресу 111.111.111.110 интернета будет соответствовать 192.168.10.10, адресу 111.111.111.111 будет соответствовать адрес 192.168.10.11 итд. Если компьютеру нужно передать информацию в интернет, то он отправляет пакеты на NAT-сервер, тот меняет IP-адрес отправителя c 192.168.10.10 на 111.111.111.110 и пакетик спокойно передается в пункт назначения. Когда приходит ответ на адрес 111.111.111.110, то NAT-сервер автоматически меняет 111.111.111.110 на 192.168.10.10 и передает его в локальную сеть. Если же нужно обеспечить доступ в интернет для целой локальной сети, имея всего один глобальный IP-адрес, то используется механизм PAT, что очень напоминает по принципу действия NAT. Дело в том, что кроме IP-адреса есть еще и адрес порта, который соответствует транспортному уровню модели OSI. Адрес порта указывает для какой программы на компьютере этот пакет предназначен и что это вообще за пакет. Более-подробно о номерах портов описано в Википедии. Например, у нас есть сеть из 2 компьютеров и оба они подключены к интернету через один NAT/PAT сервер (им может быть как роутер, так и один из компьютеров). Пускай IP-адреса у компьютеров будут 192.168.0.1 и 192.168.0.2. Первый из них подключен к интернету через IP-адрес 111.111.111.111 и на нем запущен NAT/PAT-сервер. Возьмем типичную ситуацию. Оба эти компьютера одновременно занимаются серфингом в интернете. Вводит один и второй пользователь в браузере адрес www.acerfans.ru и оба компьютера отправляют HTTP-запрос на сервер www.acerfans.ru. В запросе обязательно указывается адрес отправителя и адрес получателя. С адресом получателя все ясно: это IP-адрес, который соответствует доменному имени www.acerfans.ru и порт 80, который соответствует протоколу HTTP. Адрес отправителя — 192.168.0.1, порт 1050 для одного компьютера и 192.168.0.2, порт 1050 для второго. Эти два запроса получает NAT/PAT-сервер, подставляет в поле адреса отправителя свой IP-адрес (111.111.111.111), а в поле номера порта для одного компьютера ставит 1050, для второго — 1051. У себя в таблице он отмечает, что порту 1050 компьютера с IP-адресом 192.168.0.1 будет соответствовать порт 1050 с IP-адресом 111.111.111.111, а второму компьютеру — порт 1051. В результате два запроса от двух компьютеров со стороны выглядят как два запроса с компьютера с IP-адресом 111.111.111.111 и номерами портов отправителя 1050 и 1051. Когда с сервера придет ответ с помощью той же таблички соответствия NAT/PAT-сервер какой пакет какому компьютеру в сети предназначался.