Разбиение сети на подсети
Сегмент – участок ЛВС, в которой все станции прослушивают одну и ту же несущую или управляются одним маркером.
С увеличением числа пользователей сети ее производительность падает (больше конкуренции на 1 несущей => больше время ожидания => меньше скорость). Выхода 2:
§ Замена оборудования на более мощное (дорого, надо доказывать).
§ Разделение на сегменты (например по коммутатору на отдел). На границе сегментов организуется отдельный сегмент серверов. Все это снижает нагрузку на сеть, увеличивает пассивную безопасность (см. Коммутаторы), делает возможности аппаратного обновления сети более гибкими.
К сегментообразующему оборудованию относятся мосты и коммутаторы.
Чтобы получить адрес сети, зная IP-адрес и маску подсети, необходимо применить к ним операцию поразрядной конъюнкции (логическое И). Например, в случае более сложной маски (битовые операции в IPv6 выглядят идентично):
IP-адрес: 11000000 10101000 00000001 00000010 (192.168.1.2)Маска подсети: 11111111 11111111 11111111 00000000 (255.255.255.0)Адрес сети: 11000000 10101000 00000001 00000000 (192.168.1.0)Разбиение одной большой сети на несколько маленьких подсетей позволяет упростить маршрутизацию. Например, пусть таблица маршрутизации некоторого маршрутизатора содержит следующую запись:
Сеть назначения | Маска | Адрес шлюза |
192.168.1.0 | 255.255.255.0 | 192.168.1.1 |
Пусть теперь маршрутизатор получает пакет данных с адресом назначения 192.168.1.2. Обрабатывая построчно таблицу маршрутизации, он обнаруживает, что при наложении маски 255.255.255.0 на адрес 192.168.1.2 получается адрес сети 192.168.1.0. В таблице маршрутизации этой сети соответствует шлюз 192.168.1.1, которому и отправляется пакет.
36. Протоколы ARP/RARP.
ARP (англ. Address Resolution Protocol — протокол определения адреса) — использующийся в компьютерных сетях протокол низкого уровня, предназначенный для определения адреса канального уровня по известному адресу сетевого уровня. Наибольшее распространение этот протокол получил благодаря повсеместности сетей IP, построенных поверх Ethernet, поскольку практически в 100 % случаев при таком сочетании используется ARP.
Описание протокола было опубликовано в ноябре 1982 года в RFC 826. ARP был спроектирован для случая передачи IP-пакетов через сегмент Ethernet. При этом общий принцип, предложенный для ARP, может, и был использован и для сетей других типов.
ARP изначально был разработан не только для IP протокола, но в настоящее время в основном используется для сопоставления IP- и MAC-адресов.
ARP также можно использовать для разрешения MAC-адресов для различных адресов протоколов 3-го уровня (Layer 3 protocols addresses). ARP был адаптирован также для разрешения других видов адресов 2-го уровня (Layer 2 addresses); например, ATMARP используется для разрешения ATM NSAP адресов в Classical IP over ATM протоколе.
Ниже проиллюстрирована структура пакета, используемого в запросах и ответах ARP. В сетях Ethernet в этих пакетах используется EtherType 0x0806, и рассылаются широковещательно MAC-адрес — FF:FF:FF:FF:FF:FF. Отметим, что в структуре пакета, показанной ниже в качестве SHA, SPA, THA, & TPA условно используются 32-битные слова — реальная длина определяется физическим устройством и протоколом.
Hardware type (HTYPE)
Каждый транспортный протокол передачи данных имеет свой номер, который хранится в этом поле. Например, Ethernet имеет номер 0x0001.
Protocol type (PTYPE)
Код протокола. Например, для IPv4 будет записано 0x0800.
Hardware length (HLEN)
длина физического адреса в байтах. Ethernet адреса имеют длину 6 байт.
Protocol length (PLEN)
длина логического адреса в байтах. IPv4 адреса имеют длину 4 байта.
Operation
Код операции отправителя: 1 в случае запроса и 2 в случае ответа.
Sender hardware address (SHA)
Физический адрес отправителя.
Sender protocol address (SPA)
Логический адрес отправителя.
Target hardware address (THA)
Физический адрес получателя. Поле пусто при запросе.
Target protocol address (TPA)
Логический адрес получателя.
ARP с представителем.
Протокол ARP с представителем является альтернативным методом, позволяющим шлюзам принимать все необходимые решения о маршрутизации. Он применяется в сетях с широковещательной передачей, где для отображения IP-адресов в сетевые адреса используется протокол ARP или ему подобный. Здесь мы вновь будем предполагать, что имеем дело с сетью Ethernet.
Во многом метод, реализуемый протоколом ARP с представителем, аналогичен использованию маршрутов по умолчанию и сообщений перенаправления. Но протокол ARP с представителем не затрагивает таблиц маршрутов, все делается на уровне адресов Ethernet. Протокол ARP с представителем может использоваться либо для маршрутизации IP-пакетов ко всем сетям, либо только в локальной сети, либо в какой-то комбинации подсетей. Проще всего продемонстрировать его использование при работе со всеми адресами.
Чтобы использовать протокол, нужно настроить узел так, как будто все машины в мире подключены непосредственно к вашей локальной сети Ethernet. В ОС UNIX это делается командой "route add default 128.6.4.2 0", где 128.6.4.2 - IP-адрес вашего узла. Как уже отмечалось, метрика 0 говорит о том, что все IP-пакеты, которым подходит данный маршрут, должны посылаться напрямую по локальной сети.
Когда нужно послать IP-пакет узлу в локальной сети Ethernet, ваша машина должна определить Ethernet-адрес этого узла. Для этого она использует ARP-таблицу. Если в ARP-таблице уже есть запись, соответствующая IP-адресу места назначения, то из нее просто берется Ethernet-адрес, и кадр, содержащий IP-пакет, отправляется. Если такой записи нет, то посылается широковещательный ARP-запрос. Узел с искомым IP-адресом назначения принимает его и в ARP-ответе сообщает свой Ethernet-адрес. Эти действия соответствуют обычному протоколу ARP, описанному выше.
Протокол ARP с представителем основан на том, что шлюзы работают как представители удаленных узлов. Предположим, в подсети 128.6.5 имеется узел 128.6.5.2 (узел A на рис.12). Он желает послать IP-пакет узлу 128.6.4.194, который подключен к другой сети Ethernet (узел B в подсети 128.6.4). Существует шлюз с IP-адресом 128.6.5.1, соединяющий две подсети (шлюз R).
Если в ARP-таблице узла A нет маршрута доступа к узлу B, то узел A посылает ARP-запрос узлу B. Фактически машина A спрашивает: "Если кто-нибудь знает Ethernet-адрес узла 128.6.4.194, сообщите мне его". Узел B не может ответить на запрос самостоятельно. Он подключен к другой сети Ethernet и никогда даже не увидит этот ARP-запрос. Однако шлюз R может работать от его имени. Шлюз R отвечает: "Я здесь, IP-адресу 128.6.4.194 соответствует Ethernet-адрес 2:7:1:0:EB:CD", где 2:7:1:0:EB:CD в действительности является Ethernet-адресом шлюза. Это создает иллюзию, что узел 128.6.4.194 подключен непосредственно к той же локальной сети Ethernet, что и узел A, и имеет Ethernet-адрес 2:7:1:0:EB:CD. Когда узел A захочет послать новый IP-пакет узлу B, он использует указанный Ethernet-адрес. Кадр, содержащий IP-пакет, попадет к шлюзу R, а он переправит его по назначению.
Обычно рекомендуется использовать таблицу маршрутов, так как архитектура протоколов TCP/IP предусматривает выполнение маршрутизации на межсетевом уровне. Однако иногда протокол ARP с представителем очень полезен. Он может помочь в следующих случаях:
1.в IP-сети есть узел, который не умеет работать с подсетями;
2.в IP-сети есть узел, который не может соответствующим образом реагировать на сообщения перенаправления;
3.нежелательно выбирать какой-либо шлюз как маршрут по умолчанию;
4.программное обеспечение не способно восстанавливаться при сбоях на маршрутах.
Иногда протокол ARP с представителем выбирают из-за удобства. Дело в том, что он упрощает работу по начальной установке таблицы маршрутов. Даже в простейших IP-сетях требуется устанавливать маршрут по умолчанию, то есть использовать команду типа "route add defailt ...", как в ОС UNIX. При изменении IP-адреса шлюза эту команду приходится менять во всех узлах. Если же использовать протокол ARP с представителем, т.е. в команде установки маршрута по умолчанию указать метрику 0, то при замене IP-адреса шлюза команду начальной установки менять не придется, так как протокол ARP с представителем не требует явного задания IP-адресов шлюзов. Любой шлюз может ответить на ARP-запрос.
Для того, чтобы избавить пользователей от обязательной начальной установки маршрутов, некоторые реализации TCP/IP используют протокол ARP с представителем по умолчанию в тех случаях, когда не находят подходящих записей в таблице маршрутов.
38. Транспортный уровень. Протоколы TCP/UDP, SPX.
Протоколы транспортного уровня могут решать проблему негарантированной доставки сообщений («дошло ли сообщение до адресата?»), а также гарантировать правильную последовательность прихода данных. В стеке TCP/IP транспортные протоколы определяют для какого именно приложения предназначены эти данные.
Протоколы автоматической маршрутизации, логически представленные на этом уровне (поскольку работают поверх IP), на самом деле являются частью протоколов сетевого уровня; например OSPF (IP идентификатор 89).
TCP (IP идентификатор 6) — «гарантированный» транспортный механизм с предварительным установлением соединения, предоставляющий приложению надёжный поток данных, дающий уверенность в безошибочности получаемых данных, перезапрашивающий данные в случае потери и устраняющий дублирование данных. TCP позволяет регулировать нагрузку на сеть, а также уменьшать время ожидания данных при передаче на большие расстояния. Более того, TCP гарантирует, что полученные данные были отправлены точно в такой же последовательности. В этом его главное отличие от UDP.
UDP (IP идентификатор 17) протокол передачи датаграмм без установления соединения. Также его называют протоколом «ненадёжной» передачи, в смысле невозможности удостовериться в доставке сообщения адресату, а также возможного перемешивания пакетов. В приложениях, требующих гарантированной передачи данных, используется протокол TCP.
UDP обычно используется в таких приложениях, как потоковое видео, где допускается потеря пакетов, а повторный запрос затруднён или не оправдан, либо в приложениях вида запрос-ответ (например, запросы к DNS), где создание соединения занимает больше ресурсов, чем повторная отправка.
И TCP, и UDP используют для определения протокола верхнего уровня число, называемое портом. Существует список стандартных портов TCP и UDP.