IP-адресация: адресное пространство, классы IP-адресов, размер адресного пространства, доля каждого класса.
В стеке TCP/IP используются три типа адресов: локальные (называемые также аппаратными), IP-адреса и символьные доменные имена. Всего IP-адресов 232=4G (1G=млрд)
Для более легкого чтения, IP-адреса разбивают на четыре 8-битовых числа, названных octets. например, 128.10.2.30 - традиционная 10-ая форма представления, а 10000000 00001010 00000010 00011110 - двоичная.
Адрес состоит из двух логических частей - номера сети и номера узла в сети. Какая часть адреса относится к номеру сети, а какая - к номеру узла, определяется значениями первых бит адреса (опред. К какому классу относятся). Net-ID отделяется от host-ID с помощью спец маски.
4 байта | |||||||||
1 байт | 3 байта | ||||||||
Класс A | № сети | № узла | |||||||
2 байта | 2 байта | ||||||||
Класс B | № сети | № узла | |||||||
3 байта | 1 байт | ||||||||
Класс C | № сети | № узла | |||||||
Класс D | Адрес группы multicast | ||||||||
Класс E | Зарезервирован | ||||||||
Сети класса А (№ 0 не используется, а номер 127 зарезервирован) Сетей класса А немного, зато кол-во узлов в них может достигать 224, т.е.16 777 216 узлов. Большие сети
Сеть класса В является сетью средних размеров с макс числом узлов 216, что составляет 65 536 узлов.
Сети класса С наиболее распространены, число узлов в них ограничено 256 узлами. (имоп)
Классы D, E и F являются экспериментальными или сохранены для будущего использования и не определяют какую-либо сеть. IP Multicast, сервис, который позволяет транслировать в internet данные из одной точки на несколько, может быть связан с этим диапазоном.
Половину адресов занимает класс А – 2G адресов (у Америки), класс В – 1G, остальные меньше.
Класс | Первые биты | Наим № сети | Наиб № сети | Max число узлов |
A | 1.0.0.0 | 126.0.0.0 | 224 | |
B | 128.0.0.0 | 191.255.0.0 | 216 | |
C | 192.0.1.0 | 223.255.255.0 | 28 | |
D | 224.0.0.0 | 239.255.255.255 | Multicast | |
E | 240.0.0.0 | 247.255.255.255 | Зарезервирован |
Есть специальные адреса:
- 0.0.0.0. – неизвестный адрес неизвестной сети – только как адрес источника, писать на него нельзя. этот режим используется только в некоторых сообщениях ICMP.
- 0.x.y.z. – хост x.y.z. в неизвестной сетке класса А
- x.y. – хост x.y. в неизвестной сетке класса В
- 0.0.0.х – хост х в неизвестной сетке класса С
- Если в поле № сети стоят только нули, то по умолч считается, что узел назначения принадлежит той же самой сети, что и узел, который отправил пакет
- 255.255.255.255 - пакет рассылается всем узлам, находящимся в той же сети, что и источник этого пакета - ограниченное широковещательное сообщение (limited broadcast).
- direct broadcast, писать всем в сетке класса А: А. 255.255.255
- 127.х.у. – loopback address - localhost - пакет наружу не выходит, для проверки.
Private addresses (hidden addresses) – это внутренние адреса провайдера/организации, на этот адрес снаружи ничего не послать ( в классе А 1 сеть такая, в В – 16 таких сетей, в С – 256)
Multicast addresses (групповой адрес)- наример, у он-лайн игры
51. IP- адресация: способы адресации для различного числа адресатов (получателей). Уникальный, локальный широковещательный и групповой способы адресации.
По числу адресатов выдел 3 типа IP адр:
однозначный (unicast)- предназначенный для единственного хоста, самый широко используемый адрес.
широковещательный (broadcast) - для всех хостов в одной сети, из-за спама используется реже, чаще используется local broadcast - широковещательный, но только по локальной сети.
Групповой (multicast) – копии пакетов направляются определённому подмножеству адресатов, т.е. для нескольких хостов, образующих т.н. группу рассылки. Группа может быть образована хостами из разных сетей. В группу можно самому войти и выйти. Чтобы маршрутизаторы могли автоматически распространять пакеты с адресом multicast по составной сети, необходимо использовать в конечных маршрутизаторах модифицированные протоколы обмена маршрутной информацией, такие как, например, MOSPF (Multicast OSPF, аналог OSPF).
Anycast –кому-нибудь # метод рассылки пакетов, реализованный, в протоколе IPv6. Позволяет устройству посылать данные ближайшему из группы получателей.
52. Маски адресов. Keywords: add mask, netID field, subnet ID, subnetting, Supernetting, CIDR, VLSM.
Помимо своего IP-адреса хост должен знать, сколько разрядов в нем отведено для идентификатора сети (netID) и сколько – для идентификатора хоста(subnet ID).
Маска- это число, двоичная запись которого содержит единицы в разрядах, интерпретируемых как номер сети. Маска подсети позволяет провести четкую границу между двумя частями IP-адреса. Одна часть идентифицирует номер подсети, вторая - предназначается для идентификации хостов в этой подсети.
Хосты и маршрутизаторы используют старшие биты IP-адреса для определения его класса. После того как класс определен, хост может легко найти границу между битами номера сети и номера хоста в этой сети. Однако класс адреса ничем не может помочь в определении номера подсети. Для решения данного вопроса служит 32-разрядная маска подсети, позволяющая однозначно определить требуемую границу.
255.0.0.0 - маска для сети класса А;
255.255.0.0 - маска для сети класса B;
255.255.255.0 - маска для сети класса C.
CIDR (classless interdomain routing/ RFC1519) - бесклассовая доменная маршрутизация - одна из мер рационализации адресного пространства (объединение множества адресов в группы). Благодаря CIDR поставщик услуг получает возможность «нарезать» блоки из выделенного ему адресного пространства в точном соответствии с требованиями каждого клиента, при этом у него остается пространство для маневра на случай его будущего роста. Бесклассовая адресация основывается на переменной длине маски подсети (англ. Variable Length Subnet Mask — VLSM), в то время, как в классовой (традиционной) адресации длина маски строго фиксирована 0, 1, 2 или 3 установленными октетами.
В стандартах, часто дается ссылка на длину расширенного сетевого префикса (идентификатора), а не на маску подсети. сетевой адрес 130.5.5.25 с маской подсети 255.255.255.0 так же может быть записан, как 130.5.5.25 /24. Число 24 указывает, что в маске 255.255.255.0 число единичных бит равно 24.
Рассмотрим пример создания подсетей. Организация получила сеть класса C 193.1.1.0, ей необходимо сформировать шесть подсетей. Наибольшая подсеть должна поддерживать 25 хостов. На первом шаге определяется число битов, требуемых для определения необходимых шести подсетей. Поскольку найти число, при котором два в какой-либо степени равнялось шести, невозможно, то в данном примере администратор должен определить восемь подсетей (23 = 8), т. е. для выделения подсетей будут использованы три бита из выделенного адреса.
Изначальный префикс /24, а значит, полученный после выделения подсетей, расширенный сетевой префикс будет записан как /27 (24 + 3 = 27). Этот расширенный сетевой префикс имеет эквивалентное значение маски подсети 255.255.255.224. Используемый 27-разрядный расширенный сетевой префикс оставляет 5 бит для задания номеров хостов в каждой из подсетей. Это означает, что в каждой подсети может быть определено до 32 (25 = 32) индивидуальных адресов хостов. адреса, у которых все биты равны 0 или 1, являются зарезервированными, так что общее число адресов хостов в каждой подсети становится равным 30 (25 - 2 = 30).
Subnetting - разбиение адресного пространства сети на части, например на части разбивают сети класса А и В, т.к. те имеют много разрядов для нумерации их хостов. Разбиение сети данного класса на подсети скрыто от всех маршрутизаторов Internet, кроме маршрутизаторов самой сети.
Supernetting– объединение двух сетей.(2 сети класса С – эквивалентны сети класса В (/16) – уменьшение идентификатора.
VLSM (variable length subnet masks) - маски сетей переменной длины. При регистрации сети InterNIC предоставляет каждой уникальный идентификатор (поле IP-адр данной сети- netID).
53. Транспортный уровень Internet: понятие “порт”, транспортные протоколы стека TCP/IP, их сопоставление, протокол UDP, достоинства и недостатки, особенности применения.
Протоколы транспортного уровня: TCP(логическое соединение), UDP – протокол user дейтаграмм, SCTP Stream Control Transmission Protocol -передачи с контролем потока, SPX - упорядоченный обмен пакетами и др
могут решать проблему негарантированной доставки, а также гарантировать правильную последовательность прихода данных. В стеке TCP/IP транспортные протоколы определяют для какого именно приложения предназначены эти данные. Протоколы автоматической маршрутизации, логически представленные на этом уровне (поскольку работают поверх IP), на самом деле являются частью протоколов сетевого уровня.
TCP Transmission Control Protocol (IP идентификатор 6) — «гарантированный» транспортный механизм с предварительным установлением соединения. Предоставляет надёжный поток данных, дающий уверенность в безошибочности получаемых данных, перезапрашивает данные в случае потери и устраняет дублирование данных. TCP позволяет регулировать нагрузку на сеть, а также уменьшать время ожидания данных при передаче на большие расстояния. TCP гарантирует, что полученные данные были отправлены точно в такой же последовательности. задача, которую решает протокол TCP, заключается в передаче данных между любыми прикладными процессами, выполняющимися на любых узлах сети.
В основе TCP -сокеты (гнезда или конечные точки), создаваемые как отправителем, так и получателем. У каждого сокета есть номер (адрес), состоящий из IP-адреса хоста и 16-битного номера, локального по отношению к хосту, называемого портом. Портом в TCP называют TSAP-адрес. порты — для обмена пакетами между приложениями, а не просто узлами. Номера портов со значениями ниже 1024, называемые популярными портами, зарезервированы стандартными сервисами. Порты могут принимать значение от 0-65535 (два байта 2^16). По номеру порта транспортные протоколы определяют, какому приложению передать содержимое пакетов.
Зарезервированные порты:
- 21 – FTP- передача файлов
- 23 – Telnet- дистанционный вход в систему
- 25 – SMTP- электронная почта
- 80 – HTTP- инет и т.д.
T/TCP (Транзакционный TCP) —экспериментальный вариант TCP для эффективный работы транзакционных сервисов (запрос/ответ). Этот протокол быстрее простого TCP и, в отличие от UDP, гарантирует доставку. Описан в RFC 1379 и 1644.
UDP - User Datagram Protocol (IP идентификатор 17) позволяет приложениям отправлять инкапсулированные IP-дейтаграммы без установления соединений. UDP описан в RFC 768. Протокол «ненадёжной» передачи (невозможно удостовериться в доставке сообщения адресату, а также возможного перемешивания пакетов).
UDP не занимается контролем потока, контролем ошибок, повторной передачей после приема испорченного сегмента. UDP предоставляет интерфейс для IP путем демультиплексирования нескольких процессов, использующих порты. Это все, что он делает. Одной из областей, где UDP применяется особенно широко, является область клиент-серверных приложений, также для потокового видео и компьютерных игр, где допускается потеря пакетов, а повторный запрос затруднён или не оправдан.
UDP-пакеты - пользовательские дейтаграммы, имеют фиксированный размер заголовка 8 байт.
Формат пользовательской дейтаграммы.
Адрес порта источника 16 бит | Адрес порта пункта назначения 16 бит | Заголовок 8 байт | ||
Полная длина 16 бит | Контрольная сумма 16 бит | |||
Полная длина 16 бит | Контрольная сумма 16 бит | |||
Данные | ||||
Основные особенности TCP:
· Устанавливается соединение.
· Данные передаются сегментами. Модуль TCP нарезает большие сообщения (файлы) на пакеты, каждый из которых передается отдельно, на приемнике наоборот файлы собираются. Для этого нужен порядковый номер (Sequence Number - SN) пакета.
· Посылает запрос на следующий пакет, указывая его номер в поле "Номер подтверждения" (AS).Тем самым, подтверждая получение предыдущего пакета.
· Делает проверку целостности данных, если пакет битый посылает повторный запрос.
Основные отличия от TCP:
· Отсутствует соединение между модулями UDP.
· Не разбивает сообщение для передачи
· При потере пакета запрос для повторной передачи не посылается
54. Транспортный уровень Internet: протокол TCP, понятие соединение транспортного уровня, сокеты, установление соединения, квитанции, особенности применения.
TCP - протокол управления передачей
Source port | Destination port | ||||||||||||
Sequents number | |||||||||||||
Achnolagement/ Квитанция (Sequence number of the next expected порядковый № следующего ожидаемого сегмента) | |||||||||||||
Header Длина заголовка | Нули (6 bits) | U R G | A C K | P S H | R S T | S Y N | F I N | Размер окна/ window size(своболное место в буфере приема для данного соединения | |||||
Checksum/ Контрольная сумма | Указатель срочных данных(offset | ||||||||||||
Опции (если есть) Options | |||||||||||||
Данные (если есть) Payload | |||||||||||||
Установление Соединения
В начале активная сторона посылает сегмент с начальным номером (с какого будет нумероваться, окно приема, порты и т.д.) принимающая сторона либо отвергает это сообщение(ресет), либо принимает и посылает свой SYN (начальный номер и квитанцию на наш SYN,теперь мы ему обязаны послать квитанцию и лишь затем мы отсылаем ему инфу) «трехкратное рукопожатие».
SYN – флаг синхронизации. В TCP протоколе есть спец. Регистр (счетчик) ISN (Initial sequence number)– начальный номер последовательности. Когда ОС загружается, там записывается единица, с каждой сек добавляется единица.
Sequencee numbersПри загрузке системы начинается счетчик и каждые несколько секунд прибавляет по 1
ISN0 = 1
ISN1 = 2 и т.д. идет отсчет
…….
ISNj = J
В первом пакете не содержится квитанция (т.к. не была установлена связь) В первом пакете синхронизации записываем как раз ISN, а во втором пакете ISN+кол-во байтов в первом пакете. Указатель срочных данных (сигнализация потоков данных) После некоторого кол-ва даннных идет особая информация. Смещение начала команд от начала заголовков (offset
СОЕДИНЕНИЕ TCP инициализируется парой полных адресов обоих взаимодействующих процессов - сокетов/ API socets приложение. Каждый из взаимодействующих процессов может участвовать в нескольких соединениях.
В рамках установленного соединения правильность передачи каждого сегмента должна подтверждаться квитанцией получателя.
Получающий модуль TCP отправляет «окно» посылающему модулю TCP. Данное окно задает количество байтов (начиная с номера байта, о котором уже была выслана квитанция), которое принимающий модуль TCP готов в настоящий момент принять.
Окно, в которое записывается вся прибывающая инфа, как зал прибытия в аэропорту. Если данные поступают быстро, то буфер заполняется. Для того, чтобы не переполнился буфер, отправляется инфа о размере каждый раз при отправке.
Окно приема регулирует темп подачи данных со стороны получателя. Размер у него постоянно меняется – скользящий (sliding window) сколько свободного места осталось в буфере.
Окно сдвигается постоянно, готовое работать с новыми сегментами.
Если сообщение состоит из нескольких ТСР-сегментов (не путайте с IP-дейтаграммами), TCP на машине-получателе собирает его, исходя из порядковых номеров сегментов, хранящихся в заголовке. Если сегмент утерян или поврежден (последнее обнаруживается с помощью контрольной суммы в заголовке сегмента), отправителю посылается сообщение, содержащее порядковый номер ошибочного или потерянного сегмента. В этом случае отправитель повторно передает сегмент.
Если сообщение состоит только из одного сегмента TCP, то после сравнения полученной и вычисленной контрольных сумм ПО TCP на машине-получателе посылает отправителю подтверждение-квитанцию (АСК — acknowledgement). Выдача квитанции в ответ на принятый сегмент называется квитированием.
Соединение активно до тех пор, пока оно не будет закрыто. Соединение поддерживается только на оконечных станциях, а не на уровне кабелей и т.д. Т.е., уехав на 5 летв Австралию и забыв выключить GoogleMail, соединение сохранится и через 5 лет, даже если кабели порвались. Это висячие соединения и браузеры с ними борются.
Для закрытия соединения – уже не 3 пакета, а 4 – FIN