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 — код символа в Юникоде в десятичной системе счисления.

Например, &copy; — знак авторского права (©). Как правило, сущности используются для представления символов, отсутствующих в кодировке документа, или же для представления «специальных» символов: &amp; — амперсанда (&), &lt; — символа «меньше» (<) и &gt; — символа «больше» (>), которые некорректно записывать «обычным» образом, из-за их особого значения в 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!