В настоящее время без сети не может обойтись ни кондитер, ни водитель. И даже дети, которые еще не ходят в школу, а то и в детский сад, уже пользуются сетями. Поэтому сейчас специалистов в этой области требуется всё больше. Наш курс поможет желающим разобраться во всех премудростях этого интереснейшей области.
В этом курсе слушатели:
- составят целостную картину о работе локальных и глобальных компьютерных сетей;
- увидят, как передаётся информация,
- поймут логику и принципы работы сетевых протоколов и базовых служб,
- научатся диагностировать работоспособность сетевых соединений, выявлять и устранять неполадки, работать с сетевым
анализатором,
- освоят технологию виртуализации аппаратного обеспечения
- и смогут создавать и размещать собственные сетевые серверы и веб-ресурсы на них.
Слушатель получит представление и о самых низкоуровневых процессах в сети, и о высокоуровневых.
После освоения курса слушатель сможет:
- проектировать и разворачивать сети самостоятельно,
- настраивать сетевое оборудование,
- настраивать серверы и создавать веб-ресурсы, размещая их как удалённо на стороннем, так и локально на своём оборудовании.
Курс включает в себя практическую часть, выполняемую при помощи средств виртуализации аппаратного
обеспечения непосредственно на компьютере слушателя.
Старший преподаватель (Senior Lecturer) Кафедра квантовой электроники и фотоники радиофизического факультета (Department of Quantum Electronics and Photonics, Faculty of Radiophysics)
[МУЗЫКА] Здравствуйте!
С вами я, Николай Булахов, и мы продолжаем изучать компьютерные сети.
Сейчас мы поговорим с вами о протоколе IP.
Без преувеличения можно сказать,
что это один из самых важнейших протоколов стека TCP/IP.
До сих пор мы говорили о передаче информации от одного устройства к другому
непосредственно, можно сказать, из рук в руки.
Но такая схема работает только внутри одной локальной сети.
А что, если нам надо передать информацию между несколькими локальными сетями?
Ведь одна сеть ограничена территориально,
и количество компьютеров в ней не может быть сколь угодно большим.
Тогда нам надо каким‐либо образом объединить эти локальные сети,
но при этом не делать из них одну большую локальную сеть.
В этом случае нам вполне подойдёт вариант посредника,
который бы входил в каждую из объединяемых локальных сетей и при необходимости
физически мог передать информацию из одной локальной сети в другую.
Такой просредник обычно называется маршрутизатором.
Но как он должен узнать,
надо ли передать информацию из одной локальной сети в другую?
Для того чтобы разобраться в этом,
вспомним принцип семиуровневой модели ISO/IEC.
Каждая отдельная задача изолирована своим отдельным уровнем в этой модели.
Пусть на уровне локальных сетей всё остаётся как есть.
Введём специальны уровень для объединения локальных сетей и опишем
протокол передачи данных из одной локальной сети в другую.
Следуя логике разделения процесса по отдельным уровням,
отправитель должен уметь определить, предназначены ли данные кому‐либо внутри
этой локальной сети, где он находится, или же кому‐то за её пределами.
В последнем случае отправитель должен уметь передать информацию тому самому
посреднику, то есть маршрутизатору.
В свою очередь, посредник должен перебросить полученный информационный
пакет в другую локальную сеть, чтобы адресат мог его получить.
Такой функционал и реализует протокол IP.
Его заголовок идёт сразу за заголовком Ethernet.
И если Ethernet не подразумевает какую‐либо структуризацию адресов,
то как раз‐таки IP‐адреса упорядочены подобно географическим.
Помимо этого, заголовок содержит ряд сведений,
и обычно его представляют в виде таблицы, каждая строчка которой состоит из 32 бит.
Первые четыре бита — это номер версии протокола.
Мы в данном случае рассматриваем четвёртую версию,
хотя на данный момент уже вовсю внедряется шестая версия данного протокола.
Но она ещё не так распространена, как хотелось бы.
Следующие четыре бита задают длину заголовка.
Как несложно увидеть, в четыре бита помещается не так много информации,
поэтому длина заголовка измеряется в 32‐битных порциях,
или, как их ещё называют, словах.
Следующий байт задаёт тип сервиса для данного пакета.
Далее, поле в один байт содержит информацию о типе
обслуживания данного пакета.
Первые три бита в нём — это приоритет.
Затем один бит — требование к времени задержки: 0 — нормальная задержка,
1 — низкая.
Далее один бит — это требование к пропускной способности маршрута: 0 —
низкая, 1 — высокая пропускная способность.
Далее идёт требование к надёжности передачи: 0 — нормальная,
1 — высокая надёжность.
И последние два бита — это явное сообщение о задержке.
Далее идёт три бита флагов: первый из них всегда равен 0,
по стандарту он зарезервирован.
Второй называется «не фрагментировать».
Если он равен 1, то такой пакет нельзя разбивать на части, или же,
как их называют, фрагменты.
Если равен 0, то можно.
Третий бит называется «есть ещё фрагмент».
Если он равен 1, это говорит нам о том, что данный пакет был разбит на части,
и это не последняя его порция, есть ещё.
Если же равен 0, то такой пакет не разбивался никогда на фрагменты,
либо это как раз‐таки последняя порция из всех имеющихся.
Далее расположено 13‐битное поле смещения фрагмента.
То есть, если это только часть одного большого общего пакета,
то здесь записано число, означающее, насколько удалено расположение данных,
передаваемых в этой части пакета, от начала данных в оригинальном пакете.
Для примера предположим, что мы передавали пакет с 1500 байтами данных.
Предположим, идентификатор пакета был 12345.
Тогда флаги должны были быть 0, 0 и 0.
То есть его можно фрагментировать, и нет фрагментов за ним.
В поле смещения фрагмента должно быть записано «0».
В процессе передачи пакет пришлось разделить на три части — по 500 байт.
Тогда в первом фрагменте идентификатор будет тоже 12345.
Флаги будут 0, 0, 1,
то есть можно фрагментировать и есть ещё фрагменты далее.
Смещение по‐прежнему остаётся 0.
Во втором фрагменте идентификатор будет по‐прежнему 12345, флаги будут 0, 0, 1.
То есть, опять же, можно фрагментировать, есть ещё фрагменты далее.
Но смещение уже будет 500.
В третьем же фрагменте идентификатор будет опять 12345, а флаги будут 0, 0, 0.
Можно фрагментировать, нет ещё фрагментов далее, и смещение при этом будет 1000.
После этого идёт однобайтовое поле — так называемое «время жизни»,
time to live, или, как его ещё часто называют, TTL.
В него по умолчанию записывается некоторое разумное число, отличное от 0.
При пересылке пакета через каждый маршрутизатор это поле уменьшается
ровно на единицу.
Когда значение обратится в ноль, пакет будет отброшен.
Эта технология помогает бороться с зацикливаниями внутри сети.
Таким образом, пакет никогда не будет передаваться по кругу вечно, рано или
поздно он будет отброшен маршрутизатором по мере истечения времени жизни.
Изначальное значение этого поля зависит от операционной системы и её настроек.
Именно это значение смотрит провайдер, если хочет определить,
используете ли вы в своей домашней сети маршрутизатор или
раздаёте ли вы Интернет со своего сотового телефона.
Далее идёт один байт — идентификатор протокола,
заголовок которого расположен за заголовком IP,
то есть по какому протоколу передаётся информация внутри пакета IP.
После этого идёт контрольная сумма заголовка,
чтобы вы могли судить о целостности переданного пакета,
и два четырёхбайтовых поля IP адреса: отправителя и получателя.
Они иерархические и подобны географическим адресам,
которые мы с вами используем: страна, город, улица, дом, квартира и так далее.
В некоторых случаях после этого могут располагаться опциональные параметры
заголовка.
Об их наличии или отсутствии можно судить по размеру заголовка,
который записан в самом начале.
Теперь вы знаете, как устроен заголовок IP,
и можно перейти к следующей части, которая описывает адресацию в IP сетях.