DNS стандартизирует форматы имен и запросы на получение каких-либо данных, ассоциирующихся с этими именами.
Доменная система создавалась из расчета, что система является:
1) распределенной, т.е. нет узла, от которого зависит система и к которому все обращаются;
2) иерархической. Иерархичность системы отражена в иерархичности самих имен (структуре имен).
Принципы системы именований
1) В корне системы – пустое имя, не содержащее ни одного символа;
2) От корня отходят домены первого уровня (COM, NET, ORG, RU, BY), которые логически подчинены пустому имени;
3) Далее могут следовать поддомены второго и т.д. уровней.
– имена доменов не являются чувствительными к регистру;
– имена доменов пишутся через точку в обратном порядке(третий.второй.первый.), например
microsoft.com.точка после com– корневое имя, которое принято не писать.
– имена доменов пишутся через точку в обратном порядкеиз соображений удобства для человека: человек, когда мыслит, всегда запоминает начало, + человеку важно, чтобы главная информация была первой, а подчиненная – второй.
– имена доменов первого уровня оговорены заранее. И хотя их количество постепенно изменяется, но совсем незначительно. Нельзя просто взять и добавить домен первого уровня. Была принята следующая политика: это всё дерево доменных имен было разделено на «зоны», с целью чтобы, разные организации могли за них отвечать;
– количество изменений на первом уровне должно быть минимально; изначально система была придумана в Америке, поэтому предполагалось только национальное использование.
|
|
Расширение | Назначение |
com | Для коммерческих организаций |
org | Для некоммерческих организаций |
net | Для организаций, которые управляют самой сетью |
mil | Для военных организаций |
Затем возникла необходимость иметь домены для других стран. Эта проблема решилась следующим образом: для всех стран были созданы соответствующие двухбуквенные домены (например, ru, by, de).
Единственное, что вызывает нарекания у всех стран, кроме Америки, к системе DNS, это то, что управление всеми доменами верхнего уровня выполняется только американскими серверами. А управлением доменами верхнего уровня – это ключ к управлению интернетом.
Принципы работы DNS
Существуют два алгоритма выяснения значений записей по имени: итеративные и рекурсивные запросы, которые dns-агент посылает dns-серверу.
В DNS хранятся записи типа "А" (адрес) – соответствие имени какому-то IP-адресу.
Итеративный запрос
DNS-агент обращается к DNS-серверу с запросом предоставить значение типа “А” для адреса, например msdn.microsoft.com. dns-сервер проверяет, есть ли у него в списке такое имя (предположим, это dns-сервер epam.com). Если такого имени нет, он возвращает ”не найдено” с указанием проверить на сервере .com. Агент спрашивает у .com, есть ли такое имя. Сервер.com видит, что такого имени нет, но у него есть адрес сервера microsoft.com. Он посылает этот адрес обратно в качестве ответа. После этого агент посылает запрос на microsoft.com, который находит msdn.microsoft.comи возвращает нужный клиентуIP адрес.
|
|
Msdn.microsoft.com ->IP (DNSserver)
<- ненайден (IP .com)
Msdn.microsoft.com -> IP (.com)
<- ненайден(IP microsoft.com)
Msdn.microsoft.com -> IP (microsoft.com)
<- найден (IPmsdn.microsoft.com)
Этот запрос получил название итеративный, т.к. dns-агент в цикле обращается к dns-серверам, каждый из серверов сообщаетлибо искомый IP-адрес, либо ссылку на другой dns-сервер, который ниже по уровнюи отвечает за определенную зону.
Когда клиент обращается к браузеру и открывает страницы, то постоянно идет преобразование имени в IP-адрес (resolve). Чтобы не забивать сеть повторяющимися запросами, используется кэширование: DNS-сервер запоминает имена и кэширует их на некоторый промежуток времени.
Большое количество операций обновления может привести к возникновению проблем с DNS-сервером. DNS – это иерархическая распределенная база данных, которая не является оптимизированной для записи, т.к., если необходимо произвести добавление или удаление, все существующие в кэше записи должны быть инвалидированы.
|
|
Почему на первом уровне домены зафиксированы? Они зафиксированы для того, что не началось добавление или удаление и не повлияло на DNS-сервера других уровней.
Все системы доступа к интернет-ресурсам используют систему доменных имен, а не IP-адреса. Почему? Это связано с возможностью переносить (балансировать) запросы с одного адреса на другой и менять IP-адреса.
Рекурсивный запрос
Когда DNS-агент обращается к DNS-серверу, он посылает запрос, где указывает имя, для которого необходимо получить адрес. Сервер не может вернуть DNS-агенту признак «не найден», поэтому он сам начинает обращаться к серверам, которые могут знать этот адрес(они, в свою очередь, делают то же самое). Если сервера работают по рекурсивному принципу, то запрос полностью делегируется на выполнение другому серверу.
Какие запросы (итеративные/рекурсивные) используются на практике? Например, есть локальная сеть с выходом в Интернет. С одной стороны лучше использовать рекурсивные запросы, т.к. в этом случае запрос делегируется серверу и основная нагрузка приходится на сервер, следовательно, трафик внутри сети снижается. С другой стороны нагрузка на центральный сервер увеличивается. Если запрос итеративный, то трафик больше, но нагрузка на сервер ниже.
|
|
В реальности для снижения нагрузки используется комбинированный запрос:у каждого DNS-узлаимеется первичный DNS-сервер, к которому выполняется рекурсивный запрос, который выполняет итеративные запросы. Это снижает трафик в локальной сети и сдерживает нагрузку на верхний сервер.
У программиста есть возможность явно указать, какой вид запроса должен быть использован, есть возможность аннулировать кэш.
Задание: рассмотреть пример работы с сокетами. [Код программы в приложении]
Постановка задачи: программа на языке С, которая представляет собой клиент сервиса интернет-службы Whois, которая позволяет выяснить информацию о именах и IP-адресах.
К сожалению, для служб Whoisдо сих пор не определен формат возврата.
Исходные данные:
43 порт
http://www.internic.net/
Язык разметки HTML
17.1 Общие сведения
HTML (HyperText Markup Language) — стандартный язык разметки документов во Всемирной паутине. Большинство веб-страниц содержат описание разметки на языке HTML (или XHTML). Язык HTML интерпретируется браузерами и отображается в виде документа в удобной для человека форме.
Язык XHTML является более строгим вариантом HTML, он следует всем ограничениям XML и, фактически, XHTML можно воспринимать как приложение языка XML к области разметки гипертекста.
Некоторые ограничения XHTML:
· Все теги должны быть закрыты, незакрытые теги не допускаются. Одиночные теги должны закрываться как “/>”;
· Всем атрибутам должно быть присвоено значение;
· Имена тегов и атрибутов должны быть записаны строчными буквами;
· В качестве кодировки по умолчанию используется UTF-8.
Во всемирной паутине HTML-страницы, как правило, передаются браузерам от сервера по протоколам HTTP или HTTPS в виде простого текста или с использованием сжатия.
Синтаксис HTML
HTML – теговый язык разметки документов. Любой документ на языке HTML представляет собой набор элементов, причём начало и конец каждого элемента обозначается специальными пометками — тегами. Элементы могут быть пустыми, то есть не содержат текста и других данных (например, тег перевода строки <br>). В этом случае закрывающий тегобычно не указывается.
Для XHTML тег перевода строки будет выглядеть как <br />.
Элементы могут иметь атрибуты, определяющие какие-либо их свойства (например, размер шрифта для элемента font). Атрибуты указываются в открывающем теге. Вот примеры фрагментов HTML-документа:
<strong>Текст между двумя тегами — открывающим и закрывающим.</strong>
<a href="http://www.example.com">Здесь элемент содержит атрибут href, то есть гиперссылку.</a>
Регистр, в котором набрано имя элемента и имена атрибутов, в HTML значения не имеет (в отличие от XHTML). Элементы могут быть вложенными. Например, следующий код:
<b>
Этот текст будет полужирным,
<i>а этот - ещё и курсивным</i>
</b>
даст такой результат:
Этот текст будетполужирным, а этот — ещё и курсивным
В HTML-документах также присутствуют сущности (англ. entities) — «специальные символы». Сущности начинаются с символа амперсанда и имеют вид &имя; или &#NNNN;, где NNNN — код символа в Юникоде в десятичной системе счисления.
Например, © — знак авторского права (©). Как правило, сущности используются для представления символов, отсутствующих в кодировке документа, или же для представления «специальных» символов: & — амперсанда (&), < — символа «меньше» (<) и > — символа «больше» (>), которые некорректно записывать «обычным» образом, из-за их особого значения в HTML.
СтруктураHTML-документа
Каждый HTML-документ, отвечающий спецификации HTML какой-либо версии, должен начинаться со строки объявления версии HTML <!DOCTYPE…>, которая обычно выглядит примерно так:
<!DOCTYPEHTMLPUBLIC "-//W3C//DTDHTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
Если эта строка не указана, то добиться корректного отображения документа в браузере становится труднее.
Ранее использовалось много вариантов Doctype, но с приходом HTML 5 всё стало проще:
ВариантDOCTYPEдляHTML 5
<!DOCTYPEHTML>
Далее обозначается начало и конец документа тегами <html> и </html> соответственно. Внутри этих тегов должны находиться теги заголовка (<head></head>) и тела (<body></body>) документа.
<!DOCTYPE HTML>
<html>
<head>
<title>HTML 5 Page</title>
</head>
<body>
<h1>Hello, world!</h1>
</body>
</html>
С другими тегами можно ознакомиться, например, по следующей ссылке: http://ru.wikipedia.org/wiki/%D0%AD%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D1%8B_HTML
Прокол FTP
Основные сведения
FTP (FileTransferProtocol) – это протокол передачи файлов.
Протокол FTP – один из старейших протоколов прикладного уровня стека TCP/IP. Его первые реализации относятся к началу 70-х годов, к 1985 году он уже обрел современный вид.
Для хранения файлов в Интернет используются специальные FTP-серверы. FTP-сервер представляет файлы в виде традиционного дерева каталогов файловой системы. По каталогу можно перемещаться, просматривать, загружать файлы или группы файлов с удаленной машины на локальную и в обратном направлении.
Особенности протокола FTP
Особенность протокола FTP – это использование раздельных каналов для управления и передачи файлов. Канал управления образуется традиционным образом – пассивное открытие со стороны сервера (порт 21по умолчанию), активное – со стороны клиента. По каналу передаются короткие текстовые команды и ответы на них (алфавитно-цифровые команды). В то же время каналы для передачи файлов открываются по мере необходимости.
После установления TCP-соединения клиент производит процедуру аутентификации, особенностью которой является передача имени пользователя и пароля в оригинальном виде, без какой-либо кодировки. Многие FTP-серверы допускают анонимный доступ (имя пользователя ANONIMUS, пароль – адрес электронной почты). После авторизации возможен обмен командами/откликами, в ходе которого клиент может просматривать содержимое каталогов, менять текущие локальный и удаленный каталоги и т.д.
После того как нужные файлы найдены, клиент в пассивном режиме открывает порт для обмена данными и сообщает его номер серверу командой PORT. При необходимости для одного файла можно открыть несколько соединений, указав для каждого смещение относительно начала файла. С одной стороны, такая схема придает протоколу значительную гибкость, вплоть до установления соединения данных между двумя системами, ни одна из которых не является машиной клиента. С другой стороны, схема с пассивным открытием соединения данных со стороны клиента создает проблемы при работе через NAT или Firewall. В первом случае клиент не знает, на какой порт и адрес будет отображен его порт за NAT, во втором – может быть запрещено открытие входящих соединений извне. В этом случае выходом может быть интеграция функциональности прокси-сервера в сервер NAT или Firewall:NAT или Firewall будет работать с внешним FTP-сервером по FTP-протоколу, а с клиентским узлом, возможно, по другому протоколу, например, HTTP.
Команды FTP
Представим описание основных команд FTP:
Команда | Описание |
OPEN | Присоединиться к указанному серверу.При этом сервер запросит логин и пароль. |
CLOSE / DISCONNECT | Закрыть соединение с текущим сервером. |
BYE / QUIT | Закрыть соединение и выйти из утилиты FTP. |
USER | Войти на данном сервер с использованием указанного пользователя (подключение уже должно быть установлено). Далее FTP-сервер запросит пароль. |
LS / DIR | Показать список файлов и директорий в текущей папке на сервере. |
CD | Перейти в указанную папку на сервере. |
CDUP | Перейти в родительскую директорию - то же самое, что и "CD ..". |
PWD | Показать текущий путь (текущую папку) на сервере. |
GET / RECV | Загрузить с сервера в текущую папку Вашего компьютера указанный файл. |
MGET | Загрузить несколько файлов в текущую папку Вашего компьютера с сервера. |
PUT / SEND | Загрузить на сервер указанный файл с Вашего компьютера. |
MPUT | Загрузить на сервер несколько файлов с Вашего компьютера. |
DELETE | Удалить указанный файл на сервере. |
MDELETE | Удалить несколько файлов на сервере. |
MKDIR | Создать директорию на сервере. |
RMDIR | Удалить директорию на сервере. |
ABOR | Прервать передачу файла. |
CWD | Сменить директорию. |
HELP | Возвращает список команд, принимаемых сервером. |
LIST | Возвращает список файлов директории. |
MDTM | Возвращает время модификации файла. |
NLST | Возвращает список файлов директории в более кратком формате, чем LIST. |
NOOP | Пустая операция. |
PASV | Войти в пассивный режим. Сервер вернёт адрес и порт, к которому нужно подключиться, чтобы забрать данные. Передача начнётся при введении следующих команд: RETR, LIST и т.д. |
PORT | Войти в активный режим. Сервер сам подключается к клиенту, в отличие от пассивного режима для передачи данных. |
REIN | Реинициализировать подключение. |
RNFR и RNTO | Переименовать файл. RNFR — что переименовывать, RNTO — во что. |
SIZE | Возвращает размер файла. |
SYST | Возвращает тип системы (UNIX, WIN, …). |
TYPE | Установить тип передачи файла (бинарный, текстовый). |
Пример сессии FTP
Описание: происходит подключение к серверу, создается папка "newfiles" и в нее загружается файл "binfile.bin".
$ ftp 192.168.0.1
ftp> mkdir newfiles
ftp> cd newfiles
ftp>putbinfile.bin
ftp>bye
Дата добавления: 2018-08-06; просмотров: 243; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!