|
|
Строка 1: |
Строка 1: |
− | [[Категория:Конспекты]]
| + | ==Лекция 3== |
− | ==Лекция 1== | + | ===Службы разрешения имен=== |
− | ===Базовые понятия=== | + | * Файл '''hosts.txt''' – файл статического сопоставления имен компьютеров и их ip-адресов. |
− | '''Компьютерная сеть''' — это совокупность компьютеров, которые могут обмениваться между собой информацией. | + | * Служба разрешения имен '''NetBIOS''' и ее реализация в Windows – '''WINS''' (Windows Internet Naming Service). |
| + | ** Файл '''lmhosts''' – файл статического сопоставления NetBIOS-имен и ip-адресов. |
| + | * '''DNS'''' (Domain Name System) – стандартная служба разрешения имен в Интернет. |
| | | |
− | '''Компоненты компьютерной сети''':
| + | Файлы hosts и lmhosts находятся в C:\WINDOWS\system32\drivers\etc\ |
− | * компьютер;
| |
− | * '''линии связи''' (коммуникационное оборудование) — техника, которая реализует возможность обмена информацией (провода, устройства, иногда — компьютер, выполняющий функцию коммуникационного оборудования);
| |
− | * операционная система, в особенности, модули ОС, реализующие сетевое взаимодействие;
| |
− | * '''распределенные приложения''' — программы, которые работают одновременно на разных компьютерах, например, WWW.
| |
| | | |
− | '''Сервер''' — компьютер или программа, предоставляющая некоторые услуги.
| + | ====Доменные имена компьтеров==== |
| + | Каждый компьютер в Интернете имеет свой IP-адрес – 4 числа от 0 до 255. Такой адрес удобен при маршрутизации, так как определяет месторасположение компьютера в сети Интернет, однако, такие числа совсем неудобны для восприятия пользователем. Более того, если, например, ваш email: sasha007@207.176.39.176 и ваша почтовая служба решила сменить сервер, то вместе с ним измениться и email. |
| | | |
− | '''Выделенный сервер''' — это компьютер, служащий только для обслуживания клиентских машин.
| + | Гораздо лучше, когда компьютер имеет мнемоническое имя, например, mail.ru, sasha007@mail.ru. |
| + | Существует файл hosts (и в UNIX, и в Windows), в котором можно прописывать адреса серверов, с которыми вы регулярно работаете (кстати, именно его использование лежит в основе многих «ускорителей Интернета» — такие программы просто записывают адреса серверов, к которым вы обращаетесь, в файл hosts и при следующем обращении берут данные из него, не тратя время на запрос к DNS-серверу). |
| + | [[Изображение:Доменные имена компьютеров.gif|500px|thumb|right|Доменные имена компьютеров]] |
| + | DNS — иерархическая структура имен. Существует «корень дерева» с именем "." (точка). Так как корень един для всех доменов, то точка в конце имени обычно не ставится, но используется в описаниях DNS. Ниже корня лежат домены первого уровня. |
| + | Домены верхнего уровня разделяются на две группы: родовые домены и домены государств. К родовым относятся домены com (commercial — коммерческие организации), edu (educational — учебные заведения), gov (government — федеральное правительство США), int (international — определенные международные организации), net (network — сетевые операторы связи) и org (некоммерческие организации). За каждым государством в соответствии с международным стандартом ISO 3166 закреплен один домен государства. Ниже находятся домены второго уровня, например, sfedu.ru. Еще ниже — третьего (math.sfedu.ru) и т.д. |
| + | Имена доменов нечувствительны к изменению регистра символов. Так, например, edu и EDU означают одно и то же. Обычно разрешается регистрация доменов длиной до 63 символов, а длина полного пути не должна превосходить 255 символов. Размер доменного имени ограничивается по административным и техническим причинам. |
| | | |
− | Доступ к нему обычно получают только администраторы системы для выполнения задач управления, мониторинга и поддержки работоспособности. Часто они выполняют только какую-то одну задачу. Например, файл-сервер.
| + | Структура доменов отражает не физическое строение сети, а логическое разделение между организациями и их внутренними подразделениями. Так, если факультеты компьютерных наук и электротехники располагаются в одном здании и пользуются одной общей локальной сетью, они, тем не менее, могут иметь различные домены. И наоборот, если, скажем, факультет компьютерных наук располагается в двух различных корпусах университета с различными локальными сетями, логически все хосты обоих зданий обычно принадлежат к одному и тому же домену. |
| | | |
− | '''Клиент''' — это компьютер или программа, запрашивающая услуги. | + | ====Служба трансляции имен DNS==== |
| + | '''Клиенты DNS''' – специализированные библиотеки (или программы) для работы с DNS (в Windows – служба «DNS-клиент»). |
| | | |
− | Клиенты бывают '''толстыми''', '''тонкими''' и '''сверхтонкими'''.
| + | '''Серверная сторона DNS''' – множество серверов имен, рассредоточенных по миру и осуществляющих поиск в распределенной базе данных доменных имен. |
| | | |
− | <div style="text-align: center;">
| + | Порт сервера – 53. |
− | '''Сравнительные характристики клиентов'''
| |
− | </div>
| |
− | {| class="standard"
| |
− | ! толстый клиент
| |
− | ! тонкий клиент
| |
− | ! сверхтонкий клиент
| |
− | |-
| |
− | | colspan=3 | <div style="text-align: center;">Данные хранятся на сервере</div>
| |
− | |-
| |
− | | colspan=3 | <div style="text-align: center;">Программа-«сервер» хранится и работает на сервере</div>
| |
− | |-
| |
− | | colspan=3 | <div style="text-align: center;">Программа-«клиент» (стандартное ПО, например, браузер) хранится и выполняется на клиенте</div>
| |
− | |-
| |
− | |Данные перекачиваются с сервера на клиент и обрабатываются программой - «клиентом» на клиенте
| |
− | | colspan=2 | <div style="text-align: center;">Данные обрабатываются на сервере</div>
| |
− | |-
| |
− | | colspan=2 | <div style="text-align: center;">Интерфейс строится программой-«клиентом» на клиенте</div>
| |
− | | Интерфейс строится на сервере и передается программе-клиенту
| |
− | |}
| |
| | | |
− | При доступе к почте через почтовую программу, например, Mozilla Thunderbird (данные хранятся на сервере, а интерфейс обеспечивается почтовой программой-клиентом) можно сказать, что интерфейс строится программой-«клиентом» на клиенте. В случае же доступа к почте через веб-интерфейс (данные хранятся на сервере и интерфейс (веб-странички) генерируются сервером) интерфейс строится на сервере и передается программе-клиенту.
| + | Серверное ПО: Berkeley Internet Name Domain (BIND) (демон named), NSD (name server daemon), Windows DNS Server |
| | | |
− | '''Протокол''' определяет:
| + | Суть системы DNS заключается в иерархической схеме имен, основанной на доменах, и распределенной базе данных, реализующей эту схему имен. В первую очередь эта система используется для преобразования имен хостов и пунктов назначения электронной почты в IР-адреса, но также может использоваться и в других целях. |
− | * формат сообщений;
| |
− | * очередность сообщений;
| |
− | * действия, которые необходимо выполнять при получении, приеме сообщений или при наступлении иных событий.
| |
| | | |
− | '''Пропускная способность канала связи''' (bandwidth) — наибольшая скорость передачи информации по каналу связи.
| + | В общих чертах система DNS применяется следующим образом. Для преобразования имени в IР-адрес прикладная программа обращается к библиотечной процедуре, называющейся распознавателем, передавая ей имя в качестве параметра. Распознаватель посылает UDP-пакет локальному DNS-серверу, который ищет имя в базе данных и возвращает соответствующий IР-адрес распознавателю, который, в свою очередь, передает этот адрес вызвавшей его прикладной программе. Имея IР-адрес, программа может установить TCP-соединение с адресатом или послать ему UDP-пакеты. |
− | Измеряется числом передаваемых двоичных символов в 1 с. Скорость передачи зависит от физических свойств канала связи, статистических свойств помех, способа передачи, приема сигналов и др..
| |
| | | |
− | ===Классификация компьютерных сетей===
| + | Система DNS не только отыскивает IP-адрес по заданному имени хоста, но способна выполнять и обратную операцию, т.е. по IP-адресу определять имя хоста в сети. Многие веб- и FTP-серверы в сети Internet ограничивают доступ на основе домена, к которому принадлежит обратившийся к ним клиент. Получив от клиента запрос на установку соединения, сервер передает IP-адрес клиента DNS-серверу как обратный DNS-запрос. Если клиентская зона DNS настроена правильно, то на запрос будет возвращено имя клиентского хоста, на основе которого затем принимается решение о том, допустить данного клиента на сервер или нет. |
| | | |
− | '''Классификация компьютерных сетей по территории'''
| + | =====Дополнительные функции DNS-сервера===== |
| + | # Поддержка псевдонимов серверов. Пример: mmcs.sfedu.ru, web.mmcs.sfedu.ru и web.mmcs.rsu.ru имеют один и тот же ip-адрес |
| + | # Поддержка почтового сервера домена. |
| + | # Распределение нагрузки между серверами. |
| + | # Кэширование (авторитетная и неавторитетная информация). |
| + | # Поддержка почтового сервера домена. Можно узнать ip-адрес почтового сервера в домене (используется при пересылке почты). |
| + | # Распределение загрузки между серверами. Одно доменное имя соответствует нескольким серверам, следовательно, по запросу служба может вернуть несколько IP–адресов. Наример, www.microsoft.com обслуживает несколько серверов. При этом первый по списку сервер меняется от запроса к запросу. Системы обычно берут первый IP-адрес. Загрузка происходит одновременно (то к одному серверу – то к другому), но мы, как пользователи, этого не замечаем. |
| | | |
− | * Local Area Network (LAN) — сети одной квартиры, дома, организации.
| + | '''Корневые серверы DNS''' — это серверы DNS, содержащие информацию о доменах верхнего уровня (edu, org, com, ru, …), конкретнее — указатели на серверы DNS, поддерживающие работу каждого из этих доменов. |
− | * Metropolian Area Network (MAN), городские — высокоскоростные каналы связи в пределах большого города.
| |
− | * Региональные — объединяют компьютеры географической области.
| |
− | * Wide Area Network (WAN),глобальные.
| |
| | | |
− | Примеры
| + | '''Authoritative DNS-server''' — сервер, отвечающий за какую-либо зону. |
− | Пользователи Spark объединены в локальную сеть, которую можно назвать городской (MAN).
| |
− | Региональная сеть: Рунет.
| |
− | WAN: Интернет, сети магистральных Интернет провайдеров, сети организаций с филиалами по всему миру.
| |
| | | |
− | '''Классификация компьютерных сетей по топологии'''
| + | Корневые серверы DNS обозначаются латинскими буквами от «A» до «М». Их всего 13 штук (+ куча зеркал). Они управляются различными организациями, действующими по согласованию с ICANN. Количество серверов ограничено в связи с максимальным |
| + | объёмом UDP-пакета (большее количество серверов потребовало бы перехода на TCP-протокол для получения ответа, что существенно увеличит нагрузку). |
| | | |
− | {{Hider
| + | У многих корневых серверов DNS существуют зеркала. В частности, российское зеркало сервера F расположено в РосНИИРОС. |
− | |title = Линейные
| + | IP-адреса корневых DNS-серверов можно получить командой «dig. NS» (dig точка NS; точка – корневой домен). |
− | |content = [[Изображение:Топология линия.gif]]
| |
− | }}
| |
− | {{Hider
| |
− | |title = Кольцевые
| |
− | |content = [[Изображение:Топология кольцо.gif]]
| |
− | }}
| |
− | {{Hider
| |
− | |title = «Звезда»
| |
− | |content = [[Изображение:Топология «звезда».gif]]
| |
− | }}
| |
− | {{Hider
| |
− | |title = Общая шина
| |
− | |content = [[Изображение:Топология общая шина.gif]]
| |
− | }}
| |
− | {{Hider
| |
− | |title = «Дерево»
| |
− | |content = [[Изображение:Топология «дерево».gif]]
| |
− | }}
| |
− | {{Hider
| |
− | |title = Полносвязные
| |
− | |content =
| |
− | }}
| |
− | {{Hider
| |
− | |title = Смешанные
| |
− | |content =
| |
− | }}
| |
| | | |
− | '''Классификация компьютерных сетей по типу среды передачи'''
| + | The DNS Backbone DDoS Attacks have been several significant Internet events in which distributed denial of service attacks (DDoS) have targeted one or more of the thirteen DNS root servers. These attacks are extremely significant, as the root nameservers function as the Internet backbone, translating text-based Internet hostnames into IP addresses. As the nameservers provide this service for DNS lookups worldwide, attacks against the root nameservers are attempts to disable the Internet itself, rather than specific websites. |
| | | |
− | * Проводные
| + | The first attack occurred on October 21, 2002, and lasted for approximately one hour. Of the thirteen servers, nine were disabled but the remaining four were able to cope. This was the second near-major failure of the root nameservers; the first large malfunction of them caused the failure of seven machines in July 1997, due to a technical problem. |
− | ** витая пара;
| + | A second attack occurred on February 6, 2007. The attack began at 10:30 UTC, and lasted about five hours. Although none of the servers crashed, two of the root servers reportedly "suffered badly", while others saw "heavy traffic". The botnet responsible for the attack has reportedly been traced to the Asia-Pacific region. [2] There was some speculation in the press that the attack originated from South Korea. [3] |
− | ** коаксильный кабель;
| + | On February 8, 2007 it was announced by Network World that "If the United States found itself under a major cyberattack aimed at undermining the nation’s critical information infrastructure, the Department of Defense is prepared, based on the authority of the president, to launch a cyber counterattack or an actual bombing of an attack source."[4] |
− | ** оптоволокно.
| + | [[Изображение:Принципы работы DNS.gif|400px|thumb|right|Принципы работы DNS]] |
− | * Беспроводные
| + | =====Принципы работы DNS===== |
− | ** радиосвязь (WiFi, WiMAX);
| + | Рассмотрим схему подачи запроса серверу. Студент Университета Станфорд с университетского компьютера пытается зайти на сайт воскресной школы мехмата sunschool.math.sfedu.ru. Чтобы определить IP-адрес компьютера sunschool.math.sfedu.ru, браузер студента вызывает DNS-клиент (resolver) – функцию API операционной системы. Она, используя IP-адрес локального DNS-сервера из настроек сети на компьютере студента, посылает запрос в виде UDP-пакета DNS-серверу (пусть сервер будет atalante.stanford.edu. |
− | ** инфракрасная связь;
| |
− | ** СВЧ-связь (Bluetooth).
| |
| | | |
− | {{Hider
| + | Предположим, что локальный сервер Станфордского университета имен не знает IP-адреса sunschool.math.sfedu.ru. Он посылает запрос одному из корневых серверов, адреса которых содержатся в его базе данных, пусть это будет f.root-servers.net.Таким образом получается '''рекурсивный запрос''': DNS-клиент студента обращается к локальному DNS-серверу, а тот к корневому. |
− | |title = Пример. Сеть мехмата имеет топологию дерево.
| + | Маловероятно, чтобы корневой сервер знал адрес хоста sunschool.math.sfedu.ru. Скорее всего, он даже не знает адреса сервера sfedu.ru, однако он должен знать все свои дочерние домены – домены верхнего уровня. Но продолжать рекурсию он не будет. Дело в том, что корневые домены сильно загружены запросами, поэтому сконфигирированы так, что возвращают список DNS-серверов, которые должны больше знать о sunschool.math.sfedu.ru – это DNS-серверы домена ru. Получив список DNS-серверов, локальный сервер Станфордского университета направляет запрос одному из серверов списка (обычно первому), например, ns.ripn.net. Тот тоже загружен и возвращает адреса DNS-серверов дочерней зоны sfedu.ru. Последние два запроса называются '''итеративными''' (от слова «итерация»). Затем локальный сервер Станфордского университета обращается к первому в списке серверу домена sfedu.ru. Пусть это будет ns.sfedu.ru. В данном примере оказалось, что он тоже не знает IP-адреса sunschool.math.sfedu.ru. DNS-сервер нашего университета не так загружен, как корневые серверы или серверы доменов верхнего уровня, поэтому его сконфигурировали выполнять рекурсивные запросы. Он обращается к серверу домена math.sfedu.ru – это ns.math.sfedu.ru, получает искомый IP-адрес и возвращает его в ответе локальному серверу Станфордского университета, который в свою очередь сообщает его компьютеру студента. |
− | |content = [[Изображение:Сеть_мехмата.gif|250px|thumb|left|Cеть мехмата. Красные линии – оптоволокно, синие – витая пара]]
| |
− | <br clear="both" />
| |
− | }}
| |
− |
| |
| | | |
− | ===Структура сети Интернет===
| + | Когда записи ресурсов попадают на сервер имен Станфордского университета, они помещаются в кэш на случай, если они понадобятся еще раз. Однако, информация в кэше не является '''авторитетной''', так как изменения в домене sfedu.ru не будут распространяться автоматически на все кэши, в которых может храниться копия этой информации. По этой причине записи кэша обычно долго не живут. В каждой записи ресурса присутствует поле Time_to_live. Оно сообщает удаленным серверам, насколько долго следует хранить эту запись в кэше. |
| | | |
− | ====Локальные, региональные, магистральные провайдеры====
| + | Набор DNS-серверов в ответе на запрос все время один и тот же, однако, их последовательность в списке меняется от запроса к запросу, так как программы обычно берут первое имя из списка, то они обращаются к разным серверам. Таким образом нагрузка равномерно распределяется между DNS-серверами списка. |
| | | |
− | '''Локальный (местный) провайдер''' (ISP – Internet Service Provider) – поставщик услуг Интернета, работающий (как правило) в пределах одного города (ЮГИНФО, ЦТС, Интеркабель).
| + | =====Структура DNS-сообщения===== |
| + | Запросы и ответы имеют один формат и состоят из: |
| + | * заголовка, включающего в себя идентификатор, размер сообщения, количество вопросов/ответов и т.д. (12 байтов); |
| + | * секции вопросов (название, тип); |
| + | * секции ответов (набор RR (resource record) — записей из БД DNS); |
| + | * секции полномочности, которая содержит ссылки на полномочные сервера («Не знаю, но знаю у кого спросить»); |
| + | * дополнительной информации (IP-адреса тех, у кого можно еще спросить). |
| + | Это часть описания DNS-протокола. |
| | | |
− | '''Региональный провайдер''' – одной страны, области, округа (ТрансТелекомКавказ, ЮТК, ЦТС).
| + | Результат, возвращаемый командой dig: |
| + | <pre>;; ->>HEADER<<-opcode: QUERY, status: NOERROR, id: 42772 |
| + | ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 7, ADDITIONAL: 7 |
| | | |
− | '''Магистральный провайдер''' – страны, континента, земного шара (Global one Orange), Голден Телеком, Ростелеком, Verizon, Cogent)
| + | ;; QUESTION SECTION: |
| + | ;sunschool.math.sfedu.ru. IN A |
| | | |
− | ====Точки присутствия (POP), точки обмена трафиком (IX)====
| + | ;; AUTHORITY SECTION: |
| + | ru. 172800 IN NS NS9.RIPN.NET. |
| + | ru. 172800 IN NS AUTH60.NS.UU.NET. |
| + | ru. 172800 IN NS NS.RIPN.NET. |
| + | ru. 172800 IN NS NS5.MSK-IX.NET. |
| | | |
− | [[Изображение:Структура сети Интернет.gif|450px|thumb|right]]
| + | ;; ADDITIONAL SECTION: |
| + | NS.RIPN.NET. 172800 IN A 194.85.105.17 |
| + | NS5.MSK-IX.NET. 172800 IN A 193.232.128.6 |
| + | NS9.RIPN.NET. 172800 IN A 194.85.252.62 |
| + | AUTH60.NS.UU.NET. 172800 IN A 198.6.1.181</pre> |
| | | |
− | Ядро Интернета (или Core Backbone Network) составляют сети так называемых провайдеров первого уровня (Network Server Provider Tier-1) или магистральных провайдеров, наиболее крупными из которых являются UUNET(куплен Verizon), AT&T(в Америке), MCI (куплен Verizon), GTE/BBN (вместе с AT&T в SBC) и Sprint.
| + | <tt>dig @f.root-servers.net sunschool.math.sfedu.ru IN A</tt> — спрашиваем у одного из корневых серверов адрес воскресной школы мехмата. Сервер отсылает нас к DNS-серверам зоны ru. Секции ответов нет – она пустая, т.е. корневой сервер не знает адреса воскресной школы. Зато он знает у кого можно спросить еще. В дополнении указаны IP-адреса серверов, у которых можно спросить. |
| | | |
− | Эти сети построены в основном на базе технологий ATM и Frame Relay. Для их магистралей характерны каналы 622 и 2488 Мбит/с соответственно. Иногда встречаются каналы 9952 Мбит/с и более.
| + | =====Сервер DNS для Linux===== |
− | Сети NSP Tier-1 свободно обмениваются между собой трафиком, причем основная часть этого обмена сосредоточена в двух зонах (Metropolian Exchange Area,MAE), расположенных в Нью-Йорке и Сан-Франциско. Хотя наибольшая концентрация NSP первого уровня приходится на США, "ареал распространения" этих сетей не ограничивается только этой страной. Другие страны получают доступ к ядру Интернета либо благодаря NSP первого уровня, имеющим точки присутствия (POP-Point of Presence) по всему миру (например, UUNET "дотягивается" и до Европы, и до Юго-Восточной Азии), либо локальным NSP первого уровня (эта практика распроcтранена в Азии).
| + | '''BIND''' (Berkeley Internet Name Domain) — программный пакет системы DNS для UNIX систем. Функции сервера DNS в этом пакете реализует программа named (от «name daemon»). На большинстве корневых серверов стоит BIND. |
| | | |
− | Ниже магистральных провайдеров по иерархии расположены сетевые провайдеры следующего уровня — региональные, соединенные между собой высокоскоростными каналами передачи данных, которые, в свою очередь предоставляют доступ к Интернету местным (локальным) провайдерам (Internet Service Privider, ISP). Индивидуальные пользователи и компании-клиенты получают доступ к ресурсам Интернета именно при помощи ISP.
| + | Конфигурационные файлы: |
− | Соединение между ISP и пользователями (частными или корпоративными) обычно осуществляется при помощи коммутируемых линий (обычных телефонных или ISDN), или посредством так называемых выделенных линий, позволяющим клиенту иметь постоянное соединение с Интернетом. Частным случаем выделенных линий являются: подключение при помощи ADSL и использование инфраструктуры кабельного телевидения.
| + | <br>/etc/host.conf – определяются методы и порядок преобразования имен ОС Linux; |
− | Таким образом, путь между произвольным Web-сервером и компьютером пользователя состоит из трех основных частей — участка между Web-сервером и скоростной магистралью, участка скоростной магистрали и участка, связывающего пользователя с магистралью.
| + | <br>/etc/named.conf – опции программы named и список файлов, в которых находятся описания зон. |
| | | |
− | На связистком жаргоне первый участок обычно называют "'''первой милью'''", а третий — "'''последней милью'''".
| + | ======Пример файла /etc/host.conf====== |
| + | <pre>1 order hosts,bind |
| + | 2 multi on</pre> |
| | | |
− | Недостаточная скорость передачи данных может создать неприятности как на первой, так и на последней миле. Однако проблемы первой мили решаются довольно просто — надо перевести сервер из офиса компании в серверный центр, который непосредственно подключен к магистрали. Эта услуга называется collocation.
| + | В первой строке указывается порядок преобразования имен хостов. Здесь операционной системе Linux указывается, что в первую очередь она должна обращаться к файлу /etc/hosts и искать хост там, а затем попытаться преобразовать имя с помощью системы DNS (bind), если не удалось этого сделать с помощью /etc/hosts. |
| | | |
− | Проблема последней мили гораздо серьезнее. Ее решение состоит в распространении систем высокоскоростного доступа, использующих технологию xDSL (в первую очередьADSL), систем кабельного телевидения. В таких системах скорости передачи данных легко достигают несколько мегабит в секунду, что для большинства приложений достаточно.
| + | ======Пример файла /etc/named.conf для кэширующего DNS-сервера====== |
| + | <pre>1 options { |
| + | 2 directory "/var/named; |
| + | 3 }; |
| + | 4 |
| + | 5 zone "." { |
| + | 6 type hint; |
| + | 7 file "root.cache"; |
| + | 8 |
| + | 9 }; |
| + | 10 |
| + | 11 |
| + | 12 zone "localhost" { |
| + | 13 type master; |
| + | 14 file "pri/localhost"; |
| + | 15 }; |
| + | 16 |
| + | 17 zone."0.0.127.in-addr.arpa" { |
| + | 18 type master; |
| + | 19 file "pri/127.0.0"; |
| + | 20 };</pre> |
| | | |
− | '''Point Of Presence (POP), точка присутствия''' – место расположения оборудования оператора связи (провайдера), к которому возможно подключение клиентов.
| + | Дополнения к файлу /etc/named.conf с описанием зоны: |
| | | |
− | Обычно, POP – это узел связи или датацентр, возможно, отдельная единица коммуникационного оборудования, вынесенная ближе к месту концентрации потенциальных клиентов, например, в офисное здание.
| + | <pre>1 zone smallorg.org { |
− | Данный термин применяется при планировании сетей передачи данныхм и расчёте их стоимости. Обычно провайдер, оказывающий услуги по подключению к сети или передаче данных, указывает стоимость своих услуг именно в точке присутствия. Для определения же полной стоимости следует учесть построение (аренду) и эксплуатацию канала связи от точки присутствия до оборудования клиента (так называемой, последней мили). Поэтому при планировании сетей территориальное расположение точек присутствия различных провайдеров имеет не меньшее значение, чем стоимость и технические характеристики их услуг.
| + | 2 type master |
| + | 3 file "pri/smallorg.org"; |
| + | 4 }; |
| + | 5 |
| + | 6 zone 0.163.192 in -addr.arpa { |
| + | 7 type master; |
| + | 8 file "pri/192.168.0"; |
| + | 9 };</pre> |
| + | [[Изображение:Типы записей в базе данных DNS-сервера.gif|300px|thumb|right|Типы записей в базе данных DNS-сервера]] |
| + | =====Типы записей в базе данных DNS-сервера===== |
| + | DNS-сервер, отвечающий за имена хостов в своей зоне, должен хранить информацию о хостах в базе данных и выдавать ее по запросу с удаленных компьютеров. База данных DNS представляет собой текстовый файл, состоящий из исходных записей RR. Эти записи описывают компьютеры и их функции в локальной зоне. Для организации обмена информацией с удаленными серверами DNS на сервере Linux должно быть запущено программное обеспечение сервера DNS (обычно это программа named). |
| | | |
− | Например, при предоставлении услуги подключения к сети Интернет последняя миля — участок от порта коммутатора провайдера на его узле связи до порта маршрутизатора клиента в его офисе. Для услуг коммутируемого (dial-up, диалапного) подключения последняя миля — это участок между модемом пользователя и модемом (модемным пулом) провайдера. В последнюю милю обычно не включается разводка проводов внутри здания.
| + | Прежде всего в базе данных сервера DNS должна быть объявлена '''зона''' (логический узел в дереве DNS-имён), за которую данный сервер несет ответственность. Далее в ней должны быть объявлены все хост-компьютеры, имеющиеся в зоне. И, наконец, в базе данных можно объявлять специальную информацию, касающуюся зоны (например, о серверах электронной почты и DNS-серверах). Формат записи базы данных был разработан таким образом, чтобы DNS-сервер мог почерпнуть из нее любую информацию, нужную для его работы. В таблице приведены основные типы исходных записей, которые могут присутствовать в базе данных DNS. База данных DNS в последнее время стала темой для дискуссий среди исследователей, так как многие хотят дополнить ее новыми возможностями и наряду с этим повысить уровень безопасности. В настоящее время в базу данных DNS постоянно вносятся новые типы записей. В таблице отражены лишь основные типы записей, которые необходимы для открытия и ведения новой зоны в базе данных DNS. |
− | К технологиям последней мили обычно относят xDSL, Wi-Fi, WiMax. К оборудованию последней мили можно отнести xDSL-модемы, мультиплексоры доступа, оптоволоконные модемы и преобразователи, радиомультиплексоры.
| |
− | Есть специализированные компании и подразделения крупных компаний связи, которые занимаются исключительно построением последней мили.
| |
| | | |
− | В России и многих других странах именно последняя миля сдерживает расширение аудитории Интернета, внедрение новых технологий, предоставление новых телекоммуникационных услуг. Дело в том, что последняя миля, как правило, является самым «узким» участком канала от пользователя до поставщика услуг. Расширить же этот канал стоит достаточно дорого из-за рассредоточенности пользователей.
| + | =====Зона и серверы имен===== |
− | | + | Файл описания зоны, содержит совокупность записей о ресурсах и доменах следующего (более низкого) уровня, расположенных в текущем домене. В каждой зоне должен быть как минимум один сервер имен. Каждому серверу имен известен адрес хотя бы одного родительского сервера имен. |
− | '''IXPnternet eXchange Point (IXP), точка обмена трафиком''' – инфраструктура, которая позволяет различным провайдерам обмениваться трафиком.
| |
− | | |
− | Создаются для беспрепятственного пропускания трафика между различными провайдерами без загрузки внешних магистральных каналов.
| |
− | В местах, где дальняя связь плохо развита, местные региональные операторы оплачивают трафик во много раз дороже, чем операторы в США или Европе. Поэтому они организовывают точки обмена трафиком, через которые и пропускают крайне дешёвый трафик между своими клиентами.
| |
− | | |
− | ===Коммутация каналов и коммутация пакетов=== | |
− | | |
− | '''Коммутация каналов'''
| |
− | | |
− | В 60-х годах основным средством связи были телефонные линии, использующие принцип коммутации каналов.
| |
− | [[Изображение:Телефонные линии.gif|400px|thumb|right]]Они имели существенный недостатотк: нельзя освободить канал в период простоя. Под каждый сеанс разговора между двумя абонентами выделяется отдельный канал на всем протяжении линии. Он устанавливается в момент соединения и занят, пока есть соединение. Если нет свободных каналов, то линия становится перегруженной.
| |
− | Основные способы организации каналов, по которым могут разговаривать много пользователей: частотное мультиплексирование (разделение) (выделяются частотные поддиапазоны) и временное мультиплексирование (используются все частоты, но в определенное время, т.е. канал используется попеременно каждым абонентом.).
| |
− | <br clear="both" />
| |
− | | |
− | '''Коммутация пакетов'''
| |
− | [[Изображение:Коммутация пакетов.gif|400px|thumb|right]]
| |
− | Сообщение разбивается на пакеты, которые могут идти независимо друг от друга (по разным маршрутам). В случае когда пакетов много, организуются очереди.
| |
− | Исключение: в сетях с режимом асинхронной передачи (Asynchronous Transfer Mode, ATM) коммутация каналов сочетается с коммутацией пакетов (см. главу 5 Куроуза и Росса).
| |
− | <br clear="both" />
| |
− | | |
− | ===История развития сети Интернет===
| |
− | | |
− | '''1969 Рождение ARPAnet'''
| |
− | | |
− | [[Изображение:Леонард Клейнрок.gif|200px|thumb|right|Леонард Клейнрок рядом с первым интерфейсным процессором сообщений (коммутатором пакетов)]]Леонард Клейнрок — один из авторов технологии коммутации пакетов. Он открыл возможность совместного использования эфира независимыми узлами сети.
| |
− | | |
− | Alohanet — первая радиосеть с коммутацией пакетов.
| |
− | <br clear="both" />
| |
− | | |
− | '''1970-1980 Возникновение новых компьютерных сетей и Интернета'''
| |
− | | |
− | Параллельно с развитием ARPAnet появлялись другие компьютерные сети: ALOHAnet (радио сеть Гавайского университета , Telenet, Cyclades (во Франции) , SNA и др.
| |
− | Возникла задача о соединении сетей с различной архитектурой.
| |
− | Роберт Канн совместно с Уинтоном Серфом разработал новую версию протокола, которая впоследствии была названа TCP/IP (Transmission Control Protocol , Протокол управления передачей данных ; IP - Internet Protocol).
| |
− | Изначально это был один протокол TCP, который осуществлял маршрутизацию и надежную доставку пакетов, использовал глобальную адресацию компьютеров.
| |
− | Эксперименты с пакетной передачей голосовых сообщений показали, что иногда требуется, чтобы протокол допускал потерю некоторых пакетов при передаче информации. Это привело к появлению протокола IP, несущего транспортные функции и протоколов TCP и UDP (User Datagram Protocol ) для надежной и ненадежной передачи данных.
| |
− | | |
− | '''1980-1990 Распространение компьютерных сетей'''
| |
− | | |
− | Разработана '''система доменных имен DNS''' (Domain Name System), связавшая IP адреса компьютеров с их мнемоническими именами
| |
− | | |
− | '''Середина 80-х. Создание NFSnet (сеть национального научного фонда США (NFS)'''
| |
− | | |
− | Интересен тот факт, что основой сети NFSNET стали пять очень мощных компьютеров, соединенных между собой сверхбыстрыми (на тот момент) линиями связи. Пользователи подключались к сети и использовали мощности этих компьютеров. NFSNЕТ унаследовала от ARPANET принципы построения, обеспечивающие высокую надежность, а также три уровня протоколов (под протоколом в данном случае понимается соглашение о способе передачи информации; понятно, что если разные части сети будут использовать разные способы передачи, то они друг друга просто не поймут) — сетевой, транспортный и протокол приложений, а также добавила к ним протокол межсетевого уровня под названием IP (интернет-протокол). Полученный комплект протоколов получил название TCP/IP — как раз на нем-то и базируется передача информации в Интернете.
| |
− | | |
− | Сеть NFSNET была более прогрессивной и предоставляла намного более мощные возможности по сравнению с ARPANET, поэтому ARPANET была ликвидирована в конце восьмидесятых. NFSNET заняла место прародительницы Интернета, а это потребовало ее умощнения и некоторой реорганизации, в результате чего был создан так называемый Бекбон NFSNET (от англ. backbone — хребет), который состоял уже из тринадцати компьютеров (точнее, компьютерных центров), соединенных друг с другом теми же высокоскоростными линиями связи. Центры располагались в разных городах США и, по сути, являлись одновременно центрами местных компьютерных сетей, так что NFSNET стала сетью, объединяющей другие сети.
| |
− | | |
− | '''1990 Ликвидирована ARPAnet'''
| |
− | | |
− | '''90-е годы. WWW'''
| |
− | [[Изображение:Тим Бернерс-Ли.gif|200px|thumb|right|Тим Бернерс-Ли]]
| |
− | Тим Бернерс-Ли вместе со своими ассистентами создает первоначальную версию языка разметки гипертекста HTML, протокола HTTP передачи HTML-документов, web-сервера и браузера.
| |
− | <br clear="both" />
| |
− | | |
− | ==Лекция 2==
| |
− | ===Многоуровневые сетевые модели===
| |
− | Множество вариантов программно-технической реализации передачи информации в сетях породили необходимость создания открытых стандартов – стандартов, официально опубликованных и доступных для разработчиков программно-аппаратных компонентов.
| |
− | | |
− | ===Сетевые модели===
| |
− | | |
− | Взаимодействие приложений через сеть очень сложно. Разделение его на уровни позаоляет понизть сложность. Каждый уровень взаимодействует через сеть с одноименным уровнем. Для этого уровень пользуется услугами нижележащего уровня и каждый уровень предоставляет услуги вышележащему уровню.
| |
− | | |
− | ====Как устроена сетевая модель====
| |
− | | |
− | Каждый сетевой уровень подчиняется определенному сетевому протоколу, определяющему набор сетевых служб, присущих данному уровню.
| |
− | | |
− | '''Сетевая служба''' – это набор функций, которыми обладает определенный сетевой уровень, выполняемых для вышележащего уровня (например, коррекция ошибок).
| |
− | | |
− | Каждый сетевой уровень запрашивает определенную сетевую службу от нижележащего уровня. Протокол уровня определяет структуру данных и формат пакета для выполнения запрашиваемой сетевой службы.
| |
− | | |
− | '''Протокол''' – это правила, которым должен следовать уровень, чтобы реализовать сетевую службу.
| |
− | | |
− | Сетевой протокол описывает формат данных или пакетов данных, т. е. правила оформления, которым данные должны подчиняться, чтобы программное обеспечение выполняло ту или иную функцию или сетевую службу (для случая коррекции ошибок протокол описывает какие ошибки сетевая служба должна исправлять).
| |
− | | |
− | ====Эталонная модель OSI====
| |
− | Модель OSI имеет семиуровневую структуру, и можно говорить о взаимодействии узла-отправителя и узла-получателя на каждом уровне модели.
| |
− | При передаче, информация делится на пакеты. Фактически, передаваемая информация формируется на самом верхнем уровне – уровне работающего приложения (прикладном). Далее пакет «спускается» по уровням модели и на каждом из них получает свой заголовок и концевик. Этот заголовок содержит функционально-специфичную для данного уровня информацию о пакете (например, адрес). При получении информации узлом-получателем большой (с заголовками всех уровней) блок информации начинает обрабатываться в обратной, восходящей, последовательности уровней, причём на каждом уровне происходит анализ и отщепление соответствующего заголовка. Таким образом, до процесса-получателя доходит исходный передаваемый блок.
| |
− | На уровнях зачастую сообщение M вместе с заголовками от верхних уровней подвергается изменениям: шифрованию, сжатию, разбиению на части,… поэтому изображенная картинка с одной и той же часть M, вообще говоря, не совсем правильная (зато понятная).
| |
− | | |
− | Open Systems Interconnection Reference Model (OSI) (эталонная модель взаимодействия открытых систем) создавалась как единый международный стандарт сетевых технологий.
| |
− | | |
− | Набор протоколов называется '''открытым''', если описание и детали протоколов опубликованы.
| |
− | | |
− | Система, реализующая открытые протоколы называется '''открытой системой''', несмотря на то, что код программ может быть закрыт.
| |
− | | |
− | ISO – международная организация по стандартизации.
| |
− |
| |
− | OSI ISO — абстрактная модель для сетевых коммуникаций и разработки сетевых протоколов. Представляет уровневый подход к сети. Каждый уровень обслуживает свою часть процесса взаимодействия. Благодаря такой структуре совместная работа сетевого оборудования и программного обеспечения становится гораздо проще и понятнее.
| |
− | | |
− | Существует 7 уровней с помощью которых происходит сетевое взаимодействие.
| |
− | От нижнего уровня к верхнему:
| |
− | # Физический (Physical Layer)
| |
− | Передача битов данных по сети.
| |
− | {{Hider
| |
− | |title = Подробнее
| |
− | |content =
| |
− | Преобразует биты в исходящие сигналы, передает сигналы и, затем, преобразует входящие сигналы в биты.
| |
− | Данные рассматриваются как поток битов.
| |
− | Определяет:
| |
− | * характеристики сигналов;
| |
− | * среды передачи;
| |
− | * физическую топологию среды передачи;
| |
− | * механические и физические (электрические, оптические) спецификации среды передачи;
| |
− | * интерфейсы (разъемы) оборудования.
| |
− | | |
− | Физический уровень занимается реальной передачей необработанных битов по каналу связи. При разработке сети необходимо убедиться, что когда одна сторона передает единицу, то принимающая сторона получает также единицу, а не нуль. Принципиальными вопросами здесь являются следующие: какое напряжение должно использоваться для отображения единицы, а какое — для нуля; сколько микросекунд длится бит; может ли передача производиться одновременно в двух направлениях; как устанавливается начальная связь и как прекращается, когда обе стороны закончили свои задачи; из какого количества проводов должен состоять кабель и какова функция каждого провода. Вопросы разработки в основном связаны с механическими, электрическими и процедурными интерфейсами и с физическим носителем, лежащим ниже физического уровня.
| |
− | }}
| |
− | # Канальный (уровень передачи данных) (Data Link Layer)
| |
− | Передача кадров (наборов битов) между двумя компьютерами сети, непосредственно связанных между собой. Определяет, как, кому посылать кадры.
| |
− | {{Hider
| |
− | |title = Подробнее
| |
− | |content =
| |
− | Передает кадры (frames) - наборы битов - между двумя компьютерами сети, непосредственно связанными между собой
| |
− | Функции канального уровня:
| |
− | а) взаимодействие со средой передачи данных (протокол MAC);
| |
− | б) надежная доставка;
| |
− | в) управление потоком.
| |
− | | |
− | В протоколах канального уровня заложена определенная структура связей между компьютерами и способы их адресации. Для идентификации компьютеров на канальном уровне используются аппаратные адреса (MAC – адреса) в Ethernet . 802.Xx – номера описаний стандартов IEEE (Институт инженеров по электротехнике и радиоэлектронике).
| |
− | | |
− | Технологии: Ethernet (802.3), WiFi (802.11), Token Ring (802.5) и РРР.
| |
− | | |
− | В программировании этот уровень представляет драйвер сетевой платы, в операционных системах имеется программный интерфейс взаимодействия канального и сетевого уровней между собой.
| |
− | Протокол MAC (Media Access Control — управление доступом к носителю) определяет правила передачи кадра в линию. Для двухточечных линий с единственным отправителем на одном конце и единственным получателем на другом конце линии протокол MAC очень прост (или вообще отсутствует) — отправитель может передать кадр в любой момент, когда линия свободна. Более интересный случай представляет конфигурация, в которой несколько узлов совместно используют один широковещательный канал. В этом случае возникает так называемая проблема коллективного доступа, и протокол MAC призван координировать передачу кадров многих узлов.
| |
− | | |
− | Надежная доставка. Когда протокол канального уровня предоставляет услугу по надежной доставке, он гарантирует перемещение каждой дейтаграммы сетевого уровня по линии связи без ошибок. Вспомним, что некоторые протоколы транспортного уровня (как, например, TCP) также обеспечивают надежную доставку. Аналогично службе надежной доставки транспортного уровня, служба надежной доставки канального уровня поддерживается с помощью механизмов подтверждений и повторных передач (см. раздел «Принципы надежной передачи данных»). Служба надежной доставки транспортного уровня часто обслуживает линии связи с высокой вероятностью ошибок, характерной, например, для беспроводных линий связи. Таким образом, на канальном уровне ошибки исправляются локально — на той линии связи, на которой они возникают, что позволяет отказаться от повторной передачи данных протоколом транспортного или прикладного уровня. Однако в линиях с низкой вероятностью ошибок надежная доставка на канальном уровне может оказаться излишней. К таким линиям относятся волоконно-оптические и экранированные кабели, а также различные категории линий типа «витая пара», поэтому многие протоколы для кабельных линий не предоставляют услуги по надежной доставке.
| |
− | Управление потоком. Узлы на каждой стороне линии связи обладают буферами для хранения кадров ограниченного размера. Это порождает потенциальную проблему, так как кадры могут поступать на получающий узел быстрее, чем этот узел способен их обрабатывать. Без управления потоком буфер получателя может переполниться, а кадры будут потеряны. Аналогично транспортному уровню протокол канального уровня может обеспечить управление потоком с целью предотвращения ситуации, когда передающий узел на одной стороне линии связи заваливает пакетами принимающий узел на другой стороне линии.
| |
− | | |
− | Обнаружение ошибок. Принимающий узел может неверно посчитать, что значение бита в кадре равно нулю, в то время как передавалась единица, и наоборот. Подобные битовые ошибки вызываются ослаблением сигнала и электромагнитными помехами. Поскольку нет смысла передавать дальше дейтаграмму, содержащую ошибки, многие протоколы канального уровня предоставляют услугу по обнаружению ошибок в кадре. Для этого передающий узел добавляет к кадру биты обнаружения ошибок (контрольную сумму), а получающий узел выполняет проверку контрольной суммы. Служба обнаружения ошибок очень распространена среди протоколов канального уровня. Транспортный и сетевой уровни в Интернете также предоставляют ограниченную услугу по обнаружению ошибок. На канальном уровне обнаружение ошибок сложнее и, как правило, реализуется аппаратно.
| |
− | | |
− | Исправление ошибок. Исправление ошибок выполняет расширенная служба обнаружения ошибок. Такая служба способна не только обнаружить ошибку в кадре, но также определить, в каком именно разряде она произошла, и таким образом исправить некоторые ошибки. Услуга по исправлению ошибок предоставляется некоторыми протоколами канального уровня (например, ATM), но, как правило, не для всего пакета, а только для его заголовка.
| |
− | | |
− | Дуплексная и полудуплексная передача. При дуплексной передаче оба узла могут передавать друг другу пакеты одновременно. При полудуплексной передаче оба узла тоже могут передавать друг другу пакеты, но только поочередно.
| |
− | }}
| |
− | # Сетевой (Network Layer)
| |
− | Управление подсетью, т.е. совокупностью коммуникационного оборудования. Определяет маршруты. Доставляет информацию от отправителя к получателю. Соединение разнородных сетей.
| |
− | {{Hider
| |
− | |title = Подробнее
| |
− | |content =
| |
− | Отвечает за передачу датаграмм между удаленными компьютерами.
| |
− | Функции сетевого уровня:
| |
− | а) адресация компьютеров во всей глобальной сети (IP-адреса);
| |
− | б) выбор маршрута доставки сообщений.
| |
− | Не обеспечивает надежность доставки (искажения, потери, изменение порядка следования).
| |
− | Протоколы: IP (Internet Protocol), ARP, RARP, ICMP, DHCP
| |
− | best-effort delivery – доставка пакетов с максимально возможной скоростью, без гарантии отсутствия задержек, потерь пакетов (при переполнении буферов на маршрутизаторах)
| |
− | Сетевой уровень о твечает за передачу датаграмм между удаленными компьютерами. Важнейшим моментом здесь является определение маршрутов пересылки пакетов от источника к пункту назначения. Маршруты могут быть жестко заданы в виде таблиц и редко меняться. Кроме того, они могут задаваться в начале каждого соединения, например терминальной сессии. Наконец, они могут быть в высокой степени динамическими, то есть вычисляемыми заново для каждого пакета с учетом текущей загруженности сети.
| |
− | Если в подсети одновременно присутствует слишком большое количество пакетов, то они могут закрыть дорогу друг другу, образуя заторы в узких местах. Недопущение подобной закупорки также является задачей сетевого уровня. В более общем смысле сетевой уровень занимается предоставлением определенного уровня сервиса (это касается задержек, времени передачи, вопросов синхронизации).
| |
− | При путешествии пакета из одной сети в другую также может возникнуть ряд проблем. Так, способ адресации, применяемый в одной сети, может отличаться от принятого в другой. Сеть может вообще отказаться принимать пакеты из-за того, что они слишком большого размера. Также могут различаться протоколы, и т. д. Именно сетевой уровень должен разрешать все эти проблемы, позволяя объединять разнородные сети.
| |
− | Для преобразования IP-адресов (адресов сетевого уровня) в MAC-адреса (адреса канального уровня) в сетях TCP/IP используется протоколы ARP (англ. Address Resolution Protocol — протокол разрешения адресов) и RARP (англ. Reverse Address Resolution Protocol — Обратный протокол преобразования адресов).
| |
− | Протоколы маршрутизации: RIP ( в локальных сетях ), BGP (в магистральный сетях) ( работают на прикладном уровне ).
| |
− | }}
| |
− | # Транспортный (Transport Layer)
| |
− | С его помощью информация переходит от отправителя к получателю. Этот уровень пользуется услугами, предоставляемыми сетевым уровнем.
| |
− | {{Hider
| |
− | |title = Подробнее
| |
− | |content =
| |
− | Осуществляет надежную доставку данных от отправителя к получателю.
| |
− | Функции транспортного уровня:
| |
− | a) контроль ошибок: искажения пакетов, потери, изменение порядка следования, дублирование;
| |
− | б) контроль потока данных
| |
− | в) сегментирует и повторно собирает данные в один поток;
| |
− | г) обеспечивает совместное использование канала различными программами (каждой присваивается число – «номер порта»)
| |
− | Протоколы: TCP, UDP
| |
− | | |
− | Обеспечивает передачу данных между любыми узлами сети с требуемым уровнем надежности. Для этого на транспортном уровне имеются средства установления соединения, нумерации, буферизации и упорядочивания пакетов. Изолирует более высокие уровни от каких-либо изменений в аппаратной технологии.
| |
− | Транспортный уровень также определяет тип сервиса, предоставляемого сеансовому уровню и, в конечном счете, пользователям сети. Наиболее популярной разновидностью транспортного соединения является защищенный от ошибок канал между двумя узлами, поставляющий сообщения или байты в том порядке, в каком они были отправлены. Однако транспортный уровень может предоставлять и другие типы сервисов, например пересылку отдельных сообщений без гарантии соблюдения порядка их доставки или одновременную отправку сообщения различным адресатам по принципу широковещания. Тип сервиса определяется при установке соединения.
| |
− | Транспортный уровень является настоящим сквозным уровнем, то есть доставляющим сообщения от источника адресату. Другими словами, программа на машине-источнике поддерживает связь с подобной программой на другой машине при помощи заголовков сообщений и управляющих сообщений. На более низких уровнях для поддержки этого соединения устанавливаются соединения между всеми соседними машинами, через которые проходит маршрут сообщений.
| |
− | Основная функция транспортного уровня — принять данные от сеансового уровня, разбить их при необходимости на небольшие части, передать их сетевому уровню и гарантировать, что эти части в правильном виде прибудут по назначению.
| |
− | }}
| |
− | # Сеансовый (Session layer)
| |
− | Организация сеансов связи, т.е. долговременного взаимодействия. Определяет, в каком порядке кто передает сообщения друг другу. Решает задачу синхронизации между абонентами.
| |
− | {{Hider
| |
− | |title = Подробнее
| |
− | |content =
| |
− | Позволяет двум сторонам поддерживать длительное взаимодействие (сеанс) по сети
| |
− | Функции сеансового уровня:
| |
− | а) установление сеанcа;
| |
− | б) поддержка/управление сеансом;
| |
− | в) разрыв сеанса;
| |
− | г) синхронизация передачи данных (можно помещать контрольные точки в поток данных и возвращаться назад к определенной точке).
| |
− | | |
− | Отвечает за поддержание сеанса связи, позволяя приложениям взаимодействовать между собой длительное время. Уровень управляет созданием/завершением сеанса, обменом информацией, синхронизацией задач, определением права на передачу данных и поддержанием сеанса в периоды неактивности приложений. Синхронизация передачи обеспечивается помещением в поток данных контрольных точек, начиная с которых возобновляется процесс при нарушении взаимодействия.
| |
− | }}
| |
− | # Уровень предоставления данных (Presentation layer)
| |
− | Занимается синтаксисом и семантикой данных, передающихся по сети.
| |
− | {{Hider
| |
− | |title = Подробнее
| |
− | |content =
| |
− | Уровень отвечает за
| |
− | а) преобразование форматов данных;
| |
− | б) кодирование/декодирование.
| |
− | Примеры преобразования данных: форматирование, сжатие, перевод, кодирование, шифрование.
| |
− | | |
− | Отвечает за преобразование протоколов и кодирование/декодирование данных. Запросы приложений, полученные с уровня приложений, преобразует в формат для передачи по сети, а полученные из сети данные преобразует в формат, понятный приложениям. На этом уровне может осуществляться сжатие/распаковка или кодирование/декодирование данных, а также перенаправление запросов другому сетевому ресурсу, если они не могут быть обработаны локально.
| |
− | В отличие от более низких уровней, задача которых — достоверная передача битов и байтов, уровень представления занимается по большей части синтаксисом и семантикой передаваемой информации. Чтобы было возможно общение компьютеров с различными представлениями данных, необходимо преобразовывать форматы данных друг в друга, передавая их по сети в неком стандартизированном виде. Уровень представления занимается этими преобразованиями, предоставляя возможность определения и изменения структур данных более высокого уровня (например, записей баз данных).
| |
− | }}
| |
− | # Прикладной (Application layer)
| |
− | Программы.
| |
− | {{Hider
| |
− | |title = Подробнее
| |
− | |content =
| |
− | Обеспечивает взаимодействие сети и пользователя.
| |
− | Протоколы этого уровня определяют совместно используемые сетевые службы, например, WWW, электронную почту, сетеваую печать, пересылку файлов через сеть.
| |
− | Протоколы: HTTP, SMTP, POP3, IMAP, FTP
| |
− | | |
− | Обеспечивает взаимодействие сети и пользователя. Уровень разрешает приложениям пользователя иметь доступ к сетевым службам, таким как обработчик запросов к базам данных, доступ к файлам, пересылке электронной почты. Также отвечает за передачу служебной информации, предоставляет приложениям информацию об ошибках и формирует запросы к уровню представления. Пример: HTTP, POP3, SMTP.
| |
− | Содержит набор популярных протоколов, необходимых пользователям. Одним из наиболее распространенных является протокол передачи гипертекста HTTP (HyperText Transfer Protocol), который составляет основу технологии Всемирной Паутины. Когда браузер запрашивает веб-страницу, он передает ее имя (адрес) и рассчитывает на то, что сервер будет использовать HTTP. Сервер в ответ отсылает страницу. Другие прикладные протоколы используются для передачи файлов, электронной почты, сетевых рассылок.
| |
− | }}
| |
− | | |
− | =====Общие замечания относительно OSI ISO=====
| |
− | | |
− | * Избыточность и низкая функциональность верхних уровней.
| |
− | * Учет в стандартах всех теоретически возможных ситуаций.
| |
− | * Сложность спецификаций для реализации.
| |
− | * Очень высокие требования к ресурсам сетевых компьютеров.
| |
− | | |
− | Сегодня это референтная (ссылочная) модель.
| |
− | Хотя поддержка этого стека на правительственном уровне (США, Германия, Россия, ...) продолжается, это маргинальное течение в современных сетевых технологиях.
| |
− | | |
− | ====Эталонная модель TCP/IP====
| |
− | | |
− | Согласно терминологии TCP/IP элементы сетевого уровня называются подсетями (subnetworks). Идеология TCP/IP допускает, чтобы в качестве "подсетей" выступали реальные сети с их собственными стеками протоколов, узлами, шлюзами и т.п.
| |
− | Реализация протоколов TCP/IP оказалась наиболее удачной в версиях BSD4.2 и BSD4.3 операционной системы UNIX. Эта реализация является эталоном для всех последующих.
| |
− | | |
− | Рассмотрим теперь эталонную модель, использовавшуюся в компьютерной сети ARPANET, которая является бабушкой нынешних сетей, а также в ее наследнице, всемирной сети Интернет. Хотя краткую историю сети ARPANET мы рассмотрим чуть позднее, некоторые ключевые моменты следует отметить прямо сейчас.
| |
− | | |
− | ARPANET была исследовательской сетью, финансируемой Министерством обороны США. В конце концов она объединила сотни университетов и правительственных зданий при помощи выделенных телефонных линий. Когда впоследствии появились спутниковые сети и радиосети, возникли большие проблемы при объединении с ними других сетей с помощью имеющихся протоколов. Понадобилась новая эталонная архитектура. Таким образом, возможность объединять различные сети в единое целое являлась одной из главных целей с самого начала. Позднее эта архитектура получила название эталонной модели TCP/IP в соответствии со своими двумя основными протоколами.
| |
− | Поскольку Министерство обороны беспокоилось, что ценные хосты, маршрутизаторы и межсетевые шлюзы могут быть мгновенно уничтожены, другая важная задача состояла в том, чтобы добиться способности сети сохранять работоспособность при возможных потерях подсетевого оборудования, так, чтобы при этом связь не прерывалась. Другими словами, Министерство обороны требовало, чтобы соединение не прерывалось, пока функционируют приемная и передающая машины, даже если некоторые промежуточные машины или линии связи внезапно вышли из строя. Кроме того, от архитектуры нужна была определенная гибкость, поскольку предполагалось использовать приложения с различными требованиями, от переноса файлов до передачи речи в реальном времени.
| |
− | | |
− | =====Стеки протоколов=====
| |
− | | |
− | Какие протоколы есть, где участвуют, какие функции нижележащих протоколов используют и какие функции предоставляют вышележащим:
| |
− | | |
− | IP - реализует обмен информации дейтаграммами ( IP- пакетами), для адресации узлов сети используется адрес длиной 4 байта; обеспечивает в случае необходимости фрагментацию IP-сегментов; не гарантирует правильность доставки IP-сегментов адресату и, вообще, саму доставку; не имеет средств управления интенсивностью передачи IP-сегментов посылающей стороной (flow control); не гарантирует правильную последовательность IP-сегментов на принимающей стороне.
| |
− | Пакеты сетевого протокола IP могут содержать код, указывающий, какой именно протокол следующего уровня нужно использовать, чтобы извлечь данные из пакета. Это число — уникальный IP-номер протокола. ICMP и IGMP имеют номера, соответственно, 1 и 2. Как система узнает, кому отдать пришедший пакет выше? Ведь на верхнем уровне может быть несколько протоколов. На межсетевом уровне эту проблему решает IP- код верхнего протокола, на транспортном – номер порта.
| |
− | | |
− | UDP (IP идентификатор 17) (службе ненадежной, но быстрой, передачи) – протокол передачи датаграмм без установления соединения. Также его называют протоколом «ненадёжной» передачи, в смысле невозможности удостовериться в доставке сообщения адресату, а также возможного перемешивания пакетов . Однако UDP- датаграммы имеют поле контрольная сумма сообщения, что гарантирует правильность доставки сообщения, в случае, если оно дошло до адресата.
| |
− | | |
− | TCP (IP идентификатор 6) (службе надежной передачи данных, устанавливающей логическое соединение) – «гарантированный» транспортный механизм с предварительным установлением соединения, предоставляющий приложению надёжный поток данных, дающий уверенность в безошибочности получаемых данных, перезапрашивающий данные в случае потери и устраняющий дублирование данных. TCP позволяет регулировать нагрузку на сеть, а также уменьшать время ожидания данных при передаче на большие расстояния. Более того, TCP гарантирует, что полученные данные были отправлены точно в такой же последовательности.
| |
− | | |
− | TCP, и UDP используют для определения протокола верхнего уровня число, называемое портом. Существует список стандартных портов TCP и UDP.
| |
− | | |
− | HTTP – протокол TCP-порт 80 или 8080.
| |
− | | |
− | Важнейшим направлением стандартизации в области вычислительных сетей является стандартизация коммуникационных протоколов. В настоящее время в сетях используется большое количество стеков коммуникационных протоколов. Наиболее популярны следующие стеки: TCP/IP, IPX/SPX, NetBIOS/SM, DECnet, SNA, OSI.
| |
− | Все эти стеки, кроме SNA на нижних уровнях — физическом и канальном, — используют одни и те же хорошо стандартизованные протоколы Ethernet, Token Ring, FDDI и ряд других, которые позволяют задействовать во всех сетях одну и ту же аппаратуру. Зато на верхних уровнях все стеки работают по своим протоколам. Эти протоколы часто не соответствуют рекомендуемому моделью OSI разбиению на уровни. В частности, функции сеансового и представительного уровня, как правило, объединены с прикладным уровнем. Такое несоответствие связано с тем, что модель OSI появилась как результат обобщения уже существующих и реально используемых стеков, а не наоборот.
| |
− | Приведены основные используемые в сетях Windows 2000 стеки протоколов. Для функционирования Windows 2000 достаточно стека TCP/ IP - стандарта передачи в сети Интернет. Поддерживаются также стек IPX/SPX - стек маршрутизируемых протоколов, появившийся в сетях NetWare , Microsoft- версия которого называется NWLink, а также NetBIOS/SMB- стек небольших и быстрых, но немаршрутизируемых протоколов.
| |
− | | |
− | | |
− | | |
− | 6. Принципы работы служб прикладного уровня: сетевой адрес процесса, клиентская и серверная стороны службы, протокол. Примеры служб и протоколов.
| |
− | | |
− | | |
− | Протоколы и службы прикладного уровня
| |
− | | |
− | Сетевая служба – это набор функций, которые уровень выполняет для вышележащего уровня (например, коррекция ошибок).
| |
− | | |
− | Набор свойств и функций, которыми обладает определенный сетевой уровень, называется сетевой службой.
| |
− | | |
− | Каждый сетевой уровень запрашивает определенную сетевую службу от нижележащего уровня. Протокол уровня определяет структуру данных и формат пакета для выполнения запрашиваемой сетевой службы.
| |
− | | |
− | | |
− | Принципы работы служб прикладного уровня
| |
− | | |
− | Номер порта – это целое число, которое используется для идентификации процесса, выполняющегося на данном компьютере.
| |
− | Cетевой адрес процесса – это пара «IP адрес : номер порта» (например, 127.0.0.1 : 80).
| |
− | От 1 до 1023 – хорошо известные номера портов,
| |
− | От 1023 до 65 535 – другие.
| |
− | По сетевому номеру сообщения, полученного по сети, ОС узнает какому процессу его передать.
| |
− | Cетевое взаимодействие процессов
| |
− | Процесс обращается к службам транспортного уровня: TCP и UDP.
| |
− | Клиентская сторона приложения (службы).
| |
− | Серверная сторона приложения (службы).
| |
− | Протокол.
| |
− | | |
− | Клиенты и серверы – программы, т.е. процессы.
| |
− | На одном компьютере могут быть запущено несколько клиентов или несколько серверных процессов.
| |
− | | |
− | Клиентская программа формирует запрос, посылает его на сервер, сервер обрабатывает и возвращает ответ.
| |
− | | |
− | Примеры служб и протоколов. WWW (HTTP, 80), E-mail (SMTP, 25; POP3, 110; IMAP, 143), DNS (DNS, 53), FTP (FTP, 21,20), Telnet (Telnet, 23); SSH (SSH, 22), синхронизация часов (NTP, 123), передача мультимедиа (RTSP, 554), совместный доступ к файлам (SMB, 445 или NFS, 2049), DNS (Domain Name System), NTP (Network Time Protocol), RTSP (потоковый протокол реального времени (Real Time Streaming Protocol)), SMB (server message block) ( см. Samba), NFS (network file system).
| |
Каждый компьютер в Интернете имеет свой IP-адрес – 4 числа от 0 до 255. Такой адрес удобен при маршрутизации, так как определяет месторасположение компьютера в сети Интернет, однако, такие числа совсем неудобны для восприятия пользователем. Более того, если, например, ваш email: sasha007@207.176.39.176 и ваша почтовая служба решила сменить сервер, то вместе с ним измениться и email.
Гораздо лучше, когда компьютер имеет мнемоническое имя, например, mail.ru, sasha007@mail.ru.
Существует файл hosts (и в UNIX, и в Windows), в котором можно прописывать адреса серверов, с которыми вы регулярно работаете (кстати, именно его использование лежит в основе многих «ускорителей Интернета» — такие программы просто записывают адреса серверов, к которым вы обращаетесь, в файл hosts и при следующем обращении берут данные из него, не тратя время на запрос к DNS-серверу).
DNS — иерархическая структура имен. Существует «корень дерева» с именем "." (точка). Так как корень един для всех доменов, то точка в конце имени обычно не ставится, но используется в описаниях DNS. Ниже корня лежат домены первого уровня.
Домены верхнего уровня разделяются на две группы: родовые домены и домены государств. К родовым относятся домены com (commercial — коммерческие организации), edu (educational — учебные заведения), gov (government — федеральное правительство США), int (international — определенные международные организации), net (network — сетевые операторы связи) и org (некоммерческие организации). За каждым государством в соответствии с международным стандартом ISO 3166 закреплен один домен государства. Ниже находятся домены второго уровня, например, sfedu.ru. Еще ниже — третьего (math.sfedu.ru) и т.д.
Имена доменов нечувствительны к изменению регистра символов. Так, например, edu и EDU означают одно и то же. Обычно разрешается регистрация доменов длиной до 63 символов, а длина полного пути не должна превосходить 255 символов. Размер доменного имени ограничивается по административным и техническим причинам.
Структура доменов отражает не физическое строение сети, а логическое разделение между организациями и их внутренними подразделениями. Так, если факультеты компьютерных наук и электротехники располагаются в одном здании и пользуются одной общей локальной сетью, они, тем не менее, могут иметь различные домены. И наоборот, если, скажем, факультет компьютерных наук располагается в двух различных корпусах университета с различными локальными сетями, логически все хосты обоих зданий обычно принадлежат к одному и тому же домену.
Порт сервера – 53.
Серверное ПО: Berkeley Internet Name Domain (BIND) (демон named), NSD (name server daemon), Windows DNS Server
Суть системы DNS заключается в иерархической схеме имен, основанной на доменах, и распределенной базе данных, реализующей эту схему имен. В первую очередь эта система используется для преобразования имен хостов и пунктов назначения электронной почты в IР-адреса, но также может использоваться и в других целях.
В общих чертах система DNS применяется следующим образом. Для преобразования имени в IР-адрес прикладная программа обращается к библиотечной процедуре, называющейся распознавателем, передавая ей имя в качестве параметра. Распознаватель посылает UDP-пакет локальному DNS-серверу, который ищет имя в базе данных и возвращает соответствующий IР-адрес распознавателю, который, в свою очередь, передает этот адрес вызвавшей его прикладной программе. Имея IР-адрес, программа может установить TCP-соединение с адресатом или послать ему UDP-пакеты.
Система DNS не только отыскивает IP-адрес по заданному имени хоста, но способна выполнять и обратную операцию, т.е. по IP-адресу определять имя хоста в сети. Многие веб- и FTP-серверы в сети Internet ограничивают доступ на основе домена, к которому принадлежит обратившийся к ним клиент. Получив от клиента запрос на установку соединения, сервер передает IP-адрес клиента DNS-серверу как обратный DNS-запрос. Если клиентская зона DNS настроена правильно, то на запрос будет возвращено имя клиентского хоста, на основе которого затем принимается решение о том, допустить данного клиента на сервер или нет.
Корневые серверы DNS обозначаются латинскими буквами от «A» до «М». Их всего 13 штук (+ куча зеркал). Они управляются различными организациями, действующими по согласованию с ICANN. Количество серверов ограничено в связи с максимальным
объёмом UDP-пакета (большее количество серверов потребовало бы перехода на TCP-протокол для получения ответа, что существенно увеличит нагрузку).
У многих корневых серверов DNS существуют зеркала. В частности, российское зеркало сервера F расположено в РосНИИРОС.
IP-адреса корневых DNS-серверов можно получить командой «dig. NS» (dig точка NS; точка – корневой домен).
The DNS Backbone DDoS Attacks have been several significant Internet events in which distributed denial of service attacks (DDoS) have targeted one or more of the thirteen DNS root servers. These attacks are extremely significant, as the root nameservers function as the Internet backbone, translating text-based Internet hostnames into IP addresses. As the nameservers provide this service for DNS lookups worldwide, attacks against the root nameservers are attempts to disable the Internet itself, rather than specific websites.
The first attack occurred on October 21, 2002, and lasted for approximately one hour. Of the thirteen servers, nine were disabled but the remaining four were able to cope. This was the second near-major failure of the root nameservers; the first large malfunction of them caused the failure of seven machines in July 1997, due to a technical problem.
A second attack occurred on February 6, 2007. The attack began at 10:30 UTC, and lasted about five hours. Although none of the servers crashed, two of the root servers reportedly "suffered badly", while others saw "heavy traffic". The botnet responsible for the attack has reportedly been traced to the Asia-Pacific region. [2] There was some speculation in the press that the attack originated from South Korea. [3]
On February 8, 2007 it was announced by Network World that "If the United States found itself under a major cyberattack aimed at undermining the nation’s critical information infrastructure, the Department of Defense is prepared, based on the authority of the president, to launch a cyber counterattack or an actual bombing of an attack source."[4]
Рассмотрим схему подачи запроса серверу. Студент Университета Станфорд с университетского компьютера пытается зайти на сайт воскресной школы мехмата sunschool.math.sfedu.ru. Чтобы определить IP-адрес компьютера sunschool.math.sfedu.ru, браузер студента вызывает DNS-клиент (resolver) – функцию API операционной системы. Она, используя IP-адрес локального DNS-сервера из настроек сети на компьютере студента, посылает запрос в виде UDP-пакета DNS-серверу (пусть сервер будет atalante.stanford.edu.
Предположим, что локальный сервер Станфордского университета имен не знает IP-адреса sunschool.math.sfedu.ru. Он посылает запрос одному из корневых серверов, адреса которых содержатся в его базе данных, пусть это будет f.root-servers.net.Таким образом получается рекурсивный запрос: DNS-клиент студента обращается к локальному DNS-серверу, а тот к корневому.
Маловероятно, чтобы корневой сервер знал адрес хоста sunschool.math.sfedu.ru. Скорее всего, он даже не знает адреса сервера sfedu.ru, однако он должен знать все свои дочерние домены – домены верхнего уровня. Но продолжать рекурсию он не будет. Дело в том, что корневые домены сильно загружены запросами, поэтому сконфигирированы так, что возвращают список DNS-серверов, которые должны больше знать о sunschool.math.sfedu.ru – это DNS-серверы домена ru. Получив список DNS-серверов, локальный сервер Станфордского университета направляет запрос одному из серверов списка (обычно первому), например, ns.ripn.net. Тот тоже загружен и возвращает адреса DNS-серверов дочерней зоны sfedu.ru. Последние два запроса называются итеративными (от слова «итерация»). Затем локальный сервер Станфордского университета обращается к первому в списке серверу домена sfedu.ru. Пусть это будет ns.sfedu.ru. В данном примере оказалось, что он тоже не знает IP-адреса sunschool.math.sfedu.ru. DNS-сервер нашего университета не так загружен, как корневые серверы или серверы доменов верхнего уровня, поэтому его сконфигурировали выполнять рекурсивные запросы. Он обращается к серверу домена math.sfedu.ru – это ns.math.sfedu.ru, получает искомый IP-адрес и возвращает его в ответе локальному серверу Станфордского университета, который в свою очередь сообщает его компьютеру студента.
Когда записи ресурсов попадают на сервер имен Станфордского университета, они помещаются в кэш на случай, если они понадобятся еще раз. Однако, информация в кэше не является авторитетной, так как изменения в домене sfedu.ru не будут распространяться автоматически на все кэши, в которых может храниться копия этой информации. По этой причине записи кэша обычно долго не живут. В каждой записи ресурса присутствует поле Time_to_live. Оно сообщает удаленным серверам, насколько долго следует хранить эту запись в кэше.
Набор DNS-серверов в ответе на запрос все время один и тот же, однако, их последовательность в списке меняется от запроса к запросу, так как программы обычно берут первое имя из списка, то они обращаются к разным серверам. Таким образом нагрузка равномерно распределяется между DNS-серверами списка.
Это часть описания DNS-протокола.
В первой строке указывается порядок преобразования имен хостов. Здесь операционной системе Linux указывается, что в первую очередь она должна обращаться к файлу /etc/hosts и искать хост там, а затем попытаться преобразовать имя с помощью системы DNS (bind), если не удалось этого сделать с помощью /etc/hosts.
DNS-сервер, отвечающий за имена хостов в своей зоне, должен хранить информацию о хостах в базе данных и выдавать ее по запросу с удаленных компьютеров. База данных DNS представляет собой текстовый файл, состоящий из исходных записей RR. Эти записи описывают компьютеры и их функции в локальной зоне. Для организации обмена информацией с удаленными серверами DNS на сервере Linux должно быть запущено программное обеспечение сервера DNS (обычно это программа named).
Файл описания зоны, содержит совокупность записей о ресурсах и доменах следующего (более низкого) уровня, расположенных в текущем домене. В каждой зоне должен быть как минимум один сервер имен. Каждому серверу имен известен адрес хотя бы одного родительского сервера имен.