<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wiki.cusu.edu.ua/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="uk">
		<id>https://wiki.cusu.edu.ua/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bondar+Egor</id>
		<title>Вікі ЦДУ - Внесок користувача [uk]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.cusu.edu.ua/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bondar+Egor"/>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0:%D0%92%D0%BD%D0%B5%D1%81%D0%BE%D0%BA/Bondar_Egor"/>
		<updated>2026-04-12T18:01:22Z</updated>
		<subtitle>Внесок користувача</subtitle>
		<generator>MediaWiki 1.23.2</generator>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%97%D0%B0%D1%81%D0%BE%D0%B1%D0%B8_%D0%BC%D0%BE%D0%BD%D1%96%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%D1%83_%D1%82%D0%B0_%D0%B0%D0%BD%D0%B0%D0%BB%D1%96%D0%B7%D1%83_%D0%BC%D0%B5%D1%80%D0%B5%D0%B6%D1%96</id>
		<title>Засоби моніторингу та аналізу мережі</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%97%D0%B0%D1%81%D0%BE%D0%B1%D0%B8_%D0%BC%D0%BE%D0%BD%D1%96%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%D1%83_%D1%82%D0%B0_%D0%B0%D0%BD%D0%B0%D0%BB%D1%96%D0%B7%D1%83_%D0%BC%D0%B5%D1%80%D0%B5%D0%B6%D1%96"/>
				<updated>2014-01-16T17:37:38Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: Скасування редагування № 114990 користувача Bondar Egor (обговорення)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Класифікація засобів моніторингу та аналізу ==&lt;br /&gt;
&lt;br /&gt;
Постійний контроль за роботою локальної мережі, що становить основу будь-якої корпоративної мережі, необхідний для підтримки її в працездатному стані. Контроль - це необхідний перший етап, який повинен виконуватися при управлінні мережею. Зважаючи на важливість цієї функції її часто відокремлюють від інших функцій систем управління і реалізують спеціальними засобами. Такий поділ функцій контролю і власне управління корисно для невеликих і середніх мереж, для яких установка інтегрованої системи управління економічно недоцільна. Використання автономних засобів контролю допомагає адміністратору мережі виявити проблемні ділянки і влаштування мережі, а їх відключення або реконфігурацію він може виконувати в цьому випадку вручну. &lt;br /&gt;
&lt;br /&gt;
Процес контролю роботи мережі зазвичай ділять на два етапи - '''моніторинг''' і '''аналіз'''.&lt;br /&gt;
 &lt;br /&gt;
На етапі ''моніторингу'' виконується більш проста процедура - процедура збору первинних даних про роботу мережі: статистики про кількість циркулюючих в мережі кадрів і пакетів різних протоколів, стан портів концентраторів, комутаторів і маршрутизаторів і т. п. &lt;br /&gt;
&lt;br /&gt;
Далі виконується етап ''аналізу'', під яким розуміється більш складний і інтелектуальний процес осмислення зібраної на етапі моніторингу інформації, зіставлення її з даними, отриманими раніше, і вироблення припущень про можливі причини сповільненої або ненадійної роботи мережі. &lt;br /&gt;
&lt;br /&gt;
Завдання моніторингу вирішуються програмними і апаратними вимірниками, тестерами, мережевими аналізаторами, вбудованими засобами моніторингу комунікаційних пристроїв, а також агентами систем управління. Завдання аналізу вимагає більш активної участі людини і використання таких складних засобів, як експертні системи, що акумулюють практичний досвід багатьох мережевих фахівців.&lt;br /&gt;
&lt;br /&gt;
Всі засоби моніторингу та аналізу мереж, можна розділити на кілька великих класів:&lt;br /&gt;
&lt;br /&gt;
*''Системи управління мережею'' ([http://en.wikipedia.org/wiki/Network_management_system Network Management Systems]) - централізовані програмні системи, які збирають дані про стан вузлів і комунікаційних пристроїв мережі, а також дані про трафік в мережі. Ці системи не тільки здійснюють моніторинг і аналіз, а й виконують в автоматичному чи напівавтоматичному режимі управління мережею - включення і відключення портів пристроїв, зміна параметрів мостів адресних таблиць мостів, комутаторів і маршрутизаторів і т.п. Прикладами систем управління можуть служити популярні системи HPOpenView, SunNetManager, IBMNetView.&lt;br /&gt;
&lt;br /&gt;
*''Засоби управління системою'' ([http://uk.wikipedia.org/wiki/%D0%92%D0%B1%D1%83%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B0_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0#.D0.90.D1.80.D1.85.D1.96.D1.82.D0.B5.D0.BA.D1.82.D1.83.D1.80.D0.B8_.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D0.BD.D0.BE.D0.B3.D0.BE_.D0.B7.D0.B0.D0.B1.D0.B5.D0.B7.D0.BF.D0.B5.D1.87.D0.B5.D0.BD.D0.BD.D1.8F_.D0.B2.D0.B1.D1.83.D0.B4.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.85_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC System Management]). Засоби управління системою часто виконують функції, аналогічні функціям систем управління, але стосовно інших об'єктів. У першому випадку об'єктом управління є програмне і апаратне забезпечення комп'ютерів мережі, а у другому - комунікаційне устаткування. Разом з тим, деякі функції цих двох видів систем управління можуть дублюватися, наприклад, засоби управління системою можуть виконувати найпростіший аналіз мережевого трафіку.До найбільш відомих систем управління системами відносяться LANDesk, IBM Tivoli, Microsoft Systems Management Server, HP OpenView, Novell ZENworks і CA Unicenter.&lt;br /&gt;
&lt;br /&gt;
*''Вбудовані системи діагностики і управління'' ([http://en.wikipedia.org/wiki/Embedded_system Embedded Systems]). Ці системи виконуються у вигляді програмно-апаратних модулів, які встановлюються в комунікаційне обладнання, а також у вигляді програмних модулів, вбудованих в операційні системи. Вони виконують функції діагностики і управління тільки одним пристроєм, і в цьому їх основна відмінність від централізованих систем управління. Прикладом засобів цього класу може служити модуль управління концентратором Distrebuted 5000, реалізує функції автосигментацієї портів при виявленні несправностей, приписування портів внутрішнім сегментам концентратора і деякі інші. Як правило, вбудовані модулі управління також виконують роль SNMP-агентів, які поставляють дані про стан пристрою системам управління. &lt;br /&gt;
&lt;br /&gt;
*''Аналізатори протоколів'' (Protocolanalyzers). Представляють собою програмні або апаратно-програмні системи, які обмежуються на відміну від систем управління лише функціями моніторингу і аналізу трафіку в мережах. Хороший аналізатор протоколів може захоплювати і декодувати пакети великої кількості протоколів, що застосовуються в мережах - зазвичай кілька десятків. Аналізатори протоколів дозволяють встановити деякі логічні умови для захоплення окремих пакетів і виконують повне декодування захоплених пакетів, тобто показувати в зручній для користувача формі вкладеність пакетів протоколів різних рівнів один в одного з розшифруванням змісту окремих полів кожного пакета.&lt;br /&gt;
&lt;br /&gt;
*''Обладнання для діагностики і сертифікації кабельних систем''. Умовно це устаткування можна поділити на чотири основні групи: мережні монітори, прилади для сертифікації кабельних систем, кабельні сканери і тестери (мультиметри). Мережеві монітори (називають також мережевими аналізаторами) призначені для тестування кабелів різних категорій. Слід розрізняти мережеві монітори і аналізатори протоколів. Мережеві монітори збирають дані лише про статистичні показники трафіку - середньої інтенсивності загального трафіку мережі, середньої інтенсивності потоку пакетів з певним типом помилки і т.п. Призначення пристроїв для сертифікації кабельних систем, безпосередньо випливає з їх назви. Сертифікація виконується відповідно до вимог одного з міжнародних стандартів на кабельні системи. Кабельні сканери використовуються для діагностики мідних кабельних систем. Тестери призначені для перевірки кабелів на відсутність фізичного розриву.&lt;br /&gt;
 &lt;br /&gt;
*''Експертні системи''. Цей вид систем акумулює людські знання про виявлення причин аномальної роботи мереж і можливі способи приведення мережі у працездатний стан. Експертні системи часто реалізуються у вигляді окремих підсистем різних засобів моніторингу та аналізу мереж: систем управління мережами, аналізаторів протоколів, мережевих аналізаторів. Найпростішим варіантом експертної системи є контекстно-залежна help-система. Більш складні експертні системи являють собою так звані бази знань, що володіють елементами штучного інтелекту. Прикладом такої системи є експертна система, вбудована в систему управління Spectrum компанії Cabletron. &lt;br /&gt;
&lt;br /&gt;
*''Багатофункціональні пристрої аналізу та діагностики''. У зв'язку з розповсюдженням локальних мереж виникла необхідність розробки недорогих портативних приладів, які суміщають функції декількох пристроїв: аналізаторів протоколів, кабельних сканерів і, навіть, деяких можливостей ПЗ мережного управління. Як приклад такого роду пристроїв можна привести Compas компанії MicrotestInc. або 675 LANMeterкомпаніі FlukeCorp.&lt;br /&gt;
&lt;br /&gt;
== Системи управління ==&lt;br /&gt;
Відповідно до рекомендацій ISO можна виділити такі функцій '''засобів управління мережею''':&lt;br /&gt;
&lt;br /&gt;
* ''Управління конфігурацією мережі'' - полягає в конфігурації компонентів мережі, включаючи їх місце розташування, мережні адреси і ідентифікатори, управління параметрами мережевих операційних систем, підтримку схеми мережі: також ці функції використовуються для іменування об'єктів. &lt;br /&gt;
&lt;br /&gt;
* ''Обробка помилок'' - це виявлення і усунення наслідків збоїв у роботі мережі. &lt;br /&gt;
&lt;br /&gt;
* ''Аналіз продуктивності'' - допомагає на основі накопиченої статистичної інформації оцінювати час відповіді системи і величину трафіка, а також планувати розвиток мережі. &lt;br /&gt;
&lt;br /&gt;
* ''Управління безпекою'' - включає в себе контроль доступу та збереження цілісності даних. У функції входить процедура аутентифікації, перевірки привілеїв, підтримка ключів шифрування, управління правами. До цієї ж групи можна віднести важливі механізми управління паролями, зовнішнім доступом, з'єднання з іншими мережами. &lt;br /&gt;
&lt;br /&gt;
* ''Облік роботи мережі'' - включає реєстрацію і управління використовуваними ресурсами і пристроями. Ця функція оперує такими поняттями як час використання і плата за ресурси.&lt;br /&gt;
&lt;br /&gt;
З наведеного списку видно, що системи управління виконують не тільки функції моніторингу та аналізу роботи мережі, необхідні для отримання вихідних даних для налаштування мережі, але і включають функції активного впливу на мережу - управління конфігурацією і безпекою, які потрібні для відпрацювання виробленого плану настройки та оптимізації мережі. Сам етап створення плану налаштування мережі зазвичай залишається за межами функцій системи управління, хоча деякі системи управління мають у своєму складі експертні підсистеми, що допомагають адміністратору або интегратору визначити необхідні заходи з настроювання мережі. &lt;br /&gt;
&lt;br /&gt;
Засоби управління мережею (NetworkManagement), не слід плутати із засобами управління комп'ютерами та їх операційними системами (SystemManagement). Типовими представниками засобів управління мережами є системи HPOpenView, SunNetManager і IBMNetView.&lt;br /&gt;
&lt;br /&gt;
'''Засоби управління системою''' зазвичай виконують такі функції:&lt;br /&gt;
&lt;br /&gt;
*''Облік використовуваних апаратних і програмних засобів''. Система автоматично збирає інформацію про комп'ютери і створює записи в базі даних про апаратні і програмні ресурси. Після цього адміністратор може швидко з'ясувати, що він має і де це знаходиться. Наприклад, дізнатися про те, на яких комп'ютерах потрібно оновити драйвери принтерів, які ПК мають достатню кількість пам'яті і дискового простору і т. п.  &lt;br /&gt;
&lt;br /&gt;
* ''Розподіл й встановлення програмного забезпечення''. Після завершення обстеження адміністратор може створити пакети розсилки програмного забезпечення, що являється дуже ефективним способом для зменшення вартості такої процедури. Система може також дозволяти централізовано встановлювати і адмініструвати програми, які запускаються з файлових серверів, а також дати можливість кінцевим користувачам запускати такі програми з будь-якої робочої станції мережі.&lt;br /&gt;
&lt;br /&gt;
* ''Віддалений аналіз продуктивності і виникаючих проблем''. Адміністратор може віддалено управляти ресурсами будь-якого ПК, що працює в мережі. База даних системи управління зберігає детальну інформацію про конфігурацію всіх комп'ютерів в мережі для того, щоб можна було виконувати віддалений аналіз виникаючих проблем.&lt;br /&gt;
&lt;br /&gt;
Прикладами засобів управління системою є такі продукти, як SystemManagementServer компанії Microsoft або LANDeskManager фірми Intel.&lt;br /&gt;
&lt;br /&gt;
Останнім часом в області систем управління спостерігаються дві досить чітко виражені тенденції: &lt;br /&gt;
&lt;br /&gt;
*інтеграція в одному продукті функцій управління мережами і системами;&lt;br /&gt;
*розподіленість системи управління, при якій в системі існує кілька консолей, які збирають інформацію про стан пристроїв і систем та видають керуючі дії.&lt;br /&gt;
&lt;br /&gt;
===Стандарти управління мережою===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; bordercolor=&amp;quot;#000000&amp;quot; border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Організація&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Стандарти&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Особливості&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;IETF&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;SNMP&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Управління має бути простим, орієнтоване на змінні&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ISO&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;CMIP, CMIS&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Управління має бути потужним, об'єктно-орієнтованим&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ITU-T&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;TMN&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Визначена тільки архітектура&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;DMTF&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WBEM, CIM&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Управління мережами і системами, об'єктно-орієнтоване&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;OMG&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;CORBA&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Архітектура віддалених об'єктів&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Нині найуспішнішим сімейством стандартів є [[SNMP]]. Він лідирує за кількістю керованих систем (агентів). Керуючі системи (менеджери) зазвичай підтримують безліч стандартів, тому тут складно говорити про лідерство SNMP. За кількістю вкладених грошей, можливо, лідирує Telecommunications Management Network (TMN).&lt;br /&gt;
&lt;br /&gt;
Показово простежити залежність популярності стандартів від середовища їх застосування. У локальних і глобальних мережах передачі даних, що використовують Протокол інтернету (Internet Protocol, IP) найбільш широко розповсюджений стандарт [[SNMP]]. У системах відомчих автоматичних телефонних станцій (ВАТС) та в публічних телефонних мережах найбільш часто використовуються пропрієтарні рішення. У мобільних мережах в основному використовуються рішення на основі стандартів ISO.&lt;br /&gt;
&lt;br /&gt;
Майже всі успіхи SNMP пов'язані з особливостями процесу стандартизації в IETF:&lt;br /&gt;
&lt;br /&gt;
*Стандарти безкоштовні і вільно розповсюджувані;&lt;br /&gt;
&lt;br /&gt;
*Стандарти легко доступні в електронній формі;&lt;br /&gt;
&lt;br /&gt;
*Швидкий розвиток стандартів, продумані етапи стандартизації;&lt;br /&gt;
&lt;br /&gt;
*На всіх етапах ведеться технічна експертиза;&lt;br /&gt;
&lt;br /&gt;
*Робочі групи очолюють технічні, а не політичні лідери;&lt;br /&gt;
&lt;br /&gt;
*Прототипи систем на основі стандартів демонструють їх придатність;&lt;br /&gt;
&lt;br /&gt;
===Протокол [[SNMP]]===&lt;br /&gt;
&lt;br /&gt;
Створення систем управління мережами неможливе без орієнтації на певні стандарти, тому що управляюче програмне забезпечення та мережеве обладнання розробляють сотні компаній. Оскільки корпоративна мережа напевно неоднорідна, керуючі інструменти не можуть відображати специфіки однієї системи або мережі. &lt;br /&gt;
Найбільш поширеним протоколом управління мережами є протокол [[SNMP]] (SimpleNetworkManagementProtocol), його підтримують сотні виробників. Головні переваги протоколу SNMP - простота, доступність, незалежність від виробників. Значною мірою саме популярність [[SNMP]] затримала прийняття CMIP, варіанта керуючого протоколу за версією OSI. Протокол SNMP розроблений для управління маршрутизаторами в мережі Internet і є частиною стека TCP/IP.&lt;br /&gt;
 &lt;br /&gt;
У системах управління, побудованих на основі протоколу [[SNMP]], стандартизуються наступні елементи:&lt;br /&gt;
&lt;br /&gt;
*протокол взаємодії агента і менеджера;&lt;br /&gt;
&lt;br /&gt;
*мова опису моделей MIВ та повідомлень [[SNMP]] - мова абстрактної синтаксичної нотації [[ASN.1]] (стандарт ISO 8824:1987, рекомендації ITU-T X.208);&lt;br /&gt;
&lt;br /&gt;
*кілька конкретних моделей MIB (MIB-I, MIB-II, RMON, RMON 2), імена об'єктів яких реєструються в дереві стандартів ISO. Все інше віддається на розсуд розробника системи управління. Протокол SNMP і тісно пов'язана з ним концепція SNMP MIB були розроблені для управління маршрутизаторами Internet як тимчасове рішення. Але, як це часто буває з усім тимчасовим, простота і ефективність вирішення забезпечили успіх цього протоколу, і сьогодні він використовується при управлінні практично будь-якими видами обладнання і програмного забезпечення обчислювальних мереж. І хоча в області управління телекомунікаційними мережами спостерігається стійка тенденція застосування стандартів ITU-T, в які входить протокол CMIP, і тут є досить багато прикладів успішного використання SNMP-управління. Агенти SNMP вбудовуються в аналогові модеми, модеми ADSL, комутатори АТМ і т. д.&lt;br /&gt;
&lt;br /&gt;
SNMP - це протокол, що використовується для отримання від мережевих пристроїв інформації про їх статус, продуктивність та характеристики, які зберігаються в спеціальній базі даних мережевих пристроїв, що називається MIB (ManagementInformationBase). Існують стандарти, що визначають структуру MIB, в тому числі набір типів її змінних (об'єктів в термінології ISO), їх імена і допустимі операції цими змінними (наприклад, читати). У MIB, поряд з іншою інформацією, можуть зберігатися мережеві та / або MAC-адреси пристроїв, значення лічильників оброблених пакетів і помилок, номери, пріоритети та інформація про стан портів. Деревоподібна структура MIB містить обов'язкові (стандартні) піддерева, а також в ній можуть знаходитися приватні (private) піддерева, що дозволяють виробнику інтелектуальних пристроїв реалізувати будь-які специфічні функції на основі його специфічних змінних. &lt;br /&gt;
&lt;br /&gt;
Агент в протоколі SNMP - це елемент, який надає менеджерам, розміщеним на керуючих станціях мережі, доступ до значень змінних MIB, і тим самим дає їм можливість реалізовувати функції з управління та спостереження за пристроєм. Типова структура системи управління зображена на наступному малюнку:&lt;br /&gt;
&lt;br /&gt;
                             [[Файл:Locnop2211.gif]] &lt;br /&gt;
&lt;br /&gt;
===Стандарти управління OSI===&lt;br /&gt;
&lt;br /&gt;
====Загальні відомості. Концепція SMAE====&lt;br /&gt;
&lt;br /&gt;
Модель мережевого управління OSI - OSI Management Framework - визначена в документі ISO / IEC 7498-4: Basic Reference Model, Part 4, Management Framework.&lt;br /&gt;
&lt;br /&gt;
Документ ISO / IEC 7498-4 складається з наступних основних розділів:&lt;br /&gt;
&lt;br /&gt;
*Терміни та загальні концепції.&lt;br /&gt;
&lt;br /&gt;
*Модель управління системами.&lt;br /&gt;
&lt;br /&gt;
*Інформаційна модель.&lt;br /&gt;
&lt;br /&gt;
*Функціональні області управління системами.&lt;br /&gt;
&lt;br /&gt;
*Структура стандартів управління системами.&lt;br /&gt;
&lt;br /&gt;
Функціональні області управління системами вже були розглянуті вище.&lt;br /&gt;
&lt;br /&gt;
Стандарти ISO в галузі управління використовує термінологію, яка частково збігається з термінологією систем управління SNMP.&lt;br /&gt;
&lt;br /&gt;
Як показано на малюнку, обмін керуючою інформацією з використанням протоколу управління (Management Protocol) відбувається між суб'єктами програм управління системами (Systems Management Application Entities, SMAE):&lt;br /&gt;
&lt;br /&gt;
                               [[Файл:Smae.jpg]]&lt;br /&gt;
&lt;br /&gt;
Суб'єкти SMAE розташовані на прикладному рівні семирівневої моделі OSI і є елементами служби управління. Під суб'єктом в моделі OSI розуміється активний в даний момент елемент протоколу будь-якого рівня, який бере участь у взаємодії. Прикладами SMAE є агенти та менеджери систем управління.&lt;br /&gt;
&lt;br /&gt;
====Агенти та менеджери====&lt;br /&gt;
&lt;br /&gt;
Визначення функцій агентів і менеджерів в стандартах OSI досить добре узгоджуються з визначеннями систем SNMP, за деякими винятками в термінології. Повідомлення, які агент посилає менеджеру за своєю ініціативою, називаються повідомленнями - notifications.&lt;br /&gt;
&lt;br /&gt;
Наприклад, якщо деякий елемент мережі Х відмовив, то менеджеру необхідно оновити свою базу даних конфігурації мережі. Елемент X, який є для системи управління керованим об'єктом (managed object), може послати повідомлення агенту. Елемент Х може знаходитися в тій же керованої системі, що і агент, або може перебувати в іншій системі. У свою чергу агент надсилає повідомлення менеджеру про те, що елемент Х відмовив. Відповідно до цього повідомленням менеджер оновлює базу даних конфігурації.&lt;br /&gt;
&lt;br /&gt;
''ПРИМІТКА''. У стандартах Internet під об'єктом розуміється окремий атрибут бази МIВ, що є моделлю керованого ресурсу, а в стандартах ISO об'єкт позначає всю модель керованого ресурсу.&lt;br /&gt;
&lt;br /&gt;
Менеджер не тільки збирає і порівнює дані, одержувані від агентів, на основі цих даних він може також виконувати адміністративні функції, керуючи операціями віддалених агентів.&lt;br /&gt;
&lt;br /&gt;
У стандартах OSI різниця між менеджерами та агентами не дуже чітка. Суб'єкт SMAE, що виконує в одній взаємодії роль менеджера, може в іншій взаємодії виконувати роль агента, і навпаки.Стандарти OSI не визначають способів взаємодії агента з керованими об'єктами. Стандарти OSI також не говорять про те, як агент взаємодіє з керованими об'єктами, які перебувають за межами керованої системи, тобто об'єктами, з якими потрібно взаємодіяти через мережу. У таких випадках може знадобитися, наприклад, щоб один агент запросив дані про деякий об'єкт від іншого агента. Порядок такого роду взаємодії також не визначається стандартами OSI.&lt;br /&gt;
&lt;br /&gt;
Щоб менеджер і агент змогли взаємодіяти, кожен повинен мати певні відомості про один одного. Ці відомості модель OSI називає контекстом додатку (Application Context, AC). AC описує елементи прикладного рівня стека OSI, які використовуються агентами і менеджерами.&lt;br /&gt;
&lt;br /&gt;
''ПРИМІТКА''. Необхідно зазначити, що стандарти управління OSI значною мірою орієнтовані на стек протоколів OSI (саме стек, а не модель OSI), так само як системи управління SNMP орієнтовані на роботу зі стеком TCP / IP.&lt;br /&gt;
&lt;br /&gt;
Прикладний рівень стека OSI включає кілька допоміжних служб загального призначення, які використовуються прикладними протоколами і клієнтськими програмами (в тому числі і додатками управління) для автоматизації найбільш часто виконуваних дій. Це не закінчені протоколи прикладного рівня, подібні протоколах ftp, telnet або NCP, за допомогою яких користувач мережі може виконати якусь корисну дію, а допоміжні системні функції, які допомагають розробнику прикладного протоколу або програми написати її компактно і ефективно. На прикладному рівні стека OSI існують наступні допоміжних служби:&lt;br /&gt;
&lt;br /&gt;
*ACSE (Association Control Service Element). Відповідає за встановлення з'єднань між додатками різних систем. З'єднання (сесія, сеанс) на прикладному рівні OSI носить назву асоціації. Асоціації бувають індивідуальними та груповими (shared).&lt;br /&gt;
&lt;br /&gt;
*RTSE (Reliable Transfer Service Element). Займається підтримкою відновлення діалогу, викликаного розривом нижележащих комунікаційних служб, в рамках асоціації.&lt;br /&gt;
&lt;br /&gt;
*ROSE (Remote Operations Service Element). Організовує виконання програмних функцій на віддалених машинах (аналог служби виклику віддалених процедур RPC).&lt;br /&gt;
                            &lt;br /&gt;
====Управління системами, управління рівнем та операції рівня====&lt;br /&gt;
&lt;br /&gt;
Основна модель управління OSI включає: управління системами, управління N-рівнем і операції N-рівня. Це розбиття на три області зроблено для того, щоб врахувати всі можливі ситуації, що виникають при управлінні.&lt;br /&gt;
&lt;br /&gt;
Управління системами має справу з керованими об'єктами на всіх семи рівнях OSI, включаючи прикладний рівень. Воно засноване на надійній передачі з встановленням з'єднання керуючої інформації між кінцевими системами. Необхідно підкреслити, що модель управління OSI не дозволяє використання служб без встановлення з'єднання.&lt;br /&gt;
&lt;br /&gt;
Управління N-рівнем обмежено керованими об'єктами якогось певного рівня семирівневої моделі. Протокол управління використовує при цьому комунікаційні протоколи нижчих рівнів. Управління N-рівнем корисно, коли немає можливості використовувати всі семи рівнів OSI. У цьому випадку допускається користуватися протоколом управління N-рівня, який строго призначений для даного рівня. Прикладами рівневого протоколу управління є протоколи управління для локальних мереж, розроблені інститутом IEEE (SMT технології FDDI), які обмежені рівнями 1 і 2.&lt;br /&gt;
&lt;br /&gt;
Нарешті, операції N-рівня зводяться до моніторингу та управління на основі керуючої інформації, що міститься в комунікаційних протоколах тільки даного рівня. Наприклад, дані моніторингу мережі, що містяться в кадрах STM-n технології SDH, відносяться до операцій N-рівня, а саме фізичного рівня.&lt;br /&gt;
Стандарти на управління N-рівнем і операції N-рівня не входять в набір стандартів управління OSI. Стандарти OSI розглядають лише управління системами за допомогою повного семирівневого стека.&lt;br /&gt;
&lt;br /&gt;
Основна модель управління системами передбачає виконання керуючих операцій і передачу повідомлень між одноранговими системами, що означає необов'язковість жорсткого розподілу ролей на керуючі та керовані системи. Ця модель полегшує реалізацію розподілених аспектів управління. З іншого боку, допускається реалізація однорангових систем як керуючих і керованих.&lt;br /&gt;
&lt;br /&gt;
====Інформаційна модель управління====&lt;br /&gt;
&lt;br /&gt;
Керований об'єкт - це представлення OSI про ресурс з метою управління. Ресурс може бути описаний як керований об'єкт. Конкретний керований об'єкт - це екземпляр (instance) деякого класу керованих об'єктів. Модель управління OSI широко використовує об'єктно-орієнтований підхід. Клас керованих об'єктів - це набір властивостей, які можуть бути обов'язковими або умовними. За допомогою опису одного класу керованих об'єктів, наприклад комутаторів, можна створити інший клас керованих об'єктів, наприклад комутаторів, що підтримують техніку VLAN, успадкувавши всі властивості класу комутаторів, але додавши нові атрибути.&lt;br /&gt;
&lt;br /&gt;
Для управління ресурсами менеджер і агент повинні бути обізнані про деталі цих ресурсів. Деталізація представлення керованих об'єктів, які потрібні для виконання функцій управління, зберігається в репозиторії, відомому як Management Information Base (MIB). Бази MIB OSI зберігають не тільки описи класів керованих об'єктів, але й характеристики мережі та її елементів. Бази MIB містять характеристики кожної частини керованого обладнання і ресурсів. MIB також включає опис дій, які можуть виконуватися на основі зібраних даних або ж викликані зовнішніми командами. Бази MIB дозволяють зовнішнім системам опитувати, змінювати, створювати і видаляти керовані об'єкти (реальні ресурси мережі при цьому, природно, продовжують працювати). Протокол CMIP і локальні інтерфейси управління забезпечують доступ до цих можливостей.&lt;br /&gt;
&lt;br /&gt;
MIB - це концептуальна модель, і вона не має ніякого зв'язку зі способом фізичного або логічного зберігання даних в ресурсі. Стандарти не визначають аспекти власне зберігання даних. Протоколи OSI визначають синтаксис інформації, що зберігається в MIB, і семантику обміну даними.&lt;br /&gt;
&lt;br /&gt;
====Протокол CMIP та послуги CMIS====&lt;br /&gt;
&lt;br /&gt;
Доступ до керуючої інформації, що зберігається в керованих об'єктах, забезпечується за допомогою елемента системи управління, званого службою CMSIE (Common Management Information Service Element). Служба CMSIE побудована в архітектурі розподіленого додатку, де частину функцій виконує менеджер, а частина - агент. Взаємодія між менеджером і агентом здійснюється по протоколу CMIP. Послуги, що надаються службою CMSIE, називаються послугами CMIS (Common Management Information Services).&lt;br /&gt;
&lt;br /&gt;
Протокол CMIP та послуги CMIS визначені в стандартах Х.710 і Х.711 ITU-T. Послуги CMIS поділяються на дві групи - послуги, що ініціюються менеджером (запити), та послуги, що ініціюються агентом (повідомлення).&lt;br /&gt;
&lt;br /&gt;
Послуги, що ініціюються менеджером, включають наступні операції:&lt;br /&gt;
&lt;br /&gt;
*M-CREATE інструктує агента про необхідність створити новий екземпляр об'єкту певного класу або новий атрибут усередині екземпляра об'єкта;&lt;br /&gt;
&lt;br /&gt;
*M-DELETE інструктує агента про необхідність видалення деякого екземпляра об'єкту певного класу або атрибуту усередині екземпляра об'єкта;&lt;br /&gt;
&lt;br /&gt;
*M-GET інструктує агента про повернення значення деякого атрибуту певного екземпляра об'єкту;&lt;br /&gt;
&lt;br /&gt;
*M-SET інструктує агента про зміну значення деякого атрибуту певного екземпляра об'єкту;&lt;br /&gt;
&lt;br /&gt;
*M-ACTION інструктує агента про необхідність виконання певної дії над одним або кількома примірниками об'єктів.&lt;br /&gt;
&lt;br /&gt;
Агент ініціює тільки одну операцію:&lt;br /&gt;
M-EVENT_REPORT - відправка повідомлення менеджеру.&lt;br /&gt;
&lt;br /&gt;
Для реалізації своїх послуг служба CMISE повинна використовувати служби прикладного рівня стека OSI - ACSE, ROSE.&lt;br /&gt;
&lt;br /&gt;
Відмінність послуг CMIS від аналогічних послуг SNMP полягає в більшій гнучкості. Якщо запити GET і SET протоколу SNMP застосовні тільки до одного атрибуту одного об'єкта, то запити M-GET, M-SET, M-ACTION і M-DELETE можуть застосовуватися до більш ніж одного об'єкту. Для цього стандарти CMIP / CMIS вводять такі поняття, як огляд (scoping), фільтрація (filtering) і синхронізація (synchronization).&lt;br /&gt;
&lt;br /&gt;
===Порівняння протоколів SNMP та CMIP===&lt;br /&gt;
&lt;br /&gt;
*Застосування протоколу SNMP дозволяє будувати як прості, так і складні системи управління, а застосування протоколу CMIP визначає деякий, досить високий початковий рівень складності системи управління, так як для його роботи необхідно реалізувати ряд допоміжних служб, об'єктів і баз даних об'єктів.&lt;br /&gt;
&lt;br /&gt;
*Агенти CMIP виконують, як правило, більш складні функції, ніж агенти SNMP. Через це операції, які менеджеру можна виконати над агентом SNMP, носять атомарний характер, що призводить до численних обмінів між менеджером і агентом.&lt;br /&gt;
&lt;br /&gt;
*Повідомлення (traps) агента SNMP надсилаються менеджеру без очікування підтвердження, що може привести до того, що важливі мережеві проблеми залишаться непоміченими, оскільки відповідне повідомлення виявиться втраченим, у той час як повідомлення агента CMIP завжди передаються за допомогою надійного транспортного протоколу і в разі втрати будуть передані повторно.&lt;br /&gt;
&lt;br /&gt;
*Вирішення частини проблем SNMP може бути досягнуто за рахунок застосування більш інтелектуальних MIB (до яких відноситься RMON MIB), але для багатьох пристроїв і ситуацій таких MIB немає (або немає стандарту, або немає відповідної MIB в керованому обладнанні).&lt;br /&gt;
&lt;br /&gt;
*Протокол CMIP розрахований на інтелектуальних агентів, які можуть по одній простій команді від менеджера виконати складну послідовність дій.&lt;br /&gt;
&lt;br /&gt;
*Протокол CMIP істотно краще масштабується, тому що може впливати відразу на декілька об'єктів, а відповіді від агентів проходять через фільтри, які обмежують передачу керуючої інформації тільки певним агентам і менеджерам.&lt;br /&gt;
&lt;br /&gt;
== Вбудовані засоби моніторингу і аналізу мереж ==&lt;br /&gt;
&lt;br /&gt;
=== Агенти [[SNMP]] ===&lt;br /&gt;
&lt;br /&gt;
На сьогоднішній день існує кілька стандартів на бази даних управляючої інформації. Основними є стандарти MIB-I і MIB-II, а також версія бази даних для віддаленого управління [[RMON MIB]]. Крім цього, існують стандарти для спеціальних [[MIB]] пристроїв конкретного типу, а також приватні [[MIB]] конкретних фірм-виробників обладнання.&lt;br /&gt;
&lt;br /&gt;
Початкова специфікація MIB-I визначала лише операції читання значень змінні величини. Операції зміни чи установки значень об'єкта є частиною специфікацій MIB-II.&lt;br /&gt;
&lt;br /&gt;
Версія MIB-I (RFC 1156) визначає до 114 об'єктів, які поділяються на 8 груп:&lt;br /&gt;
&lt;br /&gt;
* System - загальні дані про пристрій (наприклад, ідентифікатор постачальника, час останньої ініціалізації системи).&lt;br /&gt;
 &lt;br /&gt;
* Interfaces - описуються параметри мережевих інтерфейсів пристрою (наприклад, їх кількість, типи, швидкості обміну, максимальний розмір пакету).&lt;br /&gt;
 &lt;br /&gt;
* AddressTranslationTable - описується відповідність між мережевими і фізичними адресами (наприклад, за протоколом [[ARP]]).&lt;br /&gt;
 &lt;br /&gt;
* [[IP|InternetProtocol]] - дані, що відносяться до протоколу IP (адреси IP-шлюзів, хостів, статистика про IP-пакети).&lt;br /&gt;
 &lt;br /&gt;
* [[ICMP]] - дані, що пов'язані з протоколом обміну керуючими повідомленнями [[ICMP]].&lt;br /&gt;
 &lt;br /&gt;
* [[TCP]] - дані, що належать до протоколу [[TCP]]. &lt;br /&gt;
&lt;br /&gt;
* [[UDP]] - дані, що належать до протоколу [[UDP]] (кількість переданих, прийнятих та помилкових UPD-дейтаграмм). &lt;br /&gt;
&lt;br /&gt;
* [[EGP]] - дані, що пов'язані з протоколом обміну маршрутною інформацією ExteriorGatewayProtocol, який використовується в мережі Internet (число прийнятих з помилками і без помилок повідомлень).&lt;br /&gt;
&lt;br /&gt;
З цього переліку груп змінних видно, що стандарт MIB-I розроблявся з жорсткою орієнтацією на управління маршрутизаторами, які підтримують протоколи стека TCP/IP.&lt;br /&gt;
&lt;br /&gt;
У версії MIB-II (RFC 1213), прийнятої в 1992 році, був істотно (до 185) розширено набір стандартних об'єктів, а кількість груп збільшилася до 10.&lt;br /&gt;
&lt;br /&gt;
У число об'єктів, що описують кожен конкретний інтерфейс пристрою, включені наступні:&lt;br /&gt;
&lt;br /&gt;
* IfType - тип протоколу, який підтримує інтерфейс. Цей об'єкт приймає значення всіх стандартних протоколів канального рівня, наприклад, rfc877-x25, ethernet-csmacd, iso88023-csmacd, iso88024-tokenBus, iso88025-tokenRing і т. д.&lt;br /&gt;
&lt;br /&gt;
* IfMtu - максимальний розмір пакета мережного рівня, який можна послати через цей інтерфейс.&lt;br /&gt;
&lt;br /&gt;
* IfSpeed - пропускна здатність інтерфейсу в бітах в секунду (100 для Fast Ethernet).&lt;br /&gt;
&lt;br /&gt;
* IfPhysAddress - фізичну адресу порту, для [[Fast Ethernet]] ним буде [[MAC]]-адреса.&lt;br /&gt;
&lt;br /&gt;
* IfAdminStatus - бажаний статус порту:&lt;br /&gt;
&lt;br /&gt;
:up - готовий передавати пакети;&lt;br /&gt;
:down - не готовий передавати пакети;&lt;br /&gt;
:testing - знаходиться в тестовому режимі.&lt;br /&gt;
&lt;br /&gt;
* IfOperStatus - фактичний поточний статус порту, має ті ж значення, що і ifAdminStatus.&lt;br /&gt;
&lt;br /&gt;
* IfInOctets - загальна кількість байт, прийняте даним портом, включаючи службові, з моменту останньої ініціалізації SNMP-агента.&lt;br /&gt;
&lt;br /&gt;
* IfInUcastPkts - кількість пакетів з індивідуальним адресою інтерфейсу, доставлених протоколу верхнього рівня.&lt;br /&gt;
&lt;br /&gt;
* IfInNUcastPkts - кількість пакетів з широкомовним або мультівещательнимі адресою інтерфейсу, доставлених протоколу верхнього рівня.&lt;br /&gt;
&lt;br /&gt;
* IfInDiscards - кількість пакетів, які були прийняті інтерфейсом, виявилися коректними, але не були доставлені протоколу верхнього рівня, швидше за все через переповнення буфера пакетів або ж з іншої причини.&lt;br /&gt;
&lt;br /&gt;
* IfInErrors - кількість пакетів, що прийшли, які не були передані протоколу верхнього рівня через виявлення в них помилок.&lt;br /&gt;
&lt;br /&gt;
Окрім об'єктів, що описують статистику за вхідними пакетів, є аналогічні об'єкти, пов'язані з вихідними пакетами. Як видно з опису об'єктів MIB-II, ця база даних не дає детальної статистики по характерних помилок кадрів [[Ethernet]], крім цього, вона не відображає зміну характеристик у часі, що часто цікавить мережевого адміністратора. Ці обмеження були згодом зняті новим стандартом на [[MIB]] - [[RMON MIB]], який спеціально орієнтований на збір детальної статистики по протоколу [[Ethernet]], до того ж з підтримкою такої важливої функції, як побудова агентом залежностей статистичних характеристик від часу.&lt;br /&gt;
&lt;br /&gt;
=== Агенти [[RMON]] ===&lt;br /&gt;
&lt;br /&gt;
Нововведенням до функціональних можливостей SNMP є специфікація RMON, яка забезпечує віддалену взаємодію з базою MIB. До появи RMON протокол SNMP не міг використовуватися віддалено, він допускав лише локальне управління пристроями. База RMONMIB має поліпшений набір властивостей для віддаленого управління, оскільки містить агреговану інформацію про пристрій, що не вимагає передачі по мережі великих обсягів інформації. Об'єкти RMONMIB включають додаткові лічильники помилок в пакетах, гнучкіші засоби аналізу графічних трендів і статистики, більш потужні засоби фільтрації для захоплення і аналізу окремих пакетів, а також більш складні умови встановлення сигналів попередження. Агенти RMONMIB більш інтелектуальні порівняно з агентами MIB-I або MIB-II і виконують значну частину роботи по обробці інформації про пристрій, яку раніше виконували менеджери. Ці агенти можуть розташовуватися усередині різних комунікаційних пристроїв, а також бути виконані у вигляді окремих програмних модулів, що працюють на універсальних ПК і ноутбуках (прикладом може служити LANalyzerNovell). &lt;br /&gt;
&lt;br /&gt;
Об'єкту [[RMON]] присвоєно номер 16 в наборі об'єктів [[MIB]], а сам об'єкт [[RMON]] об'єднує 10 груп наступних об'єктів:&lt;br /&gt;
&lt;br /&gt;
* ''Statistics'' - поточні накопичені статистичні дані про характеристики пакетів, кількості колізій тощо. &lt;br /&gt;
&lt;br /&gt;
* ''History'' - статистичні дані, збережені через певні проміжки часу для подальшого аналізу тенденцій їх змін. &lt;br /&gt;
&lt;br /&gt;
* ''Alarms'' - порогові значення статистичних показників, при перевищенні яких агент RMON посилає повідомлення менеджеру.&lt;br /&gt;
&lt;br /&gt;
* ''Host'' - дані про хости мережі, у тому числі про їх [[MAC]]-адресах.&lt;br /&gt;
 &lt;br /&gt;
* ''HostTopN'' - таблиця найбільш завантажених хостів мережі.&lt;br /&gt;
 &lt;br /&gt;
* ''TrafficMatrix'' - статистика про інтенсивність трафіка між кожною парою хостів мережі.&lt;br /&gt;
 &lt;br /&gt;
* ''Filter'' - умови фільтрації пакетів. &lt;br /&gt;
&lt;br /&gt;
* ''PacketCapture'' - умови захоплення пакетів. &lt;br /&gt;
&lt;br /&gt;
* ''Event'' - умови реєстрації і генерації подій.&lt;br /&gt;
&lt;br /&gt;
Дані групи пронумеровані у вказаному порядку, тому, наприклад, група Hosts має числове ім'я 1.3.6.1.2.1.16.4.&lt;br /&gt;
&lt;br /&gt;
Десяту групу складають спеціальні об'єкти протоколу TokenRing.&lt;br /&gt;
&lt;br /&gt;
Всього стандарт RMONMIB визначає близько 200 об'єктів в 10 групах, зафіксованих в двох документах - RFC 1271 для мереж Ethernet і RFC 1513 для мереж TokenRing.&lt;br /&gt;
&lt;br /&gt;
Відмінною рисою стандарту RMONMIB є його незалежність від протоколу мережевого рівня (на відміну від стандартів MIB-I і MIB-II, орієнтованих на протоколи TCP / IP). Тому, його зручно використовувати в гетерогенних середовищах, що використовують різні протоколи мережевого рівня.&lt;br /&gt;
&lt;br /&gt;
Розглянемо більш докладно групу Statistics, яка визначає, яку інформацію про кадри [[Ethernet]] може надати агент RMON.&lt;br /&gt;
&lt;br /&gt;
До групи Statistics входять наступні об'єкти:&lt;br /&gt;
&lt;br /&gt;
*''etherStatsDropEvents'' - загальне число подій, при яких пакети були проігноровані агентом через нестачу його ресурсів. Самі пакети при цьому не обов'язково були втрачені.&lt;br /&gt;
&lt;br /&gt;
*''etherStatsOrtets'' - загальне число байт (включаючи помилкові пакети), прийнятих з мережі (крім заголовка але з байтами контрольної суми).&lt;br /&gt;
&lt;br /&gt;
*''etherStatsPkts'' - загальне число отриманих пакетів (включаючи помилкові).&lt;br /&gt;
&lt;br /&gt;
*''etherStatsBroadcastPkts'' - загальне число хороших пакетів, які були надіслані широкомовною адресою.&lt;br /&gt;
&lt;br /&gt;
*''etherStatsMulticastPkts'' - загальне число хороших пакетів, отриманих за мультівещательнимі адресою.&lt;br /&gt;
&lt;br /&gt;
*''etherStatsCRCAlign Errors'' - загальне число отриманих пакетів, які мали довжину (виключаючи заголовок) між 64 і 1518 байт, не містили ціле число байт (alignment error) або мали невірну контрольну суму (FCS error).&lt;br /&gt;
&lt;br /&gt;
*''etherStatsUndersizePkts'' - загальне число пакетів, які мали довжину менше, ніж 64 байт, але були правильно сформовані.&lt;br /&gt;
&lt;br /&gt;
*''etherStatsOversizePkts'' - загальне число отриманих пакетів, які мали довжину більше, ніж 1518 байт, але були тим не менш правильно сформовані.&lt;br /&gt;
&lt;br /&gt;
*''etherStatsFragments'' - загальне число отриманих пакетів, які не складалися з цілого числа байт або мали невірну контрольну суму і мали до того ж довжину, меншу 64 байт.&lt;br /&gt;
&lt;br /&gt;
*''etherStatsJabbers'' - загальне число отриманих пакетів, які не складалися з цілого числа байт або мали невірну контрольну суму і мали до того ж довжину, більшу 1518 байт.&lt;br /&gt;
&lt;br /&gt;
*''etherStatsCollisions'' - найкраща оцінка числа колізій на даному сегменті Ethernet.&lt;br /&gt;
&lt;br /&gt;
*''etherStatsPkts640ctets'' - загальна кількість отриманих пакетів (включаючи погані) розміром 64 байт.&lt;br /&gt;
&lt;br /&gt;
*''etherStatsPkts65to1270ctets'' - загальна кількість отриманих пакетів (включаючи погані) розміром від 65 до 127 байт.&lt;br /&gt;
&lt;br /&gt;
*''etherStatsPktsl28to2550ctets'' - загальна кількість отриманих пакетів (включаючи погані) розміром від 128 до 255 байт.&lt;br /&gt;
&lt;br /&gt;
*''etherStatsPkts256to5110ctets'' - загальна кількість отриманих пакетів (включаючи погані) розміром від 256 до 511 байт.&lt;br /&gt;
&lt;br /&gt;
*''etherStatsPkts512tol0230ctets'' - загальна кількість отриманих пакетів (включаючи погані) розміром від 512 до 1023 байт.&lt;br /&gt;
&lt;br /&gt;
*''etherStatsPktsl024tol5180ctets'' - загальна кількість отриманих пакетів (включаючи погані) розміром від 1024 до 1518 байт.&lt;br /&gt;
&lt;br /&gt;
Як видно з опису об'єктів, за допомогою агента RMON, вбудованого в повторювач або інше комунікаційне обладнання, можна провести дуже детальний аналіз роботи сегмента Ethernet або Fast Ethernet. Спочатку можна отримати дані про типи помилок  в кадрах, що зустрічаються в сегменті, а потім доцільно зібрати за допомогою группи History залежності інтенсивності цих помилок від часу (в тому числі і прив'язавши їх до часу). Після аналізу тимчасових залежностей часто вже можна зробити деякі попередні висновки про джерело помилкових кадрів і на цій підставі сформулювати більш тонкі умови захоплення кадрів зі специфічними ознаками (задавши умови в групі Filter). Після цього можна провести ще більш детальний аналіз за рахунок вивчення захоплених кадрів, витягуючи їх з об'єктів группи Packet Capture.&lt;br /&gt;
&lt;br /&gt;
Пізніше був прийнятий стандарт RMON 2, який поширює ідеї інтелектуальної RMON MIB на протоколи верхніх рівнів, виконуючи частину роботи аналізаторів протоколів.&lt;br /&gt;
&lt;br /&gt;
== Аналізатори протоколів ==&lt;br /&gt;
&lt;br /&gt;
У ході проектування нової або модернізації старої мережі часто виникає необхідність в кількісному вимірі деяких характеристик мережі таких, наприклад, як інтенсивності потоків даних по лініях зв'язку, затримки, що виникають на різних етапах обробки пакетів, часи реакції на запити того чи іншого виду, частота виникнення певних подій та інших характеристик.&lt;br /&gt;
&lt;br /&gt;
Для цих цілей можуть бути використані різні засоби і насамперед - засоби моніторингу в системах управління мережею, які вже обговорювалися в попередніх розділах. Деякі вимірювання мережі можуть бути виконані і вбудованими в операційну систему програмами.&lt;br /&gt;
&lt;br /&gt;
[[Файл:EXFO_FTB-500_Protocols_large.jpg|250px|thumb|right|Универсальная измерительная платформа EXFO FTB-500]]&lt;br /&gt;
Але найбільш досконалим засобом дослідження мережі є аналізатор протоколів. Аналізатор мережевих протоколів може використовуватися для:&lt;br /&gt;
* локалізації складних проблем;&lt;br /&gt;
* виявлення та ідентифікації несанкціонованого програмного забезпечення;&lt;br /&gt;
* отримання такої інформації, як базові моделі трафіку ( baseline traffic patterns ) і метрики утилізації мережі;&lt;br /&gt;
* ідентифікації невикористовуваних протоколів для видалення їх з мережі;&lt;br /&gt;
* генерації трафіку для випробування на вторгнення (penetration test) з метою перевірки системи захисту;&lt;br /&gt;
* роботи з системами виявлення вторгнень Intrusion Detection System (IDS);&lt;br /&gt;
* прослуховування трафіку, тобто локалізації несанкціонованого трафіку з використанням Instant Messaging (IM) або бездротових точок доступу Access Points - (AP);&lt;br /&gt;
* вивчення роботи мережі.&lt;br /&gt;
&lt;br /&gt;
Аналізатор протоколів є самостійним спеціалізованим пристроєм, або персональним комп'ютером, зазвичай переносним, класу Notebook, оснащений спеціальною мережевою картою і відповідним програмним забезпеченням. Мережева карта і програмне забезпечення, що використовуються повинні відповідати топології мережі (кільце, шина, зірка). Аналізатор підключається до мережі точно так, як і звичайний вузол. Відмінність полягає в тому, що аналізатор може приймати всі пакети даних, що передаються по мережі, в той час як звичайна станція - лише адресовані їй. Програмне забезпечення аналізатора складається з ядра, що підтримує роботу мережевого адаптера і декодує одержувані дані, та додаткового програмного коду, що залежить від типу топології досліджуваної мережі. Крім того, поставляється ряд процедур декодування, орієнтованих на певний протокол, наприклад, IPX. До складу деяких аналізаторів може входити також експертна система, яка може видавати користувачеві рекомендації про те, які експерименти слід проводити в даній ситуації, що можуть означати ті чи інші результати вимірювань, як усунути деякі види несправності мережі.&lt;br /&gt;
&lt;br /&gt;
Незважаючи на відносне різноманіття аналізаторів протоколів, представлених на ринку, можна назвати деякі риси, в тій чи іншій мірі притаманні всім їм:&lt;br /&gt;
&lt;br /&gt;
*''Інтерфейс користувача''. Більшість аналізаторів мають розвинений дружній інтерфейс, який базується, як правило, на Windows чи Motif. Цей інтерфейс дозволяє користувачеві: виводити результати аналізу інтенсивності трафіку; отримувати миттєву і середню статистичну оцінку продуктивності мережі; задавати певні події і критичні ситуації для відстежування їх виникнення; робити декодування протоколів різного рівня і представляти в зрозумілій формі вміст пакетів.&lt;br /&gt;
&lt;br /&gt;
*''Буфер захоплення''. Буфери різних аналізаторів відрізняються за обсягом. Буфер може розташовуватися на мережевій карті, або для нього може бути відведено місце в оперативній пам'яті одного з комп'ютерів мережі. Якщо буфер розташований на мережевій карті, то управління ним здійснюється апаратно, і за рахунок цього швидкість введення підвищується. Однак це призводить до подорожчання аналізатора. У разі недостатньої продуктивності процедури захоплення, частина інформації буде губитися, і аналіз буде неможливий. Розмір буфера визначає можливості аналізу по більш або менш представницьким вибіркам даних, що захоплюються. Але яким би великим не був буфер захоплення, рано чи пізно він заповниться. У цьому випадку або припиняється захоплення, або заповнення починається з початку буфера.&lt;br /&gt;
&lt;br /&gt;
*Можливість ''вимірювання середньостатистичних показників трафіку в сегменті локальної мережі'', в якому встановлений мережевий адаптер аналізатора.&lt;br /&gt;
&lt;br /&gt;
*Вимірюється коефіцієнт використання сегменту, матриці перехресного трафіку вузлів, кількість хороших і поганих кадрів, що пройшли через сегмент.&lt;br /&gt;
&lt;br /&gt;
*Можливість роботи з декількома агентами, котрі поставляють захоплені пакети з різних сегментів локальної мережі. Ці агенти найчастіше взаємодіють з аналізатором протоколів за власним протоколом прикладного рівня.&lt;br /&gt;
&lt;br /&gt;
*''Фільтри''. Фільтри дозволяють керувати процесом захоплення даних, і, тим самим, дозволяють економити простір буфера. Залежно від значення певних полів пакета, заданих у вигляді умови фільтрації, пакет або ігнорується, або записується в буфер захоплення. Використання фільтрів значно прискорює і спрощує аналіз, оскільки виключає перегляд непотрібних в даний момент пакетів.&lt;br /&gt;
&lt;br /&gt;
*''Перемикачі'' - це деякі умови початку і припинення процесу захоплення даних з мережі, що задаються користувачем. Такими умовами можуть бути виконання ручних команд запуску і зупинки процесу захоплення, тривалість процесу захоплення, поява певних значень в кадрах даних. Перемикачі можуть використовуватися спільно з фільтрами, дозволяючи більш детально й тонко проводити аналіз, а також продуктивніше використовувати обмежений обсяг буфера захоплення.&lt;br /&gt;
&lt;br /&gt;
*''Пошук''. Деякі аналізатори протоколів дозволяють автоматизувати перегляд інформації, що знаходиться в буфері, і знаходити в ній дані по заданим критеріям. У той час, як фільтри перевіряють вхідний потік на предмет відповідності умовам фільтрації, функції пошуку застосовуються до вже накопичених в буфері даних.&lt;br /&gt;
&lt;br /&gt;
*''Багатоканальність''. Деякі аналізатори протоколів дозволяють проводити одночасний запис пакетів від декількох мережевих адаптерів, що зручно для зіставлення процесів, що відбуваються в різних сегментах мережі. Можливості аналізу проблем мережі на фізичному рівні у аналізаторів протоколів мінімальні, оскільки всю інформацію вони отримують від стандартних мережевих адаптерів. Тому вони передають і узагальнюють інформацію фізичного рівня, яку повідомляє їм мережевий адаптер, а вона багато в чому залежить від типу мережного адаптера. Деякі мережні адаптери повідомляють більш детальні дані про помилки кадрів та інтенсивності колізій в сегменті, а деякі взагалі не передають таку інформацію верхнім рівням протоколів, на яких працює аналізатор протоколів.&lt;br /&gt;
&lt;br /&gt;
Методологія проведення аналізу може бути представлена у вигляді наступних етапів:&lt;br /&gt;
[[Файл:Set.jpg|250px|thumb|right|Аналізатор протоколів виконує моніторинг мережевого трафіку]]&lt;br /&gt;
Аналізатор працює на станції хоста. Коли аналізатор запускається в хаотичному режимі (promiscuous mode), драйвер мережевого адаптера, NIC, перехоплює весь трафік, що проходить через нього. Аналізатор протоколів передає перехоплений трафік декодеру пакетів аналізатора (packet - decoder engine), який ідентифікує і &amp;quot;розщеплює&amp;quot; пакети по відповідним рівнями ієрархії. Програмне забезпечення протокольного аналізатора вивчає пакети і відображає інформацію про них на екрані хоста у вікні аналізатора. Залежно від можливостей конкретного продукту, представлена ​​інформація може згодом додатково аналізуватися і фільтруватися.&lt;br /&gt;
&lt;br /&gt;
Зазвичай вікно протокольного аналізатора складається з трьох областей. Верхня область відображає підсумкові дані перехоплених пакетів. Зазвичай в цій області відображається мінімум полів, а саме: &lt;br /&gt;
* дата та час (у мілісекундах), коли пакети були перехоплені; &lt;br /&gt;
* вихідні і цільові IP- адреси; &lt;br /&gt;
* вихідні і цільові адреси портів; &lt;br /&gt;
* тип протоколу (мережевий , транспортний або прикладного рівня); &lt;br /&gt;
* деяка сумарна інформація про перехоплених даних. &lt;br /&gt;
У середній області показано детальну інформацію про пакет згідно мережевої моделі [http://wiki.kspu.kr.ua/index.php/МОДЕЛЬ_OSI OSI]. І нарешті, в нижній області пакет представлений в шістнадцятковому вигляді або в символьній формі - ASCII.&lt;br /&gt;
&lt;br /&gt;
== Обладнання для діагностики та сертифікації кабельних систем ==&lt;br /&gt;
&lt;br /&gt;
Кабельна мережа (дротова мережа, лінія зв'язку) – це мережа, елементами якої є кабельні лінії й компоненти. До кабельних компонентів належить все пасивне комутаційне устаткування, що слугує для з'єднання або фізичного закінчення (термінування) кабелю.&amp;lt;br&amp;gt;&lt;br /&gt;
Умовно, обладнання для діагностики кабельних систем можна поділити на три основні групи: мережеві аналізатори, кабельні сканери і тестери (мультиметри). Для вибору відповідного обладнання потрібно правильно представляти, для якої мети воно буде використовуватися.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Файл:prov111.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
Перш, ніж перейти до більш докладного огляду цих пристроїв, наведемо деякі необхідні відомості про основні електромагнітні характеристики кабельних систем. &lt;br /&gt;
=== Основні електромагнітні характеристики кабельних систем ===&lt;br /&gt;
&lt;br /&gt;
Основними електричними характеристиками, що впливають на роботу кабелю, є: затухання, імпеданс (хвильовий опір), перехресні наводки двох кручених пар і рівень зовнішнього електромагнітного випромінювання.&lt;br /&gt;
&lt;br /&gt;
''Перехресні наводки між витими парами або NearEndCrosstalk (NEXT)'' - являють собою результат інтерференції електромагнітних сигналів, що виникають у двох кручених парах. Один з кабелів крученої пари передає сигнал, а другий - приймає. При проходженні сигналу по одному з кабелів, наприклад, по тому, що передає, у кабелі, що приймає сигнал виникають перехресні наводки. Величина NEXT залежить від частоти переданого сигналу - чим вище величина NEXT, тим краще (для категорії 5 NEXT повинен бути не менше 27 Дб при частоті 100 Мгц, для кабелю категорії 3 на частоті 10 МГц NEXT повинен бути не менше 26 Дб).&lt;br /&gt;
&lt;br /&gt;
''Затухання (Attenuation)'' - являє собою втрату амплітуди електричного сигналу при його поширенні по кабелю. Затухання має два основних джерела: електричні характеристики кабелю і поверхневий ефект. Останній пояснює залежність затухання від частоти. Затухання вимірюється в децибелах на метр. Для кабелю категорії 5 при частоті 100 Мгц загасання не повинно перевищувати 23.6 Дб на 100 м, а для кабелю категорії 3, за стандартом IEEE 802.3 10BASE-T, допустима величина затухання на сегменті довжиною 100 м не повинна перевищувати 11,5 Дб при частоті змінного струму 10 МГц.&lt;br /&gt;
&lt;br /&gt;
''Імпеданс (хвильовий опір)'' - це повний (активне і реактивне) опір в електричному ланцюзі. Імпеданс вимірюється в омах і є відносно постійною величиною для кабельних систем. Для неекранованої крученої пари найбільш часті значення імпедансу - 100 і 120 Ом. Характерні значення імпедансу для мереж стандарту Ethernet на коаксіальному кабелі становлять 50 Ом, а для мереж стандарту Arcnet - 93 Ом. Різкі зміни імпедансу по довжині кабелю можуть викликати процеси внутрішнього відображення, що призводять до виникнення стоячих хвиль. Стояча хвиля — тип коливань у неперервному середовищі, при яких кожна точка середовища здійснює періодичний рух зі сталою амплітудою, залежною від її положення. Стоячі хвилі не переносять енергію. Робоча станція, підключена до кабелю у районі вузла стоячої хвилі, не зможе отримувати адресовані їй повідомлення.&lt;br /&gt;
&lt;br /&gt;
''Активний опір'' - це опір постійному струму в електричному ланцюзі. На відміну від імпедансу активний опір не залежить від частоти і зростає зі збільшенням довжини кабелю. Для неекранованої крученої пари категорії 5 активний опір не повинен перевищувати 9.4 Ом на 100 м.&lt;br /&gt;
&lt;br /&gt;
''Ємність'' - це властивість металевих провідників накопичувати енергію. Два електричних провідника в кабелі, розділені діелектриком, являють собою конденсатор, здатний накопичувати заряд. Ємність є небажаною величиною, тому її слід робити якомога менше. Високе значення ємності в кабелі приводить до спотворення сигналу і обмежує смугу пропускання лінії. Для кабельних систем категорії 5 значення ємності не повинен перевищувати 5.6нФ на 100 м.&lt;br /&gt;
&lt;br /&gt;
''Рівень зовнішнього електромагнітного випромінювання, або електричний шум'' - це небажана зміна напруги в провіднику. Електричний шум буває двох типів: фоновий і імпульсний. Електричний шум можна також розділити на низько-, середньо-і високочастотний. Джерелами фонового електричного шуму є в діапазоні до 150 КГц лінії електропередачі, телефони і лампи денного світла; в діапазоні від 150 КГц до 20 Мгц комп'ютери, принтери, ксерокси; в діапазоні від 20 МГц до 1 ГГц – теле- і радіопередавачі, мікрохвильові печі. Основними джерелами імпульсного електричного шуму є мотори, перемикачі і зварювальні агрегати. Електричний шум вимірюється в мВ. Кабельні системи на крученій парі не сильно схильні до впливу електричного шуму (на відміну від впливу NEXT).&lt;br /&gt;
&lt;br /&gt;
===Мережеві аналізатори===&lt;br /&gt;
&lt;br /&gt;
Мережеві аналізатори (не слід плутати їх з аналізаторами протоколів) являють собою еталонні вимірювальні інструменти для діагностики та сертифікації кабелів і кабельних систем. Як приклад можна привести мережеві аналізатори компанії HewlettPackard - HP 4195A і HP 8510C.&lt;br /&gt;
Мережеві аналізатори містять високоточний частотний генератор і вузькосмуговий приймач. Передаючи сигнали різних частот в передавальну пару і вимірюючи сигнал у приймальній парі, можна виміряти затухання і NEXT. Мережеві аналізатори - це великогабаритні і дорогі  прилади, призначені для використання в лабораторних умовах спеціально навченим технічним персоналом.&lt;br /&gt;
&lt;br /&gt;
===Кабельні сканери===&lt;br /&gt;
&lt;br /&gt;
Дані прилади дозволяють визначити довжину кабелю, NEXT, затухання, імпеданс, схему розводки, рівень електричних шумів і провести оцінку отриманих результатів. Існує досить багато пристроїв даного класу, наприклад, сканери компаній MicrotestInc., FlukeCorp., DatacomTechnologiesInc., ScopeCommunicationInc. На відміну від мережевих аналізаторів сканери можуть бути використані не тільки спеціально навченим технічним персоналом, але навіть адміністраторами-новачками.&lt;br /&gt;
&lt;br /&gt;
Для визначення місця розташування несправності кабельної системи (обриву, короткого замикання, неправильно встановленого роз'єму і т.д.) використовується метод &amp;quot;кабельного радара&amp;quot;, або TimeDomainReflectometry (TDR). Суть цього методу полягає в тому, що сканер випромінює в кабель короткий електричний імпульс і вимірює час затримки до приходу відбитого сигналу. За полярності відображеного імпульсу визначається характер пошкодження кабелю (коротке замикання або обрив). У правильно встановленому і підключеному кабелі відбитий імпульс зовсім відсутній.&lt;br /&gt;
&lt;br /&gt;
Точність вимірювання відстані залежить від того, наскільки точно відома швидкість розповсюдження електромагнітних хвиль у кабелі. У різних кабелях вона буде різною. Швидкість розповсюдження електромагнітних хвиль у кабелі (NVP) зазвичай задається у відсотках до швидкості світла у вакуумі. Сучасні сканери містять в собі електронну таблицю даних про NVP для всіх основних типів кабелів і дозволяють користувачеві встановлювати ці параметри самостійно після попереднього калібрування.&lt;br /&gt;
&lt;br /&gt;
Найбільш відомими виробниками компактних  кабельних сканерів є компанії MicrotestInc., WaveTekCorp., ScopeCommunicationInc.&lt;br /&gt;
&lt;br /&gt;
===Тестери===&lt;br /&gt;
&lt;br /&gt;
Тестери кабельних систем - найбільш прості і дешеві прилади для діагностики кабелю. Вони дозволяють визначити пошкодження кабеля, проте, на відміну від кабельних сканерів, не дають відповіді на питання про те, в якому місці стався збій.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Перейти до [[Засоби аналізу та оптимізації мереж]]&lt;br /&gt;
&lt;br /&gt;
[[category:Комп'ютерні мережі]]&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%97%D0%B0%D1%81%D0%BE%D0%B1%D0%B8_%D0%BC%D0%BE%D0%BD%D1%96%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%D1%83_%D1%82%D0%B0_%D0%B0%D0%BD%D0%B0%D0%BB%D1%96%D0%B7%D1%83_%D0%BC%D0%B5%D1%80%D0%B5%D0%B6%D1%96</id>
		<title>Засоби моніторингу та аналізу мережі</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%97%D0%B0%D1%81%D0%BE%D0%B1%D0%B8_%D0%BC%D0%BE%D0%BD%D1%96%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%D1%83_%D1%82%D0%B0_%D0%B0%D0%BD%D0%B0%D0%BB%D1%96%D0%B7%D1%83_%D0%BC%D0%B5%D1%80%D0%B5%D0%B6%D1%96"/>
				<updated>2014-01-16T17:31:59Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: /* Агенти SNMP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Класифікація засобів моніторингу та аналізу ==&lt;br /&gt;
&lt;br /&gt;
Постійний контроль за роботою локальної мережі, що становить основу будь-якої корпоративної мережі, необхідний для підтримки її в працездатному стані. Контроль - це необхідний перший етап, який повинен виконуватися при управлінні мережею. Зважаючи на важливість цієї функції її часто відокремлюють від інших функцій систем управління і реалізують спеціальними засобами. Такий поділ функцій контролю і власне управління корисно для невеликих і середніх мереж, для яких установка інтегрованої системи управління економічно недоцільна. Використання автономних засобів контролю допомагає адміністратору мережі виявити проблемні ділянки і влаштування мережі, а їх відключення або реконфігурацію він може виконувати в цьому випадку вручну. &lt;br /&gt;
&lt;br /&gt;
Процес контролю роботи мережі зазвичай ділять на два етапи - '''моніторинг''' і '''аналіз'''.&lt;br /&gt;
 &lt;br /&gt;
На етапі ''моніторингу'' виконується більш проста процедура - процедура збору первинних даних про роботу мережі: статистики про кількість циркулюючих в мережі кадрів і пакетів різних протоколів, стан портів концентраторів, комутаторів і маршрутизаторів і т. п. &lt;br /&gt;
&lt;br /&gt;
Далі виконується етап ''аналізу'', під яким розуміється більш складний і інтелектуальний процес осмислення зібраної на етапі моніторингу інформації, зіставлення її з даними, отриманими раніше, і вироблення припущень про можливі причини сповільненої або ненадійної роботи мережі. &lt;br /&gt;
&lt;br /&gt;
Завдання моніторингу вирішуються програмними і апаратними вимірниками, тестерами, мережевими аналізаторами, вбудованими засобами моніторингу комунікаційних пристроїв, а також агентами систем управління. Завдання аналізу вимагає більш активної участі людини і використання таких складних засобів, як експертні системи, що акумулюють практичний досвід багатьох мережевих фахівців.&lt;br /&gt;
&lt;br /&gt;
Всі засоби моніторингу та аналізу мереж, можна розділити на кілька великих класів:&lt;br /&gt;
&lt;br /&gt;
*''Системи управління мережею'' ([http://en.wikipedia.org/wiki/Network_management_system Network Management Systems]) - централізовані програмні системи, які збирають дані про стан вузлів і комунікаційних пристроїв мережі, а також дані про трафік в мережі. Ці системи не тільки здійснюють моніторинг і аналіз, а й виконують в автоматичному чи напівавтоматичному режимі управління мережею - включення і відключення портів пристроїв, зміна параметрів мостів адресних таблиць мостів, комутаторів і маршрутизаторів і т.п. Прикладами систем управління можуть служити популярні системи HPOpenView, SunNetManager, IBMNetView.&lt;br /&gt;
&lt;br /&gt;
*''Засоби управління системою'' ([http://uk.wikipedia.org/wiki/%D0%92%D0%B1%D1%83%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B0_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0#.D0.90.D1.80.D1.85.D1.96.D1.82.D0.B5.D0.BA.D1.82.D1.83.D1.80.D0.B8_.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D0.BD.D0.BE.D0.B3.D0.BE_.D0.B7.D0.B0.D0.B1.D0.B5.D0.B7.D0.BF.D0.B5.D1.87.D0.B5.D0.BD.D0.BD.D1.8F_.D0.B2.D0.B1.D1.83.D0.B4.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.85_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC System Management]). Засоби управління системою часто виконують функції, аналогічні функціям систем управління, але стосовно інших об'єктів. У першому випадку об'єктом управління є програмне і апаратне забезпечення комп'ютерів мережі, а у другому - комунікаційне устаткування. Разом з тим, деякі функції цих двох видів систем управління можуть дублюватися, наприклад, засоби управління системою можуть виконувати найпростіший аналіз мережевого трафіку.До найбільш відомих систем управління системами відносяться LANDesk, IBM Tivoli, Microsoft Systems Management Server, HP OpenView, Novell ZENworks і CA Unicenter.&lt;br /&gt;
&lt;br /&gt;
*''Вбудовані системи діагностики і управління'' ([http://en.wikipedia.org/wiki/Embedded_system Embedded Systems]). Ці системи виконуються у вигляді програмно-апаратних модулів, які встановлюються в комунікаційне обладнання, а також у вигляді програмних модулів, вбудованих в операційні системи. Вони виконують функції діагностики і управління тільки одним пристроєм, і в цьому їх основна відмінність від централізованих систем управління. Прикладом засобів цього класу може служити модуль управління концентратором Distrebuted 5000, реалізує функції автосигментацієї портів при виявленні несправностей, приписування портів внутрішнім сегментам концентратора і деякі інші. Як правило, вбудовані модулі управління також виконують роль SNMP-агентів, які поставляють дані про стан пристрою системам управління. &lt;br /&gt;
&lt;br /&gt;
*''Аналізатори протоколів'' (Protocolanalyzers). Представляють собою програмні або апаратно-програмні системи, які обмежуються на відміну від систем управління лише функціями моніторингу і аналізу трафіку в мережах. Хороший аналізатор протоколів може захоплювати і декодувати пакети великої кількості протоколів, що застосовуються в мережах - зазвичай кілька десятків. Аналізатори протоколів дозволяють встановити деякі логічні умови для захоплення окремих пакетів і виконують повне декодування захоплених пакетів, тобто показувати в зручній для користувача формі вкладеність пакетів протоколів різних рівнів один в одного з розшифруванням змісту окремих полів кожного пакета.&lt;br /&gt;
&lt;br /&gt;
*''Обладнання для діагностики і сертифікації кабельних систем''. Умовно це устаткування можна поділити на чотири основні групи: мережні монітори, прилади для сертифікації кабельних систем, кабельні сканери і тестери (мультиметри). Мережеві монітори (називають також мережевими аналізаторами) призначені для тестування кабелів різних категорій. Слід розрізняти мережеві монітори і аналізатори протоколів. Мережеві монітори збирають дані лише про статистичні показники трафіку - середньої інтенсивності загального трафіку мережі, середньої інтенсивності потоку пакетів з певним типом помилки і т.п. Призначення пристроїв для сертифікації кабельних систем, безпосередньо випливає з їх назви. Сертифікація виконується відповідно до вимог одного з міжнародних стандартів на кабельні системи. Кабельні сканери використовуються для діагностики мідних кабельних систем. Тестери призначені для перевірки кабелів на відсутність фізичного розриву.&lt;br /&gt;
 &lt;br /&gt;
*''Експертні системи''. Цей вид систем акумулює людські знання про виявлення причин аномальної роботи мереж і можливі способи приведення мережі у працездатний стан. Експертні системи часто реалізуються у вигляді окремих підсистем різних засобів моніторингу та аналізу мереж: систем управління мережами, аналізаторів протоколів, мережевих аналізаторів. Найпростішим варіантом експертної системи є контекстно-залежна help-система. Більш складні експертні системи являють собою так звані бази знань, що володіють елементами штучного інтелекту. Прикладом такої системи є експертна система, вбудована в систему управління Spectrum компанії Cabletron. &lt;br /&gt;
&lt;br /&gt;
*''Багатофункціональні пристрої аналізу та діагностики''. У зв'язку з розповсюдженням локальних мереж виникла необхідність розробки недорогих портативних приладів, які суміщають функції декількох пристроїв: аналізаторів протоколів, кабельних сканерів і, навіть, деяких можливостей ПЗ мережного управління. Як приклад такого роду пристроїв можна привести Compas компанії MicrotestInc. або 675 LANMeterкомпаніі FlukeCorp.&lt;br /&gt;
&lt;br /&gt;
== Системи управління ==&lt;br /&gt;
Відповідно до рекомендацій ISO можна виділити такі функцій '''засобів управління мережею''':&lt;br /&gt;
&lt;br /&gt;
* ''Управління конфігурацією мережі'' - полягає в конфігурації компонентів мережі, включаючи їх місце розташування, мережні адреси і ідентифікатори, управління параметрами мережевих операційних систем, підтримку схеми мережі: також ці функції використовуються для іменування об'єктів. &lt;br /&gt;
&lt;br /&gt;
* ''Обробка помилок'' - це виявлення і усунення наслідків збоїв у роботі мережі. &lt;br /&gt;
&lt;br /&gt;
* ''Аналіз продуктивності'' - допомагає на основі накопиченої статистичної інформації оцінювати час відповіді системи і величину трафіка, а також планувати розвиток мережі. &lt;br /&gt;
&lt;br /&gt;
* ''Управління безпекою'' - включає в себе контроль доступу та збереження цілісності даних. У функції входить процедура аутентифікації, перевірки привілеїв, підтримка ключів шифрування, управління правами. До цієї ж групи можна віднести важливі механізми управління паролями, зовнішнім доступом, з'єднання з іншими мережами. &lt;br /&gt;
&lt;br /&gt;
* ''Облік роботи мережі'' - включає реєстрацію і управління використовуваними ресурсами і пристроями. Ця функція оперує такими поняттями як час використання і плата за ресурси.&lt;br /&gt;
&lt;br /&gt;
З наведеного списку видно, що системи управління виконують не тільки функції моніторингу та аналізу роботи мережі, необхідні для отримання вихідних даних для налаштування мережі, але і включають функції активного впливу на мережу - управління конфігурацією і безпекою, які потрібні для відпрацювання виробленого плану настройки та оптимізації мережі. Сам етап створення плану налаштування мережі зазвичай залишається за межами функцій системи управління, хоча деякі системи управління мають у своєму складі експертні підсистеми, що допомагають адміністратору або интегратору визначити необхідні заходи з настроювання мережі. &lt;br /&gt;
&lt;br /&gt;
Засоби управління мережею (NetworkManagement), не слід плутати із засобами управління комп'ютерами та їх операційними системами (SystemManagement). Типовими представниками засобів управління мережами є системи HPOpenView, SunNetManager і IBMNetView.&lt;br /&gt;
&lt;br /&gt;
'''Засоби управління системою''' зазвичай виконують такі функції:&lt;br /&gt;
&lt;br /&gt;
*''Облік використовуваних апаратних і програмних засобів''. Система автоматично збирає інформацію про комп'ютери і створює записи в базі даних про апаратні і програмні ресурси. Після цього адміністратор може швидко з'ясувати, що він має і де це знаходиться. Наприклад, дізнатися про те, на яких комп'ютерах потрібно оновити драйвери принтерів, які ПК мають достатню кількість пам'яті і дискового простору і т. п.  &lt;br /&gt;
&lt;br /&gt;
* ''Розподіл й встановлення програмного забезпечення''. Після завершення обстеження адміністратор може створити пакети розсилки програмного забезпечення, що являється дуже ефективним способом для зменшення вартості такої процедури. Система може також дозволяти централізовано встановлювати і адмініструвати програми, які запускаються з файлових серверів, а також дати можливість кінцевим користувачам запускати такі програми з будь-якої робочої станції мережі.&lt;br /&gt;
&lt;br /&gt;
* ''Віддалений аналіз продуктивності і виникаючих проблем''. Адміністратор може віддалено управляти ресурсами будь-якого ПК, що працює в мережі. База даних системи управління зберігає детальну інформацію про конфігурацію всіх комп'ютерів в мережі для того, щоб можна було виконувати віддалений аналіз виникаючих проблем.&lt;br /&gt;
&lt;br /&gt;
Прикладами засобів управління системою є такі продукти, як SystemManagementServer компанії Microsoft або LANDeskManager фірми Intel.&lt;br /&gt;
&lt;br /&gt;
Останнім часом в області систем управління спостерігаються дві досить чітко виражені тенденції: &lt;br /&gt;
&lt;br /&gt;
*інтеграція в одному продукті функцій управління мережами і системами;&lt;br /&gt;
*розподіленість системи управління, при якій в системі існує кілька консолей, які збирають інформацію про стан пристроїв і систем та видають керуючі дії.&lt;br /&gt;
&lt;br /&gt;
===Стандарти управління мережою===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; bordercolor=&amp;quot;#000000&amp;quot; border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Організація&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Стандарти&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Особливості&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;IETF&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;SNMP&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Управління має бути простим, орієнтоване на змінні&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ISO&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;CMIP, CMIS&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Управління має бути потужним, об'єктно-орієнтованим&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ITU-T&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;TMN&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Визначена тільки архітектура&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;DMTF&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WBEM, CIM&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Управління мережами і системами, об'єктно-орієнтоване&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;OMG&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;CORBA&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Архітектура віддалених об'єктів&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Нині найуспішнішим сімейством стандартів є [[SNMP]]. Він лідирує за кількістю керованих систем (агентів). Керуючі системи (менеджери) зазвичай підтримують безліч стандартів, тому тут складно говорити про лідерство SNMP. За кількістю вкладених грошей, можливо, лідирує Telecommunications Management Network (TMN).&lt;br /&gt;
&lt;br /&gt;
Показово простежити залежність популярності стандартів від середовища їх застосування. У локальних і глобальних мережах передачі даних, що використовують Протокол інтернету (Internet Protocol, IP) найбільш широко розповсюджений стандарт [[SNMP]]. У системах відомчих автоматичних телефонних станцій (ВАТС) та в публічних телефонних мережах найбільш часто використовуються пропрієтарні рішення. У мобільних мережах в основному використовуються рішення на основі стандартів ISO.&lt;br /&gt;
&lt;br /&gt;
Майже всі успіхи SNMP пов'язані з особливостями процесу стандартизації в IETF:&lt;br /&gt;
&lt;br /&gt;
*Стандарти безкоштовні і вільно розповсюджувані;&lt;br /&gt;
&lt;br /&gt;
*Стандарти легко доступні в електронній формі;&lt;br /&gt;
&lt;br /&gt;
*Швидкий розвиток стандартів, продумані етапи стандартизації;&lt;br /&gt;
&lt;br /&gt;
*На всіх етапах ведеться технічна експертиза;&lt;br /&gt;
&lt;br /&gt;
*Робочі групи очолюють технічні, а не політичні лідери;&lt;br /&gt;
&lt;br /&gt;
*Прототипи систем на основі стандартів демонструють їх придатність;&lt;br /&gt;
&lt;br /&gt;
===Протокол [[SNMP]]===&lt;br /&gt;
&lt;br /&gt;
Створення систем управління мережами неможливе без орієнтації на певні стандарти, тому що управляюче програмне забезпечення та мережеве обладнання розробляють сотні компаній. Оскільки корпоративна мережа напевно неоднорідна, керуючі інструменти не можуть відображати специфіки однієї системи або мережі. &lt;br /&gt;
Найбільш поширеним протоколом управління мережами є протокол [[SNMP]] (SimpleNetworkManagementProtocol), його підтримують сотні виробників. Головні переваги протоколу SNMP - простота, доступність, незалежність від виробників. Значною мірою саме популярність [[SNMP]] затримала прийняття CMIP, варіанта керуючого протоколу за версією OSI. Протокол SNMP розроблений для управління маршрутизаторами в мережі Internet і є частиною стека TCP/IP.&lt;br /&gt;
 &lt;br /&gt;
У системах управління, побудованих на основі протоколу [[SNMP]], стандартизуються наступні елементи:&lt;br /&gt;
&lt;br /&gt;
*протокол взаємодії агента і менеджера;&lt;br /&gt;
&lt;br /&gt;
*мова опису моделей MIВ та повідомлень [[SNMP]] - мова абстрактної синтаксичної нотації [[ASN.1]] (стандарт ISO 8824:1987, рекомендації ITU-T X.208);&lt;br /&gt;
&lt;br /&gt;
*кілька конкретних моделей MIB (MIB-I, MIB-II, RMON, RMON 2), імена об'єктів яких реєструються в дереві стандартів ISO. Все інше віддається на розсуд розробника системи управління. Протокол SNMP і тісно пов'язана з ним концепція SNMP MIB були розроблені для управління маршрутизаторами Internet як тимчасове рішення. Але, як це часто буває з усім тимчасовим, простота і ефективність вирішення забезпечили успіх цього протоколу, і сьогодні він використовується при управлінні практично будь-якими видами обладнання і програмного забезпечення обчислювальних мереж. І хоча в області управління телекомунікаційними мережами спостерігається стійка тенденція застосування стандартів ITU-T, в які входить протокол CMIP, і тут є досить багато прикладів успішного використання SNMP-управління. Агенти SNMP вбудовуються в аналогові модеми, модеми ADSL, комутатори АТМ і т. д.&lt;br /&gt;
&lt;br /&gt;
SNMP - це протокол, що використовується для отримання від мережевих пристроїв інформації про їх статус, продуктивність та характеристики, які зберігаються в спеціальній базі даних мережевих пристроїв, що називається MIB (ManagementInformationBase). Існують стандарти, що визначають структуру MIB, в тому числі набір типів її змінних (об'єктів в термінології ISO), їх імена і допустимі операції цими змінними (наприклад, читати). У MIB, поряд з іншою інформацією, можуть зберігатися мережеві та / або MAC-адреси пристроїв, значення лічильників оброблених пакетів і помилок, номери, пріоритети та інформація про стан портів. Деревоподібна структура MIB містить обов'язкові (стандартні) піддерева, а також в ній можуть знаходитися приватні (private) піддерева, що дозволяють виробнику інтелектуальних пристроїв реалізувати будь-які специфічні функції на основі його специфічних змінних. &lt;br /&gt;
&lt;br /&gt;
Агент в протоколі SNMP - це елемент, який надає менеджерам, розміщеним на керуючих станціях мережі, доступ до значень змінних MIB, і тим самим дає їм можливість реалізовувати функції з управління та спостереження за пристроєм. Типова структура системи управління зображена на наступному малюнку:&lt;br /&gt;
&lt;br /&gt;
                             [[Файл:Locnop2211.gif]] &lt;br /&gt;
&lt;br /&gt;
===Стандарти управління OSI===&lt;br /&gt;
&lt;br /&gt;
====Загальні відомості. Концепція SMAE====&lt;br /&gt;
&lt;br /&gt;
Модель мережевого управління OSI - OSI Management Framework - визначена в документі ISO / IEC 7498-4: Basic Reference Model, Part 4, Management Framework.&lt;br /&gt;
&lt;br /&gt;
Документ ISO / IEC 7498-4 складається з наступних основних розділів:&lt;br /&gt;
&lt;br /&gt;
*Терміни та загальні концепції.&lt;br /&gt;
&lt;br /&gt;
*Модель управління системами.&lt;br /&gt;
&lt;br /&gt;
*Інформаційна модель.&lt;br /&gt;
&lt;br /&gt;
*Функціональні області управління системами.&lt;br /&gt;
&lt;br /&gt;
*Структура стандартів управління системами.&lt;br /&gt;
&lt;br /&gt;
Функціональні області управління системами вже були розглянуті вище.&lt;br /&gt;
&lt;br /&gt;
Стандарти ISO в галузі управління використовує термінологію, яка частково збігається з термінологією систем управління SNMP.&lt;br /&gt;
&lt;br /&gt;
Як показано на малюнку, обмін керуючою інформацією з використанням протоколу управління (Management Protocol) відбувається між суб'єктами програм управління системами (Systems Management Application Entities, SMAE):&lt;br /&gt;
&lt;br /&gt;
                               [[Файл:Smae.jpg]]&lt;br /&gt;
&lt;br /&gt;
Суб'єкти SMAE розташовані на прикладному рівні семирівневої моделі OSI і є елементами служби управління. Під суб'єктом в моделі OSI розуміється активний в даний момент елемент протоколу будь-якого рівня, який бере участь у взаємодії. Прикладами SMAE є агенти та менеджери систем управління.&lt;br /&gt;
&lt;br /&gt;
====Агенти та менеджери====&lt;br /&gt;
&lt;br /&gt;
Визначення функцій агентів і менеджерів в стандартах OSI досить добре узгоджуються з визначеннями систем SNMP, за деякими винятками в термінології. Повідомлення, які агент посилає менеджеру за своєю ініціативою, називаються повідомленнями - notifications.&lt;br /&gt;
&lt;br /&gt;
Наприклад, якщо деякий елемент мережі Х відмовив, то менеджеру необхідно оновити свою базу даних конфігурації мережі. Елемент X, який є для системи управління керованим об'єктом (managed object), може послати повідомлення агенту. Елемент Х може знаходитися в тій же керованої системі, що і агент, або може перебувати в іншій системі. У свою чергу агент надсилає повідомлення менеджеру про те, що елемент Х відмовив. Відповідно до цього повідомленням менеджер оновлює базу даних конфігурації.&lt;br /&gt;
&lt;br /&gt;
''ПРИМІТКА''. У стандартах Internet під об'єктом розуміється окремий атрибут бази МIВ, що є моделлю керованого ресурсу, а в стандартах ISO об'єкт позначає всю модель керованого ресурсу.&lt;br /&gt;
&lt;br /&gt;
Менеджер не тільки збирає і порівнює дані, одержувані від агентів, на основі цих даних він може також виконувати адміністративні функції, керуючи операціями віддалених агентів.&lt;br /&gt;
&lt;br /&gt;
У стандартах OSI різниця між менеджерами та агентами не дуже чітка. Суб'єкт SMAE, що виконує в одній взаємодії роль менеджера, може в іншій взаємодії виконувати роль агента, і навпаки.Стандарти OSI не визначають способів взаємодії агента з керованими об'єктами. Стандарти OSI також не говорять про те, як агент взаємодіє з керованими об'єктами, які перебувають за межами керованої системи, тобто об'єктами, з якими потрібно взаємодіяти через мережу. У таких випадках може знадобитися, наприклад, щоб один агент запросив дані про деякий об'єкт від іншого агента. Порядок такого роду взаємодії також не визначається стандартами OSI.&lt;br /&gt;
&lt;br /&gt;
Щоб менеджер і агент змогли взаємодіяти, кожен повинен мати певні відомості про один одного. Ці відомості модель OSI називає контекстом додатку (Application Context, AC). AC описує елементи прикладного рівня стека OSI, які використовуються агентами і менеджерами.&lt;br /&gt;
&lt;br /&gt;
''ПРИМІТКА''. Необхідно зазначити, що стандарти управління OSI значною мірою орієнтовані на стек протоколів OSI (саме стек, а не модель OSI), так само як системи управління SNMP орієнтовані на роботу зі стеком TCP / IP.&lt;br /&gt;
&lt;br /&gt;
Прикладний рівень стека OSI включає кілька допоміжних служб загального призначення, які використовуються прикладними протоколами і клієнтськими програмами (в тому числі і додатками управління) для автоматизації найбільш часто виконуваних дій. Це не закінчені протоколи прикладного рівня, подібні протоколах ftp, telnet або NCP, за допомогою яких користувач мережі може виконати якусь корисну дію, а допоміжні системні функції, які допомагають розробнику прикладного протоколу або програми написати її компактно і ефективно. На прикладному рівні стека OSI існують наступні допоміжних служби:&lt;br /&gt;
&lt;br /&gt;
*ACSE (Association Control Service Element). Відповідає за встановлення з'єднань між додатками різних систем. З'єднання (сесія, сеанс) на прикладному рівні OSI носить назву асоціації. Асоціації бувають індивідуальними та груповими (shared).&lt;br /&gt;
&lt;br /&gt;
*RTSE (Reliable Transfer Service Element). Займається підтримкою відновлення діалогу, викликаного розривом нижележащих комунікаційних служб, в рамках асоціації.&lt;br /&gt;
&lt;br /&gt;
*ROSE (Remote Operations Service Element). Організовує виконання програмних функцій на віддалених машинах (аналог служби виклику віддалених процедур RPC).&lt;br /&gt;
                            &lt;br /&gt;
====Управління системами, управління рівнем та операції рівня====&lt;br /&gt;
&lt;br /&gt;
Основна модель управління OSI включає: управління системами, управління N-рівнем і операції N-рівня. Це розбиття на три області зроблено для того, щоб врахувати всі можливі ситуації, що виникають при управлінні.&lt;br /&gt;
&lt;br /&gt;
Управління системами має справу з керованими об'єктами на всіх семи рівнях OSI, включаючи прикладний рівень. Воно засноване на надійній передачі з встановленням з'єднання керуючої інформації між кінцевими системами. Необхідно підкреслити, що модель управління OSI не дозволяє використання служб без встановлення з'єднання.&lt;br /&gt;
&lt;br /&gt;
Управління N-рівнем обмежено керованими об'єктами якогось певного рівня семирівневої моделі. Протокол управління використовує при цьому комунікаційні протоколи нижчих рівнів. Управління N-рівнем корисно, коли немає можливості використовувати всі семи рівнів OSI. У цьому випадку допускається користуватися протоколом управління N-рівня, який строго призначений для даного рівня. Прикладами рівневого протоколу управління є протоколи управління для локальних мереж, розроблені інститутом IEEE (SMT технології FDDI), які обмежені рівнями 1 і 2.&lt;br /&gt;
&lt;br /&gt;
Нарешті, операції N-рівня зводяться до моніторингу та управління на основі керуючої інформації, що міститься в комунікаційних протоколах тільки даного рівня. Наприклад, дані моніторингу мережі, що містяться в кадрах STM-n технології SDH, відносяться до операцій N-рівня, а саме фізичного рівня.&lt;br /&gt;
Стандарти на управління N-рівнем і операції N-рівня не входять в набір стандартів управління OSI. Стандарти OSI розглядають лише управління системами за допомогою повного семирівневого стека.&lt;br /&gt;
&lt;br /&gt;
Основна модель управління системами передбачає виконання керуючих операцій і передачу повідомлень між одноранговими системами, що означає необов'язковість жорсткого розподілу ролей на керуючі та керовані системи. Ця модель полегшує реалізацію розподілених аспектів управління. З іншого боку, допускається реалізація однорангових систем як керуючих і керованих.&lt;br /&gt;
&lt;br /&gt;
====Інформаційна модель управління====&lt;br /&gt;
&lt;br /&gt;
Керований об'єкт - це представлення OSI про ресурс з метою управління. Ресурс може бути описаний як керований об'єкт. Конкретний керований об'єкт - це екземпляр (instance) деякого класу керованих об'єктів. Модель управління OSI широко використовує об'єктно-орієнтований підхід. Клас керованих об'єктів - це набір властивостей, які можуть бути обов'язковими або умовними. За допомогою опису одного класу керованих об'єктів, наприклад комутаторів, можна створити інший клас керованих об'єктів, наприклад комутаторів, що підтримують техніку VLAN, успадкувавши всі властивості класу комутаторів, але додавши нові атрибути.&lt;br /&gt;
&lt;br /&gt;
Для управління ресурсами менеджер і агент повинні бути обізнані про деталі цих ресурсів. Деталізація представлення керованих об'єктів, які потрібні для виконання функцій управління, зберігається в репозиторії, відомому як Management Information Base (MIB). Бази MIB OSI зберігають не тільки описи класів керованих об'єктів, але й характеристики мережі та її елементів. Бази MIB містять характеристики кожної частини керованого обладнання і ресурсів. MIB також включає опис дій, які можуть виконуватися на основі зібраних даних або ж викликані зовнішніми командами. Бази MIB дозволяють зовнішнім системам опитувати, змінювати, створювати і видаляти керовані об'єкти (реальні ресурси мережі при цьому, природно, продовжують працювати). Протокол CMIP і локальні інтерфейси управління забезпечують доступ до цих можливостей.&lt;br /&gt;
&lt;br /&gt;
MIB - це концептуальна модель, і вона не має ніякого зв'язку зі способом фізичного або логічного зберігання даних в ресурсі. Стандарти не визначають аспекти власне зберігання даних. Протоколи OSI визначають синтаксис інформації, що зберігається в MIB, і семантику обміну даними.&lt;br /&gt;
&lt;br /&gt;
====Протокол CMIP та послуги CMIS====&lt;br /&gt;
&lt;br /&gt;
Доступ до керуючої інформації, що зберігається в керованих об'єктах, забезпечується за допомогою елемента системи управління, званого службою CMSIE (Common Management Information Service Element). Служба CMSIE побудована в архітектурі розподіленого додатку, де частину функцій виконує менеджер, а частина - агент. Взаємодія між менеджером і агентом здійснюється по протоколу CMIP. Послуги, що надаються службою CMSIE, називаються послугами CMIS (Common Management Information Services).&lt;br /&gt;
&lt;br /&gt;
Протокол CMIP та послуги CMIS визначені в стандартах Х.710 і Х.711 ITU-T. Послуги CMIS поділяються на дві групи - послуги, що ініціюються менеджером (запити), та послуги, що ініціюються агентом (повідомлення).&lt;br /&gt;
&lt;br /&gt;
Послуги, що ініціюються менеджером, включають наступні операції:&lt;br /&gt;
&lt;br /&gt;
*M-CREATE інструктує агента про необхідність створити новий екземпляр об'єкту певного класу або новий атрибут усередині екземпляра об'єкта;&lt;br /&gt;
&lt;br /&gt;
*M-DELETE інструктує агента про необхідність видалення деякого екземпляра об'єкту певного класу або атрибуту усередині екземпляра об'єкта;&lt;br /&gt;
&lt;br /&gt;
*M-GET інструктує агента про повернення значення деякого атрибуту певного екземпляра об'єкту;&lt;br /&gt;
&lt;br /&gt;
*M-SET інструктує агента про зміну значення деякого атрибуту певного екземпляра об'єкту;&lt;br /&gt;
&lt;br /&gt;
*M-ACTION інструктує агента про необхідність виконання певної дії над одним або кількома примірниками об'єктів.&lt;br /&gt;
&lt;br /&gt;
Агент ініціює тільки одну операцію:&lt;br /&gt;
M-EVENT_REPORT - відправка повідомлення менеджеру.&lt;br /&gt;
&lt;br /&gt;
Для реалізації своїх послуг служба CMISE повинна використовувати служби прикладного рівня стека OSI - ACSE, ROSE.&lt;br /&gt;
&lt;br /&gt;
Відмінність послуг CMIS від аналогічних послуг SNMP полягає в більшій гнучкості. Якщо запити GET і SET протоколу SNMP застосовні тільки до одного атрибуту одного об'єкта, то запити M-GET, M-SET, M-ACTION і M-DELETE можуть застосовуватися до більш ніж одного об'єкту. Для цього стандарти CMIP / CMIS вводять такі поняття, як огляд (scoping), фільтрація (filtering) і синхронізація (synchronization).&lt;br /&gt;
&lt;br /&gt;
===Порівняння протоколів SNMP та CMIP===&lt;br /&gt;
&lt;br /&gt;
*Застосування протоколу SNMP дозволяє будувати як прості, так і складні системи управління, а застосування протоколу CMIP визначає деякий, досить високий початковий рівень складності системи управління, так як для його роботи необхідно реалізувати ряд допоміжних служб, об'єктів і баз даних об'єктів.&lt;br /&gt;
&lt;br /&gt;
*Агенти CMIP виконують, як правило, більш складні функції, ніж агенти SNMP. Через це операції, які менеджеру можна виконати над агентом SNMP, носять атомарний характер, що призводить до численних обмінів між менеджером і агентом.&lt;br /&gt;
&lt;br /&gt;
*Повідомлення (traps) агента SNMP надсилаються менеджеру без очікування підтвердження, що може привести до того, що важливі мережеві проблеми залишаться непоміченими, оскільки відповідне повідомлення виявиться втраченим, у той час як повідомлення агента CMIP завжди передаються за допомогою надійного транспортного протоколу і в разі втрати будуть передані повторно.&lt;br /&gt;
&lt;br /&gt;
*Вирішення частини проблем SNMP може бути досягнуто за рахунок застосування більш інтелектуальних MIB (до яких відноситься RMON MIB), але для багатьох пристроїв і ситуацій таких MIB немає (або немає стандарту, або немає відповідної MIB в керованому обладнанні).&lt;br /&gt;
&lt;br /&gt;
*Протокол CMIP розрахований на інтелектуальних агентів, які можуть по одній простій команді від менеджера виконати складну послідовність дій.&lt;br /&gt;
&lt;br /&gt;
*Протокол CMIP істотно краще масштабується, тому що може впливати відразу на декілька об'єктів, а відповіді від агентів проходять через фільтри, які обмежують передачу керуючої інформації тільки певним агентам і менеджерам.&lt;br /&gt;
&lt;br /&gt;
== Вбудовані засоби моніторингу і аналізу мереж ==&lt;br /&gt;
&lt;br /&gt;
=== Агенти [[SNMP]] ===&lt;br /&gt;
&lt;br /&gt;
Всю необхідну інформацію протокол SNMP отримує з бази керуючої інформації (ManagementInformationBase, MIB). MIB представляє собою базу даних стандартизованої структури. База даних має деревоподібну структуру, а всі змінні класифіковані за тематикою. Кожне піддерево містить певну тематичну підгрупу змінних. Найбільш важливі компоненти, що відповідають за роботу мережевих вузлів, об'єднані в підгрупі MIB-II.&lt;br /&gt;
&lt;br /&gt;
Існують два типи MIB: стандартні і фірмові. Стандартні MIB визначені комісією з діяльності Інтернет (Internet Activity Board, IAB), а фірмові - виробником пристрою.&lt;br /&gt;
На сьогоднішній день існує кілька стандартів на бази даних управляючої інформації. Основними є стандарти MIB-I і MIB-II, а також версія бази даних для віддаленого управління [[RMON MIB]]. Крім цього, існують стандарти для спеціальних [[MIB]] пристроїв конкретного типу, а також приватні [[MIB]] конкретних фірм-виробників обладнання.&lt;br /&gt;
&lt;br /&gt;
У таблиці 1 наведено список найбільш поширених стандартів баз керуючої інформації.&lt;br /&gt;
&lt;br /&gt;
[[Файл:TableSNMP.jpg]]&lt;br /&gt;
&lt;br /&gt;
У базах даних, зазначених у таблиці 1, присутня безліч змінних, які можуть бути корисні для діагностування мережі і мережевих пристроїв.&lt;br /&gt;
&lt;br /&gt;
Наприклад, використовуючи MIB-II, можна отримати відомості про загальну кількість пакетів, переданих мережевим інтерфейсом, а за допомогою MIB повторювача можна дізнатися інформацію про кількість колізій в порту.&lt;br /&gt;
&lt;br /&gt;
У MIB кожен об'єкт має ім'я і тип. Назва об'єкту характеризує його становище в дереві MIB. При цьому ім'я дочірнього вузла включає в себе ім'я батьківського вузла і задається цілим числом.&lt;br /&gt;
&lt;br /&gt;
====Відмінності SNMPv3====&lt;br /&gt;
&lt;br /&gt;
SNMP - протокол прикладного рівня. Він призначений для обміну інформацією між мережевими пристроями. За допомогою цього протоколу, мережевий адміністратор може виробляти аналіз мережевого устаткування, знаходити і вирішувати безліч мережевих проблем.&lt;br /&gt;
&lt;br /&gt;
Варто відзначити, що SNMPv 3 перейняв модульну архітектуру від своїх попередників. Це забезпечує підтримку попередніх версій SNMP і, не дивлячись на те, що SNMPv 1 і SNMPv 2 не підтримують аутентифікацію і шифрування, у Вас буде можливість керування пристроями, які підтримують ці версії.&lt;br /&gt;
&lt;br /&gt;
'''При створенні нової версії розробники керувалися такими принципами:'''&lt;br /&gt;
&lt;br /&gt;
1. необхідно забезпечити більшу безпеку протоколу (особливо для операцій типу SET);&lt;br /&gt;
&lt;br /&gt;
2. SNMPv 3 повинен мати можливість подальшого розвитку та розширення;&lt;br /&gt;
&lt;br /&gt;
3. протокол повинен залишитися простим і зрозумілим;&lt;br /&gt;
&lt;br /&gt;
4. налаштування параметрів безпеки SNMPv 3 повинні бути максимально простими;&lt;br /&gt;
&lt;br /&gt;
У SNMPv 3 вже не застосовуються терміни «агент» і «менеджер», тепер використовуються терміни «сутності». Як і раніше одна сутність знаходиться на керованому пристрої, а друга займається опитуванням додатків.&lt;br /&gt;
&lt;br /&gt;
'''У сутностей-агентів і сутностей-менеджерів тепер є ядро, яке виконує чотири основні функції:'''&lt;br /&gt;
&lt;br /&gt;
1.Функция диспетчера;&lt;br /&gt;
&lt;br /&gt;
2.обработка повідомлень;&lt;br /&gt;
&lt;br /&gt;
3.Функції безпеки;&lt;br /&gt;
&lt;br /&gt;
4.Контроль доступу&lt;br /&gt;
&lt;br /&gt;
'''Диспетчер''' - це проста система управління вхідним і вихідним трафіком. Для кожного вихідного блоку даних (PDU) він визначає тип необхідної обробки (SNMPv 1, SNMPv 2, SNMPv 3) і передає блок даних відповідного модуля в системі обробки повідомлень.&lt;br /&gt;
&lt;br /&gt;
Після того як система обробки повідомлень поверне повідомлення, яке містить цей блок даних, Диспетчер відправить його на транспортний рівень для подальшої передачі. Для вхідних повідомлень, Диспетчер проводить зворотну операцію.&lt;br /&gt;
&lt;br /&gt;
'''Система обробки повідомлень''' отримує від Диспетчера вихідні блоки даних (PDU), додає до них відповідний заголовок і повертає їх назад Диспетчеру.&lt;br /&gt;
&lt;br /&gt;
'''Система безпеки''' відповідає за шифрування і аутентифікацію. Всі вихідні повідомлення перед відправкою спочатку передаються із системи обробки повідомлень в систему безпеки, де всі шифруються поля в заголовку повідомлення, блок даних (PDU), генерується код аутентифікації і додається до заголовку повідомлення.&lt;br /&gt;
&lt;br /&gt;
Після цього повідомлення передається назад у систему обробки повідомлень. Точно така ж операція, але в зворотному порядку проводиться для всіх вхідних повідомлень.&lt;br /&gt;
&lt;br /&gt;
'''Система контролю''' доступу управляє службами аутентифікації для контролю доступу до MIB виходячи з вмісту блоків даних. (PDU). Теоретично, система контролю доступу може працювати з різними моделями контролю доступу, але на даний момент в RFC 2275 описана тільки одна модель - VACM (View - BasedAccessControlModel)&lt;br /&gt;
&lt;br /&gt;
'''Таблиця 2 - Основні методи SNMP'''&lt;br /&gt;
&lt;br /&gt;
[[Файл:TableSNMP2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Безпека в SNMPv3====&lt;br /&gt;
&lt;br /&gt;
Модель USM включає в себе модуль аутентифікації, модуль шифрування і модуль контролю часу. При цьому, модуль аутентифікації і шифрування займаються захистом даних, а модуль контролю часу синхронізує час між сутностями SNMP.&lt;br /&gt;
&lt;br /&gt;
''Основні проблеми, які необхідно було вирішити за допомогою моделі USM:''&lt;br /&gt;
  &lt;br /&gt;
1. Можливість відкладання яких-небудь дій на невизначений час або повторення одних і тих же дій з довільними інтервалами;&lt;br /&gt;
&lt;br /&gt;
2. Можливість заблокувати обмін даними між сутностями;&lt;br /&gt;
&lt;br /&gt;
3. Можливість перехоплення трафіку при передачі між сутностями;&lt;br /&gt;
&lt;br /&gt;
4. Можливість «маскараду», тобто сутність не пройшла аутентифікацію, могла прикинутися сутністю минулої аутентифікацію&lt;br /&gt;
&lt;br /&gt;
Проблему вирішили наступним чином: для кожного мережевого пристрою пароль перетворюється в деякий унікальний ключ. Це забезпечує додаткову безпеку тому навіть у тому випадку, якщо ключ буде перехоплений, зловмисник отримає доступ тільки до одного мережного пристрою. Для шифрування пароля використовується алгоритм MD 5, але розробники мабуть вирішили, що це не забезпечить достатньої збереження пароля і тому блок PDU двічі хешіруется за допомогою двох різних ключів, які в свою чергу генеруються з закритого ключа. Пізніше, перші 12 октетів використовуються як код аутентифікації повідомлення, який додається до повідомлення. Такий же процес доводиться проводити на іншій стороні, але тільки у зворотному порядку. Незважаючи на всю складність і енергоємність процесу передачі даних між сутностями SNMP, на думку розробників, алгоритм шифрування (DES) насправді не забезпечує достатнього захисту інформації, тому надалі передбачається використовувати інші алгоритми. Наприклад, алгоритм Діффі-Хіллмана (Diffie - Hillman)&lt;br /&gt;
&lt;br /&gt;
'''Розробниками передбачено 3 рівня безпеки:'''&lt;br /&gt;
&lt;br /&gt;
1. noAuthNoPriv - паролі передаються у відкритому вигляді, конфіденційність даних відсутній&lt;br /&gt;
&lt;br /&gt;
2. authNoPriv - аутентифікація без конфіденційності. Більшість пользователейіспользует саме цей рівень т.к рівень захищеності в ньому вже досить високий, а мережеві пристрої не перевантажуються шифруванням даних&lt;br /&gt;
&lt;br /&gt;
3. authPriv - аутентифікація та шифрування. Максимальний рівень захищеності&lt;br /&gt;
&lt;br /&gt;
Як правило, покупці спочатку вибирають другий рівень безпеки і лише деякі з них, потім починають використовувати третій. Однією з причин, по якій не використовується третій рівень, є те, що він перевантажує мережеві пристрої.&lt;br /&gt;
&lt;br /&gt;
На даний момент завершено розробку нової специфікації DataOverCableServiceInterfaceSpecification &amp;lt;див. стандарт RFC 3256&amp;gt;, а для управління ключами багато користувачів вже використовують алгоритми Діффі-Хіллмана (Diffie-Hillman) і Kerberos замість DES. Швидше за все, це означає, що скоро можна буде очікувати вихід нової версії протоколу SNMP.&lt;br /&gt;
&lt;br /&gt;
Протокол SNMP працює на базі транспортних можливостей UDP (можливі реалізації та на основі ТСР) і призначений для використання мережевими керуючими станціями. Він дозволяє керуючим станціям збирати інформацію про становище в мережі Інтернет. Протокол визначає формат даних, а їх обробка та інтерпретація залишаються на розсуд керуючих станцій або менеджера мережі. SNMP-повідомлення не мають фіксованого формату і фіксованих полів. При своїй роботі SNMP використовує управляючу базу даних (MIB - management information base, RFC-1213, -1212, std-17).&lt;br /&gt;
&lt;br /&gt;
Алгоритми управління в Інтернет зазвичай описують в нотації ASN.1 (Abstract Syntax Notation). Всі об'єкти в Інтернет розділені на 10 груп і описані в MIB: система, інтерфейси, обміни, трансляція адрес, IP, ICMP, TCP, UDP, EGP, SNMP. До групи &amp;quot;система&amp;quot; входить назва і версія обладнання, операційної системи, мережевого програмного забезпечення тощо. До групи &amp;quot;інтерфейси&amp;quot; входить число підтримуваних інтерфейсів, тип інтерфейсу, що працює під IP (Ethernet, LAPB etc.), Розмір дейтограмм, швидкість обміну, адреса інтерфейсу. IP-група включає в себе час життя дейтограмм, інформація про фрагментацію, маски субсетей і т.д. У TCP-групу входить алгоритм повторної пересилки, максимальне число повторних пересилань і т.д.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Початкова специфікація '''MIB-I''' визначала лише операції читання значень змінні величини. Операції зміни чи установки значень об'єкта є частиною специфікацій MIB-II.&lt;br /&gt;
&lt;br /&gt;
Версія MIB-I (RFC 1156) визначає до 114 об'єктів, які поділяються на 8 груп:&lt;br /&gt;
&lt;br /&gt;
* System - загальні дані про пристрій (наприклад, ідентифікатор постачальника, час останньої ініціалізації системи).&lt;br /&gt;
 &lt;br /&gt;
* Interfaces - описуються параметри мережевих інтерфейсів пристрою (наприклад, їх кількість, типи, швидкості обміну, максимальний розмір пакету).&lt;br /&gt;
 &lt;br /&gt;
* AddressTranslationTable - описується відповідність між мережевими і фізичними адресами (наприклад, за протоколом [[ARP]]).&lt;br /&gt;
 &lt;br /&gt;
* [[IP|InternetProtocol]] - дані, що відносяться до протоколу IP (адреси IP-шлюзів, хостів, статистика про IP-пакети).&lt;br /&gt;
 &lt;br /&gt;
* [[ICMP]] - дані, що пов'язані з протоколом обміну керуючими повідомленнями [[ICMP]].&lt;br /&gt;
 &lt;br /&gt;
* [[TCP]] - дані, що належать до протоколу [[TCP]]. &lt;br /&gt;
&lt;br /&gt;
* [[UDP]] - дані, що належать до протоколу [[UDP]] (кількість переданих, прийнятих та помилкових UPD-дейтаграмм). &lt;br /&gt;
&lt;br /&gt;
* [[EGP]] - дані, що пов'язані з протоколом обміну маршрутною інформацією ExteriorGatewayProtocol, який використовується в мережі Internet (число прийнятих з помилками і без помилок повідомлень).&lt;br /&gt;
&lt;br /&gt;
З цього переліку груп змінних видно, що стандарт MIB-I розроблявся з жорсткою орієнтацією на управління маршрутизаторами, які підтримують протоколи стека TCP/IP.&lt;br /&gt;
&lt;br /&gt;
У версії MIB-II (RFC 1213), прийнятої в 1992 році, був істотно (до 185) розширено набір стандартних об'єктів, а кількість груп збільшилася до 10.&lt;br /&gt;
&lt;br /&gt;
У число об'єктів, що описують кожен конкретний інтерфейс пристрою, включені наступні:&lt;br /&gt;
&lt;br /&gt;
* IfType - тип протоколу, який підтримує інтерфейс. Цей об'єкт приймає значення всіх стандартних протоколів канального рівня, наприклад, rfc877-x25, ethernet-csmacd, iso88023-csmacd, iso88024-tokenBus, iso88025-tokenRing і т. д.&lt;br /&gt;
&lt;br /&gt;
* IfMtu - максимальний розмір пакета мережного рівня, який можна послати через цей інтерфейс.&lt;br /&gt;
&lt;br /&gt;
* IfSpeed - пропускна здатність інтерфейсу в бітах в секунду (100 для Fast Ethernet).&lt;br /&gt;
&lt;br /&gt;
* IfPhysAddress - фізичну адресу порту, для [[Fast Ethernet]] ним буде [[MAC]]-адреса.&lt;br /&gt;
&lt;br /&gt;
* IfAdminStatus - бажаний статус порту:&lt;br /&gt;
&lt;br /&gt;
:up - готовий передавати пакети;&lt;br /&gt;
:down - не готовий передавати пакети;&lt;br /&gt;
:testing - знаходиться в тестовому режимі.&lt;br /&gt;
&lt;br /&gt;
* IfOperStatus - фактичний поточний статус порту, має ті ж значення, що і ifAdminStatus.&lt;br /&gt;
&lt;br /&gt;
* IfInOctets - загальна кількість байт, прийняте даним портом, включаючи службові, з моменту останньої ініціалізації SNMP-агента.&lt;br /&gt;
&lt;br /&gt;
* IfInUcastPkts - кількість пакетів з індивідуальним адресою інтерфейсу, доставлених протоколу верхнього рівня.&lt;br /&gt;
&lt;br /&gt;
* IfInNUcastPkts - кількість пакетів з широкомовним або мультівещательнимі адресою інтерфейсу, доставлених протоколу верхнього рівня.&lt;br /&gt;
&lt;br /&gt;
* IfInDiscards - кількість пакетів, які були прийняті інтерфейсом, виявилися коректними, але не були доставлені протоколу верхнього рівня, швидше за все через переповнення буфера пакетів або ж з іншої причини.&lt;br /&gt;
&lt;br /&gt;
* IfInErrors - кількість пакетів, що прийшли, які не були передані протоколу верхнього рівня через виявлення в них помилок.&lt;br /&gt;
&lt;br /&gt;
Окрім об'єктів, що описують статистику за вхідними пакетів, є аналогічні об'єкти, пов'язані з вихідними пакетами. Як видно з опису об'єктів MIB-II, ця база даних не дає детальної статистики по характерних помилок кадрів [[Ethernet]], крім цього, вона не відображає зміну характеристик у часі, що часто цікавить мережевого адміністратора. Ці обмеження були згодом зняті новим стандартом на [[MIB]] - [[RMON MIB]], який спеціально орієнтований на збір детальної статистики по протоколу [[Ethernet]], до того ж з підтримкою такої важливої функції, як побудова агентом залежностей статистичних характеристик від часу.&lt;br /&gt;
&lt;br /&gt;
=== Агенти [[RMON]] ===&lt;br /&gt;
&lt;br /&gt;
Нововведенням до функціональних можливостей SNMP є специфікація RMON, яка забезпечує віддалену взаємодію з базою MIB. До появи RMON протокол SNMP не міг використовуватися віддалено, він допускав лише локальне управління пристроями. База RMONMIB має поліпшений набір властивостей для віддаленого управління, оскільки містить агреговану інформацію про пристрій, що не вимагає передачі по мережі великих обсягів інформації. Об'єкти RMONMIB включають додаткові лічильники помилок в пакетах, гнучкіші засоби аналізу графічних трендів і статистики, більш потужні засоби фільтрації для захоплення і аналізу окремих пакетів, а також більш складні умови встановлення сигналів попередження. Агенти RMONMIB більш інтелектуальні порівняно з агентами MIB-I або MIB-II і виконують значну частину роботи по обробці інформації про пристрій, яку раніше виконували менеджери. Ці агенти можуть розташовуватися усередині різних комунікаційних пристроїв, а також бути виконані у вигляді окремих програмних модулів, що працюють на універсальних ПК і ноутбуках (прикладом може служити LANalyzerNovell). &lt;br /&gt;
&lt;br /&gt;
Об'єкту [[RMON]] присвоєно номер 16 в наборі об'єктів [[MIB]], а сам об'єкт [[RMON]] об'єднує 10 груп наступних об'єктів:&lt;br /&gt;
&lt;br /&gt;
* ''Statistics'' - поточні накопичені статистичні дані про характеристики пакетів, кількості колізій тощо. &lt;br /&gt;
&lt;br /&gt;
* ''History'' - статистичні дані, збережені через певні проміжки часу для подальшого аналізу тенденцій їх змін. &lt;br /&gt;
&lt;br /&gt;
* ''Alarms'' - порогові значення статистичних показників, при перевищенні яких агент RMON посилає повідомлення менеджеру.&lt;br /&gt;
&lt;br /&gt;
* ''Host'' - дані про хости мережі, у тому числі про їх [[MAC]]-адресах.&lt;br /&gt;
 &lt;br /&gt;
* ''HostTopN'' - таблиця найбільш завантажених хостів мережі.&lt;br /&gt;
 &lt;br /&gt;
* ''TrafficMatrix'' - статистика про інтенсивність трафіка між кожною парою хостів мережі.&lt;br /&gt;
 &lt;br /&gt;
* ''Filter'' - умови фільтрації пакетів. &lt;br /&gt;
&lt;br /&gt;
* ''PacketCapture'' - умови захоплення пакетів. &lt;br /&gt;
&lt;br /&gt;
* ''Event'' - умови реєстрації і генерації подій.&lt;br /&gt;
&lt;br /&gt;
Дані групи пронумеровані у вказаному порядку, тому, наприклад, група Hosts має числове ім'я 1.3.6.1.2.1.16.4.&lt;br /&gt;
&lt;br /&gt;
Десяту групу складають спеціальні об'єкти протоколу TokenRing.&lt;br /&gt;
&lt;br /&gt;
Всього стандарт RMONMIB визначає близько 200 об'єктів в 10 групах, зафіксованих в двох документах - RFC 1271 для мереж Ethernet і RFC 1513 для мереж TokenRing.&lt;br /&gt;
&lt;br /&gt;
Відмінною рисою стандарту RMONMIB є його незалежність від протоколу мережевого рівня (на відміну від стандартів MIB-I і MIB-II, орієнтованих на протоколи TCP / IP). Тому, його зручно використовувати в гетерогенних середовищах, що використовують різні протоколи мережевого рівня.&lt;br /&gt;
&lt;br /&gt;
Розглянемо більш докладно групу Statistics, яка визначає, яку інформацію про кадри [[Ethernet]] може надати агент RMON.&lt;br /&gt;
&lt;br /&gt;
До групи Statistics входять наступні об'єкти:&lt;br /&gt;
&lt;br /&gt;
*''etherStatsDropEvents'' - загальне число подій, при яких пакети були проігноровані агентом через нестачу його ресурсів. Самі пакети при цьому не обов'язково були втрачені.&lt;br /&gt;
&lt;br /&gt;
*''etherStatsOrtets'' - загальне число байт (включаючи помилкові пакети), прийнятих з мережі (крім заголовка але з байтами контрольної суми).&lt;br /&gt;
&lt;br /&gt;
*''etherStatsPkts'' - загальне число отриманих пакетів (включаючи помилкові).&lt;br /&gt;
&lt;br /&gt;
*''etherStatsBroadcastPkts'' - загальне число хороших пакетів, які були надіслані широкомовною адресою.&lt;br /&gt;
&lt;br /&gt;
*''etherStatsMulticastPkts'' - загальне число хороших пакетів, отриманих за мультівещательнимі адресою.&lt;br /&gt;
&lt;br /&gt;
*''etherStatsCRCAlign Errors'' - загальне число отриманих пакетів, які мали довжину (виключаючи заголовок) між 64 і 1518 байт, не містили ціле число байт (alignment error) або мали невірну контрольну суму (FCS error).&lt;br /&gt;
&lt;br /&gt;
*''etherStatsUndersizePkts'' - загальне число пакетів, які мали довжину менше, ніж 64 байт, але були правильно сформовані.&lt;br /&gt;
&lt;br /&gt;
*''etherStatsOversizePkts'' - загальне число отриманих пакетів, які мали довжину більше, ніж 1518 байт, але були тим не менш правильно сформовані.&lt;br /&gt;
&lt;br /&gt;
*''etherStatsFragments'' - загальне число отриманих пакетів, які не складалися з цілого числа байт або мали невірну контрольну суму і мали до того ж довжину, меншу 64 байт.&lt;br /&gt;
&lt;br /&gt;
*''etherStatsJabbers'' - загальне число отриманих пакетів, які не складалися з цілого числа байт або мали невірну контрольну суму і мали до того ж довжину, більшу 1518 байт.&lt;br /&gt;
&lt;br /&gt;
*''etherStatsCollisions'' - найкраща оцінка числа колізій на даному сегменті Ethernet.&lt;br /&gt;
&lt;br /&gt;
*''etherStatsPkts640ctets'' - загальна кількість отриманих пакетів (включаючи погані) розміром 64 байт.&lt;br /&gt;
&lt;br /&gt;
*''etherStatsPkts65to1270ctets'' - загальна кількість отриманих пакетів (включаючи погані) розміром від 65 до 127 байт.&lt;br /&gt;
&lt;br /&gt;
*''etherStatsPktsl28to2550ctets'' - загальна кількість отриманих пакетів (включаючи погані) розміром від 128 до 255 байт.&lt;br /&gt;
&lt;br /&gt;
*''etherStatsPkts256to5110ctets'' - загальна кількість отриманих пакетів (включаючи погані) розміром від 256 до 511 байт.&lt;br /&gt;
&lt;br /&gt;
*''etherStatsPkts512tol0230ctets'' - загальна кількість отриманих пакетів (включаючи погані) розміром від 512 до 1023 байт.&lt;br /&gt;
&lt;br /&gt;
*''etherStatsPktsl024tol5180ctets'' - загальна кількість отриманих пакетів (включаючи погані) розміром від 1024 до 1518 байт.&lt;br /&gt;
&lt;br /&gt;
Як видно з опису об'єктів, за допомогою агента RMON, вбудованого в повторювач або інше комунікаційне обладнання, можна провести дуже детальний аналіз роботи сегмента Ethernet або Fast Ethernet. Спочатку можна отримати дані про типи помилок  в кадрах, що зустрічаються в сегменті, а потім доцільно зібрати за допомогою группи History залежності інтенсивності цих помилок від часу (в тому числі і прив'язавши їх до часу). Після аналізу тимчасових залежностей часто вже можна зробити деякі попередні висновки про джерело помилкових кадрів і на цій підставі сформулювати більш тонкі умови захоплення кадрів зі специфічними ознаками (задавши умови в групі Filter). Після цього можна провести ще більш детальний аналіз за рахунок вивчення захоплених кадрів, витягуючи їх з об'єктів группи Packet Capture.&lt;br /&gt;
&lt;br /&gt;
Пізніше був прийнятий стандарт RMON 2, який поширює ідеї інтелектуальної RMON MIB на протоколи верхніх рівнів, виконуючи частину роботи аналізаторів протоколів.&lt;br /&gt;
&lt;br /&gt;
== Аналізатори протоколів ==&lt;br /&gt;
&lt;br /&gt;
У ході проектування нової або модернізації старої мережі часто виникає необхідність в кількісному вимірі деяких характеристик мережі таких, наприклад, як інтенсивності потоків даних по лініях зв'язку, затримки, що виникають на різних етапах обробки пакетів, часи реакції на запити того чи іншого виду, частота виникнення певних подій та інших характеристик.&lt;br /&gt;
&lt;br /&gt;
Для цих цілей можуть бути використані різні засоби і насамперед - засоби моніторингу в системах управління мережею, які вже обговорювалися в попередніх розділах. Деякі вимірювання мережі можуть бути виконані і вбудованими в операційну систему програмами.&lt;br /&gt;
&lt;br /&gt;
[[Файл:EXFO_FTB-500_Protocols_large.jpg|250px|thumb|right|Универсальная измерительная платформа EXFO FTB-500]]&lt;br /&gt;
Але найбільш досконалим засобом дослідження мережі є аналізатор протоколів. Аналізатор мережевих протоколів може використовуватися для:&lt;br /&gt;
* локалізації складних проблем;&lt;br /&gt;
* виявлення та ідентифікації несанкціонованого програмного забезпечення;&lt;br /&gt;
* отримання такої інформації, як базові моделі трафіку ( baseline traffic patterns ) і метрики утилізації мережі;&lt;br /&gt;
* ідентифікації невикористовуваних протоколів для видалення їх з мережі;&lt;br /&gt;
* генерації трафіку для випробування на вторгнення (penetration test) з метою перевірки системи захисту;&lt;br /&gt;
* роботи з системами виявлення вторгнень Intrusion Detection System (IDS);&lt;br /&gt;
* прослуховування трафіку, тобто локалізації несанкціонованого трафіку з використанням Instant Messaging (IM) або бездротових точок доступу Access Points - (AP);&lt;br /&gt;
* вивчення роботи мережі.&lt;br /&gt;
&lt;br /&gt;
Аналізатор протоколів є самостійним спеціалізованим пристроєм, або персональним комп'ютером, зазвичай переносним, класу Notebook, оснащений спеціальною мережевою картою і відповідним програмним забезпеченням. Мережева карта і програмне забезпечення, що використовуються повинні відповідати топології мережі (кільце, шина, зірка). Аналізатор підключається до мережі точно так, як і звичайний вузол. Відмінність полягає в тому, що аналізатор може приймати всі пакети даних, що передаються по мережі, в той час як звичайна станція - лише адресовані їй. Програмне забезпечення аналізатора складається з ядра, що підтримує роботу мережевого адаптера і декодує одержувані дані, та додаткового програмного коду, що залежить від типу топології досліджуваної мережі. Крім того, поставляється ряд процедур декодування, орієнтованих на певний протокол, наприклад, IPX. До складу деяких аналізаторів може входити також експертна система, яка може видавати користувачеві рекомендації про те, які експерименти слід проводити в даній ситуації, що можуть означати ті чи інші результати вимірювань, як усунути деякі види несправності мережі.&lt;br /&gt;
&lt;br /&gt;
Незважаючи на відносне різноманіття аналізаторів протоколів, представлених на ринку, можна назвати деякі риси, в тій чи іншій мірі притаманні всім їм:&lt;br /&gt;
&lt;br /&gt;
*''Інтерфейс користувача''. Більшість аналізаторів мають розвинений дружній інтерфейс, який базується, як правило, на Windows чи Motif. Цей інтерфейс дозволяє користувачеві: виводити результати аналізу інтенсивності трафіку; отримувати миттєву і середню статистичну оцінку продуктивності мережі; задавати певні події і критичні ситуації для відстежування їх виникнення; робити декодування протоколів різного рівня і представляти в зрозумілій формі вміст пакетів.&lt;br /&gt;
&lt;br /&gt;
*''Буфер захоплення''. Буфери різних аналізаторів відрізняються за обсягом. Буфер може розташовуватися на мережевій карті, або для нього може бути відведено місце в оперативній пам'яті одного з комп'ютерів мережі. Якщо буфер розташований на мережевій карті, то управління ним здійснюється апаратно, і за рахунок цього швидкість введення підвищується. Однак це призводить до подорожчання аналізатора. У разі недостатньої продуктивності процедури захоплення, частина інформації буде губитися, і аналіз буде неможливий. Розмір буфера визначає можливості аналізу по більш або менш представницьким вибіркам даних, що захоплюються. Але яким би великим не був буфер захоплення, рано чи пізно він заповниться. У цьому випадку або припиняється захоплення, або заповнення починається з початку буфера.&lt;br /&gt;
&lt;br /&gt;
*Можливість ''вимірювання середньостатистичних показників трафіку в сегменті локальної мережі'', в якому встановлений мережевий адаптер аналізатора.&lt;br /&gt;
&lt;br /&gt;
*Вимірюється коефіцієнт використання сегменту, матриці перехресного трафіку вузлів, кількість хороших і поганих кадрів, що пройшли через сегмент.&lt;br /&gt;
&lt;br /&gt;
*Можливість роботи з декількома агентами, котрі поставляють захоплені пакети з різних сегментів локальної мережі. Ці агенти найчастіше взаємодіють з аналізатором протоколів за власним протоколом прикладного рівня.&lt;br /&gt;
&lt;br /&gt;
*''Фільтри''. Фільтри дозволяють керувати процесом захоплення даних, і, тим самим, дозволяють економити простір буфера. Залежно від значення певних полів пакета, заданих у вигляді умови фільтрації, пакет або ігнорується, або записується в буфер захоплення. Використання фільтрів значно прискорює і спрощує аналіз, оскільки виключає перегляд непотрібних в даний момент пакетів.&lt;br /&gt;
&lt;br /&gt;
*''Перемикачі'' - це деякі умови початку і припинення процесу захоплення даних з мережі, що задаються користувачем. Такими умовами можуть бути виконання ручних команд запуску і зупинки процесу захоплення, тривалість процесу захоплення, поява певних значень в кадрах даних. Перемикачі можуть використовуватися спільно з фільтрами, дозволяючи більш детально й тонко проводити аналіз, а також продуктивніше використовувати обмежений обсяг буфера захоплення.&lt;br /&gt;
&lt;br /&gt;
*''Пошук''. Деякі аналізатори протоколів дозволяють автоматизувати перегляд інформації, що знаходиться в буфері, і знаходити в ній дані по заданим критеріям. У той час, як фільтри перевіряють вхідний потік на предмет відповідності умовам фільтрації, функції пошуку застосовуються до вже накопичених в буфері даних.&lt;br /&gt;
&lt;br /&gt;
*''Багатоканальність''. Деякі аналізатори протоколів дозволяють проводити одночасний запис пакетів від декількох мережевих адаптерів, що зручно для зіставлення процесів, що відбуваються в різних сегментах мережі. Можливості аналізу проблем мережі на фізичному рівні у аналізаторів протоколів мінімальні, оскільки всю інформацію вони отримують від стандартних мережевих адаптерів. Тому вони передають і узагальнюють інформацію фізичного рівня, яку повідомляє їм мережевий адаптер, а вона багато в чому залежить від типу мережного адаптера. Деякі мережні адаптери повідомляють більш детальні дані про помилки кадрів та інтенсивності колізій в сегменті, а деякі взагалі не передають таку інформацію верхнім рівням протоколів, на яких працює аналізатор протоколів.&lt;br /&gt;
&lt;br /&gt;
Методологія проведення аналізу може бути представлена у вигляді наступних етапів:&lt;br /&gt;
[[Файл:Set.jpg|250px|thumb|right|Аналізатор протоколів виконує моніторинг мережевого трафіку]]&lt;br /&gt;
Аналізатор працює на станції хоста. Коли аналізатор запускається в хаотичному режимі (promiscuous mode), драйвер мережевого адаптера, NIC, перехоплює весь трафік, що проходить через нього. Аналізатор протоколів передає перехоплений трафік декодеру пакетів аналізатора (packet - decoder engine), який ідентифікує і &amp;quot;розщеплює&amp;quot; пакети по відповідним рівнями ієрархії. Програмне забезпечення протокольного аналізатора вивчає пакети і відображає інформацію про них на екрані хоста у вікні аналізатора. Залежно від можливостей конкретного продукту, представлена ​​інформація може згодом додатково аналізуватися і фільтруватися.&lt;br /&gt;
&lt;br /&gt;
Зазвичай вікно протокольного аналізатора складається з трьох областей. Верхня область відображає підсумкові дані перехоплених пакетів. Зазвичай в цій області відображається мінімум полів, а саме: &lt;br /&gt;
* дата та час (у мілісекундах), коли пакети були перехоплені; &lt;br /&gt;
* вихідні і цільові IP- адреси; &lt;br /&gt;
* вихідні і цільові адреси портів; &lt;br /&gt;
* тип протоколу (мережевий , транспортний або прикладного рівня); &lt;br /&gt;
* деяка сумарна інформація про перехоплених даних. &lt;br /&gt;
У середній області показано детальну інформацію про пакет згідно мережевої моделі [http://wiki.kspu.kr.ua/index.php/МОДЕЛЬ_OSI OSI]. І нарешті, в нижній області пакет представлений в шістнадцятковому вигляді або в символьній формі - ASCII.&lt;br /&gt;
&lt;br /&gt;
== Обладнання для діагностики та сертифікації кабельних систем ==&lt;br /&gt;
&lt;br /&gt;
Кабельна мережа (дротова мережа, лінія зв'язку) – це мережа, елементами якої є кабельні лінії й компоненти. До кабельних компонентів належить все пасивне комутаційне устаткування, що слугує для з'єднання або фізичного закінчення (термінування) кабелю.&amp;lt;br&amp;gt;&lt;br /&gt;
Умовно, обладнання для діагностики кабельних систем можна поділити на три основні групи: мережеві аналізатори, кабельні сканери і тестери (мультиметри). Для вибору відповідного обладнання потрібно правильно представляти, для якої мети воно буде використовуватися.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Файл:prov111.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
Перш, ніж перейти до більш докладного огляду цих пристроїв, наведемо деякі необхідні відомості про основні електромагнітні характеристики кабельних систем. &lt;br /&gt;
=== Основні електромагнітні характеристики кабельних систем ===&lt;br /&gt;
&lt;br /&gt;
Основними електричними характеристиками, що впливають на роботу кабелю, є: затухання, імпеданс (хвильовий опір), перехресні наводки двох кручених пар і рівень зовнішнього електромагнітного випромінювання.&lt;br /&gt;
&lt;br /&gt;
''Перехресні наводки між витими парами або NearEndCrosstalk (NEXT)'' - являють собою результат інтерференції електромагнітних сигналів, що виникають у двох кручених парах. Один з кабелів крученої пари передає сигнал, а другий - приймає. При проходженні сигналу по одному з кабелів, наприклад, по тому, що передає, у кабелі, що приймає сигнал виникають перехресні наводки. Величина NEXT залежить від частоти переданого сигналу - чим вище величина NEXT, тим краще (для категорії 5 NEXT повинен бути не менше 27 Дб при частоті 100 Мгц, для кабелю категорії 3 на частоті 10 МГц NEXT повинен бути не менше 26 Дб).&lt;br /&gt;
&lt;br /&gt;
''Затухання (Attenuation)'' - являє собою втрату амплітуди електричного сигналу при його поширенні по кабелю. Затухання має два основних джерела: електричні характеристики кабелю і поверхневий ефект. Останній пояснює залежність затухання від частоти. Затухання вимірюється в децибелах на метр. Для кабелю категорії 5 при частоті 100 Мгц загасання не повинно перевищувати 23.6 Дб на 100 м, а для кабелю категорії 3, за стандартом IEEE 802.3 10BASE-T, допустима величина затухання на сегменті довжиною 100 м не повинна перевищувати 11,5 Дб при частоті змінного струму 10 МГц.&lt;br /&gt;
&lt;br /&gt;
''Імпеданс (хвильовий опір)'' - це повний (активне і реактивне) опір в електричному ланцюзі. Імпеданс вимірюється в омах і є відносно постійною величиною для кабельних систем. Для неекранованої крученої пари найбільш часті значення імпедансу - 100 і 120 Ом. Характерні значення імпедансу для мереж стандарту Ethernet на коаксіальному кабелі становлять 50 Ом, а для мереж стандарту Arcnet - 93 Ом. Різкі зміни імпедансу по довжині кабелю можуть викликати процеси внутрішнього відображення, що призводять до виникнення стоячих хвиль. Стояча хвиля — тип коливань у неперервному середовищі, при яких кожна точка середовища здійснює періодичний рух зі сталою амплітудою, залежною від її положення. Стоячі хвилі не переносять енергію. Робоча станція, підключена до кабелю у районі вузла стоячої хвилі, не зможе отримувати адресовані їй повідомлення.&lt;br /&gt;
&lt;br /&gt;
''Активний опір'' - це опір постійному струму в електричному ланцюзі. На відміну від імпедансу активний опір не залежить від частоти і зростає зі збільшенням довжини кабелю. Для неекранованої крученої пари категорії 5 активний опір не повинен перевищувати 9.4 Ом на 100 м.&lt;br /&gt;
&lt;br /&gt;
''Ємність'' - це властивість металевих провідників накопичувати енергію. Два електричних провідника в кабелі, розділені діелектриком, являють собою конденсатор, здатний накопичувати заряд. Ємність є небажаною величиною, тому її слід робити якомога менше. Високе значення ємності в кабелі приводить до спотворення сигналу і обмежує смугу пропускання лінії. Для кабельних систем категорії 5 значення ємності не повинен перевищувати 5.6нФ на 100 м.&lt;br /&gt;
&lt;br /&gt;
''Рівень зовнішнього електромагнітного випромінювання, або електричний шум'' - це небажана зміна напруги в провіднику. Електричний шум буває двох типів: фоновий і імпульсний. Електричний шум можна також розділити на низько-, середньо-і високочастотний. Джерелами фонового електричного шуму є в діапазоні до 150 КГц лінії електропередачі, телефони і лампи денного світла; в діапазоні від 150 КГц до 20 Мгц комп'ютери, принтери, ксерокси; в діапазоні від 20 МГц до 1 ГГц – теле- і радіопередавачі, мікрохвильові печі. Основними джерелами імпульсного електричного шуму є мотори, перемикачі і зварювальні агрегати. Електричний шум вимірюється в мВ. Кабельні системи на крученій парі не сильно схильні до впливу електричного шуму (на відміну від впливу NEXT).&lt;br /&gt;
&lt;br /&gt;
===Мережеві аналізатори===&lt;br /&gt;
&lt;br /&gt;
Мережеві аналізатори (не слід плутати їх з аналізаторами протоколів) являють собою еталонні вимірювальні інструменти для діагностики та сертифікації кабелів і кабельних систем. Як приклад можна привести мережеві аналізатори компанії HewlettPackard - HP 4195A і HP 8510C.&lt;br /&gt;
Мережеві аналізатори містять високоточний частотний генератор і вузькосмуговий приймач. Передаючи сигнали різних частот в передавальну пару і вимірюючи сигнал у приймальній парі, можна виміряти затухання і NEXT. Мережеві аналізатори - це великогабаритні і дорогі  прилади, призначені для використання в лабораторних умовах спеціально навченим технічним персоналом.&lt;br /&gt;
&lt;br /&gt;
===Кабельні сканери===&lt;br /&gt;
&lt;br /&gt;
Дані прилади дозволяють визначити довжину кабелю, NEXT, затухання, імпеданс, схему розводки, рівень електричних шумів і провести оцінку отриманих результатів. Існує досить багато пристроїв даного класу, наприклад, сканери компаній MicrotestInc., FlukeCorp., DatacomTechnologiesInc., ScopeCommunicationInc. На відміну від мережевих аналізаторів сканери можуть бути використані не тільки спеціально навченим технічним персоналом, але навіть адміністраторами-новачками.&lt;br /&gt;
&lt;br /&gt;
Для визначення місця розташування несправності кабельної системи (обриву, короткого замикання, неправильно встановленого роз'єму і т.д.) використовується метод &amp;quot;кабельного радара&amp;quot;, або TimeDomainReflectometry (TDR). Суть цього методу полягає в тому, що сканер випромінює в кабель короткий електричний імпульс і вимірює час затримки до приходу відбитого сигналу. За полярності відображеного імпульсу визначається характер пошкодження кабелю (коротке замикання або обрив). У правильно встановленому і підключеному кабелі відбитий імпульс зовсім відсутній.&lt;br /&gt;
&lt;br /&gt;
Точність вимірювання відстані залежить від того, наскільки точно відома швидкість розповсюдження електромагнітних хвиль у кабелі. У різних кабелях вона буде різною. Швидкість розповсюдження електромагнітних хвиль у кабелі (NVP) зазвичай задається у відсотках до швидкості світла у вакуумі. Сучасні сканери містять в собі електронну таблицю даних про NVP для всіх основних типів кабелів і дозволяють користувачеві встановлювати ці параметри самостійно після попереднього калібрування.&lt;br /&gt;
&lt;br /&gt;
Найбільш відомими виробниками компактних  кабельних сканерів є компанії MicrotestInc., WaveTekCorp., ScopeCommunicationInc.&lt;br /&gt;
&lt;br /&gt;
===Тестери===&lt;br /&gt;
&lt;br /&gt;
Тестери кабельних систем - найбільш прості і дешеві прилади для діагностики кабелю. Вони дозволяють визначити пошкодження кабеля, проте, на відміну від кабельних сканерів, не дають відповіді на питання про те, в якому місці стався збій.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Перейти до [[Засоби аналізу та оптимізації мереж]]&lt;br /&gt;
&lt;br /&gt;
[[category:Комп'ютерні мережі]]&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%A4%D0%B0%D0%B9%D0%BB:TableSNMP2.jpg</id>
		<title>Файл:TableSNMP2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%A4%D0%B0%D0%B9%D0%BB:TableSNMP2.jpg"/>
				<updated>2014-01-16T17:25:24Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%A4%D0%B0%D0%B9%D0%BB:TableSNMP.jpg</id>
		<title>Файл:TableSNMP.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%A4%D0%B0%D0%B9%D0%BB:TableSNMP.jpg"/>
				<updated>2014-01-16T17:16:50Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%B1%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B5%D0%BD%D0%BD%D1%8F:%D0%A2%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D1%96%D1%8F_Bluetooth</id>
		<title>Обговорення:Технологія Bluetooth</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%B1%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B5%D0%BD%D0%BD%D1%8F:%D0%A2%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D1%96%D1%8F_Bluetooth"/>
				<updated>2014-01-16T16:40:19Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Стаття викладена дуже цікаво та зрозуміло. Дуже багато чисто практичних речей, які можуть знадобитись. Дякую за статтю &amp;lt;br&amp;gt;&lt;br /&gt;
--[[User:Александр Spirit|Остапчук]] 10:55, 14 декабря 2010 (EET)&lt;br /&gt;
&lt;br /&gt;
Текст плохо структурирован, плохо читается. Картинки забирают простаранство (нет обтекания текста).&amp;lt;br&amp;gt;&lt;br /&gt;
Некоторые статьи можна было представить в виде таблицы. &amp;lt;br&amp;gt;&lt;br /&gt;
--[[Користувач:Онищенко Сергей|Godrik]] 17:58, 28 грудня 2010 (EET)&lt;br /&gt;
&lt;br /&gt;
Достатньо цікавий аналіз даних, обмін якими йде впродовж процесу сполучення &lt;br /&gt;
(Вразливості і атаки Bluetooth )&amp;lt;br&amp;gt;&lt;br /&gt;
--[[Користувач:Лера Тирон|Лера Тирон]] 16:02, 18 грудня 2011 (EET)&lt;br /&gt;
&lt;br /&gt;
Хотілося б дізнатись детальніше про технологію EDR&amp;lt;br&amp;gt;&lt;br /&gt;
[[Користувач:Lionardo|Біндовський Антон ]]&lt;br /&gt;
&lt;br /&gt;
В даній статті доповненно опис технології EDR --[[Користувач:Гончаренко Євген|Гончаренко Євген]] 06:07, 27 грудня 2013 (EET)&lt;br /&gt;
&lt;br /&gt;
Як діє функція безпеки протоколу LMP? - [[Користувач:Bondar Egor|Bondar Egor]]&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%B1%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B5%D0%BD%D0%BD%D1%8F:%D0%A2%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D1%96%D1%8F_Bluetooth</id>
		<title>Обговорення:Технологія Bluetooth</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%B1%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B5%D0%BD%D0%BD%D1%8F:%D0%A2%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D1%96%D1%8F_Bluetooth"/>
				<updated>2014-01-16T16:39:11Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Стаття викладена дуже цікаво та зрозуміло. Дуже багато чисто практичних речей, які можуть знадобитись. Дякую за статтю &amp;lt;br&amp;gt;&lt;br /&gt;
--[[User:Александр Spirit|Остапчук]] 10:55, 14 декабря 2010 (EET)&lt;br /&gt;
&lt;br /&gt;
Текст плохо структурирован, плохо читается. Картинки забирают простаранство (нет обтекания текста).&amp;lt;br&amp;gt;&lt;br /&gt;
Некоторые статьи можна было представить в виде таблицы. &amp;lt;br&amp;gt;&lt;br /&gt;
--[[Користувач:Онищенко Сергей|Godrik]] 17:58, 28 грудня 2010 (EET)&lt;br /&gt;
&lt;br /&gt;
Достатньо цікавий аналіз даних, обмін якими йде впродовж процесу сполучення &lt;br /&gt;
(Вразливості і атаки Bluetooth )&amp;lt;br&amp;gt;&lt;br /&gt;
--[[Користувач:Лера Тирон|Лера Тирон]] 16:02, 18 грудня 2011 (EET)&lt;br /&gt;
&lt;br /&gt;
Хотілося б дізнатись детальніше про технологію EDR&amp;lt;br&amp;gt;&lt;br /&gt;
[[Користувач:Lionardo|Біндовський Антон ]]&lt;br /&gt;
&lt;br /&gt;
В даній статті доповненно опис технології EDR --[[Користувач:Гончаренко Євген|Гончаренко Євген]] 06:07, 27 грудня 2013 (EET)&lt;br /&gt;
&lt;br /&gt;
Як діє функція безпеки протоколу LMP? - [[Bondar Egor]]&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%B1%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B5%D0%BD%D0%BD%D1%8F:%D0%A2%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D1%96%D1%8F_Bluetooth</id>
		<title>Обговорення:Технологія Bluetooth</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%B1%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B5%D0%BD%D0%BD%D1%8F:%D0%A2%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D1%96%D1%8F_Bluetooth"/>
				<updated>2014-01-16T16:37:37Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Стаття викладена дуже цікаво та зрозуміло. Дуже багато чисто практичних речей, які можуть знадобитись. Дякую за статтю &amp;lt;br&amp;gt;&lt;br /&gt;
--[[User:Александр Spirit|Остапчук]] 10:55, 14 декабря 2010 (EET)&lt;br /&gt;
&lt;br /&gt;
Текст плохо структурирован, плохо читается. Картинки забирают простаранство (нет обтекания текста).&amp;lt;br&amp;gt;&lt;br /&gt;
Некоторые статьи можна было представить в виде таблицы. &amp;lt;br&amp;gt;&lt;br /&gt;
--[[Користувач:Онищенко Сергей|Godrik]] 17:58, 28 грудня 2010 (EET)&lt;br /&gt;
&lt;br /&gt;
Достатньо цікавий аналіз даних, обмін якими йде впродовж процесу сполучення &lt;br /&gt;
(Вразливості і атаки Bluetooth )&amp;lt;br&amp;gt;&lt;br /&gt;
--[[Користувач:Лера Тирон|Лера Тирон]] 16:02, 18 грудня 2011 (EET)&lt;br /&gt;
&lt;br /&gt;
Хотілося б дізнатись детальніше про технологію EDR&amp;lt;br&amp;gt;&lt;br /&gt;
[[Користувач:Lionardo|Біндовський Антон ]]&lt;br /&gt;
&lt;br /&gt;
В даній статті доповненно опис технології EDR --[[Користувач:Гончаренко Євген|Гончаренко Євген]] 06:07, 27 грудня 2013 (EET)&lt;br /&gt;
&lt;br /&gt;
Як діє функція безпеки протоколу LMP?&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%B1%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B5%D0%BD%D0%BD%D1%8F:DNS</id>
		<title>Обговорення:DNS</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%B1%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B5%D0%BD%D0%BD%D1%8F:DNS"/>
				<updated>2014-01-16T16:20:03Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: /* Як відбуваеться захист даних (DNSSEC) і транзакцій (TSIG)? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Чому на нашій WIKI немає субдомену WWW? [[Користувач:Lionardo|Біндовський Антон ]] &amp;lt;br&amp;gt;&lt;br /&gt;
Як відбуваеться захист даних (DNSSEC) і транзакцій (TSIG)?  [[Користувач:Леженко Дмитрий|хD]]&lt;br /&gt;
&lt;br /&gt;
== Як відбуваеться захист даних (DNSSEC) і транзакцій (TSIG)? ==&lt;br /&gt;
&lt;br /&gt;
При налаштованому і працюючому механізмі '''TSIG''' DNS - сервер або автор поновлення додає TSIG запис до розділу додаткових даних повідомлення DNS і підтверджує, що відправник повідомлення має загальний з одержувачем криптографічний ключ і що повідомлення не змінилося після того як було надіслано. TSIG забезпечує ідентифікацію і цілісність даних за допомогою використання спеціального виду математичних формул, ця хеш-функція відома багатьом під назвою криптографічного контрольної суми або дайджесту повідомлення, обчислює хеш-значення фіксованої довжини на основі вихідних даних довільного обсягу. Обчислювально-незворотня хеш-функція полягає в тому, що вона повністю залежить від кожного біта вихідних даних. Якщо змінити єдиний біт вихідних даних, хеш значення теж змінитися.&lt;br /&gt;
&lt;br /&gt;
Нещодавно в DNS були виявлені вразливі місця, які дозволяють зловмиснику перехопити процес пошуку по імені людини чи вузла в Інтернеті. Метою атаки є захоплення контролю над сеансом, щоб, наприклад, направити користувача на веб-сайт зловмисника для отримання облікового запису та пароля.&lt;br /&gt;
'''DNSSEC''' є технологією, розробленою для захисту від таких атак за допомогою цифрового &amp;quot;​​підписування&amp;quot; даних, яке дозволяє бути впевненим у їх достовірності. Однак для усунення даної вразливості Інтернету необхідно використовувати дану технологію на кожному етапі пошуку, починаючи з кореневої зони і закінчуючи останнім доменним ім'ям. Підпис кореня (використання технології DNSSEC в кореневій зоні) є необхідною дією у всьому процесі. Важливо відзначити, що при цьому дані не шифруються. Технологія просто дозволяє переконатися в достовірності адреси відвідуваного сайту.&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%B1%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B5%D0%BD%D0%BD%D1%8F:DNS</id>
		<title>Обговорення:DNS</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%B1%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B5%D0%BD%D0%BD%D1%8F:DNS"/>
				<updated>2014-01-16T16:15:05Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: /* Як відбуваеться захист даних (DNSSEC) і транзакцій (TSIG)? */ нова тема&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Чому на нашій WIKI немає субдомену WWW? [[Користувач:Lionardo|Біндовський Антон ]] &amp;lt;br&amp;gt;&lt;br /&gt;
Як відбуваеться захист даних (DNSSEC) і транзакцій (TSIG)?  [[Користувач:Леженко Дмитрий|хD]]&lt;br /&gt;
&lt;br /&gt;
== Як відбуваеться захист даних (DNSSEC) і транзакцій (TSIG)? ==&lt;br /&gt;
&lt;br /&gt;
При налаштованому і працюючому механізмі TSIG DNS - сервер або автор поновлення додає TSIG запис до розділу додаткових даних повідомлення DNS і підтверджує, що відправник повідомлення має загальний з одержувачем криптографічний ключ і що повідомлення не змінилося після того як було надіслано. TSIG забезпечує ідентифікацію і цілісність даних за допомогою використання спеціального виду математичних формул, ця хеш-функція відома багатьом під назвою криптографічного контрольної суми або дайджесту повідомлення, обчислює хеш-значення фіксованої довжини на основі вихідних даних довільного обсягу. Обчислювально-незворотня хеш-функція полягає в тому, що вона повністю залежить від кожного біта вихідних даних. Якщо змінити єдиний біт вихідних даних, хеш значення теж змінитися.&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/DNS</id>
		<title>DNS</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/DNS"/>
				<updated>2014-01-16T15:59:52Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:DomainNameSystem.jpg]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; width=300px align=right&lt;br /&gt;
! Назва:&lt;br /&gt;
| Domain Name Server&lt;br /&gt;
|-&lt;br /&gt;
! Рівень (по моделі OSI):&lt;br /&gt;
| Прикладний&lt;br /&gt;
|-&lt;br /&gt;
! Сімейство:&lt;br /&gt;
| TCP/IP&lt;br /&gt;
|-&lt;br /&gt;
! Порт/ID:&lt;br /&gt;
| 53/TCP, 53/UDP&lt;br /&gt;
|-&lt;br /&gt;
! Призначення протоколу:&lt;br /&gt;
| Розширення доменних імен&lt;br /&gt;
|-&lt;br /&gt;
! Специфікація:&lt;br /&gt;
| RFC 1034 , RFC 1035 / STD 13&lt;br /&gt;
|-&lt;br /&gt;
! Основні реалізації (клієнти):&lt;br /&gt;
| Вбудована у всі мережеві ОС&lt;br /&gt;
|-&lt;br /&gt;
! Основні реалізації (сервери):&lt;br /&gt;
| BIND, PowerDNS або Microsoft DNS Server&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''DNS''' (англ. ''Domain Name System'' - система доменних імен) - це розподілена комп'ютерна система для отримання інформації про домени. Найчастіше використовується для отримання IP-адреси по імені хоста (комп'ютера або пристрою), отримання інформації про маршрутизацію пошти , обслуговуваних вузлах для протоколів у домені (SRV-запис).&lt;br /&gt;
&lt;br /&gt;
Розподілена база даних DNS підтримується за допомогою ієрархії DNS-серверів, взаємодіючи за певним протоколом.&lt;br /&gt;
&lt;br /&gt;
Основою DNS є представлення про ієрархічну структуру доменного імені та зонах. &lt;br /&gt;
*Кожен сервер, відповідаючи за ім'я, може делегувати відповідальність за подальшу частину домену іншому серверу (з адміністративної точки зору - іншій організації або людині), що дозволяє покласти відповідальність за актуальність інформації на сервери різноманітних організацій (людей), відповідаючи тільки за «свою» частину доменного імені.&lt;br /&gt;
&lt;br /&gt;
*Зона (zone) це окремо адмініструються частина дерева DNS. Наприклад, домен другого рівня '''''noao.edu''''' це окрема зона. Багато доменів другого рівня поділені на менші зони. Наприклад, університет може поділити свою зону на підзони по факультетах, а компанія може поділити себе на зони за принципом поділу на філії або відділи.&lt;br /&gt;
&lt;br /&gt;
== Ключові характеристики DNS ==&lt;br /&gt;
DNS володіє наступними характеристиками:&lt;br /&gt;
* '''''Розподільність адміністрування'''''. Відповідальність за різні частини ієрархічної структури несуть різні люди та організації.&lt;br /&gt;
* '''''Розподільність збереження інформації'''''. Кожен вузол мережі в обов'язковому порядку повинен зберігати тільки ті данні, які належать до його зону відповідальності і (можливо) адреси кінцевих DNS-серверів.&lt;br /&gt;
* '''''Кеширування інформації'''''. Вузол може зберігати деяку кількість даних не із власної зони відповідальності для зменшення навантаження на мережу.&lt;br /&gt;
* '''''Ієрархічна структура''''', у якій усі вузли об'єднані у дерево, а кожен вузол може або самостійно визначати роботу нижчих за ієрархію вузлів, або делегувати ( передавати) їх іншим вузлам.&lt;br /&gt;
* '''''Резервування'''''. За збереження та обслуговування своїх вузлів (зон) відповідають (зазвичай) декілька серверів, розподілених як фізично, так і логічно, що забезпечує зберігання даних та продовження роботи навіть у разі виходу з ладу одного з вузлів.&lt;br /&gt;
&lt;br /&gt;
DNS важлива для роботи мережі Інтернет, так як для з'єднання з вузлом необхідна інформація про його IP-адресу, а для людей легше запам'ятати символьні (зазвичай змістовні) адреси, ніж послідовність цифр IP-адрес. У деяких випадках це дозволяє використовувати віртуальні сервери, наприклад, HTTP-сервери, розрізняючи їх по імені запиту. Спочатку перетворення між доменними та IP-адресами відбувалося з використанням спеціального текстового файлу '''hosts''', який складався централізовано та автоматично відправлявся на кожну з машин у своїй локальній мережі. З ростом Мережі виникла необхідність в ефективному, автоматизованому механізмі, яким і стала DNS.&lt;br /&gt;
&lt;br /&gt;
DNS була розроблена Полом Мокапетрісом у 1983 році; оригінальне опис механізмів роботи міститься в стандартах RFC 882 та RFC 883. У 1987 публікація RFC 1034 і RFC 1035 змінила специфікацію DNS і скасувала RFC 882 та RFC 883 як застарілі.&lt;br /&gt;
&lt;br /&gt;
== Додаткові можливості ==&lt;br /&gt;
* Підтримка динамічних оновлень&lt;br /&gt;
* Захист даних ('''DNSSEC''') і транзакцій ('''TSIG''')&lt;br /&gt;
* Підтримка різноманітних типів інформації (SRV-записи)&lt;br /&gt;
&lt;br /&gt;
== Термінологія і принципи роботи ==&lt;br /&gt;
Основна область застосування DNS це перетворення імені хоста (Під &amp;quot;хостом&amp;quot; мається на увазі комп'ютер або сервер, підключеної до локальної мережі, або інтернету.) в IP-адресу та надання даних про маршрутизації пошти. &lt;br /&gt;
&lt;br /&gt;
Принцип роботи.&lt;br /&gt;
Коли користувач запускає веб-браузер в вводить назву домену сайту, його ПК відправляє запит до DNS-сервера інтернет-провайдера для отримання IP-адреси, на якому знаходиться домен (1).&lt;br /&gt;
Якщо DNS-сервери провайдера  не виявляють у своєму кеші інформації про запитуваній сайт, то відправляють запит на кореневі DNS-сервери (2).&lt;br /&gt;
&lt;br /&gt;
Кореневий DNS-сервер шукає в своїй базі даних інформацію про сервери імен хостинг-провайдера, на яких присутній цей сайт. Далі, він повідомляє з кешируючого DNS-сервера провайдера (3).&lt;br /&gt;
&lt;br /&gt;
Після того, як кешуючий DNS-сервер провайдера отримує інформацію про сервери імен провайдера він опитує будь-який з них (4) і, у разі отримання позитивного результату отримання IP-адреси (5), поміщає в кеш (Кешування використовується для того, щоб знизити як навантаження на інтернет-канали, так і для прискорення отримання результату запиту).&lt;br /&gt;
Після цього DNS-сервер провайдера передає IP-адреса браузеру користувача, який здійснив запит сайту (6).&lt;br /&gt;
&lt;br /&gt;
І вже після цього браузер, отримавши IP-адреса запитуваного сайту, переходить на сам сайт (7 і 8).&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:workDNS.jpg]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Ключовими поняттями DNS є:'''&lt;br /&gt;
* '''''Домен''''' (англ. domain - область) - вузол в дереві імен, разом з усіма підлеглими йому вузлами (якщо такі є), тобто іменована ''гілка'' або ''піддерево'' в дереві імен. Структура доменного імені зображає порядок проходження вузлів в ієрархії; доменне ім'я читається зліва направо від молодших доменів до доменів вищого рівня (в порядку підвищення значимості), кореневим доменом всієї системи є крапка ('.'), нижче йдуть домени першого рівня (географічні або тематичні ), потім - домени другого рівня, третього і т. д. (наприклад, для адреси '''ua.wikipedia.org''' домен першого рівня - '''org''', другого '''wikipedia''', третього '''ua'''). На практиці крапку в кінці імені часто опускають, але вона буває важлива у випадках поділу між відносними доменами і FQDN (англ. ''Fully Qualifed Domain Name'', повністю визначене ім'я домену).&lt;br /&gt;
* '''''Піддомен''''' (англ. subdomain) - підлеглий домен. (Наприклад, '''wikipedia.org''' - піддомен домену '''org''', а '''ua.wikipedia.org''' - домену '''wikipedia.org'''). Теоретично такий розподіл може досягати глибини 127 рівнів, а кожна мітка може містити до 63 символів, поки загальна довжина разом з точками не досягне 254 символів. Але на практиці реєстратори доменних імен використовують більш суворі обмеження. Наприклад, якщо у вас є домен виду '''mydomain.ru''', ви можете створити для нього різні піддомени виду '''mysite1.mydomain.ru''', '''mysite2.mydomain.ru''' і т. д.&lt;br /&gt;
* '''''Ресурсний запис''''' - одиниця зберігання і передачі інформації в DNS. Кожний ресурсний запис має ім'я (тобто прив'язаний до певного доменного імені, вузлу в дереві імен), тип і поле даних, формат і зміст якого залежить від типу.&lt;br /&gt;
* '''''Зона''''' - частина дерева доменних імен (включаючи ресурсні записи), що розміщується як єдине ціле на деякому сервері доменних імен (DNS-сервер), а частіше - одночасно на декількох серверах. Метою виділення частини дерева в окрему зону є передача відповідальності за відповідний Домен іншій особі або організації, так зване Делегування. Як зв'язкова частина дерева, зона всередині теж являє собою дерево. Якщо розглядати простір імен DNS як структуру із зон, а не окремих вузлів / імен, теж виходить дерево; виправдано казати про батьківські і дочірні зони, про старших і підлеглих. На практиці, більшість зон 0-го і 1-го рівня ('.', '''ru''', '''com''', ...) складаються з єдиного вузла, якому безпосередньо підпорядковуються дочірні зони. У великих корпоративних доменах (2-го і більше рівнів) іноді зустрічається утворення додаткових підлеглих рівнів без виділення їх у дочірні зони.&lt;br /&gt;
* '''''Делегування''''' - операція передачі відповідальності за частину дерева доменних імен іншій особі або організації. За рахунок делегування в DNS забезпечується розподільність адміністрування та зберігання. Технічно делегування виражається у виділенні цієї частини дерева в окрему зону, та розміщення цієї зони на DNS-сервер, керованому цією особою чи організацією. При цьому в батьківську зону включаються «склеюючи» ресурсні записи ('''NS''' і '''А'''), що містять покажчики на DNS-сервера дочірньої зони, а вся інша інформація, що відноситься до дочірньої зоні, зберігається вже на DNS-серверах дочірньої зони.&lt;br /&gt;
* '''''[[DNS сервер|DNS-сервер]]''''' - спеціалізоване ПО для обслуговування DNS, а також комп'ютер, на якому це ПЗ виконується. DNS-сервер може бути відповідальним за певні зони і / або може перенаправляти запити серверам, що знаходяться вище за ієрархією.&lt;br /&gt;
* '''''[[DNS клієнт|DNS-клієнт]]''''' - спеціалізована бібліотека (або програма) для роботи з DNS. У ряді випадків DNS-сервер виступає в ролі DNS-клієнта.&lt;br /&gt;
* '''''Авторитетність''''' (англ. authoritative) - ознака розміщення зони на DNS-сервері. Відповіді DNS-сервера можуть бути двох типів: ''авторитетні'' (коли сервер заявляє, що сам відповідає за зону) і ''неавторитетний'' (англ. Non-authoritative), коли сервер обробляє запит, і повертає відповідь інших серверів. У деяких випадках замість передачі запиту далі DNS-сервер може повернути вже відоме йому (за запитами раніше) значення (режим кешування).&lt;br /&gt;
* '''''[[DNS запити|DNS-запит]]''''' (англ. DNS query) - запит від клієнта (або сервера) серверу. Запит може бути ''рекурсивним'' або ''нерекурсивним''.&lt;br /&gt;
&lt;br /&gt;
Система DNS містить ієрархію DNS-серверів, відповідну до ієрархії зон. Кожна зона підтримується як мінімум одним авторитетним сервером DNS (від англ. ''Authoritative'' - авторитетний), на якому розташована інформація про домен.&lt;br /&gt;
&lt;br /&gt;
Ім'я та IP-адреса не тотожні - одина IP-адреса може мати безліч імен, що дозволяє підтримувати на одному комп'ютері безліч веб-сайтів (це називається віртуальний хостинг). Зворотне теж справедливо - одному імені можна порівнювати безліч IP-адрес: це дозволяє створювати балансування навантаження.&lt;br /&gt;
&lt;br /&gt;
Для підвищення стійкості системи використовується безліч серверів, що містять ідентичну інформацію, а в протоколі є засоби, що дозволяють підтримувати синхронність інформації, розташованої на різних серверах. Існує 13 кореневих серверів, їх адреси практично не змінюються.&lt;br /&gt;
&lt;br /&gt;
=== [[Рекурсія]] ===&lt;br /&gt;
&lt;br /&gt;
Терміном '''Рекурсія''' в DNS означають алгоритм поведінки '''DNS- сервера''', при якому сервер виконує від імені клієнта повний пошук потрібної інформації в усій системі DNS, при необхідності звертаючись до іншим '''DNS- серверам'''.&lt;br /&gt;
&lt;br /&gt;
'''DNS- запит''' може бути ''рекурсивним'' - що вимагає повного пошуку, - і ''нерекурсивним''  (чи ''ітеративним'') - що не вимагає повного пошуку.&lt;br /&gt;
&lt;br /&gt;
Аналогічно, '''DNS- сервер''' може бути ''рекурсивним''  (що уміє виконувати повний пошук) і ''нерекурсивним''  (що не уміє виконувати повний пошук). Деякі програми DNS- серверів, наприклад, BIND, можна конфігурувати так, щоб запити одних клієнтів виконувалися ''рекурсивно'', а запити інших - ''нерекурсивний''.&lt;br /&gt;
&lt;br /&gt;
При відповіді на ''нерекурсивний'' запит, а також - при невмінні або забороні виконувати ''рекурсивні'' запити, - DNS- сервер або повертає дані про зону, за яку він '''ответствен''', або повертає адреси серверів, які мають великий об'єм інформації про запрошену зону, чим сервер, що відповідає, найчастіше - адреси кореневих серверів.&lt;br /&gt;
&lt;br /&gt;
У разі ''рекурсивного'' запиту '''DNS- сервер''' опитує сервери(в порядку убування рівня зон в імені), поки не знайде відповідь або не виявить, що домен не існує. (На практиці пошук розпочинається з найбільш близьких до шуканого DNS- серверів, якщо інформація про них є в кеші і не застаріла, сервер може не просити інші DNS- сервери.)&lt;br /&gt;
&lt;br /&gt;
Розглянемо на прикладі роботу усієї системи.&lt;br /&gt;
&lt;br /&gt;
Припустимо, ми набрали в браузері адресу &amp;lt;tt&amp;gt;ru.wikipedia.org&amp;lt;/tt&amp;gt;. Браузер запитує у сервера DNS : &amp;quot;яка IP- адреса у &amp;lt;tt&amp;gt;ru.wikipedia.org&amp;lt;/tt&amp;gt;&amp;quot;?&lt;br /&gt;
Проте, сервер DNS може нічого не знати не лише про запрошене ім'я, але навіть про увесь домен &amp;lt;tt&amp;gt;wikipedia.org&amp;lt;/tt&amp;gt;.&lt;br /&gt;
В цьому випадку сервер звертається до ''кореневого серверу'' - наприклад, 198.41.0.4. Цей сервер повідомляє - &amp;quot;У мене немає інформації про цю адресу, але я знаю, що 204.74.112.1 є відповідальним за зону &amp;lt;tt&amp;gt;org&amp;lt;/tt&amp;gt;&amp;quot;. Тоді сервер DNS направляє свій запит до 204.74.112.1, але той відповідає &amp;quot;У мене немає інформації про цей сервер, але я знаю, що 207.142.131.234 є відповідальним за зону &amp;lt;tt&amp;gt;wikipedia.org&amp;lt;/tt&amp;gt;&amp;quot;. Нарешті, той же запит вирушає до третього DNS- сервера і отримує відповідь - IP- адреса, яка і передається клієнтові - браузеру.&lt;br /&gt;
&lt;br /&gt;
В даному випадку при дозволі імені, тобто в процесі пошуку IP по імені:&lt;br /&gt;
* браузер відправив відомому йому DNS- серверу ''рекурсивний'' запит - у відповідь на такий тип запиту сервер зобов'язаний повернути &amp;quot;готовий результат&amp;quot;, тобто IP- адреса, або порожня відповідь і код помилки NXDOMAIN;&lt;br /&gt;
* DNS- сервер, що отримав запит від браузеру, послідовно відправляв ''нерекурсивні'' запити, на які отримував від інших DNS- серверів відповіді, поки не отримав відповідь від сервера, відповідального за запрошену зону;&lt;br /&gt;
* інші згадувані DNS- сервери обробляли запити ''нерекурсивний''  (і, швидше за все, не стали б обробляти запити рекурсивно, навіть якщо б така вимога стояла в запиті).&lt;br /&gt;
&lt;br /&gt;
Іноді допускається, щоб запрошений сервер передавав ''рекурсивний'' запит &amp;quot;вищестоящому&amp;quot; DNS- серверу і чекав готової відповіді.&lt;br /&gt;
&lt;br /&gt;
При ''рекурсивній'' обробці запитів усі відповіді проходять через DNS- сервер, і він дістає можливість ''кешуровати'' їх. Повторний запит на ті ж імена зазвичай не йде далі ''за кеш'' сервера, звернення до інших серверів не відбувається взагалі. Допустимий час зберігання відповідей в ''кеші'' приходить разом з відповідями(поле ''TTL'' '''ресурсного запису''').&lt;br /&gt;
&lt;br /&gt;
Рекурсивні запити вимагають більше ресурсів від сервера(і створюють більше трафіку), так що зазвичай приймаються від &amp;quot;відомих&amp;quot; власникові сервера вузлів(наприклад, провайдер надає можливість робити рекурсивні запити тільки своїм клієнтам, в корпоративній мережі рекурсивні запити приймаються тільки з локального сегменту). Нерекурсивні запити зазвичай приймаються від усіх вузлів мережі(і змістовна відповідь дається тільки на запити про зону, яка розміщена на вузлі, на DNS- запит про інші зони зазвичай повертаються адреси інших серверів).&lt;br /&gt;
&lt;br /&gt;
=== Зворотний DNS- запит ===&lt;br /&gt;
DNS використовується в першу чергу для перетворення символьних імен в IP- адреси, але він також може виконувати зворотний процес. Для цього використовуються вже наявні засоби DNS. Річ у тому, що із записом DNS можуть бути зіставлені різні дані, у тому числі і яке-небудь символьне ім'я. Існує спеціальний домен &amp;lt;tt&amp;gt;in - addr.arpa&amp;lt;/tt&amp;gt;, записи в якому використовуються для перетворення IP- адрес в символьні імена. Наприклад, для отримання DNS- імені для адреси &amp;lt;tt&amp;gt;11.22.33.44&amp;lt;/tt&amp;gt; можна запросити у DNS- сервера запис &amp;lt;tt&amp;gt;44.33.22.11.in - addr.arpa&amp;lt;/tt&amp;gt;, і той поверне відповідне символьне ім'я. Зворотний порядок запису частин IP- адреси пояснюється тим, що в IP- адресах старші біти розташовані на початку, а в символьних DNS- іменах старші(що знаходяться ближче до кореня) частини розташовані у кінці.&lt;br /&gt;
&lt;br /&gt;
== Приклад структури доменного імені ==&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:Dnsexam.jpg]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Першочерговим завданням DNS-сервера є забезпечення трансляції доменних імен в IP-адреси. Для адресації вузлів Інтернету використовуються спеціальні числові «коди» - IP-адреси. Система доменних імен якраз служить для виконання перетворень між символьними і числовими адресами. Традиційна IP-адреса може бути записана за допомогою чотирьох чисел в десятковій системі числення, наприклад: 192.168.175.13 або 194.85.92.93. &lt;br /&gt;
&lt;br /&gt;
DNS дозволяє зіставити числову IP-адресу і символьну, наприклад: 194.85.92.93 = test.ru. При цьому символьна адреса в DNS являє собою текстовий рядок, складений за особливими правилами. Найважливіше з цих правил - ієрархія доменів.&lt;br /&gt;
&lt;br /&gt;
Система адрес DNS має деревоподібну структуру. Вузли цієї структури називаються доменами. Кожен домен може містити безліч «підлеглих» доменів. Основою даної ієрархічної структури імен т.зв. &amp;quot;Корінь дерева&amp;quot; є точка (&amp;quot;.&amp;quot;). Корінь єдиний для всіх доменів. Як правило, при введенні URL, крапка наприкінці адреси не ставиться, проте вона використовується в описах DNS. Цікаво, що про існування кореневого домену зараз пам'ятають лише фахівці. Втім, його можна і вказати. Адресний рядок із зазначенням кореневого домену виглядає, наприклад, так: «site.test.ru.» - тут кореневий домен відділений останньої, крайньої праворуч, крапкою. &lt;br /&gt;
&lt;br /&gt;
Нижче кореня лежать домени першого рівня (зони). Їх небагато - COM, NET, ORG, MIL, BIZ, INFO, GOV (є ще кілька) і домени держав, наприклад, RU. Ще нижче знаходяться домени другого рівня, наприклад, test.ru. Ще нижче - третього і т.д. Рівні розділяються крапками. &lt;br /&gt;
&lt;br /&gt;
DNS сервер не ізольований. Кожному DNS-СЕРВЕРУ відомі адреси кореневих DNS-серверів. При запиті, DNS-сервер або сам знає відповідь, або знає у кого запитати. Якщо простежити проходження запиту, картина складається досить цікаво. При налаштуванні користувачеві вказується два DNS сервера (первинний і вторинний). Адреси dns серверів вказується провайдером. &lt;br /&gt;
&lt;br /&gt;
Користувач відправляє запит первинному DNS серверу. Сервер, у свою чергу, отримавши запит, або відповідає, якщо відповідь йому відома, або відправляє запит на вищого рівня сервер. Якщо вищого рівня сервер не відомий, запит відправляється на кореневий DNS сервер. Так виглядає висхідна (восходящяя) ієрархія. Далі запит починає спускатися вниз від кореневого сервера до сервера першого рівня, той – до СЕРВЕРУ другого рівня і т.д. &lt;br /&gt;
&lt;br /&gt;
DNS сервера бувають рекурсивними і нерекурсивними. Рекурсивні сервера завжди повертають користувачеві відповідь. Тобто, вони самостійно опитують інші DNS сервера. Рекурсивні сервера зручно використовувати в локальних мережах. Вони кешують проміжні відповіді, таким чином, при наступних запитах відповіді будуть повертатися набагато швидше. Нерекурсивні сервера повертають користувачеві всі відсилання, так що клієнт повинен самостійно опитувати вказаний сервер. Нерекурсивні сервера зазвичай стоять на верхніх щаблях ієрархії. Вони отримують багато запитів, а для кешування потрібні багато ресурсів. Таким чином, кешування на таких серверах не проводиться.&lt;br /&gt;
&lt;br /&gt;
== Записи DNS ==&lt;br /&gt;
Записи DNS, або ''Ресурсні записи'' (англ. Resource Records, RR) - одиниці зберігання і передачі інформації в DNS. Кожен ресурсний запис складається з наступних полів:&lt;br /&gt;
&lt;br /&gt;
* '''''Ім'я''''' (NAME) - доменне ім'я, до якого прив'язана або якому «належить» дана ресурсна запис. Ім'я буває абсолютним (FQDN - Fully Qualified Domain Name) і відносним. Абсолютне ім'я закінчується крапкою. Якщо ж ім'я вказати без крапки в кінці, це ім'я буде вважатися відносним і йому автоматично додається ім'я поточного домену;&lt;br /&gt;
* '''''TTL''''' (Time To Live) - допустимий час зберігання даної ресурсної записи в кеші не відповідального DNS-сервера. Даний параметр вказується в секундах;&lt;br /&gt;
* '''''Тип''''' (TYPE) ресурсного запису - визначає формат і призначення даного ресурсного запису;&lt;br /&gt;
* '''''Клас''''' (CLASS) ресурсного запису; теоретично вважається, що DNS може використовуватися не тільки з TCP / IP, але і з іншими типами мереж, код у полі клас визначає тип мережі;&lt;br /&gt;
* '''''Довжина поля даних''''' (RDLEN);&lt;br /&gt;
* '''''Поле даних''''' (RDATA), формат і зміст якого залежить від типу запису.&lt;br /&gt;
&lt;br /&gt;
Найбільш важливі типи DNS-записів:&lt;br /&gt;
&lt;br /&gt;
* '''''Запис A''''' (''address record'') або запис адреси, що зв'язує ім'я хоста з IP адресою. Наприклад, запит A-запису на ім'я '''''referrals.icann.org''''' поверне його IP адресу - '''''192.0.34.164'''''&lt;br /&gt;
* '''''Запис AAAA''''' (''IPv6 address record'') зв'язує ім'я хоста з адресою протоколу '''IPv6'''. Наприклад, запит AAAA-запису на ім'я '''''K.ROOT-SERVERS.NET''''' поверне його '''IPv6''' адресу - '''''2001:7 fd:: 1'''''&lt;br /&gt;
* '''''Запис CNAME''''' (''canonical name record'') або канонічний запис імені (псевдонім) використовується для перенаправлення на інше ім'я&lt;br /&gt;
* '''''Запис MX''''' (''mail exchange'') або поштовий обмінник вказує сервер обміну поштою для даного домену.&lt;br /&gt;
* '''''Запис NS''''' (''name server'') вказує на DNS-сервер для даного домену.&lt;br /&gt;
* '''''Запис PTR''''' (''pointer'') або запис покажчика, що зв'язує IP адресу хоста з його канонічним ім'ям. Запит у домені '''''in-addr.arpa''''' на IP хоста в ''reverse'' формі поверне ім'я ('''FQDN''') даного хоста.&lt;br /&gt;
* '''''Запис SOA''''' (''Start of Authority'') або початковий запис зони вказує, на якому сервері зберігається еталонна інформація про даний домен, містить контактну інформацію особи, відповідального за дану зону, таймінги (параметри часу) кешування зонної інформації та взаємодії DNS-серверів.&lt;br /&gt;
* '''''Запис SRV''''' (''server selection'') вказує на сервери для сервісів, використовується, зокрема, для '''''Jabber''''' і '''''Active Directory'''''.&lt;br /&gt;
* '''''Запис TXT''''' коментарі або якась інша інформація&lt;br /&gt;
* '''''Запис HINFO''''' опис &amp;quot;заліза&amp;quot; комп'ютера&lt;br /&gt;
&lt;br /&gt;
'''Базовий формат запису виглядає так:'''&lt;br /&gt;
&lt;br /&gt;
[ім'я] [час] [клас] [тип] [дані]&lt;br /&gt;
&lt;br /&gt;
== Зарезервовані доменні імена ==&lt;br /&gt;
Документ RFC 2606 (Reserved Top Level DNS Names - Зарезервовані імена доменів верхнього рівня) визначає назви доменів, які слід використовувати в якості прикладів (наприклад, в документації), а також для тестування. Крім '''''example.com''''', '''''example.org''''' і '''''example.net''''', до цієї групи також входять '''''test''''', '''''invalid''''' та ін.&lt;br /&gt;
&lt;br /&gt;
== Інтернаціональні доменні імена ==&lt;br /&gt;
Доменне ім'я може складатися тільки з обмеженого набору '''ASCII''' символів, дозволяючи набрати адресу домену незалежно від мови користувача. '''ICANN''' затвердив засновану на '''''Punycode''''' систему '''IDNA''', перетворюючи будь-який рядок в кодуванні ''Unicode'' в допустимий DNS набір символів.&lt;br /&gt;
&lt;br /&gt;
== Програмне забезпечення DNS ==&lt;br /&gt;
Сервери імен:&lt;br /&gt;
* '''BIND''' (Berkeley Internet Name Domain)&lt;br /&gt;
* '''Djbdns''' (Daniel J. Bernstein 's DNS)&lt;br /&gt;
* '''MaraDNS'''&lt;br /&gt;
* '''NSD''' (Name Server Daemon)&lt;br /&gt;
* '''PowerDNS'''&lt;br /&gt;
* '''OpenDNS'''&lt;br /&gt;
* '''Microsoft DNS Server''' (в серверних версіях операційних систем Windows NT)&lt;br /&gt;
* '''MyDNS'''&lt;br /&gt;
&lt;br /&gt;
== Інформація про домен ==&lt;br /&gt;
Багато доменів верхнього рівня підтримують сервіс '''''whois''''', який дозволяє дізнатися, кому делеговано домен і іншу технічну інформацію.&lt;br /&gt;
&lt;br /&gt;
== Реєстрація домену ==&lt;br /&gt;
Реєстрація домену - процедура отримання доменного імені. Полягає у створенні записів, що вказують на адміністратора домену, в базі даних DNS. Порядок реєстрації та вимоги залежать від обраної доменної зони. Реєстрація домену може бути виконана як організацією-реєстратором, так і приватною особою, якщо це дозволяють правила обраної доменної зони.&lt;br /&gt;
&lt;br /&gt;
[[Служба DNS]]&lt;br /&gt;
&lt;br /&gt;
== [[Сторінка питань з DNS/DHCP]] ==&lt;br /&gt;
&lt;br /&gt;
[[category:Комп'ютерні мережі]]&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%A4%D0%B0%D0%B9%D0%BB:DomainNameSystem.jpg</id>
		<title>Файл:DomainNameSystem.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%A4%D0%B0%D0%B9%D0%BB:DomainNameSystem.jpg"/>
				<updated>2014-01-16T15:58:16Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/DNS</id>
		<title>DNS</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/DNS"/>
				<updated>2014-01-16T15:55:11Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: /* Приклад структури доменного імені */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|class=&amp;quot;wikitable&amp;quot; width=300px align=right&lt;br /&gt;
! Назва:&lt;br /&gt;
| Domain Name Server&lt;br /&gt;
|-&lt;br /&gt;
! Рівень (по моделі OSI):&lt;br /&gt;
| Прикладний&lt;br /&gt;
|-&lt;br /&gt;
! Сімейство:&lt;br /&gt;
| TCP/IP&lt;br /&gt;
|-&lt;br /&gt;
! Порт/ID:&lt;br /&gt;
| 53/TCP, 53/UDP&lt;br /&gt;
|-&lt;br /&gt;
! Призначення протоколу:&lt;br /&gt;
| Розширення доменних імен&lt;br /&gt;
|-&lt;br /&gt;
! Специфікація:&lt;br /&gt;
| RFC 1034 , RFC 1035 / STD 13&lt;br /&gt;
|-&lt;br /&gt;
! Основні реалізації (клієнти):&lt;br /&gt;
| Вбудована у всі мережеві ОС&lt;br /&gt;
|-&lt;br /&gt;
! Основні реалізації (сервери):&lt;br /&gt;
| BIND, PowerDNS або Microsoft DNS Server&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''DNS''' (англ. ''Domain Name System'' - система доменних імен) - це розподілена комп'ютерна система для отримання інформації про домени. Найчастіше використовується для отримання IP-адреси по імені хоста (комп'ютера або пристрою), отримання інформації про маршрутизацію пошти , обслуговуваних вузлах для протоколів у домені (SRV-запис).&lt;br /&gt;
&lt;br /&gt;
Розподілена база даних DNS підтримується за допомогою ієрархії DNS-серверів, взаємодіючи за певним протоколом.&lt;br /&gt;
&lt;br /&gt;
Основою DNS є представлення про ієрархічну структуру доменного імені та зонах. &lt;br /&gt;
*Кожен сервер, відповідаючи за ім'я, може делегувати відповідальність за подальшу частину домену іншому серверу (з адміністративної точки зору - іншій організації або людині), що дозволяє покласти відповідальність за актуальність інформації на сервери різноманітних організацій (людей), відповідаючи тільки за «свою» частину доменного імені.&lt;br /&gt;
&lt;br /&gt;
*Зона (zone) це окремо адмініструються частина дерева DNS. Наприклад, домен другого рівня '''''noao.edu''''' це окрема зона. Багато доменів другого рівня поділені на менші зони. Наприклад, університет може поділити свою зону на підзони по факультетах, а компанія може поділити себе на зони за принципом поділу на філії або відділи.&lt;br /&gt;
&lt;br /&gt;
== Ключові характеристики DNS ==&lt;br /&gt;
DNS володіє наступними характеристиками:&lt;br /&gt;
* '''''Розподільність адміністрування'''''. Відповідальність за різні частини ієрархічної структури несуть різні люди та організації.&lt;br /&gt;
* '''''Розподільність збереження інформації'''''. Кожен вузол мережі в обов'язковому порядку повинен зберігати тільки ті данні, які належать до його зону відповідальності і (можливо) адреси кінцевих DNS-серверів.&lt;br /&gt;
* '''''Кеширування інформації'''''. Вузол може зберігати деяку кількість даних не із власної зони відповідальності для зменшення навантаження на мережу.&lt;br /&gt;
* '''''Ієрархічна структура''''', у якій усі вузли об'єднані у дерево, а кожен вузол може або самостійно визначати роботу нижчих за ієрархію вузлів, або делегувати ( передавати) їх іншим вузлам.&lt;br /&gt;
* '''''Резервування'''''. За збереження та обслуговування своїх вузлів (зон) відповідають (зазвичай) декілька серверів, розподілених як фізично, так і логічно, що забезпечує зберігання даних та продовження роботи навіть у разі виходу з ладу одного з вузлів.&lt;br /&gt;
&lt;br /&gt;
DNS важлива для роботи мережі Інтернет, так як для з'єднання з вузлом необхідна інформація про його IP-адресу, а для людей легше запам'ятати символьні (зазвичай змістовні) адреси, ніж послідовність цифр IP-адрес. У деяких випадках це дозволяє використовувати віртуальні сервери, наприклад, HTTP-сервери, розрізняючи їх по імені запиту. Спочатку перетворення між доменними та IP-адресами відбувалося з використанням спеціального текстового файлу '''hosts''', який складався централізовано та автоматично відправлявся на кожну з машин у своїй локальній мережі. З ростом Мережі виникла необхідність в ефективному, автоматизованому механізмі, яким і стала DNS.&lt;br /&gt;
&lt;br /&gt;
DNS була розроблена Полом Мокапетрісом у 1983 році; оригінальне опис механізмів роботи міститься в стандартах RFC 882 та RFC 883. У 1987 публікація RFC 1034 і RFC 1035 змінила специфікацію DNS і скасувала RFC 882 та RFC 883 як застарілі.&lt;br /&gt;
&lt;br /&gt;
== Додаткові можливості ==&lt;br /&gt;
* Підтримка динамічних оновлень&lt;br /&gt;
* Захист даних ('''DNSSEC''') і транзакцій ('''TSIG''')&lt;br /&gt;
* Підтримка різноманітних типів інформації (SRV-записи)&lt;br /&gt;
&lt;br /&gt;
== Термінологія і принципи роботи ==&lt;br /&gt;
Основна область застосування DNS це перетворення імені хоста (Під &amp;quot;хостом&amp;quot; мається на увазі комп'ютер або сервер, підключеної до локальної мережі, або інтернету.) в IP-адресу та надання даних про маршрутизації пошти. &lt;br /&gt;
&lt;br /&gt;
Принцип роботи.&lt;br /&gt;
Коли користувач запускає веб-браузер в вводить назву домену сайту, його ПК відправляє запит до DNS-сервера інтернет-провайдера для отримання IP-адреси, на якому знаходиться домен (1).&lt;br /&gt;
Якщо DNS-сервери провайдера  не виявляють у своєму кеші інформації про запитуваній сайт, то відправляють запит на кореневі DNS-сервери (2).&lt;br /&gt;
&lt;br /&gt;
Кореневий DNS-сервер шукає в своїй базі даних інформацію про сервери імен хостинг-провайдера, на яких присутній цей сайт. Далі, він повідомляє з кешируючого DNS-сервера провайдера (3).&lt;br /&gt;
&lt;br /&gt;
Після того, як кешуючий DNS-сервер провайдера отримує інформацію про сервери імен провайдера він опитує будь-який з них (4) і, у разі отримання позитивного результату отримання IP-адреси (5), поміщає в кеш (Кешування використовується для того, щоб знизити як навантаження на інтернет-канали, так і для прискорення отримання результату запиту).&lt;br /&gt;
Після цього DNS-сервер провайдера передає IP-адреса браузеру користувача, який здійснив запит сайту (6).&lt;br /&gt;
&lt;br /&gt;
І вже після цього браузер, отримавши IP-адреса запитуваного сайту, переходить на сам сайт (7 і 8).&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:workDNS.jpg]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Ключовими поняттями DNS є:'''&lt;br /&gt;
* '''''Домен''''' (англ. domain - область) - вузол в дереві імен, разом з усіма підлеглими йому вузлами (якщо такі є), тобто іменована ''гілка'' або ''піддерево'' в дереві імен. Структура доменного імені зображає порядок проходження вузлів в ієрархії; доменне ім'я читається зліва направо від молодших доменів до доменів вищого рівня (в порядку підвищення значимості), кореневим доменом всієї системи є крапка ('.'), нижче йдуть домени першого рівня (географічні або тематичні ), потім - домени другого рівня, третього і т. д. (наприклад, для адреси '''ua.wikipedia.org''' домен першого рівня - '''org''', другого '''wikipedia''', третього '''ua'''). На практиці крапку в кінці імені часто опускають, але вона буває важлива у випадках поділу між відносними доменами і FQDN (англ. ''Fully Qualifed Domain Name'', повністю визначене ім'я домену).&lt;br /&gt;
* '''''Піддомен''''' (англ. subdomain) - підлеглий домен. (Наприклад, '''wikipedia.org''' - піддомен домену '''org''', а '''ua.wikipedia.org''' - домену '''wikipedia.org'''). Теоретично такий розподіл може досягати глибини 127 рівнів, а кожна мітка може містити до 63 символів, поки загальна довжина разом з точками не досягне 254 символів. Але на практиці реєстратори доменних імен використовують більш суворі обмеження. Наприклад, якщо у вас є домен виду '''mydomain.ru''', ви можете створити для нього різні піддомени виду '''mysite1.mydomain.ru''', '''mysite2.mydomain.ru''' і т. д.&lt;br /&gt;
* '''''Ресурсний запис''''' - одиниця зберігання і передачі інформації в DNS. Кожний ресурсний запис має ім'я (тобто прив'язаний до певного доменного імені, вузлу в дереві імен), тип і поле даних, формат і зміст якого залежить від типу.&lt;br /&gt;
* '''''Зона''''' - частина дерева доменних імен (включаючи ресурсні записи), що розміщується як єдине ціле на деякому сервері доменних імен (DNS-сервер), а частіше - одночасно на декількох серверах. Метою виділення частини дерева в окрему зону є передача відповідальності за відповідний Домен іншій особі або організації, так зване Делегування. Як зв'язкова частина дерева, зона всередині теж являє собою дерево. Якщо розглядати простір імен DNS як структуру із зон, а не окремих вузлів / імен, теж виходить дерево; виправдано казати про батьківські і дочірні зони, про старших і підлеглих. На практиці, більшість зон 0-го і 1-го рівня ('.', '''ru''', '''com''', ...) складаються з єдиного вузла, якому безпосередньо підпорядковуються дочірні зони. У великих корпоративних доменах (2-го і більше рівнів) іноді зустрічається утворення додаткових підлеглих рівнів без виділення їх у дочірні зони.&lt;br /&gt;
* '''''Делегування''''' - операція передачі відповідальності за частину дерева доменних імен іншій особі або організації. За рахунок делегування в DNS забезпечується розподільність адміністрування та зберігання. Технічно делегування виражається у виділенні цієї частини дерева в окрему зону, та розміщення цієї зони на DNS-сервер, керованому цією особою чи організацією. При цьому в батьківську зону включаються «склеюючи» ресурсні записи ('''NS''' і '''А'''), що містять покажчики на DNS-сервера дочірньої зони, а вся інша інформація, що відноситься до дочірньої зоні, зберігається вже на DNS-серверах дочірньої зони.&lt;br /&gt;
* '''''[[DNS сервер|DNS-сервер]]''''' - спеціалізоване ПО для обслуговування DNS, а також комп'ютер, на якому це ПЗ виконується. DNS-сервер може бути відповідальним за певні зони і / або може перенаправляти запити серверам, що знаходяться вище за ієрархією.&lt;br /&gt;
* '''''[[DNS клієнт|DNS-клієнт]]''''' - спеціалізована бібліотека (або програма) для роботи з DNS. У ряді випадків DNS-сервер виступає в ролі DNS-клієнта.&lt;br /&gt;
* '''''Авторитетність''''' (англ. authoritative) - ознака розміщення зони на DNS-сервері. Відповіді DNS-сервера можуть бути двох типів: ''авторитетні'' (коли сервер заявляє, що сам відповідає за зону) і ''неавторитетний'' (англ. Non-authoritative), коли сервер обробляє запит, і повертає відповідь інших серверів. У деяких випадках замість передачі запиту далі DNS-сервер може повернути вже відоме йому (за запитами раніше) значення (режим кешування).&lt;br /&gt;
* '''''[[DNS запити|DNS-запит]]''''' (англ. DNS query) - запит від клієнта (або сервера) серверу. Запит може бути ''рекурсивним'' або ''нерекурсивним''.&lt;br /&gt;
&lt;br /&gt;
Система DNS містить ієрархію DNS-серверів, відповідну до ієрархії зон. Кожна зона підтримується як мінімум одним авторитетним сервером DNS (від англ. ''Authoritative'' - авторитетний), на якому розташована інформація про домен.&lt;br /&gt;
&lt;br /&gt;
Ім'я та IP-адреса не тотожні - одина IP-адреса може мати безліч імен, що дозволяє підтримувати на одному комп'ютері безліч веб-сайтів (це називається віртуальний хостинг). Зворотне теж справедливо - одному імені можна порівнювати безліч IP-адрес: це дозволяє створювати балансування навантаження.&lt;br /&gt;
&lt;br /&gt;
Для підвищення стійкості системи використовується безліч серверів, що містять ідентичну інформацію, а в протоколі є засоби, що дозволяють підтримувати синхронність інформації, розташованої на різних серверах. Існує 13 кореневих серверів, їх адреси практично не змінюються.&lt;br /&gt;
&lt;br /&gt;
=== [[Рекурсія]] ===&lt;br /&gt;
&lt;br /&gt;
Терміном '''Рекурсія''' в DNS означають алгоритм поведінки '''DNS- сервера''', при якому сервер виконує від імені клієнта повний пошук потрібної інформації в усій системі DNS, при необхідності звертаючись до іншим '''DNS- серверам'''.&lt;br /&gt;
&lt;br /&gt;
'''DNS- запит''' може бути ''рекурсивним'' - що вимагає повного пошуку, - і ''нерекурсивним''  (чи ''ітеративним'') - що не вимагає повного пошуку.&lt;br /&gt;
&lt;br /&gt;
Аналогічно, '''DNS- сервер''' може бути ''рекурсивним''  (що уміє виконувати повний пошук) і ''нерекурсивним''  (що не уміє виконувати повний пошук). Деякі програми DNS- серверів, наприклад, BIND, можна конфігурувати так, щоб запити одних клієнтів виконувалися ''рекурсивно'', а запити інших - ''нерекурсивний''.&lt;br /&gt;
&lt;br /&gt;
При відповіді на ''нерекурсивний'' запит, а також - при невмінні або забороні виконувати ''рекурсивні'' запити, - DNS- сервер або повертає дані про зону, за яку він '''ответствен''', або повертає адреси серверів, які мають великий об'єм інформації про запрошену зону, чим сервер, що відповідає, найчастіше - адреси кореневих серверів.&lt;br /&gt;
&lt;br /&gt;
У разі ''рекурсивного'' запиту '''DNS- сервер''' опитує сервери(в порядку убування рівня зон в імені), поки не знайде відповідь або не виявить, що домен не існує. (На практиці пошук розпочинається з найбільш близьких до шуканого DNS- серверів, якщо інформація про них є в кеші і не застаріла, сервер може не просити інші DNS- сервери.)&lt;br /&gt;
&lt;br /&gt;
Розглянемо на прикладі роботу усієї системи.&lt;br /&gt;
&lt;br /&gt;
Припустимо, ми набрали в браузері адресу &amp;lt;tt&amp;gt;ru.wikipedia.org&amp;lt;/tt&amp;gt;. Браузер запитує у сервера DNS : &amp;quot;яка IP- адреса у &amp;lt;tt&amp;gt;ru.wikipedia.org&amp;lt;/tt&amp;gt;&amp;quot;?&lt;br /&gt;
Проте, сервер DNS може нічого не знати не лише про запрошене ім'я, але навіть про увесь домен &amp;lt;tt&amp;gt;wikipedia.org&amp;lt;/tt&amp;gt;.&lt;br /&gt;
В цьому випадку сервер звертається до ''кореневого серверу'' - наприклад, 198.41.0.4. Цей сервер повідомляє - &amp;quot;У мене немає інформації про цю адресу, але я знаю, що 204.74.112.1 є відповідальним за зону &amp;lt;tt&amp;gt;org&amp;lt;/tt&amp;gt;&amp;quot;. Тоді сервер DNS направляє свій запит до 204.74.112.1, але той відповідає &amp;quot;У мене немає інформації про цей сервер, але я знаю, що 207.142.131.234 є відповідальним за зону &amp;lt;tt&amp;gt;wikipedia.org&amp;lt;/tt&amp;gt;&amp;quot;. Нарешті, той же запит вирушає до третього DNS- сервера і отримує відповідь - IP- адреса, яка і передається клієнтові - браузеру.&lt;br /&gt;
&lt;br /&gt;
В даному випадку при дозволі імені, тобто в процесі пошуку IP по імені:&lt;br /&gt;
* браузер відправив відомому йому DNS- серверу ''рекурсивний'' запит - у відповідь на такий тип запиту сервер зобов'язаний повернути &amp;quot;готовий результат&amp;quot;, тобто IP- адреса, або порожня відповідь і код помилки NXDOMAIN;&lt;br /&gt;
* DNS- сервер, що отримав запит від браузеру, послідовно відправляв ''нерекурсивні'' запити, на які отримував від інших DNS- серверів відповіді, поки не отримав відповідь від сервера, відповідального за запрошену зону;&lt;br /&gt;
* інші згадувані DNS- сервери обробляли запити ''нерекурсивний''  (і, швидше за все, не стали б обробляти запити рекурсивно, навіть якщо б така вимога стояла в запиті).&lt;br /&gt;
&lt;br /&gt;
Іноді допускається, щоб запрошений сервер передавав ''рекурсивний'' запит &amp;quot;вищестоящому&amp;quot; DNS- серверу і чекав готової відповіді.&lt;br /&gt;
&lt;br /&gt;
При ''рекурсивній'' обробці запитів усі відповіді проходять через DNS- сервер, і він дістає можливість ''кешуровати'' їх. Повторний запит на ті ж імена зазвичай не йде далі ''за кеш'' сервера, звернення до інших серверів не відбувається взагалі. Допустимий час зберігання відповідей в ''кеші'' приходить разом з відповідями(поле ''TTL'' '''ресурсного запису''').&lt;br /&gt;
&lt;br /&gt;
Рекурсивні запити вимагають більше ресурсів від сервера(і створюють більше трафіку), так що зазвичай приймаються від &amp;quot;відомих&amp;quot; власникові сервера вузлів(наприклад, провайдер надає можливість робити рекурсивні запити тільки своїм клієнтам, в корпоративній мережі рекурсивні запити приймаються тільки з локального сегменту). Нерекурсивні запити зазвичай приймаються від усіх вузлів мережі(і змістовна відповідь дається тільки на запити про зону, яка розміщена на вузлі, на DNS- запит про інші зони зазвичай повертаються адреси інших серверів).&lt;br /&gt;
&lt;br /&gt;
=== Зворотний DNS- запит ===&lt;br /&gt;
DNS використовується в першу чергу для перетворення символьних імен в IP- адреси, але він також може виконувати зворотний процес. Для цього використовуються вже наявні засоби DNS. Річ у тому, що із записом DNS можуть бути зіставлені різні дані, у тому числі і яке-небудь символьне ім'я. Існує спеціальний домен &amp;lt;tt&amp;gt;in - addr.arpa&amp;lt;/tt&amp;gt;, записи в якому використовуються для перетворення IP- адрес в символьні імена. Наприклад, для отримання DNS- імені для адреси &amp;lt;tt&amp;gt;11.22.33.44&amp;lt;/tt&amp;gt; можна запросити у DNS- сервера запис &amp;lt;tt&amp;gt;44.33.22.11.in - addr.arpa&amp;lt;/tt&amp;gt;, і той поверне відповідне символьне ім'я. Зворотний порядок запису частин IP- адреси пояснюється тим, що в IP- адресах старші біти розташовані на початку, а в символьних DNS- іменах старші(що знаходяться ближче до кореня) частини розташовані у кінці.&lt;br /&gt;
&lt;br /&gt;
== Приклад структури доменного імені ==&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:Dnsexam.jpg]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Першочерговим завданням DNS-сервера є забезпечення трансляції доменних імен в IP-адреси. Для адресації вузлів Інтернету використовуються спеціальні числові «коди» - IP-адреси. Система доменних імен якраз служить для виконання перетворень між символьними і числовими адресами. Традиційна IP-адреса може бути записана за допомогою чотирьох чисел в десятковій системі числення, наприклад: 192.168.175.13 або 194.85.92.93. &lt;br /&gt;
&lt;br /&gt;
DNS дозволяє зіставити числову IP-адресу і символьну, наприклад: 194.85.92.93 = test.ru. При цьому символьна адреса в DNS являє собою текстовий рядок, складений за особливими правилами. Найважливіше з цих правил - ієрархія доменів.&lt;br /&gt;
&lt;br /&gt;
Система адрес DNS має деревоподібну структуру. Вузли цієї структури називаються доменами. Кожен домен може містити безліч «підлеглих» доменів. Основою даної ієрархічної структури імен т.зв. &amp;quot;Корінь дерева&amp;quot; є точка (&amp;quot;.&amp;quot;). Корінь єдиний для всіх доменів. Як правило, при введенні URL, крапка наприкінці адреси не ставиться, проте вона використовується в описах DNS. Цікаво, що про існування кореневого домену зараз пам'ятають лише фахівці. Втім, його можна і вказати. Адресний рядок із зазначенням кореневого домену виглядає, наприклад, так: «site.test.ru.» - тут кореневий домен відділений останньої, крайньої праворуч, крапкою. &lt;br /&gt;
&lt;br /&gt;
Нижче кореня лежать домени першого рівня (зони). Їх небагато - COM, NET, ORG, MIL, BIZ, INFO, GOV (є ще кілька) і домени держав, наприклад, RU. Ще нижче знаходяться домени другого рівня, наприклад, test.ru. Ще нижче - третього і т.д. Рівні розділяються крапками. &lt;br /&gt;
&lt;br /&gt;
DNS сервер не ізольований. Кожному DNS-СЕРВЕРУ відомі адреси кореневих DNS-серверів. При запиті, DNS-сервер або сам знає відповідь, або знає у кого запитати. Якщо простежити проходження запиту, картина складається досить цікаво. При налаштуванні користувачеві вказується два DNS сервера (первинний і вторинний). Адреси dns серверів вказується провайдером. &lt;br /&gt;
&lt;br /&gt;
Користувач відправляє запит первинному DNS серверу. Сервер, у свою чергу, отримавши запит, або відповідає, якщо відповідь йому відома, або відправляє запит на вищого рівня сервер. Якщо вищого рівня сервер не відомий, запит відправляється на кореневий DNS сервер. Так виглядає висхідна (восходящяя) ієрархія. Далі запит починає спускатися вниз від кореневого сервера до сервера першого рівня, той – до СЕРВЕРУ другого рівня і т.д. &lt;br /&gt;
&lt;br /&gt;
DNS сервера бувають рекурсивними і нерекурсивними. Рекурсивні сервера завжди повертають користувачеві відповідь. Тобто, вони самостійно опитують інші DNS сервера. Рекурсивні сервера зручно використовувати в локальних мережах. Вони кешують проміжні відповіді, таким чином, при наступних запитах відповіді будуть повертатися набагато швидше. Нерекурсивні сервера повертають користувачеві всі відсилання, так що клієнт повинен самостійно опитувати вказаний сервер. Нерекурсивні сервера зазвичай стоять на верхніх щаблях ієрархії. Вони отримують багато запитів, а для кешування потрібні багато ресурсів. Таким чином, кешування на таких серверах не проводиться.&lt;br /&gt;
&lt;br /&gt;
== Записи DNS ==&lt;br /&gt;
Записи DNS, або ''Ресурсні записи'' (англ. Resource Records, RR) - одиниці зберігання і передачі інформації в DNS. Кожен ресурсний запис складається з наступних полів:&lt;br /&gt;
&lt;br /&gt;
* '''''Ім'я''''' (NAME) - доменне ім'я, до якого прив'язана або якому «належить» дана ресурсна запис. Ім'я буває абсолютним (FQDN - Fully Qualified Domain Name) і відносним. Абсолютне ім'я закінчується крапкою. Якщо ж ім'я вказати без крапки в кінці, це ім'я буде вважатися відносним і йому автоматично додається ім'я поточного домену;&lt;br /&gt;
* '''''TTL''''' (Time To Live) - допустимий час зберігання даної ресурсної записи в кеші не відповідального DNS-сервера. Даний параметр вказується в секундах;&lt;br /&gt;
* '''''Тип''''' (TYPE) ресурсного запису - визначає формат і призначення даного ресурсного запису;&lt;br /&gt;
* '''''Клас''''' (CLASS) ресурсного запису; теоретично вважається, що DNS може використовуватися не тільки з TCP / IP, але і з іншими типами мереж, код у полі клас визначає тип мережі;&lt;br /&gt;
* '''''Довжина поля даних''''' (RDLEN);&lt;br /&gt;
* '''''Поле даних''''' (RDATA), формат і зміст якого залежить від типу запису.&lt;br /&gt;
&lt;br /&gt;
Найбільш важливі типи DNS-записів:&lt;br /&gt;
&lt;br /&gt;
* '''''Запис A''''' (''address record'') або запис адреси, що зв'язує ім'я хоста з IP адресою. Наприклад, запит A-запису на ім'я '''''referrals.icann.org''''' поверне його IP адресу - '''''192.0.34.164'''''&lt;br /&gt;
* '''''Запис AAAA''''' (''IPv6 address record'') зв'язує ім'я хоста з адресою протоколу '''IPv6'''. Наприклад, запит AAAA-запису на ім'я '''''K.ROOT-SERVERS.NET''''' поверне його '''IPv6''' адресу - '''''2001:7 fd:: 1'''''&lt;br /&gt;
* '''''Запис CNAME''''' (''canonical name record'') або канонічний запис імені (псевдонім) використовується для перенаправлення на інше ім'я&lt;br /&gt;
* '''''Запис MX''''' (''mail exchange'') або поштовий обмінник вказує сервер обміну поштою для даного домену.&lt;br /&gt;
* '''''Запис NS''''' (''name server'') вказує на DNS-сервер для даного домену.&lt;br /&gt;
* '''''Запис PTR''''' (''pointer'') або запис покажчика, що зв'язує IP адресу хоста з його канонічним ім'ям. Запит у домені '''''in-addr.arpa''''' на IP хоста в ''reverse'' формі поверне ім'я ('''FQDN''') даного хоста.&lt;br /&gt;
* '''''Запис SOA''''' (''Start of Authority'') або початковий запис зони вказує, на якому сервері зберігається еталонна інформація про даний домен, містить контактну інформацію особи, відповідального за дану зону, таймінги (параметри часу) кешування зонної інформації та взаємодії DNS-серверів.&lt;br /&gt;
* '''''Запис SRV''''' (''server selection'') вказує на сервери для сервісів, використовується, зокрема, для '''''Jabber''''' і '''''Active Directory'''''.&lt;br /&gt;
* '''''Запис TXT''''' коментарі або якась інша інформація&lt;br /&gt;
* '''''Запис HINFO''''' опис &amp;quot;заліза&amp;quot; комп'ютера&lt;br /&gt;
&lt;br /&gt;
'''Базовий формат запису виглядає так:'''&lt;br /&gt;
&lt;br /&gt;
[ім'я] [час] [клас] [тип] [дані]&lt;br /&gt;
&lt;br /&gt;
== Зарезервовані доменні імена ==&lt;br /&gt;
Документ RFC 2606 (Reserved Top Level DNS Names - Зарезервовані імена доменів верхнього рівня) визначає назви доменів, які слід використовувати в якості прикладів (наприклад, в документації), а також для тестування. Крім '''''example.com''''', '''''example.org''''' і '''''example.net''''', до цієї групи також входять '''''test''''', '''''invalid''''' та ін.&lt;br /&gt;
&lt;br /&gt;
== Інтернаціональні доменні імена ==&lt;br /&gt;
Доменне ім'я може складатися тільки з обмеженого набору '''ASCII''' символів, дозволяючи набрати адресу домену незалежно від мови користувача. '''ICANN''' затвердив засновану на '''''Punycode''''' систему '''IDNA''', перетворюючи будь-який рядок в кодуванні ''Unicode'' в допустимий DNS набір символів.&lt;br /&gt;
&lt;br /&gt;
== Програмне забезпечення DNS ==&lt;br /&gt;
Сервери імен:&lt;br /&gt;
* '''BIND''' (Berkeley Internet Name Domain)&lt;br /&gt;
* '''Djbdns''' (Daniel J. Bernstein 's DNS)&lt;br /&gt;
* '''MaraDNS'''&lt;br /&gt;
* '''NSD''' (Name Server Daemon)&lt;br /&gt;
* '''PowerDNS'''&lt;br /&gt;
* '''OpenDNS'''&lt;br /&gt;
* '''Microsoft DNS Server''' (в серверних версіях операційних систем Windows NT)&lt;br /&gt;
* '''MyDNS'''&lt;br /&gt;
&lt;br /&gt;
== Інформація про домен ==&lt;br /&gt;
Багато доменів верхнього рівня підтримують сервіс '''''whois''''', який дозволяє дізнатися, кому делеговано домен і іншу технічну інформацію.&lt;br /&gt;
&lt;br /&gt;
== Реєстрація домену ==&lt;br /&gt;
Реєстрація домену - процедура отримання доменного імені. Полягає у створенні записів, що вказують на адміністратора домену, в базі даних DNS. Порядок реєстрації та вимоги залежать від обраної доменної зони. Реєстрація домену може бути виконана як організацією-реєстратором, так і приватною особою, якщо це дозволяють правила обраної доменної зони.&lt;br /&gt;
&lt;br /&gt;
[[Служба DNS]]&lt;br /&gt;
&lt;br /&gt;
== [[Сторінка питань з DNS/DHCP]] ==&lt;br /&gt;
&lt;br /&gt;
[[category:Комп'ютерні мережі]]&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%A4%D0%B0%D0%B9%D0%BB:Dnsexam.jpg</id>
		<title>Файл:Dnsexam.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%A4%D0%B0%D0%B9%D0%BB:Dnsexam.jpg"/>
				<updated>2014-01-16T15:51:53Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/DNS</id>
		<title>DNS</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/DNS"/>
				<updated>2014-01-16T15:49:31Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|class=&amp;quot;wikitable&amp;quot; width=300px align=right&lt;br /&gt;
! Назва:&lt;br /&gt;
| Domain Name Server&lt;br /&gt;
|-&lt;br /&gt;
! Рівень (по моделі OSI):&lt;br /&gt;
| Прикладний&lt;br /&gt;
|-&lt;br /&gt;
! Сімейство:&lt;br /&gt;
| TCP/IP&lt;br /&gt;
|-&lt;br /&gt;
! Порт/ID:&lt;br /&gt;
| 53/TCP, 53/UDP&lt;br /&gt;
|-&lt;br /&gt;
! Призначення протоколу:&lt;br /&gt;
| Розширення доменних імен&lt;br /&gt;
|-&lt;br /&gt;
! Специфікація:&lt;br /&gt;
| RFC 1034 , RFC 1035 / STD 13&lt;br /&gt;
|-&lt;br /&gt;
! Основні реалізації (клієнти):&lt;br /&gt;
| Вбудована у всі мережеві ОС&lt;br /&gt;
|-&lt;br /&gt;
! Основні реалізації (сервери):&lt;br /&gt;
| BIND, PowerDNS або Microsoft DNS Server&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''DNS''' (англ. ''Domain Name System'' - система доменних імен) - це розподілена комп'ютерна система для отримання інформації про домени. Найчастіше використовується для отримання IP-адреси по імені хоста (комп'ютера або пристрою), отримання інформації про маршрутизацію пошти , обслуговуваних вузлах для протоколів у домені (SRV-запис).&lt;br /&gt;
&lt;br /&gt;
Розподілена база даних DNS підтримується за допомогою ієрархії DNS-серверів, взаємодіючи за певним протоколом.&lt;br /&gt;
&lt;br /&gt;
Основою DNS є представлення про ієрархічну структуру доменного імені та зонах. &lt;br /&gt;
*Кожен сервер, відповідаючи за ім'я, може делегувати відповідальність за подальшу частину домену іншому серверу (з адміністративної точки зору - іншій організації або людині), що дозволяє покласти відповідальність за актуальність інформації на сервери різноманітних організацій (людей), відповідаючи тільки за «свою» частину доменного імені.&lt;br /&gt;
&lt;br /&gt;
*Зона (zone) це окремо адмініструються частина дерева DNS. Наприклад, домен другого рівня '''''noao.edu''''' це окрема зона. Багато доменів другого рівня поділені на менші зони. Наприклад, університет може поділити свою зону на підзони по факультетах, а компанія може поділити себе на зони за принципом поділу на філії або відділи.&lt;br /&gt;
&lt;br /&gt;
== Ключові характеристики DNS ==&lt;br /&gt;
DNS володіє наступними характеристиками:&lt;br /&gt;
* '''''Розподільність адміністрування'''''. Відповідальність за різні частини ієрархічної структури несуть різні люди та організації.&lt;br /&gt;
* '''''Розподільність збереження інформації'''''. Кожен вузол мережі в обов'язковому порядку повинен зберігати тільки ті данні, які належать до його зону відповідальності і (можливо) адреси кінцевих DNS-серверів.&lt;br /&gt;
* '''''Кеширування інформації'''''. Вузол може зберігати деяку кількість даних не із власної зони відповідальності для зменшення навантаження на мережу.&lt;br /&gt;
* '''''Ієрархічна структура''''', у якій усі вузли об'єднані у дерево, а кожен вузол може або самостійно визначати роботу нижчих за ієрархію вузлів, або делегувати ( передавати) їх іншим вузлам.&lt;br /&gt;
* '''''Резервування'''''. За збереження та обслуговування своїх вузлів (зон) відповідають (зазвичай) декілька серверів, розподілених як фізично, так і логічно, що забезпечує зберігання даних та продовження роботи навіть у разі виходу з ладу одного з вузлів.&lt;br /&gt;
&lt;br /&gt;
DNS важлива для роботи мережі Інтернет, так як для з'єднання з вузлом необхідна інформація про його IP-адресу, а для людей легше запам'ятати символьні (зазвичай змістовні) адреси, ніж послідовність цифр IP-адрес. У деяких випадках це дозволяє використовувати віртуальні сервери, наприклад, HTTP-сервери, розрізняючи їх по імені запиту. Спочатку перетворення між доменними та IP-адресами відбувалося з використанням спеціального текстового файлу '''hosts''', який складався централізовано та автоматично відправлявся на кожну з машин у своїй локальній мережі. З ростом Мережі виникла необхідність в ефективному, автоматизованому механізмі, яким і стала DNS.&lt;br /&gt;
&lt;br /&gt;
DNS була розроблена Полом Мокапетрісом у 1983 році; оригінальне опис механізмів роботи міститься в стандартах RFC 882 та RFC 883. У 1987 публікація RFC 1034 і RFC 1035 змінила специфікацію DNS і скасувала RFC 882 та RFC 883 як застарілі.&lt;br /&gt;
&lt;br /&gt;
== Додаткові можливості ==&lt;br /&gt;
* Підтримка динамічних оновлень&lt;br /&gt;
* Захист даних ('''DNSSEC''') і транзакцій ('''TSIG''')&lt;br /&gt;
* Підтримка різноманітних типів інформації (SRV-записи)&lt;br /&gt;
&lt;br /&gt;
== Термінологія і принципи роботи ==&lt;br /&gt;
Основна область застосування DNS це перетворення імені хоста (Під &amp;quot;хостом&amp;quot; мається на увазі комп'ютер або сервер, підключеної до локальної мережі, або інтернету.) в IP-адресу та надання даних про маршрутизації пошти. &lt;br /&gt;
&lt;br /&gt;
Принцип роботи.&lt;br /&gt;
Коли користувач запускає веб-браузер в вводить назву домену сайту, його ПК відправляє запит до DNS-сервера інтернет-провайдера для отримання IP-адреси, на якому знаходиться домен (1).&lt;br /&gt;
Якщо DNS-сервери провайдера  не виявляють у своєму кеші інформації про запитуваній сайт, то відправляють запит на кореневі DNS-сервери (2).&lt;br /&gt;
&lt;br /&gt;
Кореневий DNS-сервер шукає в своїй базі даних інформацію про сервери імен хостинг-провайдера, на яких присутній цей сайт. Далі, він повідомляє з кешируючого DNS-сервера провайдера (3).&lt;br /&gt;
&lt;br /&gt;
Після того, як кешуючий DNS-сервер провайдера отримує інформацію про сервери імен провайдера він опитує будь-який з них (4) і, у разі отримання позитивного результату отримання IP-адреси (5), поміщає в кеш (Кешування використовується для того, щоб знизити як навантаження на інтернет-канали, так і для прискорення отримання результату запиту).&lt;br /&gt;
Після цього DNS-сервер провайдера передає IP-адреса браузеру користувача, який здійснив запит сайту (6).&lt;br /&gt;
&lt;br /&gt;
І вже після цього браузер, отримавши IP-адреса запитуваного сайту, переходить на сам сайт (7 і 8).&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:workDNS.jpg]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Ключовими поняттями DNS є:'''&lt;br /&gt;
* '''''Домен''''' (англ. domain - область) - вузол в дереві імен, разом з усіма підлеглими йому вузлами (якщо такі є), тобто іменована ''гілка'' або ''піддерево'' в дереві імен. Структура доменного імені зображає порядок проходження вузлів в ієрархії; доменне ім'я читається зліва направо від молодших доменів до доменів вищого рівня (в порядку підвищення значимості), кореневим доменом всієї системи є крапка ('.'), нижче йдуть домени першого рівня (географічні або тематичні ), потім - домени другого рівня, третього і т. д. (наприклад, для адреси '''ua.wikipedia.org''' домен першого рівня - '''org''', другого '''wikipedia''', третього '''ua'''). На практиці крапку в кінці імені часто опускають, але вона буває важлива у випадках поділу між відносними доменами і FQDN (англ. ''Fully Qualifed Domain Name'', повністю визначене ім'я домену).&lt;br /&gt;
* '''''Піддомен''''' (англ. subdomain) - підлеглий домен. (Наприклад, '''wikipedia.org''' - піддомен домену '''org''', а '''ua.wikipedia.org''' - домену '''wikipedia.org'''). Теоретично такий розподіл може досягати глибини 127 рівнів, а кожна мітка може містити до 63 символів, поки загальна довжина разом з точками не досягне 254 символів. Але на практиці реєстратори доменних імен використовують більш суворі обмеження. Наприклад, якщо у вас є домен виду '''mydomain.ru''', ви можете створити для нього різні піддомени виду '''mysite1.mydomain.ru''', '''mysite2.mydomain.ru''' і т. д.&lt;br /&gt;
* '''''Ресурсний запис''''' - одиниця зберігання і передачі інформації в DNS. Кожний ресурсний запис має ім'я (тобто прив'язаний до певного доменного імені, вузлу в дереві імен), тип і поле даних, формат і зміст якого залежить від типу.&lt;br /&gt;
* '''''Зона''''' - частина дерева доменних імен (включаючи ресурсні записи), що розміщується як єдине ціле на деякому сервері доменних імен (DNS-сервер), а частіше - одночасно на декількох серверах. Метою виділення частини дерева в окрему зону є передача відповідальності за відповідний Домен іншій особі або організації, так зване Делегування. Як зв'язкова частина дерева, зона всередині теж являє собою дерево. Якщо розглядати простір імен DNS як структуру із зон, а не окремих вузлів / імен, теж виходить дерево; виправдано казати про батьківські і дочірні зони, про старших і підлеглих. На практиці, більшість зон 0-го і 1-го рівня ('.', '''ru''', '''com''', ...) складаються з єдиного вузла, якому безпосередньо підпорядковуються дочірні зони. У великих корпоративних доменах (2-го і більше рівнів) іноді зустрічається утворення додаткових підлеглих рівнів без виділення їх у дочірні зони.&lt;br /&gt;
* '''''Делегування''''' - операція передачі відповідальності за частину дерева доменних імен іншій особі або організації. За рахунок делегування в DNS забезпечується розподільність адміністрування та зберігання. Технічно делегування виражається у виділенні цієї частини дерева в окрему зону, та розміщення цієї зони на DNS-сервер, керованому цією особою чи організацією. При цьому в батьківську зону включаються «склеюючи» ресурсні записи ('''NS''' і '''А'''), що містять покажчики на DNS-сервера дочірньої зони, а вся інша інформація, що відноситься до дочірньої зоні, зберігається вже на DNS-серверах дочірньої зони.&lt;br /&gt;
* '''''[[DNS сервер|DNS-сервер]]''''' - спеціалізоване ПО для обслуговування DNS, а також комп'ютер, на якому це ПЗ виконується. DNS-сервер може бути відповідальним за певні зони і / або може перенаправляти запити серверам, що знаходяться вище за ієрархією.&lt;br /&gt;
* '''''[[DNS клієнт|DNS-клієнт]]''''' - спеціалізована бібліотека (або програма) для роботи з DNS. У ряді випадків DNS-сервер виступає в ролі DNS-клієнта.&lt;br /&gt;
* '''''Авторитетність''''' (англ. authoritative) - ознака розміщення зони на DNS-сервері. Відповіді DNS-сервера можуть бути двох типів: ''авторитетні'' (коли сервер заявляє, що сам відповідає за зону) і ''неавторитетний'' (англ. Non-authoritative), коли сервер обробляє запит, і повертає відповідь інших серверів. У деяких випадках замість передачі запиту далі DNS-сервер може повернути вже відоме йому (за запитами раніше) значення (режим кешування).&lt;br /&gt;
* '''''[[DNS запити|DNS-запит]]''''' (англ. DNS query) - запит від клієнта (або сервера) серверу. Запит може бути ''рекурсивним'' або ''нерекурсивним''.&lt;br /&gt;
&lt;br /&gt;
Система DNS містить ієрархію DNS-серверів, відповідну до ієрархії зон. Кожна зона підтримується як мінімум одним авторитетним сервером DNS (від англ. ''Authoritative'' - авторитетний), на якому розташована інформація про домен.&lt;br /&gt;
&lt;br /&gt;
Ім'я та IP-адреса не тотожні - одина IP-адреса може мати безліч імен, що дозволяє підтримувати на одному комп'ютері безліч веб-сайтів (це називається віртуальний хостинг). Зворотне теж справедливо - одному імені можна порівнювати безліч IP-адрес: це дозволяє створювати балансування навантаження.&lt;br /&gt;
&lt;br /&gt;
Для підвищення стійкості системи використовується безліч серверів, що містять ідентичну інформацію, а в протоколі є засоби, що дозволяють підтримувати синхронність інформації, розташованої на різних серверах. Існує 13 кореневих серверів, їх адреси практично не змінюються.&lt;br /&gt;
&lt;br /&gt;
=== [[Рекурсія]] ===&lt;br /&gt;
&lt;br /&gt;
Терміном '''Рекурсія''' в DNS означають алгоритм поведінки '''DNS- сервера''', при якому сервер виконує від імені клієнта повний пошук потрібної інформації в усій системі DNS, при необхідності звертаючись до іншим '''DNS- серверам'''.&lt;br /&gt;
&lt;br /&gt;
'''DNS- запит''' може бути ''рекурсивним'' - що вимагає повного пошуку, - і ''нерекурсивним''  (чи ''ітеративним'') - що не вимагає повного пошуку.&lt;br /&gt;
&lt;br /&gt;
Аналогічно, '''DNS- сервер''' може бути ''рекурсивним''  (що уміє виконувати повний пошук) і ''нерекурсивним''  (що не уміє виконувати повний пошук). Деякі програми DNS- серверів, наприклад, BIND, можна конфігурувати так, щоб запити одних клієнтів виконувалися ''рекурсивно'', а запити інших - ''нерекурсивний''.&lt;br /&gt;
&lt;br /&gt;
При відповіді на ''нерекурсивний'' запит, а також - при невмінні або забороні виконувати ''рекурсивні'' запити, - DNS- сервер або повертає дані про зону, за яку він '''ответствен''', або повертає адреси серверів, які мають великий об'єм інформації про запрошену зону, чим сервер, що відповідає, найчастіше - адреси кореневих серверів.&lt;br /&gt;
&lt;br /&gt;
У разі ''рекурсивного'' запиту '''DNS- сервер''' опитує сервери(в порядку убування рівня зон в імені), поки не знайде відповідь або не виявить, що домен не існує. (На практиці пошук розпочинається з найбільш близьких до шуканого DNS- серверів, якщо інформація про них є в кеші і не застаріла, сервер може не просити інші DNS- сервери.)&lt;br /&gt;
&lt;br /&gt;
Розглянемо на прикладі роботу усієї системи.&lt;br /&gt;
&lt;br /&gt;
Припустимо, ми набрали в браузері адресу &amp;lt;tt&amp;gt;ru.wikipedia.org&amp;lt;/tt&amp;gt;. Браузер запитує у сервера DNS : &amp;quot;яка IP- адреса у &amp;lt;tt&amp;gt;ru.wikipedia.org&amp;lt;/tt&amp;gt;&amp;quot;?&lt;br /&gt;
Проте, сервер DNS може нічого не знати не лише про запрошене ім'я, але навіть про увесь домен &amp;lt;tt&amp;gt;wikipedia.org&amp;lt;/tt&amp;gt;.&lt;br /&gt;
В цьому випадку сервер звертається до ''кореневого серверу'' - наприклад, 198.41.0.4. Цей сервер повідомляє - &amp;quot;У мене немає інформації про цю адресу, але я знаю, що 204.74.112.1 є відповідальним за зону &amp;lt;tt&amp;gt;org&amp;lt;/tt&amp;gt;&amp;quot;. Тоді сервер DNS направляє свій запит до 204.74.112.1, але той відповідає &amp;quot;У мене немає інформації про цей сервер, але я знаю, що 207.142.131.234 є відповідальним за зону &amp;lt;tt&amp;gt;wikipedia.org&amp;lt;/tt&amp;gt;&amp;quot;. Нарешті, той же запит вирушає до третього DNS- сервера і отримує відповідь - IP- адреса, яка і передається клієнтові - браузеру.&lt;br /&gt;
&lt;br /&gt;
В даному випадку при дозволі імені, тобто в процесі пошуку IP по імені:&lt;br /&gt;
* браузер відправив відомому йому DNS- серверу ''рекурсивний'' запит - у відповідь на такий тип запиту сервер зобов'язаний повернути &amp;quot;готовий результат&amp;quot;, тобто IP- адреса, або порожня відповідь і код помилки NXDOMAIN;&lt;br /&gt;
* DNS- сервер, що отримав запит від браузеру, послідовно відправляв ''нерекурсивні'' запити, на які отримував від інших DNS- серверів відповіді, поки не отримав відповідь від сервера, відповідального за запрошену зону;&lt;br /&gt;
* інші згадувані DNS- сервери обробляли запити ''нерекурсивний''  (і, швидше за все, не стали б обробляти запити рекурсивно, навіть якщо б така вимога стояла в запиті).&lt;br /&gt;
&lt;br /&gt;
Іноді допускається, щоб запрошений сервер передавав ''рекурсивний'' запит &amp;quot;вищестоящому&amp;quot; DNS- серверу і чекав готової відповіді.&lt;br /&gt;
&lt;br /&gt;
При ''рекурсивній'' обробці запитів усі відповіді проходять через DNS- сервер, і він дістає можливість ''кешуровати'' їх. Повторний запит на ті ж імена зазвичай не йде далі ''за кеш'' сервера, звернення до інших серверів не відбувається взагалі. Допустимий час зберігання відповідей в ''кеші'' приходить разом з відповідями(поле ''TTL'' '''ресурсного запису''').&lt;br /&gt;
&lt;br /&gt;
Рекурсивні запити вимагають більше ресурсів від сервера(і створюють більше трафіку), так що зазвичай приймаються від &amp;quot;відомих&amp;quot; власникові сервера вузлів(наприклад, провайдер надає можливість робити рекурсивні запити тільки своїм клієнтам, в корпоративній мережі рекурсивні запити приймаються тільки з локального сегменту). Нерекурсивні запити зазвичай приймаються від усіх вузлів мережі(і змістовна відповідь дається тільки на запити про зону, яка розміщена на вузлі, на DNS- запит про інші зони зазвичай повертаються адреси інших серверів).&lt;br /&gt;
&lt;br /&gt;
=== Зворотний DNS- запит ===&lt;br /&gt;
DNS використовується в першу чергу для перетворення символьних імен в IP- адреси, але він також може виконувати зворотний процес. Для цього використовуються вже наявні засоби DNS. Річ у тому, що із записом DNS можуть бути зіставлені різні дані, у тому числі і яке-небудь символьне ім'я. Існує спеціальний домен &amp;lt;tt&amp;gt;in - addr.arpa&amp;lt;/tt&amp;gt;, записи в якому використовуються для перетворення IP- адрес в символьні імена. Наприклад, для отримання DNS- імені для адреси &amp;lt;tt&amp;gt;11.22.33.44&amp;lt;/tt&amp;gt; можна запросити у DNS- сервера запис &amp;lt;tt&amp;gt;44.33.22.11.in - addr.arpa&amp;lt;/tt&amp;gt;, і той поверне відповідне символьне ім'я. Зворотний порядок запису частин IP- адреси пояснюється тим, що в IP- адресах старші біти розташовані на початку, а в символьних DNS- іменах старші(що знаходяться ближче до кореня) частини розташовані у кінці.&lt;br /&gt;
&lt;br /&gt;
== Приклад структури доменного імені ==&lt;br /&gt;
&lt;br /&gt;
== Записи DNS ==&lt;br /&gt;
Записи DNS, або ''Ресурсні записи'' (англ. Resource Records, RR) - одиниці зберігання і передачі інформації в DNS. Кожен ресурсний запис складається з наступних полів:&lt;br /&gt;
&lt;br /&gt;
* '''''Ім'я''''' (NAME) - доменне ім'я, до якого прив'язана або якому «належить» дана ресурсна запис. Ім'я буває абсолютним (FQDN - Fully Qualified Domain Name) і відносним. Абсолютне ім'я закінчується крапкою. Якщо ж ім'я вказати без крапки в кінці, це ім'я буде вважатися відносним і йому автоматично додається ім'я поточного домену;&lt;br /&gt;
* '''''TTL''''' (Time To Live) - допустимий час зберігання даної ресурсної записи в кеші не відповідального DNS-сервера. Даний параметр вказується в секундах;&lt;br /&gt;
* '''''Тип''''' (TYPE) ресурсного запису - визначає формат і призначення даного ресурсного запису;&lt;br /&gt;
* '''''Клас''''' (CLASS) ресурсного запису; теоретично вважається, що DNS може використовуватися не тільки з TCP / IP, але і з іншими типами мереж, код у полі клас визначає тип мережі;&lt;br /&gt;
* '''''Довжина поля даних''''' (RDLEN);&lt;br /&gt;
* '''''Поле даних''''' (RDATA), формат і зміст якого залежить від типу запису.&lt;br /&gt;
&lt;br /&gt;
Найбільш важливі типи DNS-записів:&lt;br /&gt;
&lt;br /&gt;
* '''''Запис A''''' (''address record'') або запис адреси, що зв'язує ім'я хоста з IP адресою. Наприклад, запит A-запису на ім'я '''''referrals.icann.org''''' поверне його IP адресу - '''''192.0.34.164'''''&lt;br /&gt;
* '''''Запис AAAA''''' (''IPv6 address record'') зв'язує ім'я хоста з адресою протоколу '''IPv6'''. Наприклад, запит AAAA-запису на ім'я '''''K.ROOT-SERVERS.NET''''' поверне його '''IPv6''' адресу - '''''2001:7 fd:: 1'''''&lt;br /&gt;
* '''''Запис CNAME''''' (''canonical name record'') або канонічний запис імені (псевдонім) використовується для перенаправлення на інше ім'я&lt;br /&gt;
* '''''Запис MX''''' (''mail exchange'') або поштовий обмінник вказує сервер обміну поштою для даного домену.&lt;br /&gt;
* '''''Запис NS''''' (''name server'') вказує на DNS-сервер для даного домену.&lt;br /&gt;
* '''''Запис PTR''''' (''pointer'') або запис покажчика, що зв'язує IP адресу хоста з його канонічним ім'ям. Запит у домені '''''in-addr.arpa''''' на IP хоста в ''reverse'' формі поверне ім'я ('''FQDN''') даного хоста.&lt;br /&gt;
* '''''Запис SOA''''' (''Start of Authority'') або початковий запис зони вказує, на якому сервері зберігається еталонна інформація про даний домен, містить контактну інформацію особи, відповідального за дану зону, таймінги (параметри часу) кешування зонної інформації та взаємодії DNS-серверів.&lt;br /&gt;
* '''''Запис SRV''''' (''server selection'') вказує на сервери для сервісів, використовується, зокрема, для '''''Jabber''''' і '''''Active Directory'''''.&lt;br /&gt;
* '''''Запис TXT''''' коментарі або якась інша інформація&lt;br /&gt;
* '''''Запис HINFO''''' опис &amp;quot;заліза&amp;quot; комп'ютера&lt;br /&gt;
&lt;br /&gt;
'''Базовий формат запису виглядає так:'''&lt;br /&gt;
&lt;br /&gt;
[ім'я] [час] [клас] [тип] [дані]&lt;br /&gt;
&lt;br /&gt;
== Зарезервовані доменні імена ==&lt;br /&gt;
Документ RFC 2606 (Reserved Top Level DNS Names - Зарезервовані імена доменів верхнього рівня) визначає назви доменів, які слід використовувати в якості прикладів (наприклад, в документації), а також для тестування. Крім '''''example.com''''', '''''example.org''''' і '''''example.net''''', до цієї групи також входять '''''test''''', '''''invalid''''' та ін.&lt;br /&gt;
&lt;br /&gt;
== Інтернаціональні доменні імена ==&lt;br /&gt;
Доменне ім'я може складатися тільки з обмеженого набору '''ASCII''' символів, дозволяючи набрати адресу домену незалежно від мови користувача. '''ICANN''' затвердив засновану на '''''Punycode''''' систему '''IDNA''', перетворюючи будь-який рядок в кодуванні ''Unicode'' в допустимий DNS набір символів.&lt;br /&gt;
&lt;br /&gt;
== Програмне забезпечення DNS ==&lt;br /&gt;
Сервери імен:&lt;br /&gt;
* '''BIND''' (Berkeley Internet Name Domain)&lt;br /&gt;
* '''Djbdns''' (Daniel J. Bernstein 's DNS)&lt;br /&gt;
* '''MaraDNS'''&lt;br /&gt;
* '''NSD''' (Name Server Daemon)&lt;br /&gt;
* '''PowerDNS'''&lt;br /&gt;
* '''OpenDNS'''&lt;br /&gt;
* '''Microsoft DNS Server''' (в серверних версіях операційних систем Windows NT)&lt;br /&gt;
* '''MyDNS'''&lt;br /&gt;
&lt;br /&gt;
== Інформація про домен ==&lt;br /&gt;
Багато доменів верхнього рівня підтримують сервіс '''''whois''''', який дозволяє дізнатися, кому делеговано домен і іншу технічну інформацію.&lt;br /&gt;
&lt;br /&gt;
== Реєстрація домену ==&lt;br /&gt;
Реєстрація домену - процедура отримання доменного імені. Полягає у створенні записів, що вказують на адміністратора домену, в базі даних DNS. Порядок реєстрації та вимоги залежать від обраної доменної зони. Реєстрація домену може бути виконана як організацією-реєстратором, так і приватною особою, якщо це дозволяють правила обраної доменної зони.&lt;br /&gt;
&lt;br /&gt;
[[Служба DNS]]&lt;br /&gt;
&lt;br /&gt;
== [[Сторінка питань з DNS/DHCP]] ==&lt;br /&gt;
&lt;br /&gt;
[[category:Комп'ютерні мережі]]&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/DNS</id>
		<title>DNS</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/DNS"/>
				<updated>2014-01-16T15:43:38Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: /* Записи DNS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|class=&amp;quot;wikitable&amp;quot; width=300px align=right&lt;br /&gt;
! Назва:&lt;br /&gt;
| Domain Name Server&lt;br /&gt;
|-&lt;br /&gt;
! Рівень (по моделі OSI):&lt;br /&gt;
| Прикладний&lt;br /&gt;
|-&lt;br /&gt;
! Сімейство:&lt;br /&gt;
| TCP/IP&lt;br /&gt;
|-&lt;br /&gt;
! Порт/ID:&lt;br /&gt;
| 53/TCP, 53/UDP&lt;br /&gt;
|-&lt;br /&gt;
! Призначення протоколу:&lt;br /&gt;
| Розширення доменних імен&lt;br /&gt;
|-&lt;br /&gt;
! Специфікація:&lt;br /&gt;
| RFC 1034 , RFC 1035 / STD 13&lt;br /&gt;
|-&lt;br /&gt;
! Основні реалізації (клієнти):&lt;br /&gt;
| Вбудована у всі мережеві ОС&lt;br /&gt;
|-&lt;br /&gt;
! Основні реалізації (сервери):&lt;br /&gt;
| BIND, PowerDNS або Microsoft DNS Server&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''DNS''' (англ. ''Domain Name System'' - система доменних імен) - це розподілена комп'ютерна система для отримання інформації про домени. Найчастіше використовується для отримання IP-адреси по імені хоста (комп'ютера або пристрою), отримання інформації про маршрутизацію пошти , обслуговуваних вузлах для протоколів у домені (SRV-запис).&lt;br /&gt;
&lt;br /&gt;
Розподілена база даних DNS підтримується за допомогою ієрархії DNS-серверів, взаємодіючи за певним протоколом.&lt;br /&gt;
&lt;br /&gt;
Основою DNS є представлення про ієрархічну структуру доменного імені та зонах. &lt;br /&gt;
*Кожен сервер, відповідаючи за ім'я, може делегувати відповідальність за подальшу частину домену іншому серверу (з адміністративної точки зору - іншій організації або людині), що дозволяє покласти відповідальність за актуальність інформації на сервери різноманітних організацій (людей), відповідаючи тільки за «свою» частину доменного імені.&lt;br /&gt;
&lt;br /&gt;
*Зона (zone) це окремо адмініструються частина дерева DNS. Наприклад, домен другого рівня '''''noao.edu''''' це окрема зона. Багато доменів другого рівня поділені на менші зони. Наприклад, університет може поділити свою зону на підзони по факультетах, а компанія може поділити себе на зони за принципом поділу на філії або відділи.&lt;br /&gt;
&lt;br /&gt;
== Ключові характеристики DNS ==&lt;br /&gt;
DNS володіє наступними характеристиками:&lt;br /&gt;
* '''''Розподільність адміністрування'''''. Відповідальність за різні частини ієрархічної структури несуть різні люди та організації.&lt;br /&gt;
* '''''Розподільність збереження інформації'''''. Кожен вузол мережі в обов'язковому порядку повинен зберігати тільки ті данні, які належать до його зону відповідальності і (можливо) адреси кінцевих DNS-серверів.&lt;br /&gt;
* '''''Кеширування інформації'''''. Вузол може зберігати деяку кількість даних не із власної зони відповідальності для зменшення навантаження на мережу.&lt;br /&gt;
* '''''Ієрархічна структура''''', у якій усі вузли об'єднані у дерево, а кожен вузол може або самостійно визначати роботу нижчих за ієрархію вузлів, або делегувати ( передавати) їх іншим вузлам.&lt;br /&gt;
* '''''Резервування'''''. За збереження та обслуговування своїх вузлів (зон) відповідають (зазвичай) декілька серверів, розподілених як фізично, так і логічно, що забезпечує зберігання даних та продовження роботи навіть у разі виходу з ладу одного з вузлів.&lt;br /&gt;
&lt;br /&gt;
DNS важлива для роботи мережі Інтернет, так як для з'єднання з вузлом необхідна інформація про його IP-адресу, а для людей легше запам'ятати символьні (зазвичай змістовні) адреси, ніж послідовність цифр IP-адрес. У деяких випадках це дозволяє використовувати віртуальні сервери, наприклад, HTTP-сервери, розрізняючи їх по імені запиту. Спочатку перетворення між доменними та IP-адресами відбувалося з використанням спеціального текстового файлу '''hosts''', який складався централізовано та автоматично відправлявся на кожну з машин у своїй локальній мережі. З ростом Мережі виникла необхідність в ефективному, автоматизованому механізмі, яким і стала DNS.&lt;br /&gt;
&lt;br /&gt;
DNS була розроблена Полом Мокапетрісом у 1983 році; оригінальне опис механізмів роботи міститься в стандартах RFC 882 та RFC 883. У 1987 публікація RFC 1034 і RFC 1035 змінила специфікацію DNS і скасувала RFC 882 та RFC 883 як застарілі.&lt;br /&gt;
&lt;br /&gt;
== Додаткові можливості ==&lt;br /&gt;
* Підтримка динамічних оновлень&lt;br /&gt;
* Захист даних ('''DNSSEC''') і транзакцій ('''TSIG''')&lt;br /&gt;
* Підтримка різноманітних типів інформації (SRV-записи)&lt;br /&gt;
&lt;br /&gt;
== Термінологія і принципи роботи ==&lt;br /&gt;
Основна область застосування DNS це перетворення імені хоста (Під &amp;quot;хостом&amp;quot; мається на увазі комп'ютер або сервер, підключеної до локальної мережі, або інтернету.) в IP-адресу та надання даних про маршрутизації пошти. &lt;br /&gt;
&lt;br /&gt;
Принцип роботи.&lt;br /&gt;
Коли користувач запускає веб-браузер в вводить назву домену сайту, його ПК відправляє запит до DNS-сервера інтернет-провайдера для отримання IP-адреси, на якому знаходиться домен (1).&lt;br /&gt;
Якщо DNS-сервери провайдера  не виявляють у своєму кеші інформації про запитуваній сайт, то відправляють запит на кореневі DNS-сервери (2).&lt;br /&gt;
&lt;br /&gt;
Кореневий DNS-сервер шукає в своїй базі даних інформацію про сервери імен хостинг-провайдера, на яких присутній цей сайт. Далі, він повідомляє з кешируючого DNS-сервера провайдера (3).&lt;br /&gt;
&lt;br /&gt;
Після того, як кешуючий DNS-сервер провайдера отримує інформацію про сервери імен провайдера він опитує будь-який з них (4) і, у разі отримання позитивного результату отримання IP-адреси (5), поміщає в кеш (Кешування використовується для того, щоб знизити як навантаження на інтернет-канали, так і для прискорення отримання результату запиту).&lt;br /&gt;
Після цього DNS-сервер провайдера передає IP-адреса браузеру користувача, який здійснив запит сайту (6).&lt;br /&gt;
&lt;br /&gt;
І вже після цього браузер, отримавши IP-адреса запитуваного сайту, переходить на сам сайт (7 і 8).&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:workDNS.jpg]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Ключовими поняттями DNS є:'''&lt;br /&gt;
* '''''Домен''''' (англ. domain - область) - вузол в дереві імен, разом з усіма підлеглими йому вузлами (якщо такі є), тобто іменована ''гілка'' або ''піддерево'' в дереві імен. Структура доменного імені зображає порядок проходження вузлів в ієрархії; доменне ім'я читається зліва направо від молодших доменів до доменів вищого рівня (в порядку підвищення значимості), кореневим доменом всієї системи є крапка ('.'), нижче йдуть домени першого рівня (географічні або тематичні ), потім - домени другого рівня, третього і т. д. (наприклад, для адреси '''ua.wikipedia.org''' домен першого рівня - '''org''', другого '''wikipedia''', третього '''ua'''). На практиці крапку в кінці імені часто опускають, але вона буває важлива у випадках поділу між відносними доменами і FQDN (англ. ''Fully Qualifed Domain Name'', повністю визначене ім'я домену).&lt;br /&gt;
* '''''Піддомен''''' (англ. subdomain) - підлеглий домен. (Наприклад, '''wikipedia.org''' - піддомен домену '''org''', а '''ua.wikipedia.org''' - домену '''wikipedia.org'''). Теоретично такий розподіл може досягати глибини 127 рівнів, а кожна мітка може містити до 63 символів, поки загальна довжина разом з точками не досягне 254 символів. Але на практиці реєстратори доменних імен використовують більш суворі обмеження. Наприклад, якщо у вас є домен виду '''mydomain.ru''', ви можете створити для нього різні піддомени виду '''mysite1.mydomain.ru''', '''mysite2.mydomain.ru''' і т. д.&lt;br /&gt;
* '''''Ресурсний запис''''' - одиниця зберігання і передачі інформації в DNS. Кожний ресурсний запис має ім'я (тобто прив'язаний до певного доменного імені, вузлу в дереві імен), тип і поле даних, формат і зміст якого залежить від типу.&lt;br /&gt;
* '''''Зона''''' - частина дерева доменних імен (включаючи ресурсні записи), що розміщується як єдине ціле на деякому сервері доменних імен (DNS-сервер), а частіше - одночасно на декількох серверах. Метою виділення частини дерева в окрему зону є передача відповідальності за відповідний Домен іншій особі або організації, так зване Делегування. Як зв'язкова частина дерева, зона всередині теж являє собою дерево. Якщо розглядати простір імен DNS як структуру із зон, а не окремих вузлів / імен, теж виходить дерево; виправдано казати про батьківські і дочірні зони, про старших і підлеглих. На практиці, більшість зон 0-го і 1-го рівня ('.', '''ru''', '''com''', ...) складаються з єдиного вузла, якому безпосередньо підпорядковуються дочірні зони. У великих корпоративних доменах (2-го і більше рівнів) іноді зустрічається утворення додаткових підлеглих рівнів без виділення їх у дочірні зони.&lt;br /&gt;
* '''''Делегування''''' - операція передачі відповідальності за частину дерева доменних імен іншій особі або організації. За рахунок делегування в DNS забезпечується розподільність адміністрування та зберігання. Технічно делегування виражається у виділенні цієї частини дерева в окрему зону, та розміщення цієї зони на DNS-сервер, керованому цією особою чи організацією. При цьому в батьківську зону включаються «склеюючи» ресурсні записи ('''NS''' і '''А'''), що містять покажчики на DNS-сервера дочірньої зони, а вся інша інформація, що відноситься до дочірньої зоні, зберігається вже на DNS-серверах дочірньої зони.&lt;br /&gt;
* '''''[[DNS сервер|DNS-сервер]]''''' - спеціалізоване ПО для обслуговування DNS, а також комп'ютер, на якому це ПЗ виконується. DNS-сервер може бути відповідальним за певні зони і / або може перенаправляти запити серверам, що знаходяться вище за ієрархією.&lt;br /&gt;
* '''''[[DNS клієнт|DNS-клієнт]]''''' - спеціалізована бібліотека (або програма) для роботи з DNS. У ряді випадків DNS-сервер виступає в ролі DNS-клієнта.&lt;br /&gt;
* '''''Авторитетність''''' (англ. authoritative) - ознака розміщення зони на DNS-сервері. Відповіді DNS-сервера можуть бути двох типів: ''авторитетні'' (коли сервер заявляє, що сам відповідає за зону) і ''неавторитетний'' (англ. Non-authoritative), коли сервер обробляє запит, і повертає відповідь інших серверів. У деяких випадках замість передачі запиту далі DNS-сервер може повернути вже відоме йому (за запитами раніше) значення (режим кешування).&lt;br /&gt;
* '''''[[DNS запити|DNS-запит]]''''' (англ. DNS query) - запит від клієнта (або сервера) серверу. Запит може бути ''рекурсивним'' або ''нерекурсивним''.&lt;br /&gt;
&lt;br /&gt;
Система DNS містить ієрархію DNS-серверів, відповідну до ієрархії зон. Кожна зона підтримується як мінімум одним авторитетним сервером DNS (від англ. ''Authoritative'' - авторитетний), на якому розташована інформація про домен.&lt;br /&gt;
&lt;br /&gt;
Ім'я та IP-адреса не тотожні - одина IP-адреса може мати безліч імен, що дозволяє підтримувати на одному комп'ютері безліч веб-сайтів (це називається віртуальний хостинг). Зворотне теж справедливо - одному імені можна порівнювати безліч IP-адрес: це дозволяє створювати балансування навантаження.&lt;br /&gt;
&lt;br /&gt;
Для підвищення стійкості системи використовується безліч серверів, що містять ідентичну інформацію, а в протоколі є засоби, що дозволяють підтримувати синхронність інформації, розташованої на різних серверах. Існує 13 кореневих серверів, їх адреси практично не змінюються.&lt;br /&gt;
&lt;br /&gt;
=== [[Рекурсія]] ===&lt;br /&gt;
&lt;br /&gt;
Терміном '''Рекурсія''' в DNS означають алгоритм поведінки '''DNS- сервера''', при якому сервер виконує від імені клієнта повний пошук потрібної інформації в усій системі DNS, при необхідності звертаючись до іншим '''DNS- серверам'''.&lt;br /&gt;
&lt;br /&gt;
'''DNS- запит''' може бути ''рекурсивним'' - що вимагає повного пошуку, - і ''нерекурсивним''  (чи ''ітеративним'') - що не вимагає повного пошуку.&lt;br /&gt;
&lt;br /&gt;
Аналогічно, '''DNS- сервер''' може бути ''рекурсивним''  (що уміє виконувати повний пошук) і ''нерекурсивним''  (що не уміє виконувати повний пошук). Деякі програми DNS- серверів, наприклад, BIND, можна конфігурувати так, щоб запити одних клієнтів виконувалися ''рекурсивно'', а запити інших - ''нерекурсивний''.&lt;br /&gt;
&lt;br /&gt;
При відповіді на ''нерекурсивний'' запит, а також - при невмінні або забороні виконувати ''рекурсивні'' запити, - DNS- сервер або повертає дані про зону, за яку він '''ответствен''', або повертає адреси серверів, які мають великий об'єм інформації про запрошену зону, чим сервер, що відповідає, найчастіше - адреси кореневих серверів.&lt;br /&gt;
&lt;br /&gt;
У разі ''рекурсивного'' запиту '''DNS- сервер''' опитує сервери(в порядку убування рівня зон в імені), поки не знайде відповідь або не виявить, що домен не існує. (На практиці пошук розпочинається з найбільш близьких до шуканого DNS- серверів, якщо інформація про них є в кеші і не застаріла, сервер може не просити інші DNS- сервери.)&lt;br /&gt;
&lt;br /&gt;
Розглянемо на прикладі роботу усієї системи.&lt;br /&gt;
&lt;br /&gt;
Припустимо, ми набрали в браузері адресу &amp;lt;tt&amp;gt;ru.wikipedia.org&amp;lt;/tt&amp;gt;. Браузер запитує у сервера DNS : &amp;quot;яка IP- адреса у &amp;lt;tt&amp;gt;ru.wikipedia.org&amp;lt;/tt&amp;gt;&amp;quot;?&lt;br /&gt;
Проте, сервер DNS може нічого не знати не лише про запрошене ім'я, але навіть про увесь домен &amp;lt;tt&amp;gt;wikipedia.org&amp;lt;/tt&amp;gt;.&lt;br /&gt;
В цьому випадку сервер звертається до ''кореневого серверу'' - наприклад, 198.41.0.4. Цей сервер повідомляє - &amp;quot;У мене немає інформації про цю адресу, але я знаю, що 204.74.112.1 є відповідальним за зону &amp;lt;tt&amp;gt;org&amp;lt;/tt&amp;gt;&amp;quot;. Тоді сервер DNS направляє свій запит до 204.74.112.1, але той відповідає &amp;quot;У мене немає інформації про цей сервер, але я знаю, що 207.142.131.234 є відповідальним за зону &amp;lt;tt&amp;gt;wikipedia.org&amp;lt;/tt&amp;gt;&amp;quot;. Нарешті, той же запит вирушає до третього DNS- сервера і отримує відповідь - IP- адреса, яка і передається клієнтові - браузеру.&lt;br /&gt;
&lt;br /&gt;
В даному випадку при дозволі імені, тобто в процесі пошуку IP по імені:&lt;br /&gt;
* браузер відправив відомому йому DNS- серверу ''рекурсивний'' запит - у відповідь на такий тип запиту сервер зобов'язаний повернути &amp;quot;готовий результат&amp;quot;, тобто IP- адреса, або порожня відповідь і код помилки NXDOMAIN;&lt;br /&gt;
* DNS- сервер, що отримав запит від браузеру, послідовно відправляв ''нерекурсивні'' запити, на які отримував від інших DNS- серверів відповіді, поки не отримав відповідь від сервера, відповідального за запрошену зону;&lt;br /&gt;
* інші згадувані DNS- сервери обробляли запити ''нерекурсивний''  (і, швидше за все, не стали б обробляти запити рекурсивно, навіть якщо б така вимога стояла в запиті).&lt;br /&gt;
&lt;br /&gt;
Іноді допускається, щоб запрошений сервер передавав ''рекурсивний'' запит &amp;quot;вищестоящому&amp;quot; DNS- серверу і чекав готової відповіді.&lt;br /&gt;
&lt;br /&gt;
При ''рекурсивній'' обробці запитів усі відповіді проходять через DNS- сервер, і він дістає можливість ''кешуровати'' їх. Повторний запит на ті ж імена зазвичай не йде далі ''за кеш'' сервера, звернення до інших серверів не відбувається взагалі. Допустимий час зберігання відповідей в ''кеші'' приходить разом з відповідями(поле ''TTL'' '''ресурсного запису''').&lt;br /&gt;
&lt;br /&gt;
Рекурсивні запити вимагають більше ресурсів від сервера(і створюють більше трафіку), так що зазвичай приймаються від &amp;quot;відомих&amp;quot; власникові сервера вузлів(наприклад, провайдер надає можливість робити рекурсивні запити тільки своїм клієнтам, в корпоративній мережі рекурсивні запити приймаються тільки з локального сегменту). Нерекурсивні запити зазвичай приймаються від усіх вузлів мережі(і змістовна відповідь дається тільки на запити про зону, яка розміщена на вузлі, на DNS- запит про інші зони зазвичай повертаються адреси інших серверів).&lt;br /&gt;
&lt;br /&gt;
=== Зворотний DNS- запит ===&lt;br /&gt;
DNS використовується в першу чергу для перетворення символьних імен в IP- адреси, але він також може виконувати зворотний процес. Для цього використовуються вже наявні засоби DNS. Річ у тому, що із записом DNS можуть бути зіставлені різні дані, у тому числі і яке-небудь символьне ім'я. Існує спеціальний домен &amp;lt;tt&amp;gt;in - addr.arpa&amp;lt;/tt&amp;gt;, записи в якому використовуються для перетворення IP- адрес в символьні імена. Наприклад, для отримання DNS- імені для адреси &amp;lt;tt&amp;gt;11.22.33.44&amp;lt;/tt&amp;gt; можна запросити у DNS- сервера запис &amp;lt;tt&amp;gt;44.33.22.11.in - addr.arpa&amp;lt;/tt&amp;gt;, і той поверне відповідне символьне ім'я. Зворотний порядок запису частин IP- адреси пояснюється тим, що в IP- адресах старші біти розташовані на початку, а в символьних DNS- іменах старші(що знаходяться ближче до кореня) частини розташовані у кінці.&lt;br /&gt;
&lt;br /&gt;
== Записи DNS ==&lt;br /&gt;
Записи DNS, або ''Ресурсні записи'' (англ. Resource Records, RR) - одиниці зберігання і передачі інформації в DNS. Кожен ресурсний запис складається з наступних полів:&lt;br /&gt;
&lt;br /&gt;
* '''''Ім'я''''' (NAME) - доменне ім'я, до якого прив'язана або якому «належить» дана ресурсна запис. Ім'я буває абсолютним (FQDN - Fully Qualified Domain Name) і відносним. Абсолютне ім'я закінчується крапкою. Якщо ж ім'я вказати без крапки в кінці, це ім'я буде вважатися відносним і йому автоматично додається ім'я поточного домену;&lt;br /&gt;
* '''''TTL''''' (Time To Live) - допустимий час зберігання даної ресурсної записи в кеші не відповідального DNS-сервера. Даний параметр вказується в секундах;&lt;br /&gt;
* '''''Тип''''' (TYPE) ресурсного запису - визначає формат і призначення даного ресурсного запису;&lt;br /&gt;
* '''''Клас''''' (CLASS) ресурсного запису; теоретично вважається, що DNS може використовуватися не тільки з TCP / IP, але і з іншими типами мереж, код у полі клас визначає тип мережі;&lt;br /&gt;
* '''''Довжина поля даних''''' (RDLEN);&lt;br /&gt;
* '''''Поле даних''''' (RDATA), формат і зміст якого залежить від типу запису.&lt;br /&gt;
&lt;br /&gt;
Найбільш важливі типи DNS-записів:&lt;br /&gt;
&lt;br /&gt;
* '''''Запис A''''' (''address record'') або запис адреси, що зв'язує ім'я хоста з IP адресою. Наприклад, запит A-запису на ім'я '''''referrals.icann.org''''' поверне його IP адресу - '''''192.0.34.164'''''&lt;br /&gt;
* '''''Запис AAAA''''' (''IPv6 address record'') зв'язує ім'я хоста з адресою протоколу '''IPv6'''. Наприклад, запит AAAA-запису на ім'я '''''K.ROOT-SERVERS.NET''''' поверне його '''IPv6''' адресу - '''''2001:7 fd:: 1'''''&lt;br /&gt;
* '''''Запис CNAME''''' (''canonical name record'') або канонічний запис імені (псевдонім) використовується для перенаправлення на інше ім'я&lt;br /&gt;
* '''''Запис MX''''' (''mail exchange'') або поштовий обмінник вказує сервер обміну поштою для даного домену.&lt;br /&gt;
* '''''Запис NS''''' (''name server'') вказує на DNS-сервер для даного домену.&lt;br /&gt;
* '''''Запис PTR''''' (''pointer'') або запис покажчика, що зв'язує IP адресу хоста з його канонічним ім'ям. Запит у домені '''''in-addr.arpa''''' на IP хоста в ''reverse'' формі поверне ім'я ('''FQDN''') даного хоста.&lt;br /&gt;
* '''''Запис SOA''''' (''Start of Authority'') або початковий запис зони вказує, на якому сервері зберігається еталонна інформація про даний домен, містить контактну інформацію особи, відповідального за дану зону, таймінги (параметри часу) кешування зонної інформації та взаємодії DNS-серверів.&lt;br /&gt;
* '''''Запис SRV''''' (''server selection'') вказує на сервери для сервісів, використовується, зокрема, для '''''Jabber''''' і '''''Active Directory'''''.&lt;br /&gt;
* '''''Запис TXT''''' коментарі або якась інша інформація&lt;br /&gt;
* '''''Запис HINFO''''' опис &amp;quot;заліза&amp;quot; комп'ютера&lt;br /&gt;
&lt;br /&gt;
'''Базовий формат запису виглядає так:'''&lt;br /&gt;
&lt;br /&gt;
[ім'я] [час] [клас] [тип] [дані]&lt;br /&gt;
&lt;br /&gt;
== Зарезервовані доменні імена ==&lt;br /&gt;
Документ RFC 2606 (Reserved Top Level DNS Names - Зарезервовані імена доменів верхнього рівня) визначає назви доменів, які слід використовувати в якості прикладів (наприклад, в документації), а також для тестування. Крім '''''example.com''''', '''''example.org''''' і '''''example.net''''', до цієї групи також входять '''''test''''', '''''invalid''''' та ін.&lt;br /&gt;
&lt;br /&gt;
== Інтернаціональні доменні імена ==&lt;br /&gt;
Доменне ім'я може складатися тільки з обмеженого набору '''ASCII''' символів, дозволяючи набрати адресу домену незалежно від мови користувача. '''ICANN''' затвердив засновану на '''''Punycode''''' систему '''IDNA''', перетворюючи будь-який рядок в кодуванні ''Unicode'' в допустимий DNS набір символів.&lt;br /&gt;
&lt;br /&gt;
== Програмне забезпечення DNS ==&lt;br /&gt;
Сервери імен:&lt;br /&gt;
* '''BIND''' (Berkeley Internet Name Domain)&lt;br /&gt;
* '''Djbdns''' (Daniel J. Bernstein 's DNS)&lt;br /&gt;
* '''MaraDNS'''&lt;br /&gt;
* '''NSD''' (Name Server Daemon)&lt;br /&gt;
* '''PowerDNS'''&lt;br /&gt;
* '''OpenDNS'''&lt;br /&gt;
* '''Microsoft DNS Server''' (в серверних версіях операційних систем Windows NT)&lt;br /&gt;
* '''MyDNS'''&lt;br /&gt;
&lt;br /&gt;
== Інформація про домен ==&lt;br /&gt;
Багато доменів верхнього рівня підтримують сервіс '''''whois''''', який дозволяє дізнатися, кому делеговано домен і іншу технічну інформацію.&lt;br /&gt;
&lt;br /&gt;
== Реєстрація домену ==&lt;br /&gt;
Реєстрація домену - процедура отримання доменного імені. Полягає у створенні записів, що вказують на адміністратора домену, в базі даних DNS. Порядок реєстрації та вимоги залежать від обраної доменної зони. Реєстрація домену може бути виконана як організацією-реєстратором, так і приватною особою, якщо це дозволяють правила обраної доменної зони.&lt;br /&gt;
&lt;br /&gt;
[[Служба DNS]]&lt;br /&gt;
&lt;br /&gt;
== [[Сторінка питань з DNS/DHCP]] ==&lt;br /&gt;
&lt;br /&gt;
[[category:Комп'ютерні мережі]]&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/DNS</id>
		<title>DNS</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/DNS"/>
				<updated>2014-01-16T15:31:44Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: /* Термінологія і принципи роботи */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|class=&amp;quot;wikitable&amp;quot; width=300px align=right&lt;br /&gt;
! Назва:&lt;br /&gt;
| Domain Name Server&lt;br /&gt;
|-&lt;br /&gt;
! Рівень (по моделі OSI):&lt;br /&gt;
| Прикладний&lt;br /&gt;
|-&lt;br /&gt;
! Сімейство:&lt;br /&gt;
| TCP/IP&lt;br /&gt;
|-&lt;br /&gt;
! Порт/ID:&lt;br /&gt;
| 53/TCP, 53/UDP&lt;br /&gt;
|-&lt;br /&gt;
! Призначення протоколу:&lt;br /&gt;
| Розширення доменних імен&lt;br /&gt;
|-&lt;br /&gt;
! Специфікація:&lt;br /&gt;
| RFC 1034 , RFC 1035 / STD 13&lt;br /&gt;
|-&lt;br /&gt;
! Основні реалізації (клієнти):&lt;br /&gt;
| Вбудована у всі мережеві ОС&lt;br /&gt;
|-&lt;br /&gt;
! Основні реалізації (сервери):&lt;br /&gt;
| BIND, PowerDNS або Microsoft DNS Server&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''DNS''' (англ. ''Domain Name System'' - система доменних імен) - це розподілена комп'ютерна система для отримання інформації про домени. Найчастіше використовується для отримання IP-адреси по імені хоста (комп'ютера або пристрою), отримання інформації про маршрутизацію пошти , обслуговуваних вузлах для протоколів у домені (SRV-запис).&lt;br /&gt;
&lt;br /&gt;
Розподілена база даних DNS підтримується за допомогою ієрархії DNS-серверів, взаємодіючи за певним протоколом.&lt;br /&gt;
&lt;br /&gt;
Основою DNS є представлення про ієрархічну структуру доменного імені та зонах. &lt;br /&gt;
*Кожен сервер, відповідаючи за ім'я, може делегувати відповідальність за подальшу частину домену іншому серверу (з адміністративної точки зору - іншій організації або людині), що дозволяє покласти відповідальність за актуальність інформації на сервери різноманітних організацій (людей), відповідаючи тільки за «свою» частину доменного імені.&lt;br /&gt;
&lt;br /&gt;
*Зона (zone) це окремо адмініструються частина дерева DNS. Наприклад, домен другого рівня '''''noao.edu''''' це окрема зона. Багато доменів другого рівня поділені на менші зони. Наприклад, університет може поділити свою зону на підзони по факультетах, а компанія може поділити себе на зони за принципом поділу на філії або відділи.&lt;br /&gt;
&lt;br /&gt;
== Ключові характеристики DNS ==&lt;br /&gt;
DNS володіє наступними характеристиками:&lt;br /&gt;
* '''''Розподільність адміністрування'''''. Відповідальність за різні частини ієрархічної структури несуть різні люди та організації.&lt;br /&gt;
* '''''Розподільність збереження інформації'''''. Кожен вузол мережі в обов'язковому порядку повинен зберігати тільки ті данні, які належать до його зону відповідальності і (можливо) адреси кінцевих DNS-серверів.&lt;br /&gt;
* '''''Кеширування інформації'''''. Вузол може зберігати деяку кількість даних не із власної зони відповідальності для зменшення навантаження на мережу.&lt;br /&gt;
* '''''Ієрархічна структура''''', у якій усі вузли об'єднані у дерево, а кожен вузол може або самостійно визначати роботу нижчих за ієрархію вузлів, або делегувати ( передавати) їх іншим вузлам.&lt;br /&gt;
* '''''Резервування'''''. За збереження та обслуговування своїх вузлів (зон) відповідають (зазвичай) декілька серверів, розподілених як фізично, так і логічно, що забезпечує зберігання даних та продовження роботи навіть у разі виходу з ладу одного з вузлів.&lt;br /&gt;
&lt;br /&gt;
DNS важлива для роботи мережі Інтернет, так як для з'єднання з вузлом необхідна інформація про його IP-адресу, а для людей легше запам'ятати символьні (зазвичай змістовні) адреси, ніж послідовність цифр IP-адрес. У деяких випадках це дозволяє використовувати віртуальні сервери, наприклад, HTTP-сервери, розрізняючи їх по імені запиту. Спочатку перетворення між доменними та IP-адресами відбувалося з використанням спеціального текстового файлу '''hosts''', який складався централізовано та автоматично відправлявся на кожну з машин у своїй локальній мережі. З ростом Мережі виникла необхідність в ефективному, автоматизованому механізмі, яким і стала DNS.&lt;br /&gt;
&lt;br /&gt;
DNS була розроблена Полом Мокапетрісом у 1983 році; оригінальне опис механізмів роботи міститься в стандартах RFC 882 та RFC 883. У 1987 публікація RFC 1034 і RFC 1035 змінила специфікацію DNS і скасувала RFC 882 та RFC 883 як застарілі.&lt;br /&gt;
&lt;br /&gt;
== Додаткові можливості ==&lt;br /&gt;
* Підтримка динамічних оновлень&lt;br /&gt;
* Захист даних ('''DNSSEC''') і транзакцій ('''TSIG''')&lt;br /&gt;
* Підтримка різноманітних типів інформації (SRV-записи)&lt;br /&gt;
&lt;br /&gt;
== Термінологія і принципи роботи ==&lt;br /&gt;
Основна область застосування DNS це перетворення імені хоста (Під &amp;quot;хостом&amp;quot; мається на увазі комп'ютер або сервер, підключеної до локальної мережі, або інтернету.) в IP-адресу та надання даних про маршрутизації пошти. &lt;br /&gt;
&lt;br /&gt;
Принцип роботи.&lt;br /&gt;
Коли користувач запускає веб-браузер в вводить назву домену сайту, його ПК відправляє запит до DNS-сервера інтернет-провайдера для отримання IP-адреси, на якому знаходиться домен (1).&lt;br /&gt;
Якщо DNS-сервери провайдера  не виявляють у своєму кеші інформації про запитуваній сайт, то відправляють запит на кореневі DNS-сервери (2).&lt;br /&gt;
&lt;br /&gt;
Кореневий DNS-сервер шукає в своїй базі даних інформацію про сервери імен хостинг-провайдера, на яких присутній цей сайт. Далі, він повідомляє з кешируючого DNS-сервера провайдера (3).&lt;br /&gt;
&lt;br /&gt;
Після того, як кешуючий DNS-сервер провайдера отримує інформацію про сервери імен провайдера він опитує будь-який з них (4) і, у разі отримання позитивного результату отримання IP-адреси (5), поміщає в кеш (Кешування використовується для того, щоб знизити як навантаження на інтернет-канали, так і для прискорення отримання результату запиту).&lt;br /&gt;
Після цього DNS-сервер провайдера передає IP-адреса браузеру користувача, який здійснив запит сайту (6).&lt;br /&gt;
&lt;br /&gt;
І вже після цього браузер, отримавши IP-адреса запитуваного сайту, переходить на сам сайт (7 і 8).&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:workDNS.jpg]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Ключовими поняттями DNS є:'''&lt;br /&gt;
* '''''Домен''''' (англ. domain - область) - вузол в дереві імен, разом з усіма підлеглими йому вузлами (якщо такі є), тобто іменована ''гілка'' або ''піддерево'' в дереві імен. Структура доменного імені зображає порядок проходження вузлів в ієрархії; доменне ім'я читається зліва направо від молодших доменів до доменів вищого рівня (в порядку підвищення значимості), кореневим доменом всієї системи є крапка ('.'), нижче йдуть домени першого рівня (географічні або тематичні ), потім - домени другого рівня, третього і т. д. (наприклад, для адреси '''ua.wikipedia.org''' домен першого рівня - '''org''', другого '''wikipedia''', третього '''ua'''). На практиці крапку в кінці імені часто опускають, але вона буває важлива у випадках поділу між відносними доменами і FQDN (англ. ''Fully Qualifed Domain Name'', повністю визначене ім'я домену).&lt;br /&gt;
* '''''Піддомен''''' (англ. subdomain) - підлеглий домен. (Наприклад, '''wikipedia.org''' - піддомен домену '''org''', а '''ua.wikipedia.org''' - домену '''wikipedia.org'''). Теоретично такий розподіл може досягати глибини 127 рівнів, а кожна мітка може містити до 63 символів, поки загальна довжина разом з точками не досягне 254 символів. Але на практиці реєстратори доменних імен використовують більш суворі обмеження. Наприклад, якщо у вас є домен виду '''mydomain.ru''', ви можете створити для нього різні піддомени виду '''mysite1.mydomain.ru''', '''mysite2.mydomain.ru''' і т. д.&lt;br /&gt;
* '''''Ресурсний запис''''' - одиниця зберігання і передачі інформації в DNS. Кожний ресурсний запис має ім'я (тобто прив'язаний до певного доменного імені, вузлу в дереві імен), тип і поле даних, формат і зміст якого залежить від типу.&lt;br /&gt;
* '''''Зона''''' - частина дерева доменних імен (включаючи ресурсні записи), що розміщується як єдине ціле на деякому сервері доменних імен (DNS-сервер), а частіше - одночасно на декількох серверах. Метою виділення частини дерева в окрему зону є передача відповідальності за відповідний Домен іншій особі або організації, так зване Делегування. Як зв'язкова частина дерева, зона всередині теж являє собою дерево. Якщо розглядати простір імен DNS як структуру із зон, а не окремих вузлів / імен, теж виходить дерево; виправдано казати про батьківські і дочірні зони, про старших і підлеглих. На практиці, більшість зон 0-го і 1-го рівня ('.', '''ru''', '''com''', ...) складаються з єдиного вузла, якому безпосередньо підпорядковуються дочірні зони. У великих корпоративних доменах (2-го і більше рівнів) іноді зустрічається утворення додаткових підлеглих рівнів без виділення їх у дочірні зони.&lt;br /&gt;
* '''''Делегування''''' - операція передачі відповідальності за частину дерева доменних імен іншій особі або організації. За рахунок делегування в DNS забезпечується розподільність адміністрування та зберігання. Технічно делегування виражається у виділенні цієї частини дерева в окрему зону, та розміщення цієї зони на DNS-сервер, керованому цією особою чи організацією. При цьому в батьківську зону включаються «склеюючи» ресурсні записи ('''NS''' і '''А'''), що містять покажчики на DNS-сервера дочірньої зони, а вся інша інформація, що відноситься до дочірньої зоні, зберігається вже на DNS-серверах дочірньої зони.&lt;br /&gt;
* '''''[[DNS сервер|DNS-сервер]]''''' - спеціалізоване ПО для обслуговування DNS, а також комп'ютер, на якому це ПЗ виконується. DNS-сервер може бути відповідальним за певні зони і / або може перенаправляти запити серверам, що знаходяться вище за ієрархією.&lt;br /&gt;
* '''''[[DNS клієнт|DNS-клієнт]]''''' - спеціалізована бібліотека (або програма) для роботи з DNS. У ряді випадків DNS-сервер виступає в ролі DNS-клієнта.&lt;br /&gt;
* '''''Авторитетність''''' (англ. authoritative) - ознака розміщення зони на DNS-сервері. Відповіді DNS-сервера можуть бути двох типів: ''авторитетні'' (коли сервер заявляє, що сам відповідає за зону) і ''неавторитетний'' (англ. Non-authoritative), коли сервер обробляє запит, і повертає відповідь інших серверів. У деяких випадках замість передачі запиту далі DNS-сервер може повернути вже відоме йому (за запитами раніше) значення (режим кешування).&lt;br /&gt;
* '''''[[DNS запити|DNS-запит]]''''' (англ. DNS query) - запит від клієнта (або сервера) серверу. Запит може бути ''рекурсивним'' або ''нерекурсивним''.&lt;br /&gt;
&lt;br /&gt;
Система DNS містить ієрархію DNS-серверів, відповідну до ієрархії зон. Кожна зона підтримується як мінімум одним авторитетним сервером DNS (від англ. ''Authoritative'' - авторитетний), на якому розташована інформація про домен.&lt;br /&gt;
&lt;br /&gt;
Ім'я та IP-адреса не тотожні - одина IP-адреса може мати безліч імен, що дозволяє підтримувати на одному комп'ютері безліч веб-сайтів (це називається віртуальний хостинг). Зворотне теж справедливо - одному імені можна порівнювати безліч IP-адрес: це дозволяє створювати балансування навантаження.&lt;br /&gt;
&lt;br /&gt;
Для підвищення стійкості системи використовується безліч серверів, що містять ідентичну інформацію, а в протоколі є засоби, що дозволяють підтримувати синхронність інформації, розташованої на різних серверах. Існує 13 кореневих серверів, їх адреси практично не змінюються.&lt;br /&gt;
&lt;br /&gt;
=== [[Рекурсія]] ===&lt;br /&gt;
&lt;br /&gt;
Терміном '''Рекурсія''' в DNS означають алгоритм поведінки '''DNS- сервера''', при якому сервер виконує від імені клієнта повний пошук потрібної інформації в усій системі DNS, при необхідності звертаючись до іншим '''DNS- серверам'''.&lt;br /&gt;
&lt;br /&gt;
'''DNS- запит''' може бути ''рекурсивним'' - що вимагає повного пошуку, - і ''нерекурсивним''  (чи ''ітеративним'') - що не вимагає повного пошуку.&lt;br /&gt;
&lt;br /&gt;
Аналогічно, '''DNS- сервер''' може бути ''рекурсивним''  (що уміє виконувати повний пошук) і ''нерекурсивним''  (що не уміє виконувати повний пошук). Деякі програми DNS- серверів, наприклад, BIND, можна конфігурувати так, щоб запити одних клієнтів виконувалися ''рекурсивно'', а запити інших - ''нерекурсивний''.&lt;br /&gt;
&lt;br /&gt;
При відповіді на ''нерекурсивний'' запит, а також - при невмінні або забороні виконувати ''рекурсивні'' запити, - DNS- сервер або повертає дані про зону, за яку він '''ответствен''', або повертає адреси серверів, які мають великий об'єм інформації про запрошену зону, чим сервер, що відповідає, найчастіше - адреси кореневих серверів.&lt;br /&gt;
&lt;br /&gt;
У разі ''рекурсивного'' запиту '''DNS- сервер''' опитує сервери(в порядку убування рівня зон в імені), поки не знайде відповідь або не виявить, що домен не існує. (На практиці пошук розпочинається з найбільш близьких до шуканого DNS- серверів, якщо інформація про них є в кеші і не застаріла, сервер може не просити інші DNS- сервери.)&lt;br /&gt;
&lt;br /&gt;
Розглянемо на прикладі роботу усієї системи.&lt;br /&gt;
&lt;br /&gt;
Припустимо, ми набрали в браузері адресу &amp;lt;tt&amp;gt;ru.wikipedia.org&amp;lt;/tt&amp;gt;. Браузер запитує у сервера DNS : &amp;quot;яка IP- адреса у &amp;lt;tt&amp;gt;ru.wikipedia.org&amp;lt;/tt&amp;gt;&amp;quot;?&lt;br /&gt;
Проте, сервер DNS може нічого не знати не лише про запрошене ім'я, але навіть про увесь домен &amp;lt;tt&amp;gt;wikipedia.org&amp;lt;/tt&amp;gt;.&lt;br /&gt;
В цьому випадку сервер звертається до ''кореневого серверу'' - наприклад, 198.41.0.4. Цей сервер повідомляє - &amp;quot;У мене немає інформації про цю адресу, але я знаю, що 204.74.112.1 є відповідальним за зону &amp;lt;tt&amp;gt;org&amp;lt;/tt&amp;gt;&amp;quot;. Тоді сервер DNS направляє свій запит до 204.74.112.1, але той відповідає &amp;quot;У мене немає інформації про цей сервер, але я знаю, що 207.142.131.234 є відповідальним за зону &amp;lt;tt&amp;gt;wikipedia.org&amp;lt;/tt&amp;gt;&amp;quot;. Нарешті, той же запит вирушає до третього DNS- сервера і отримує відповідь - IP- адреса, яка і передається клієнтові - браузеру.&lt;br /&gt;
&lt;br /&gt;
В даному випадку при дозволі імені, тобто в процесі пошуку IP по імені:&lt;br /&gt;
* браузер відправив відомому йому DNS- серверу ''рекурсивний'' запит - у відповідь на такий тип запиту сервер зобов'язаний повернути &amp;quot;готовий результат&amp;quot;, тобто IP- адреса, або порожня відповідь і код помилки NXDOMAIN;&lt;br /&gt;
* DNS- сервер, що отримав запит від браузеру, послідовно відправляв ''нерекурсивні'' запити, на які отримував від інших DNS- серверів відповіді, поки не отримав відповідь від сервера, відповідального за запрошену зону;&lt;br /&gt;
* інші згадувані DNS- сервери обробляли запити ''нерекурсивний''  (і, швидше за все, не стали б обробляти запити рекурсивно, навіть якщо б така вимога стояла в запиті).&lt;br /&gt;
&lt;br /&gt;
Іноді допускається, щоб запрошений сервер передавав ''рекурсивний'' запит &amp;quot;вищестоящому&amp;quot; DNS- серверу і чекав готової відповіді.&lt;br /&gt;
&lt;br /&gt;
При ''рекурсивній'' обробці запитів усі відповіді проходять через DNS- сервер, і він дістає можливість ''кешуровати'' їх. Повторний запит на ті ж імена зазвичай не йде далі ''за кеш'' сервера, звернення до інших серверів не відбувається взагалі. Допустимий час зберігання відповідей в ''кеші'' приходить разом з відповідями(поле ''TTL'' '''ресурсного запису''').&lt;br /&gt;
&lt;br /&gt;
Рекурсивні запити вимагають більше ресурсів від сервера(і створюють більше трафіку), так що зазвичай приймаються від &amp;quot;відомих&amp;quot; власникові сервера вузлів(наприклад, провайдер надає можливість робити рекурсивні запити тільки своїм клієнтам, в корпоративній мережі рекурсивні запити приймаються тільки з локального сегменту). Нерекурсивні запити зазвичай приймаються від усіх вузлів мережі(і змістовна відповідь дається тільки на запити про зону, яка розміщена на вузлі, на DNS- запит про інші зони зазвичай повертаються адреси інших серверів).&lt;br /&gt;
&lt;br /&gt;
=== Зворотний DNS- запит ===&lt;br /&gt;
DNS використовується в першу чергу для перетворення символьних імен в IP- адреси, але він також може виконувати зворотний процес. Для цього використовуються вже наявні засоби DNS. Річ у тому, що із записом DNS можуть бути зіставлені різні дані, у тому числі і яке-небудь символьне ім'я. Існує спеціальний домен &amp;lt;tt&amp;gt;in - addr.arpa&amp;lt;/tt&amp;gt;, записи в якому використовуються для перетворення IP- адрес в символьні імена. Наприклад, для отримання DNS- імені для адреси &amp;lt;tt&amp;gt;11.22.33.44&amp;lt;/tt&amp;gt; можна запросити у DNS- сервера запис &amp;lt;tt&amp;gt;44.33.22.11.in - addr.arpa&amp;lt;/tt&amp;gt;, і той поверне відповідне символьне ім'я. Зворотний порядок запису частин IP- адреси пояснюється тим, що в IP- адресах старші біти розташовані на початку, а в символьних DNS- іменах старші(що знаходяться ближче до кореня) частини розташовані у кінці.&lt;br /&gt;
&lt;br /&gt;
== Записи DNS ==&lt;br /&gt;
Записи DNS, або ''Ресурсні записи'' (англ. Resource Records, RR) - одиниці зберігання і передачі інформації в DNS. Кожна ресурсна запис складається з наступних полів:&lt;br /&gt;
&lt;br /&gt;
* '''''Ім'я''''' (NAME) - доменне ім'я, до якого прив'язана або якому «належить» дана ресурсна запис;&lt;br /&gt;
* '''''TTL''''' (Time To Live) - допустимий час зберігання даної ресурсної записи в кеші не відповідального DNS-сервера;&lt;br /&gt;
* '''''Тип''''' (TYPE) ресурсного запису - визначає формат і призначення даного ресурсного запису;&lt;br /&gt;
* '''''Клас''''' (CLASS) ресурсного запису; теоретично вважається, що DNS може використовуватися не тільки з TCP / IP, але і з іншими типами мереж, код у полі клас визначає тип мережі;&lt;br /&gt;
* '''''Довжина поля даних''''' (RDLEN);&lt;br /&gt;
* '''''Поле даних''''' (RDATA), формат і зміст якого залежить від типу запису.&lt;br /&gt;
&lt;br /&gt;
Найбільш важливі типи DNS-записів:&lt;br /&gt;
&lt;br /&gt;
* '''''Запис A''''' (''address record'') або запис адреси, що зв'язує ім'я хоста з IP адресою. Наприклад, запит A-запису на ім'я '''''referrals.icann.org''''' поверне його IP адресу - '''''192.0.34.164'''''&lt;br /&gt;
* '''''Запис AAAA''''' (''IPv6 address record'') зв'язує ім'я хоста з адресою протоколу '''IPv6'''. Наприклад, запит AAAA-запису на ім'я '''''K.ROOT-SERVERS.NET''''' поверне його '''IPv6''' адресу - '''''2001:7 fd:: 1'''''&lt;br /&gt;
* '''''Запис CNAME''''' (''canonical name record'') або канонічний запис імені (псевдонім) використовується для перенаправлення на інше ім'я&lt;br /&gt;
* '''''Запис MX''''' (''mail exchange'') або поштовий обмінник вказує сервер обміну поштою для даного домену.&lt;br /&gt;
* '''''Запис NS''''' (''name server'') вказує на DNS-сервер для даного домену.&lt;br /&gt;
* '''''Запис PTR''''' (''pointer'') або запис покажчика, що зв'язує IP адресу хоста з його канонічним ім'ям. Запит у домені '''''in-addr.arpa''''' на IP хоста в ''reverse'' формі поверне ім'я ('''FQDN''') даного хоста.&lt;br /&gt;
* '''''Запис SOA''''' (''Start of Authority'') або початковий запис зони вказує, на якому сервері зберігається еталонна інформація про даний домен, містить контактну інформацію особи, відповідального за дану зону, таймінги (параметри часу) кешування зонної інформації та взаємодії DNS-серверів.&lt;br /&gt;
* '''''Запис SRV''''' (''server selection'') вказує на сервери для сервісів, використовується, зокрема, для '''''Jabber''''' і '''''Active Directory'''''.&lt;br /&gt;
&lt;br /&gt;
== Зарезервовані доменні імена ==&lt;br /&gt;
Документ RFC 2606 (Reserved Top Level DNS Names - Зарезервовані імена доменів верхнього рівня) визначає назви доменів, які слід використовувати в якості прикладів (наприклад, в документації), а також для тестування. Крім '''''example.com''''', '''''example.org''''' і '''''example.net''''', до цієї групи також входять '''''test''''', '''''invalid''''' та ін.&lt;br /&gt;
&lt;br /&gt;
== Інтернаціональні доменні імена ==&lt;br /&gt;
Доменне ім'я може складатися тільки з обмеженого набору '''ASCII''' символів, дозволяючи набрати адресу домену незалежно від мови користувача. '''ICANN''' затвердив засновану на '''''Punycode''''' систему '''IDNA''', перетворюючи будь-який рядок в кодуванні ''Unicode'' в допустимий DNS набір символів.&lt;br /&gt;
&lt;br /&gt;
== Програмне забезпечення DNS ==&lt;br /&gt;
Сервери імен:&lt;br /&gt;
* '''BIND''' (Berkeley Internet Name Domain)&lt;br /&gt;
* '''Djbdns''' (Daniel J. Bernstein 's DNS)&lt;br /&gt;
* '''MaraDNS'''&lt;br /&gt;
* '''NSD''' (Name Server Daemon)&lt;br /&gt;
* '''PowerDNS'''&lt;br /&gt;
* '''OpenDNS'''&lt;br /&gt;
* '''Microsoft DNS Server''' (в серверних версіях операційних систем Windows NT)&lt;br /&gt;
* '''MyDNS'''&lt;br /&gt;
&lt;br /&gt;
== Інформація про домен ==&lt;br /&gt;
Багато доменів верхнього рівня підтримують сервіс '''''whois''''', який дозволяє дізнатися, кому делеговано домен і іншу технічну інформацію.&lt;br /&gt;
&lt;br /&gt;
== Реєстрація домену ==&lt;br /&gt;
Реєстрація домену - процедура отримання доменного імені. Полягає у створенні записів, що вказують на адміністратора домену, в базі даних DNS. Порядок реєстрації та вимоги залежать від обраної доменної зони. Реєстрація домену може бути виконана як організацією-реєстратором, так і приватною особою, якщо це дозволяють правила обраної доменної зони.&lt;br /&gt;
&lt;br /&gt;
[[Служба DNS]]&lt;br /&gt;
&lt;br /&gt;
== [[Сторінка питань з DNS/DHCP]] ==&lt;br /&gt;
&lt;br /&gt;
[[category:Комп'ютерні мережі]]&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%A4%D0%B0%D0%B9%D0%BB:WorkDNS.jpg</id>
		<title>Файл:WorkDNS.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%A4%D0%B0%D0%B9%D0%BB:WorkDNS.jpg"/>
				<updated>2014-01-16T15:29:01Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%A4%D0%B0%D0%B9%D0%BB:DNSwork.jpg</id>
		<title>Файл:DNSwork.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%A4%D0%B0%D0%B9%D0%BB:DNSwork.jpg"/>
				<updated>2014-01-16T15:22:30Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%97%D0%BD%D0%B0%D0%B9%D0%BE%D0%BC%D1%81%D1%82%D0%B2%D0%BE_%D0%B7_PHP_(%D0%BF%D1%80%D0%B8%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D1%8F,_%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D1%8F_%D0%B2_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82,_%D0%BE%D0%B1%D1%80%D0%BE%D0%B1%D0%BA%D0%B0,_%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%96_%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)</id>
		<title>Знайомство з PHP (призначення, включення в документ, обробка, базові налаштування)</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%97%D0%BD%D0%B0%D0%B9%D0%BE%D0%BC%D1%81%D1%82%D0%B2%D0%BE_%D0%B7_PHP_(%D0%BF%D1%80%D0%B8%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D1%8F,_%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D1%8F_%D0%B2_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82,_%D0%BE%D0%B1%D1%80%D0%BE%D0%B1%D0%BA%D0%B0,_%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%96_%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)"/>
				<updated>2013-05-27T10:31:01Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: /* ПРИЗНАЧЕННЯ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Знайомство з PHP'''==&lt;br /&gt;
'''PHP''' (англ. PHP: Hypertext Preprocessor - «PHP: препроцесор гіпертексту», англ. Personal Home Page Tools (застар.) - «Інструменти для створення персональних веб-сторінок») - скриптова мова програмування загального призначення, інтенсивно застосовується для розробки веб-додатків. В даний час підтримується переважною більшістю хостинг-провайдерів і є одним з лідерів серед мов програмування, що застосовуються для створення динамічних веб-сайтів.&lt;br /&gt;
Мова і його інтерпретатор розробляються групою ентузіастів в рамках проекту з відкритим кодом. Проект поширюється під власною ліцензією, несумісною з GNU GPL. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
PHP інтерпретується веб-сервером в HTML-код, який передається на сторону клієнта. На відміну від таких скриптових мов програмування, як JavaScript, користувач не має доступу до PHP-коду, що є перевагою з точки зору безпеки але значно погіршує інтерактивність сторінок. Але ніщо не забороняє використовувати РНР для генерування і JavaScript-кодів які виконаються вже на стороні клієнта.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''PHP''' - мова, яка може бути вбудованою безпосередньо в html-код сторінок, які, в свою чергу коректно будуть оброблені PHP -інтерпретатором. Механізм РНР просто починає виконувати код після першої екрануючої послідовності (&amp;lt;?) і продовжує виконання до того моменту, коли він зустріне парну екрануючу послідовність (?&amp;gt;).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PHP''' — мова, яка може бути вбудована безпосередньо в html-код сторінок, які, в свою чергу коректно будуть оброблені PHP -інтерпретатором. Механізм РНР просто починає виконувати код після першої екрануючої послідовності (&amp;lt;?) і продовжує виконання до того моменту, коли він зустріне парну екрануючу послідовність (?&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Велика різноманітність функцій PHP дають можливість уникнути написання багаторядкових призначених для користувача функцій на C або Pascal.&lt;br /&gt;
*Наявність інтерфейсів до багатьох баз даних&lt;br /&gt;
*в PHP вбудовані бібліотеки для роботи з MySQL, PostgreSQL, mSQL, Oracle, dbm, Hyperware, Informix, InterBase, Sybase.&lt;br /&gt;
*через стандарт відкритого інтерфейсу зв'язку з базами даних (Open Database Connectivity Standard — ODBC) можна підключатися до всіх баз даних, до яких існує драйвер.&lt;br /&gt;
*Традиційність&lt;br /&gt;
Мова РНР здаватиметься знайомою програмістам, що працюють в різних областях. Багато конструкцій мови запозичені з С, Perl. Код РНР дуже схожий на той, який зустрічається в типових програмах на С або Pascal. Це помітно знижує початкові зусилля при вивченні РНР. PHP — мова, що поєднує переваги Perl і С і спеціально спрямована на роботу в Інтернеті, мова з універсальним і зрозумілим синтаксисом. І хоча PHP є досить молодою мовою, вона здобула таку популярність серед web-програмістів, що в наш час є мало не найпопулярнішою мовою для створення веб-застосунків (скриптів).&lt;br /&gt;
*Наявність вихідного коду та безкоштовність&lt;br /&gt;
Стратегія Open Source, і розповсюдження початкових текстів програм в масах, безсумнівно справили благотворний вплив на багато проектів, в першу чергу — Linux хоч і успіх проекту Apache сильно підкріпив позиції прихильників Open Source. Сказане відноситься і до історії створення РНР, оскільки підтримка користувачів зі всього світу виявилася дуже важливим чинником в розвитку проекту РНР.&lt;br /&gt;
Ухвалення стратегії Open Source і безплатне розповсюдження початкових текстів РНР надало неоціниму послугу користувачам. Додатково, користувачі РНР в усьому світі є свого роду колективною службою підтримки, і в популярних електронних конференціях можна знайти відповіді навіть на найскладніші питання.&lt;br /&gt;
*Ефективність&lt;br /&gt;
Ефективність є дуже важливим чинником при програмуванні для середовищ розрахованих на багато користувачів, до яких належить і web. Важливою перевагою PHP є те, що ця мова належить до інтерпретованих. Це дозволяє обробляти сценарії з достатньо високою швидкістю. За деякими оцінками, більшість PHP-сценаріїв (особливо не дуже великих розмірів) обробляються швидше за аналогічні їм програми, написані на Perl. Проте, щоб не робили розробники PHP, виконувані файли, отримані за допомогою компіляції, працюватимуть значно швидше — в десятки, а іноді і в сотні разів. Але продуктивність PHP цілком достатня для створення цілком серйозних веб-застосунків.&lt;br /&gt;
===Перші версії===&lt;br /&gt;
Історія PHP починається з 1995 року, коли Расмус Лердорф (англ. Rasmus Lerdorf) створив простий застосунок мовою Perl, що аналізував відвідування користувачами його резюме на веб-сайті. Потім, коли цим застосунком вже користувалися кілька чоловік, а число охочих одержати його постійно збільшувалося, Лердорф назвав своє творіння Особисті інструменти домашньої сторінки англ. Personal Home Page Tools версія 1 і виставив для вільного завантаження. З цієї миті почався небувалий зліт популярності PHP.&lt;br /&gt;
&lt;br /&gt;
Як це завжди буває, терміново було потрібне доопрацювання і нові доповнення. Для їхньої реалізації Расмус створює нову версію пакету, тепер уже написану на С. Отриманий таким чином інструмент набуває робочої назви PHP/FI Персональна Домашня сторінка / Інтерпретатор Форм (англ. Personal Home Page / Forms Interpreter — ), надалі він також буде відомий під назвою PHP 2. Ця версія вже більшою мірою схожа на сьогоднішній PHP. Вона мала синтаксис і спосіб іменування змінних в стилі мови Perl, можливість вбудовування PHP операторів в html-код сторінки, автоматичну інтерпретацію форм, інтеграцію з базами даних. При цьому все працювало досить швидко, оскільки PHP прикомпилювалось до веб-серверу Apache. До 1997 року PHP використовувався вже на 50,000 доменах (не більше 1% всіх веб-серверів).&lt;br /&gt;
&lt;br /&gt;
У тому ж 1997 році до проекту PHP підключилися Зев Сураскі (англ. Zeev Suraski) і Енді Гутманс (англ. Andi Gutmans). Ці студенти Техніону, одного з найкращих ізраїльських університетів, намагалися використовувати PHP/FI для одного з комерційних університетських проектів. При цьому їм довелося зіткнутися з багатьма труднощами і обмеженнями цієї технології. Вивчаючи початковий код PHP 2, Зеєв і Енді дійшли висновку про необхідність доопрацювання, а точніше істотної переробки PHP, особливо в плані синтаксису мови. Протягом декількох місяців вони блискуче впоралися з цим завданням.&lt;br /&gt;
&lt;br /&gt;
Закінчивши роботу Зеєв і Енді домовились з Расмусом про співпрацю в галузі розвитку та вдосконалення мови. З цієї миті з'являється PHP Group — група однодумців, що працюють над розвитком технології PHP. Одержаний продукт з'явився на світ у 1998 році під назвою PHP 3.&lt;br /&gt;
&lt;br /&gt;
При цьому головною особливість PHP 3 була можливість розширення ядра, що привернуло до роботи над PHP безліч сторонніх розробників, що створюють спеціалізовані модулі. Їх наявність дала PHP можливість працювати з величезною кількістю баз даних, протоколів, підтримувати велике число API. До кінця 1998 кількість користувачів PHP перевалила за 100000, а PHP був вже встановлений на не менше ніж 10% серверах Інтернету. У той ж час значному поширенню даної мови сприяли публікації в електронній пресі та вихід книжок для вивчення PHP.&lt;br /&gt;
&lt;br /&gt;
Відразу ж після виходу PHP 3, Енді Гутманс і Зеєв Сураскі почали переробку ядра PHP. В першу чергу належало вирішити проблему підвищення продуктивності. Новий продукт, названий Zend Engine (від імен творців: Zeev і Andi), успішно справлявся з поставленим завданням і був реалізований в 1999 році. Основними реалізованними ідеями є можливість компіляції сценарію у виконуваний модуль, за рахунок чого продуктивність можна було підняти на порядок.&lt;br /&gt;
===Визнання та поширення===&lt;br /&gt;
PHP 4, що працює на цьому ядрі, вийшов в 2000 році. На додаток до збільшення продуктивності, PHP 4 мав нові можливості щодо підтримки сесій, буферизацію виводу, безпечні способи обробки інформації, що вводиться користувачем, і нові мовні конструкції. З виходом 4 версії PHP став використовуватися вже на більш ніж 20% доменів Інтернету.&lt;br /&gt;
&lt;br /&gt;
За час з 2000 по 2004 рік продовжувалися активні роботи з покращення 4 версії, але майже відразу PHP Group приступила до продумування можливостей нової версії. В першу чергу було вирішено підсилити об'єктні можливості мови, що дозволяло використовувати його для реалізації масштабних проектів. Роботи із створення версії 5 велися тривалий час, в них брало участь рекордна кількість фахівців, зокрема Стерлінг Хьюз (Шаблон:Lang en:) і Маркус Бергера (Шаблон:Lang en:).&lt;br /&gt;
&lt;br /&gt;
У липні 2004 року виходить офіційний реліз PHP 5. В першу чергу, як і планувалося, було перероблено весь механізм роботи з об'єктами. І якщо в попередніх версіях об'єктно-орієнтоване програмування на PHP було можливе в мінімальному ступені, а тому і використовувалося на практиці не часто, то PHP 5 володіє прекрасним потенціалом реалізації об'єктного програмування. Окрім цього, PHP збагатився рядом цінних розширень для роботи з XML, різними джерелами даних, генерації графіки і інше.&lt;br /&gt;
&lt;br /&gt;
Серед інших украй корисних доповнень в PHP 5 слід зазначити нову схему обробки виключень. Конструкція try/catch/throw дозволяє весь код обробки помилок локалізувати в одному місці сценарію.&lt;br /&gt;
&lt;br /&gt;
Всі основні бібліотеки для роботи з XML, запозичені в PHP 4, були піддані серйозній переробці. Такі популярні розширення, як SAX, DOM і XSLT, тепер використовують інструмент libxml2, що робить їх ще ефективнішими.&lt;br /&gt;
&lt;br /&gt;
У PHP 5 також включені два нові модулі для роботи з протоколами — SimpleXML і SOAP. SimpleXML дозволяє значно спростити роботу з XML-даними, представляючи вміст XML-документа у вигляді PHP-об'єкта. Розширення SOAP дозволяє будувати на PHP сценарії, що обмінюються інформацією з іншими застосунками за допомогою XML-повідомлень поверх існуючих веб-протоколів, наприклад HTTP. Модуль для роботи з SOAP для PHP 5 надає розробникам засіб для достатньо швидкого створення ефективних SOAP-клієнтів і SOAP-серверів.[1]&lt;br /&gt;
&lt;br /&gt;
Новий модуль PHP 5 MySQLi (MySQL Improved) призначений для роботи з MySQL-сервером версій 4.1.2 і вище, реалізовуючи не тільки процедурний, але і об'єктно-орієнтований інтерфейс до MySQL. Додаткові можливості цього модуля включають — SSL, контроль транзакцій, підтримка реплікації і ін. Очевидно, що, на цьому історія PHP не закінчується. Слід очікувати наступних версій мови із розширеними можливостями.&lt;br /&gt;
===Додаткові можливості===&lt;br /&gt;
Мова явно підтримує HTTP cookies відповідно до специфікацій Netscape. Це дозволяє проводити встановлення та читання невеликих сегментів даних на стороні клієнта.&lt;br /&gt;
&lt;br /&gt;
PHP надає можливість організації роботи з користувачем протягом сеансів (сесій). В сесії можна зберігати різні дані, включаючи об'єкти.&lt;br /&gt;
&lt;br /&gt;
===Недоліки PHP===&lt;br /&gt;
*Незручність дизайну мови&lt;br /&gt;
*Змінні з символом «$»&lt;br /&gt;
*Складні назви поширених функцій (html_entities_decode, mysql_select_db, nl2br тощо)&lt;br /&gt;
*Не підтримується Unicode в версіях до 6.0&lt;br /&gt;
*Непередбачуваність нових версій PHP.&lt;br /&gt;
&lt;br /&gt;
=='''ПРИЗНАЧЕННЯ'''==&lt;br /&gt;
У області програмування Мережа PHP - одна з найпопулярніших скриптових мов (разом з JSP, Perl і мовами, використовуваними в ASP.NET) завдяки своїй простоті, швидкості виконання, багатій функціональності, багатоплатформеності і розповсюдженню початкових кодів на основі ліцензії PHP.&lt;br /&gt;
&lt;br /&gt;
Популярність у галузі побудови веб-сайтів визначається наявністю великого набору вбудованих засобів для розробки веб-додатків.&lt;br /&gt;
&lt;br /&gt;
Основні з них:&lt;br /&gt;
&lt;br /&gt;
* Автоматичне вилучення POST і GET-параметрів, а також змінних оточення веб-сервера в зумовлені масиви;&lt;br /&gt;
* Файлові функції успішно обробляють як локальні, так і віддалені файли;&lt;br /&gt;
* Автоматична відправка HTTP-заголовків;&lt;br /&gt;
* Робота з cookies і сесіями;&lt;br /&gt;
* Обробка файлів, що завантажуються на сервер;&lt;br /&gt;
* Робота з HTTP заголовками і HTTP авторизацією;&lt;br /&gt;
* Робота з XForms;&lt;br /&gt;
* Робота з віддаленими файлами і сокетами.&lt;br /&gt;
&lt;br /&gt;
В даний час PHP використовується сотнями тисяч розробників. Згідно з рейтингом Tiobe, що базується на даних пошукових систем, у грудні 2009 року PHP знаходиться на 3 місці серед мов програмування (поступаючись Java і C), піднявшись за рік на дві позиції. До найбільших сайтів, що використовують PHP, відносяться Facebook, В контакті, Wikipedia, YouTube.&lt;br /&gt;
&lt;br /&gt;
'''Існують три основні області застосування PHP.'''&lt;br /&gt;
&lt;br /&gt;
* Створення скриптів для виконання на стороні сервера. PHP традиційно і найбільш широко використовується саме таким чином. Для цього вам будуть потрібні три речі. Інтерпретатор PHP (у вигляді програми CGI або серверного модуля), веб-сервер і браузер. Для того щоб можна було переглядати результати виконання PHP-скриптів в браузері, потрібен працюючий веб-сервер і встановлений PHP. Дивитись висновок PHP-програми можна в браузері, отримавши PHP-сторінку, сгенерированную сервером.&lt;br /&gt;
* Створення скриптів для виконання в командному рядку. Ви можете створити PHP-скрипт, здатний запускатися без сервера або браузера. Все, що вам потрібно - парсер PHP. Такий спосіб використання PHP ідеально підходить для скриптів, які повинні виконуватися регулярно, наприклад, за допомогою cron (на платформах * nix або Linux) або за допомогою планувальника завдань (Task Scheduler) на платформах Windows. Ці скрипти також можуть бути використані в задачах простої обробки текстів.&lt;br /&gt;
* Створення віконних додатків, що виконуються на стороні клієнта. Можливо, PHP є не найкращим мовою для створення подібних додатків, але, якщо ви дуже добре знаєте PHP і хотіли б використовувати деякі його можливості у своїх клієнтських додатках, ви можете використовувати PHP-GTK для створення таких додатків. Подібним чином ви можете створювати і крос-платформні додатки. PHP-GTK є розширенням PHP і не поставляється разом з основним дистрибутивом PHP.&lt;br /&gt;
&lt;br /&gt;
PHP доступний для більшості операційних систем, включаючи Linux, багато модифікації Unix (такі як HP-UX, Solaris і OpenBSD), Microsoft Windows, Mac OS X, RISC OS, і багато інших. Також в PHP включена підтримка більшості сучасних веб-серверів, таких як Apache, IIS та багатьох інших.&lt;br /&gt;
&lt;br /&gt;
PHP здатний генерувати не тільки HTML. Доступно формування зображень, файлів PDF і навіть роликів Flash (з використанням libswf і Ming), створюваних «на льоту». PHP також здатний генерувати будь-які текстові дані, такі, як XHTML і інші XML-файли. PHP може здійснювати автоматичну генерацію таких файлів і зберігати їх у файловій системі вашого сервера замість того, щоб віддавати клієнту, організовуючи, таким чином, серверний кеш для вашого динамічного контенту.&lt;br /&gt;
&lt;br /&gt;
Одним із значних переваг PHP є підтримка широкого кола баз даних. Створити скрипт, який використовує бази даних, - неймовірно просто. Можна скористатися розширенням, специфічним для окремої бази даних (таким як mysql) або використовувати рівень абстракції від бази даних, такий як PDO, або під'єднатися до будь-якій базі даних, підтримує Відкритий Стандарт Сполуки Баз Даних (ODBC), за допомогою однойменного розширення ODBC. Для інших баз даних, таких як CouchDB, можна скористатися cURL або сокетами.&lt;br /&gt;
&lt;br /&gt;
PHP має багато можливостей по обробці тексту, включаючи регулярні вирази Perl (PCRE) і багато інших розширень та інструментів для обробки і доступу до XML документами. У PHP обробка XML-документів стандартизована і відбувається на базі потужної бібліотеки libxml2, розширивши можливості обробки XML додаванням нових розширень SimpleXML, XMLReader і XMLWriter.&lt;br /&gt;
&lt;br /&gt;
=='''БАЗОВІ НАЛАШТУВАННЯ'''==&lt;br /&gt;
Файл '''dbsettings.php''' відповідає за базові налаштування системи.&lt;br /&gt;
&lt;br /&gt;
Необхідно встановити такі значення:&lt;br /&gt;
&lt;br /&gt;
'''$serverDB''' - cервер баз даних, який використовується на хостингу, можливі наступні значення: 0 - використовується сервер баз даних MySQL (використовується на переважній більшості хостингових платформ). Рекомендується використовувати саме його, так як CMS будувалася орієнтованою саме на нього. 1 - використовується сервер баз даних PostgreSQL. Для версії 1.4 на даний момент підтримка PostgerSQL неповна. Рекомендується використовувати лише на CMS версії 1.3&lt;br /&gt;
&lt;br /&gt;
'''$hostNameDB''' - ім'я серверу бази даних. Як правило, необхідно свтановити як localhost, якщо сервер баз даних розміщений на тому ж комп'ютері, що й хостинг.&lt;br /&gt;
&lt;br /&gt;
'''$nameDB''' - назва бази даних, в якій зберігатимуться всі налаштування та матеріали сайту. Базу даних необхідно створити до інсталяції системи.&lt;br /&gt;
&lt;br /&gt;
'''$userNameDB''' - ім'я користувача, що має доступ до бази даних, вказаної в $nameDB.&lt;br /&gt;
&lt;br /&gt;
'''$userPasswordDB''' - пароль користувача бази даних, який був вказаний в $userNameDB.&lt;br /&gt;
&lt;br /&gt;
'''$tableprefix''' - префікс перед кожною таблицею бази даних. Його рекомендується використовувати тоді, коли Ви використовуєте одну базу даних для декількох систем.&lt;br /&gt;
&lt;br /&gt;
'''$tableusersprefix''' - префікс перед назвою таблиці users. Рекомендується використовувати, якщо ви використовуєте багатомовну версію SiMan CMS та хочете, щоб в усіх версіях був спільний набір користувачів.&lt;br /&gt;
&lt;br /&gt;
'''$session_prefix''' - підвищує безпеку при використанні декількох SiMan CMS на одному хості. Обов'язково змініть його!&lt;br /&gt;
&lt;br /&gt;
'''$_settings['use_protect_code']''' - підвищує безпеку, використовуючи графічне зображення 4-х значного коду, який генерується при реєстрації нового користувача чи інших діях, які вимагають антибот-перевірки (1 - ввімкнуто, 0 - вимкнуто).&lt;br /&gt;
&lt;br /&gt;
'''$dontExecuteUsersSqlInScript''' - дозволяє (0) або забороняє (1) виконання SQL-запитів, введених відвідувачем сайту. Рекомендується встановити значення 1 для покращення безпеки системи, але це відключить деякі можливості, наприклад імпорт бази даних безпосередньо з скрипту.&lt;br /&gt;
&lt;br /&gt;
===Синтаксис===&lt;br /&gt;
Синтаксис PHP подібний синтаксису мови Сі. Деякі елементи, такі як асоціативні масиви і цикл foreach, запозичені з Perl.&lt;br /&gt;
&lt;br /&gt;
Для роботи програми не потрібно описувати будь-які змінні, використовувані модулі і т. п. Будь-яка програма може починатися безпосередньо з оператора PHP.&lt;br /&gt;
&lt;br /&gt;
Найпростіша програма Hello world на PHP виглядає наступним чином:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?php&lt;br /&gt;
  echo 'Hello, world!'; &lt;br /&gt;
  ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Також можливий більш короткий варіант виведення рядка:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?= 'Hello, world!' ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Відкриваючий тег виду &amp;lt;? = Використовується для скороченого запису конструкцій, які використовуються для виведення рядка.&lt;br /&gt;
&lt;br /&gt;
PHP виконує код, що знаходиться всередині обмежувачів, таких як &amp;lt;? Php?&amp;gt;. Все, що знаходиться поза обмежувачів, виводиться без змін. В основному це використовується для вставки PHP-коду в HTML-документ, наприклад, так:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;html&amp;gt;&lt;br /&gt;
 &amp;lt;head&amp;gt;&lt;br /&gt;
 &amp;lt;title&amp;gt;Тестируем PHP&amp;lt;/title&amp;gt;&lt;br /&gt;
 &amp;lt;/head&amp;gt;&lt;br /&gt;
 &amp;lt;body&amp;gt;&lt;br /&gt;
 &amp;lt;?php echo 'Hello, world!'; ?&amp;gt;&lt;br /&gt;
 &amp;lt;/body&amp;gt;&lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Крім обмежувачів &amp;lt;? Php?&amp;gt;, Допускається використання додаткових варіантів, таких як &amp;lt;? ?&amp;gt; і &amp;lt;script language=&amp;quot;php&amp;quot;&amp;gt; &amp;lt;/ script&amp;gt;. Крім того, до версії 6.0 допускається використання обмежувачів мови програмування ASP &amp;lt;%%&amp;gt; (конструкції &amp;lt;??&amp;gt; І &amp;lt;%%&amp;gt; можуть бути вимкнені в конфігураційному файлі php.ini).&lt;br /&gt;
&lt;br /&gt;
Імена змінних починаються з символу $, тип змінної оголошувати не потрібно. Імена змінних, функцій і класів чутливі до регістру. Константи також чутливі до регістру. Змінні обробляються в рядках, взятих в апострофи або подвійні лапки, і heredoc-рядках (рядках, створених за допомогою оператора &amp;lt;&amp;lt;&amp;lt;).&lt;br /&gt;
&lt;br /&gt;
PHP розглядає перехід на новий рядок як пробіл, так само як HTML і інші мови з вільним форматом. Інструкції поділяються за допомогою крапки з комою (;), за винятком деяких випадків, після оголошення конструкції if / else і циклів.&lt;br /&gt;
&lt;br /&gt;
Змінні в функцію можна передавати як за значенням, так і за посиланням (використовується знак &amp;amp;).&lt;br /&gt;
&lt;br /&gt;
PHP підтримує три типи коментарів: у стилі мови Сі (обмежені / ** /), C + + (починаються з / / і йдуть до кінця рядка) і оболонки UNIX (з # до кінця рядка).&lt;br /&gt;
&lt;br /&gt;
===Особливості інтерпретатора===&lt;br /&gt;
PHP-скрипти зазвичай обробляються інтерпретатором в порядку, що забезпечує кроссплатформенність розробленого додатка:&lt;br /&gt;
&lt;br /&gt;
1. лексичний аналіз вихідного коду та генерація лексем,&lt;br /&gt;
&lt;br /&gt;
2. синтаксичний аналіз отриманих лексем,&lt;br /&gt;
&lt;br /&gt;
3. генерація байт-коду&lt;br /&gt;
&lt;br /&gt;
4. виконання байт-коду інтерпретатором (без створення виконуваного файлу).&lt;br /&gt;
&lt;br /&gt;
Для збільшення швидкодії додатків можливе використання спеціального програмного забезпечення, так званих акселераторів. Принцип їх роботи полягає в кешуванні одного разу згенерованого байт-коду в пам'яті і / або на диску, таким чином, з процесу роботи програми виключаються етапи 1-3, що в загальному випадку веде до значного прискорення роботи.&lt;br /&gt;
&lt;br /&gt;
Важливою особливістю є те, що розробнику немає необхідності піклуватися про розподіл і звільнення пам'яті. Ядро PHP реалізує засоби для автоматичного керування пам'яттю. Вся виділена пам'ять повертається системі після завершення роботи скрипта.&lt;br /&gt;
&lt;br /&gt;
Інтерпретатор PHP має спеціальний конфігураційний файл - '''php.ini''', що містить безліч налаштувань, зміна яких впливає на поведінку інтерпретатора. Є можливість відключити використання ряду функцій, змінити обмеження на використовувану скриптом оперативну пам'ять, час виконання, обсяг завантажуваних файлів, налаштувати журнал роботи помилок, роботу з сесіями та поштовими сервісами, підключити додаткові розширення, а також багато іншого. Можливо дроблення великого конфігураційного файлу на частини. Наприклад, широко поширена практика винесення налаштувань розширень в окремі файли. Параметри інтерпретатора можуть бути перевизначені в файлах конфігурації HTTP-сервера (наприклад,. Htaccess в Apache) або в самому скрипті під час виконання за допомогою команди ini_set.&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%97%D0%BD%D0%B0%D0%B9%D0%BE%D0%BC%D1%81%D1%82%D0%B2%D0%BE_%D0%B7_PHP_(%D0%BF%D1%80%D0%B8%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D1%8F,_%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D1%8F_%D0%B2_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82,_%D0%BE%D0%B1%D1%80%D0%BE%D0%B1%D0%BA%D0%B0,_%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%96_%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)</id>
		<title>Знайомство з PHP (призначення, включення в документ, обробка, базові налаштування)</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%97%D0%BD%D0%B0%D0%B9%D0%BE%D0%BC%D1%81%D1%82%D0%B2%D0%BE_%D0%B7_PHP_(%D0%BF%D1%80%D0%B8%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D1%8F,_%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D1%8F_%D0%B2_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82,_%D0%BE%D0%B1%D1%80%D0%BE%D0%B1%D0%BA%D0%B0,_%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%96_%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)"/>
				<updated>2013-05-27T10:20:08Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: /* БАЗОВІ НАЛАШТУВАННЯ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Знайомство з PHP'''==&lt;br /&gt;
'''PHP''' (англ. PHP: Hypertext Preprocessor - «PHP: препроцесор гіпертексту», англ. Personal Home Page Tools (застар.) - «Інструменти для створення персональних веб-сторінок») - скриптова мова програмування загального призначення, інтенсивно застосовується для розробки веб-додатків. В даний час підтримується переважною більшістю хостинг-провайдерів і є одним з лідерів серед мов програмування, що застосовуються для створення динамічних веб-сайтів.&lt;br /&gt;
Мова і його інтерпретатор розробляються групою ентузіастів в рамках проекту з відкритим кодом. Проект поширюється під власною ліцензією, несумісною з GNU GPL. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
PHP інтерпретується веб-сервером в HTML-код, який передається на сторону клієнта. На відміну від таких скриптових мов програмування, як JavaScript, користувач не має доступу до PHP-коду, що є перевагою з точки зору безпеки але значно погіршує інтерактивність сторінок. Але ніщо не забороняє використовувати РНР для генерування і JavaScript-кодів які виконаються вже на стороні клієнта.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''PHP''' - мова, яка може бути вбудованою безпосередньо в html-код сторінок, які, в свою чергу коректно будуть оброблені PHP -інтерпретатором. Механізм РНР просто починає виконувати код після першої екрануючої послідовності (&amp;lt;?) і продовжує виконання до того моменту, коли він зустріне парну екрануючу послідовність (?&amp;gt;).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PHP''' — мова, яка може бути вбудована безпосередньо в html-код сторінок, які, в свою чергу коректно будуть оброблені PHP -інтерпретатором. Механізм РНР просто починає виконувати код після першої екрануючої послідовності (&amp;lt;?) і продовжує виконання до того моменту, коли він зустріне парну екрануючу послідовність (?&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Велика різноманітність функцій PHP дають можливість уникнути написання багаторядкових призначених для користувача функцій на C або Pascal.&lt;br /&gt;
*Наявність інтерфейсів до багатьох баз даних&lt;br /&gt;
*в PHP вбудовані бібліотеки для роботи з MySQL, PostgreSQL, mSQL, Oracle, dbm, Hyperware, Informix, InterBase, Sybase.&lt;br /&gt;
*через стандарт відкритого інтерфейсу зв'язку з базами даних (Open Database Connectivity Standard — ODBC) можна підключатися до всіх баз даних, до яких існує драйвер.&lt;br /&gt;
*Традиційність&lt;br /&gt;
Мова РНР здаватиметься знайомою програмістам, що працюють в різних областях. Багато конструкцій мови запозичені з С, Perl. Код РНР дуже схожий на той, який зустрічається в типових програмах на С або Pascal. Це помітно знижує початкові зусилля при вивченні РНР. PHP — мова, що поєднує переваги Perl і С і спеціально спрямована на роботу в Інтернеті, мова з універсальним і зрозумілим синтаксисом. І хоча PHP є досить молодою мовою, вона здобула таку популярність серед web-програмістів, що в наш час є мало не найпопулярнішою мовою для створення веб-застосунків (скриптів).&lt;br /&gt;
*Наявність вихідного коду та безкоштовність&lt;br /&gt;
Стратегія Open Source, і розповсюдження початкових текстів програм в масах, безсумнівно справили благотворний вплив на багато проектів, в першу чергу — Linux хоч і успіх проекту Apache сильно підкріпив позиції прихильників Open Source. Сказане відноситься і до історії створення РНР, оскільки підтримка користувачів зі всього світу виявилася дуже важливим чинником в розвитку проекту РНР.&lt;br /&gt;
Ухвалення стратегії Open Source і безплатне розповсюдження початкових текстів РНР надало неоціниму послугу користувачам. Додатково, користувачі РНР в усьому світі є свого роду колективною службою підтримки, і в популярних електронних конференціях можна знайти відповіді навіть на найскладніші питання.&lt;br /&gt;
*Ефективність&lt;br /&gt;
Ефективність є дуже важливим чинником при програмуванні для середовищ розрахованих на багато користувачів, до яких належить і web. Важливою перевагою PHP є те, що ця мова належить до інтерпретованих. Це дозволяє обробляти сценарії з достатньо високою швидкістю. За деякими оцінками, більшість PHP-сценаріїв (особливо не дуже великих розмірів) обробляються швидше за аналогічні їм програми, написані на Perl. Проте, щоб не робили розробники PHP, виконувані файли, отримані за допомогою компіляції, працюватимуть значно швидше — в десятки, а іноді і в сотні разів. Але продуктивність PHP цілком достатня для створення цілком серйозних веб-застосунків.&lt;br /&gt;
===Перші версії===&lt;br /&gt;
Історія PHP починається з 1995 року, коли Расмус Лердорф (англ. Rasmus Lerdorf) створив простий застосунок мовою Perl, що аналізував відвідування користувачами його резюме на веб-сайті. Потім, коли цим застосунком вже користувалися кілька чоловік, а число охочих одержати його постійно збільшувалося, Лердорф назвав своє творіння Особисті інструменти домашньої сторінки англ. Personal Home Page Tools версія 1 і виставив для вільного завантаження. З цієї миті почався небувалий зліт популярності PHP.&lt;br /&gt;
&lt;br /&gt;
Як це завжди буває, терміново було потрібне доопрацювання і нові доповнення. Для їхньої реалізації Расмус створює нову версію пакету, тепер уже написану на С. Отриманий таким чином інструмент набуває робочої назви PHP/FI Персональна Домашня сторінка / Інтерпретатор Форм (англ. Personal Home Page / Forms Interpreter — ), надалі він також буде відомий під назвою PHP 2. Ця версія вже більшою мірою схожа на сьогоднішній PHP. Вона мала синтаксис і спосіб іменування змінних в стилі мови Perl, можливість вбудовування PHP операторів в html-код сторінки, автоматичну інтерпретацію форм, інтеграцію з базами даних. При цьому все працювало досить швидко, оскільки PHP прикомпилювалось до веб-серверу Apache. До 1997 року PHP використовувався вже на 50,000 доменах (не більше 1% всіх веб-серверів).&lt;br /&gt;
&lt;br /&gt;
У тому ж 1997 році до проекту PHP підключилися Зев Сураскі (англ. Zeev Suraski) і Енді Гутманс (англ. Andi Gutmans). Ці студенти Техніону, одного з найкращих ізраїльських університетів, намагалися використовувати PHP/FI для одного з комерційних університетських проектів. При цьому їм довелося зіткнутися з багатьма труднощами і обмеженнями цієї технології. Вивчаючи початковий код PHP 2, Зеєв і Енді дійшли висновку про необхідність доопрацювання, а точніше істотної переробки PHP, особливо в плані синтаксису мови. Протягом декількох місяців вони блискуче впоралися з цим завданням.&lt;br /&gt;
&lt;br /&gt;
Закінчивши роботу Зеєв і Енді домовились з Расмусом про співпрацю в галузі розвитку та вдосконалення мови. З цієї миті з'являється PHP Group — група однодумців, що працюють над розвитком технології PHP. Одержаний продукт з'явився на світ у 1998 році під назвою PHP 3.&lt;br /&gt;
&lt;br /&gt;
При цьому головною особливість PHP 3 була можливість розширення ядра, що привернуло до роботи над PHP безліч сторонніх розробників, що створюють спеціалізовані модулі. Їх наявність дала PHP можливість працювати з величезною кількістю баз даних, протоколів, підтримувати велике число API. До кінця 1998 кількість користувачів PHP перевалила за 100000, а PHP був вже встановлений на не менше ніж 10% серверах Інтернету. У той ж час значному поширенню даної мови сприяли публікації в електронній пресі та вихід книжок для вивчення PHP.&lt;br /&gt;
&lt;br /&gt;
Відразу ж після виходу PHP 3, Енді Гутманс і Зеєв Сураскі почали переробку ядра PHP. В першу чергу належало вирішити проблему підвищення продуктивності. Новий продукт, названий Zend Engine (від імен творців: Zeev і Andi), успішно справлявся з поставленим завданням і був реалізований в 1999 році. Основними реалізованними ідеями є можливість компіляції сценарію у виконуваний модуль, за рахунок чого продуктивність можна було підняти на порядок.&lt;br /&gt;
===Визнання та поширення===&lt;br /&gt;
PHP 4, що працює на цьому ядрі, вийшов в 2000 році. На додаток до збільшення продуктивності, PHP 4 мав нові можливості щодо підтримки сесій, буферизацію виводу, безпечні способи обробки інформації, що вводиться користувачем, і нові мовні конструкції. З виходом 4 версії PHP став використовуватися вже на більш ніж 20% доменів Інтернету.&lt;br /&gt;
&lt;br /&gt;
За час з 2000 по 2004 рік продовжувалися активні роботи з покращення 4 версії, але майже відразу PHP Group приступила до продумування можливостей нової версії. В першу чергу було вирішено підсилити об'єктні можливості мови, що дозволяло використовувати його для реалізації масштабних проектів. Роботи із створення версії 5 велися тривалий час, в них брало участь рекордна кількість фахівців, зокрема Стерлінг Хьюз (Шаблон:Lang en:) і Маркус Бергера (Шаблон:Lang en:).&lt;br /&gt;
&lt;br /&gt;
У липні 2004 року виходить офіційний реліз PHP 5. В першу чергу, як і планувалося, було перероблено весь механізм роботи з об'єктами. І якщо в попередніх версіях об'єктно-орієнтоване програмування на PHP було можливе в мінімальному ступені, а тому і використовувалося на практиці не часто, то PHP 5 володіє прекрасним потенціалом реалізації об'єктного програмування. Окрім цього, PHP збагатився рядом цінних розширень для роботи з XML, різними джерелами даних, генерації графіки і інше.&lt;br /&gt;
&lt;br /&gt;
Серед інших украй корисних доповнень в PHP 5 слід зазначити нову схему обробки виключень. Конструкція try/catch/throw дозволяє весь код обробки помилок локалізувати в одному місці сценарію.&lt;br /&gt;
&lt;br /&gt;
Всі основні бібліотеки для роботи з XML, запозичені в PHP 4, були піддані серйозній переробці. Такі популярні розширення, як SAX, DOM і XSLT, тепер використовують інструмент libxml2, що робить їх ще ефективнішими.&lt;br /&gt;
&lt;br /&gt;
У PHP 5 також включені два нові модулі для роботи з протоколами — SimpleXML і SOAP. SimpleXML дозволяє значно спростити роботу з XML-даними, представляючи вміст XML-документа у вигляді PHP-об'єкта. Розширення SOAP дозволяє будувати на PHP сценарії, що обмінюються інформацією з іншими застосунками за допомогою XML-повідомлень поверх існуючих веб-протоколів, наприклад HTTP. Модуль для роботи з SOAP для PHP 5 надає розробникам засіб для достатньо швидкого створення ефективних SOAP-клієнтів і SOAP-серверів.[1]&lt;br /&gt;
&lt;br /&gt;
Новий модуль PHP 5 MySQLi (MySQL Improved) призначений для роботи з MySQL-сервером версій 4.1.2 і вище, реалізовуючи не тільки процедурний, але і об'єктно-орієнтований інтерфейс до MySQL. Додаткові можливості цього модуля включають — SSL, контроль транзакцій, підтримка реплікації і ін. Очевидно, що, на цьому історія PHP не закінчується. Слід очікувати наступних версій мови із розширеними можливостями.&lt;br /&gt;
===Додаткові можливості===&lt;br /&gt;
Мова явно підтримує HTTP cookies відповідно до специфікацій Netscape. Це дозволяє проводити встановлення та читання невеликих сегментів даних на стороні клієнта.&lt;br /&gt;
&lt;br /&gt;
PHP надає можливість організації роботи з користувачем протягом сеансів (сесій). В сесії можна зберігати різні дані, включаючи об'єкти.&lt;br /&gt;
&lt;br /&gt;
===Недоліки PHP===&lt;br /&gt;
*Незручність дизайну мови&lt;br /&gt;
*Змінні з символом «$»&lt;br /&gt;
*Складні назви поширених функцій (html_entities_decode, mysql_select_db, nl2br тощо)&lt;br /&gt;
*Не підтримується Unicode в версіях до 6.0&lt;br /&gt;
*Непередбачуваність нових версій PHP.&lt;br /&gt;
&lt;br /&gt;
=='''ПРИЗНАЧЕННЯ'''==&lt;br /&gt;
У області програмування Мережа PHP - одна з найпопулярніших скриптових мов (разом з JSP, Perl і мовами, використовуваними в ASP.NET) завдяки своїй простоті, швидкості виконання, багатій функціональності, багатоплатформеності і розповсюдженню початкових кодів на основі ліцензії PHP.&lt;br /&gt;
&lt;br /&gt;
Популярність у галузі побудови веб-сайтів визначається наявністю великого набору вбудованих засобів для розробки веб-додатків.&lt;br /&gt;
&lt;br /&gt;
Основні з них:&lt;br /&gt;
&lt;br /&gt;
* Автоматичне вилучення POST і GET-параметрів, а також змінних оточення веб-сервера в зумовлені масиви;&lt;br /&gt;
* Файлові функції успішно обробляють як локальні, так і віддалені файли;&lt;br /&gt;
* Автоматична відправка HTTP-заголовків;&lt;br /&gt;
* Робота з cookies і сесіями;&lt;br /&gt;
* Обробка файлів, що завантажуються на сервер;&lt;br /&gt;
* Робота з HTTP заголовками і HTTP авторизацією;&lt;br /&gt;
* Робота з XForms;&lt;br /&gt;
* Робота з віддаленими файлами і сокетами.&lt;br /&gt;
&lt;br /&gt;
В даний час PHP використовується сотнями тисяч розробників. Згідно з рейтингом Tiobe, що базується на даних пошукових систем, у грудні 2009 року PHP знаходиться на 3 місці серед мов програмування (поступаючись Java і C), піднявшись за рік на дві позиції. До найбільших сайтів, що використовують PHP, відносяться Facebook, В контакті, Wikipedia, YouTube.&lt;br /&gt;
&lt;br /&gt;
=='''БАЗОВІ НАЛАШТУВАННЯ'''==&lt;br /&gt;
Файл '''dbsettings.php''' відповідає за базові налаштування системи.&lt;br /&gt;
&lt;br /&gt;
Необхідно встановити такі значення:&lt;br /&gt;
&lt;br /&gt;
'''$serverDB''' - cервер баз даних, який використовується на хостингу, можливі наступні значення: 0 - використовується сервер баз даних MySQL (використовується на переважній більшості хостингових платформ). Рекомендується використовувати саме його, так як CMS будувалася орієнтованою саме на нього. 1 - використовується сервер баз даних PostgreSQL. Для версії 1.4 на даний момент підтримка PostgerSQL неповна. Рекомендується використовувати лише на CMS версії 1.3&lt;br /&gt;
&lt;br /&gt;
'''$hostNameDB''' - ім'я серверу бази даних. Як правило, необхідно свтановити як localhost, якщо сервер баз даних розміщений на тому ж комп'ютері, що й хостинг.&lt;br /&gt;
&lt;br /&gt;
'''$nameDB''' - назва бази даних, в якій зберігатимуться всі налаштування та матеріали сайту. Базу даних необхідно створити до інсталяції системи.&lt;br /&gt;
&lt;br /&gt;
'''$userNameDB''' - ім'я користувача, що має доступ до бази даних, вказаної в $nameDB.&lt;br /&gt;
&lt;br /&gt;
'''$userPasswordDB''' - пароль користувача бази даних, який був вказаний в $userNameDB.&lt;br /&gt;
&lt;br /&gt;
'''$tableprefix''' - префікс перед кожною таблицею бази даних. Його рекомендується використовувати тоді, коли Ви використовуєте одну базу даних для декількох систем.&lt;br /&gt;
&lt;br /&gt;
'''$tableusersprefix''' - префікс перед назвою таблиці users. Рекомендується використовувати, якщо ви використовуєте багатомовну версію SiMan CMS та хочете, щоб в усіх версіях був спільний набір користувачів.&lt;br /&gt;
&lt;br /&gt;
'''$session_prefix''' - підвищує безпеку при використанні декількох SiMan CMS на одному хості. Обов'язково змініть його!&lt;br /&gt;
&lt;br /&gt;
'''$_settings['use_protect_code']''' - підвищує безпеку, використовуючи графічне зображення 4-х значного коду, який генерується при реєстрації нового користувача чи інших діях, які вимагають антибот-перевірки (1 - ввімкнуто, 0 - вимкнуто).&lt;br /&gt;
&lt;br /&gt;
'''$dontExecuteUsersSqlInScript''' - дозволяє (0) або забороняє (1) виконання SQL-запитів, введених відвідувачем сайту. Рекомендується встановити значення 1 для покращення безпеки системи, але це відключить деякі можливості, наприклад імпорт бази даних безпосередньо з скрипту.&lt;br /&gt;
&lt;br /&gt;
===Синтаксис===&lt;br /&gt;
Синтаксис PHP подібний синтаксису мови Сі. Деякі елементи, такі як асоціативні масиви і цикл foreach, запозичені з Perl.&lt;br /&gt;
&lt;br /&gt;
Для роботи програми не потрібно описувати будь-які змінні, використовувані модулі і т. п. Будь-яка програма може починатися безпосередньо з оператора PHP.&lt;br /&gt;
&lt;br /&gt;
Найпростіша програма Hello world на PHP виглядає наступним чином:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?php&lt;br /&gt;
  echo 'Hello, world!'; &lt;br /&gt;
  ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Також можливий більш короткий варіант виведення рядка:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?= 'Hello, world!' ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Відкриваючий тег виду &amp;lt;? = Використовується для скороченого запису конструкцій, які використовуються для виведення рядка.&lt;br /&gt;
&lt;br /&gt;
PHP виконує код, що знаходиться всередині обмежувачів, таких як &amp;lt;? Php?&amp;gt;. Все, що знаходиться поза обмежувачів, виводиться без змін. В основному це використовується для вставки PHP-коду в HTML-документ, наприклад, так:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;html&amp;gt;&lt;br /&gt;
 &amp;lt;head&amp;gt;&lt;br /&gt;
 &amp;lt;title&amp;gt;Тестируем PHP&amp;lt;/title&amp;gt;&lt;br /&gt;
 &amp;lt;/head&amp;gt;&lt;br /&gt;
 &amp;lt;body&amp;gt;&lt;br /&gt;
 &amp;lt;?php echo 'Hello, world!'; ?&amp;gt;&lt;br /&gt;
 &amp;lt;/body&amp;gt;&lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Крім обмежувачів &amp;lt;? Php?&amp;gt;, Допускається використання додаткових варіантів, таких як &amp;lt;? ?&amp;gt; і &amp;lt;script language=&amp;quot;php&amp;quot;&amp;gt; &amp;lt;/ script&amp;gt;. Крім того, до версії 6.0 допускається використання обмежувачів мови програмування ASP &amp;lt;%%&amp;gt; (конструкції &amp;lt;??&amp;gt; І &amp;lt;%%&amp;gt; можуть бути вимкнені в конфігураційному файлі php.ini).&lt;br /&gt;
&lt;br /&gt;
Імена змінних починаються з символу $, тип змінної оголошувати не потрібно. Імена змінних, функцій і класів чутливі до регістру. Константи також чутливі до регістру. Змінні обробляються в рядках, взятих в апострофи або подвійні лапки, і heredoc-рядках (рядках, створених за допомогою оператора &amp;lt;&amp;lt;&amp;lt;).&lt;br /&gt;
&lt;br /&gt;
PHP розглядає перехід на новий рядок як пробіл, так само як HTML і інші мови з вільним форматом. Інструкції поділяються за допомогою крапки з комою (;), за винятком деяких випадків, після оголошення конструкції if / else і циклів.&lt;br /&gt;
&lt;br /&gt;
Змінні в функцію можна передавати як за значенням, так і за посиланням (використовується знак &amp;amp;).&lt;br /&gt;
&lt;br /&gt;
PHP підтримує три типи коментарів: у стилі мови Сі (обмежені / ** /), C + + (починаються з / / і йдуть до кінця рядка) і оболонки UNIX (з # до кінця рядка).&lt;br /&gt;
&lt;br /&gt;
===Особливості інтерпретатора===&lt;br /&gt;
PHP-скрипти зазвичай обробляються інтерпретатором в порядку, що забезпечує кроссплатформенність розробленого додатка:&lt;br /&gt;
&lt;br /&gt;
1. лексичний аналіз вихідного коду та генерація лексем,&lt;br /&gt;
&lt;br /&gt;
2. синтаксичний аналіз отриманих лексем,&lt;br /&gt;
&lt;br /&gt;
3. генерація байт-коду&lt;br /&gt;
&lt;br /&gt;
4. виконання байт-коду інтерпретатором (без створення виконуваного файлу).&lt;br /&gt;
&lt;br /&gt;
Для збільшення швидкодії додатків можливе використання спеціального програмного забезпечення, так званих акселераторів. Принцип їх роботи полягає в кешуванні одного разу згенерованого байт-коду в пам'яті і / або на диску, таким чином, з процесу роботи програми виключаються етапи 1-3, що в загальному випадку веде до значного прискорення роботи.&lt;br /&gt;
&lt;br /&gt;
Важливою особливістю є те, що розробнику немає необхідності піклуватися про розподіл і звільнення пам'яті. Ядро PHP реалізує засоби для автоматичного керування пам'яттю. Вся виділена пам'ять повертається системі після завершення роботи скрипта.&lt;br /&gt;
&lt;br /&gt;
Інтерпретатор PHP має спеціальний конфігураційний файл - '''php.ini''', що містить безліч налаштувань, зміна яких впливає на поведінку інтерпретатора. Є можливість відключити використання ряду функцій, змінити обмеження на використовувану скриптом оперативну пам'ять, час виконання, обсяг завантажуваних файлів, налаштувати журнал роботи помилок, роботу з сесіями та поштовими сервісами, підключити додаткові розширення, а також багато іншого. Можливо дроблення великого конфігураційного файлу на частини. Наприклад, широко поширена практика винесення налаштувань розширень в окремі файли. Параметри інтерпретатора можуть бути перевизначені в файлах конфігурації HTTP-сервера (наприклад,. Htaccess в Apache) або в самому скрипті під час виконання за допомогою команди ini_set.&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%97%D0%BD%D0%B0%D0%B9%D0%BE%D0%BC%D1%81%D1%82%D0%B2%D0%BE_%D0%B7_PHP_(%D0%BF%D1%80%D0%B8%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D1%8F,_%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D1%8F_%D0%B2_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82,_%D0%BE%D0%B1%D1%80%D0%BE%D0%B1%D0%BA%D0%B0,_%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%96_%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)</id>
		<title>Знайомство з PHP (призначення, включення в документ, обробка, базові налаштування)</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%97%D0%BD%D0%B0%D0%B9%D0%BE%D0%BC%D1%81%D1%82%D0%B2%D0%BE_%D0%B7_PHP_(%D0%BF%D1%80%D0%B8%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D1%8F,_%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D1%8F_%D0%B2_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82,_%D0%BE%D0%B1%D1%80%D0%BE%D0%B1%D0%BA%D0%B0,_%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%96_%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)"/>
				<updated>2013-05-27T09:42:58Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: /* Знайомство з PHP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Знайомство з PHP'''==&lt;br /&gt;
'''PHP''' (англ. PHP: Hypertext Preprocessor - «PHP: препроцесор гіпертексту», англ. Personal Home Page Tools (застар.) - «Інструменти для створення персональних веб-сторінок») - скриптова мова програмування загального призначення, інтенсивно застосовується для розробки веб-додатків. В даний час підтримується переважною більшістю хостинг-провайдерів і є одним з лідерів серед мов програмування, що застосовуються для створення динамічних веб-сайтів.&lt;br /&gt;
Мова і його інтерпретатор розробляються групою ентузіастів в рамках проекту з відкритим кодом. Проект поширюється під власною ліцензією, несумісною з GNU GPL. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
PHP інтерпретується веб-сервером в HTML-код, який передається на сторону клієнта. На відміну від таких скриптових мов програмування, як JavaScript, користувач не має доступу до PHP-коду, що є перевагою з точки зору безпеки але значно погіршує інтерактивність сторінок. Але ніщо не забороняє використовувати РНР для генерування і JavaScript-кодів які виконаються вже на стороні клієнта.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''PHP''' - мова, яка може бути вбудованою безпосередньо в html-код сторінок, які, в свою чергу коректно будуть оброблені PHP -інтерпретатором. Механізм РНР просто починає виконувати код після першої екрануючої послідовності (&amp;lt;?) і продовжує виконання до того моменту, коли він зустріне парну екрануючу послідовність (?&amp;gt;).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PHP''' — мова, яка може бути вбудована безпосередньо в html-код сторінок, які, в свою чергу коректно будуть оброблені PHP -інтерпретатором. Механізм РНР просто починає виконувати код після першої екрануючої послідовності (&amp;lt;?) і продовжує виконання до того моменту, коли він зустріне парну екрануючу послідовність (?&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Велика різноманітність функцій PHP дають можливість уникнути написання багаторядкових призначених для користувача функцій на C або Pascal.&lt;br /&gt;
*Наявність інтерфейсів до багатьох баз даних&lt;br /&gt;
*в PHP вбудовані бібліотеки для роботи з MySQL, PostgreSQL, mSQL, Oracle, dbm, Hyperware, Informix, InterBase, Sybase.&lt;br /&gt;
*через стандарт відкритого інтерфейсу зв'язку з базами даних (Open Database Connectivity Standard — ODBC) можна підключатися до всіх баз даних, до яких існує драйвер.&lt;br /&gt;
*Традиційність&lt;br /&gt;
Мова РНР здаватиметься знайомою програмістам, що працюють в різних областях. Багато конструкцій мови запозичені з С, Perl. Код РНР дуже схожий на той, який зустрічається в типових програмах на С або Pascal. Це помітно знижує початкові зусилля при вивченні РНР. PHP — мова, що поєднує переваги Perl і С і спеціально спрямована на роботу в Інтернеті, мова з універсальним і зрозумілим синтаксисом. І хоча PHP є досить молодою мовою, вона здобула таку популярність серед web-програмістів, що в наш час є мало не найпопулярнішою мовою для створення веб-застосунків (скриптів).&lt;br /&gt;
*Наявність вихідного коду та безкоштовність&lt;br /&gt;
Стратегія Open Source, і розповсюдження початкових текстів програм в масах, безсумнівно справили благотворний вплив на багато проектів, в першу чергу — Linux хоч і успіх проекту Apache сильно підкріпив позиції прихильників Open Source. Сказане відноситься і до історії створення РНР, оскільки підтримка користувачів зі всього світу виявилася дуже важливим чинником в розвитку проекту РНР.&lt;br /&gt;
Ухвалення стратегії Open Source і безплатне розповсюдження початкових текстів РНР надало неоціниму послугу користувачам. Додатково, користувачі РНР в усьому світі є свого роду колективною службою підтримки, і в популярних електронних конференціях можна знайти відповіді навіть на найскладніші питання.&lt;br /&gt;
*Ефективність&lt;br /&gt;
Ефективність є дуже важливим чинником при програмуванні для середовищ розрахованих на багато користувачів, до яких належить і web. Важливою перевагою PHP є те, що ця мова належить до інтерпретованих. Це дозволяє обробляти сценарії з достатньо високою швидкістю. За деякими оцінками, більшість PHP-сценаріїв (особливо не дуже великих розмірів) обробляються швидше за аналогічні їм програми, написані на Perl. Проте, щоб не робили розробники PHP, виконувані файли, отримані за допомогою компіляції, працюватимуть значно швидше — в десятки, а іноді і в сотні разів. Але продуктивність PHP цілком достатня для створення цілком серйозних веб-застосунків.&lt;br /&gt;
===Перші версії===&lt;br /&gt;
Історія PHP починається з 1995 року, коли Расмус Лердорф (англ. Rasmus Lerdorf) створив простий застосунок мовою Perl, що аналізував відвідування користувачами його резюме на веб-сайті. Потім, коли цим застосунком вже користувалися кілька чоловік, а число охочих одержати його постійно збільшувалося, Лердорф назвав своє творіння Особисті інструменти домашньої сторінки англ. Personal Home Page Tools версія 1 і виставив для вільного завантаження. З цієї миті почався небувалий зліт популярності PHP.&lt;br /&gt;
&lt;br /&gt;
Як це завжди буває, терміново було потрібне доопрацювання і нові доповнення. Для їхньої реалізації Расмус створює нову версію пакету, тепер уже написану на С. Отриманий таким чином інструмент набуває робочої назви PHP/FI Персональна Домашня сторінка / Інтерпретатор Форм (англ. Personal Home Page / Forms Interpreter — ), надалі він також буде відомий під назвою PHP 2. Ця версія вже більшою мірою схожа на сьогоднішній PHP. Вона мала синтаксис і спосіб іменування змінних в стилі мови Perl, можливість вбудовування PHP операторів в html-код сторінки, автоматичну інтерпретацію форм, інтеграцію з базами даних. При цьому все працювало досить швидко, оскільки PHP прикомпилювалось до веб-серверу Apache. До 1997 року PHP використовувався вже на 50,000 доменах (не більше 1% всіх веб-серверів).&lt;br /&gt;
&lt;br /&gt;
У тому ж 1997 році до проекту PHP підключилися Зев Сураскі (англ. Zeev Suraski) і Енді Гутманс (англ. Andi Gutmans). Ці студенти Техніону, одного з найкращих ізраїльських університетів, намагалися використовувати PHP/FI для одного з комерційних університетських проектів. При цьому їм довелося зіткнутися з багатьма труднощами і обмеженнями цієї технології. Вивчаючи початковий код PHP 2, Зеєв і Енді дійшли висновку про необхідність доопрацювання, а точніше істотної переробки PHP, особливо в плані синтаксису мови. Протягом декількох місяців вони блискуче впоралися з цим завданням.&lt;br /&gt;
&lt;br /&gt;
Закінчивши роботу Зеєв і Енді домовились з Расмусом про співпрацю в галузі розвитку та вдосконалення мови. З цієї миті з'являється PHP Group — група однодумців, що працюють над розвитком технології PHP. Одержаний продукт з'явився на світ у 1998 році під назвою PHP 3.&lt;br /&gt;
&lt;br /&gt;
При цьому головною особливість PHP 3 була можливість розширення ядра, що привернуло до роботи над PHP безліч сторонніх розробників, що створюють спеціалізовані модулі. Їх наявність дала PHP можливість працювати з величезною кількістю баз даних, протоколів, підтримувати велике число API. До кінця 1998 кількість користувачів PHP перевалила за 100000, а PHP був вже встановлений на не менше ніж 10% серверах Інтернету. У той ж час значному поширенню даної мови сприяли публікації в електронній пресі та вихід книжок для вивчення PHP.&lt;br /&gt;
&lt;br /&gt;
Відразу ж після виходу PHP 3, Енді Гутманс і Зеєв Сураскі почали переробку ядра PHP. В першу чергу належало вирішити проблему підвищення продуктивності. Новий продукт, названий Zend Engine (від імен творців: Zeev і Andi), успішно справлявся з поставленим завданням і був реалізований в 1999 році. Основними реалізованними ідеями є можливість компіляції сценарію у виконуваний модуль, за рахунок чого продуктивність можна було підняти на порядок.&lt;br /&gt;
===Визнання та поширення===&lt;br /&gt;
PHP 4, що працює на цьому ядрі, вийшов в 2000 році. На додаток до збільшення продуктивності, PHP 4 мав нові можливості щодо підтримки сесій, буферизацію виводу, безпечні способи обробки інформації, що вводиться користувачем, і нові мовні конструкції. З виходом 4 версії PHP став використовуватися вже на більш ніж 20% доменів Інтернету.&lt;br /&gt;
&lt;br /&gt;
За час з 2000 по 2004 рік продовжувалися активні роботи з покращення 4 версії, але майже відразу PHP Group приступила до продумування можливостей нової версії. В першу чергу було вирішено підсилити об'єктні можливості мови, що дозволяло використовувати його для реалізації масштабних проектів. Роботи із створення версії 5 велися тривалий час, в них брало участь рекордна кількість фахівців, зокрема Стерлінг Хьюз (Шаблон:Lang en:) і Маркус Бергера (Шаблон:Lang en:).&lt;br /&gt;
&lt;br /&gt;
У липні 2004 року виходить офіційний реліз PHP 5. В першу чергу, як і планувалося, було перероблено весь механізм роботи з об'єктами. І якщо в попередніх версіях об'єктно-орієнтоване програмування на PHP було можливе в мінімальному ступені, а тому і використовувалося на практиці не часто, то PHP 5 володіє прекрасним потенціалом реалізації об'єктного програмування. Окрім цього, PHP збагатився рядом цінних розширень для роботи з XML, різними джерелами даних, генерації графіки і інше.&lt;br /&gt;
&lt;br /&gt;
Серед інших украй корисних доповнень в PHP 5 слід зазначити нову схему обробки виключень. Конструкція try/catch/throw дозволяє весь код обробки помилок локалізувати в одному місці сценарію.&lt;br /&gt;
&lt;br /&gt;
Всі основні бібліотеки для роботи з XML, запозичені в PHP 4, були піддані серйозній переробці. Такі популярні розширення, як SAX, DOM і XSLT, тепер використовують інструмент libxml2, що робить їх ще ефективнішими.&lt;br /&gt;
&lt;br /&gt;
У PHP 5 також включені два нові модулі для роботи з протоколами — SimpleXML і SOAP. SimpleXML дозволяє значно спростити роботу з XML-даними, представляючи вміст XML-документа у вигляді PHP-об'єкта. Розширення SOAP дозволяє будувати на PHP сценарії, що обмінюються інформацією з іншими застосунками за допомогою XML-повідомлень поверх існуючих веб-протоколів, наприклад HTTP. Модуль для роботи з SOAP для PHP 5 надає розробникам засіб для достатньо швидкого створення ефективних SOAP-клієнтів і SOAP-серверів.[1]&lt;br /&gt;
&lt;br /&gt;
Новий модуль PHP 5 MySQLi (MySQL Improved) призначений для роботи з MySQL-сервером версій 4.1.2 і вище, реалізовуючи не тільки процедурний, але і об'єктно-орієнтований інтерфейс до MySQL. Додаткові можливості цього модуля включають — SSL, контроль транзакцій, підтримка реплікації і ін. Очевидно, що, на цьому історія PHP не закінчується. Слід очікувати наступних версій мови із розширеними можливостями.&lt;br /&gt;
===Додаткові можливості===&lt;br /&gt;
Мова явно підтримує HTTP cookies відповідно до специфікацій Netscape. Це дозволяє проводити встановлення та читання невеликих сегментів даних на стороні клієнта.&lt;br /&gt;
&lt;br /&gt;
PHP надає можливість організації роботи з користувачем протягом сеансів (сесій). В сесії можна зберігати різні дані, включаючи об'єкти.&lt;br /&gt;
&lt;br /&gt;
===Недоліки PHP===&lt;br /&gt;
*Незручність дизайну мови&lt;br /&gt;
*Змінні з символом «$»&lt;br /&gt;
*Складні назви поширених функцій (html_entities_decode, mysql_select_db, nl2br тощо)&lt;br /&gt;
*Не підтримується Unicode в версіях до 6.0&lt;br /&gt;
*Непередбачуваність нових версій PHP.&lt;br /&gt;
&lt;br /&gt;
=='''ПРИЗНАЧЕННЯ'''==&lt;br /&gt;
У області програмування Мережа PHP - одна з найпопулярніших скриптових мов (разом з JSP, Perl і мовами, використовуваними в ASP.NET) завдяки своїй простоті, швидкості виконання, багатій функціональності, багатоплатформеності і розповсюдженню початкових кодів на основі ліцензії PHP.&lt;br /&gt;
&lt;br /&gt;
Популярність у галузі побудови веб-сайтів визначається наявністю великого набору вбудованих засобів для розробки веб-додатків.&lt;br /&gt;
&lt;br /&gt;
Основні з них:&lt;br /&gt;
&lt;br /&gt;
* Автоматичне вилучення POST і GET-параметрів, а також змінних оточення веб-сервера в зумовлені масиви;&lt;br /&gt;
* Файлові функції успішно обробляють як локальні, так і віддалені файли;&lt;br /&gt;
* Автоматична відправка HTTP-заголовків;&lt;br /&gt;
* Робота з cookies і сесіями;&lt;br /&gt;
* Обробка файлів, що завантажуються на сервер;&lt;br /&gt;
* Робота з HTTP заголовками і HTTP авторизацією;&lt;br /&gt;
* Робота з XForms;&lt;br /&gt;
* Робота з віддаленими файлами і сокетами.&lt;br /&gt;
&lt;br /&gt;
В даний час PHP використовується сотнями тисяч розробників. Згідно з рейтингом Tiobe, що базується на даних пошукових систем, у грудні 2009 року PHP знаходиться на 3 місці серед мов програмування (поступаючись Java і C), піднявшись за рік на дві позиції. До найбільших сайтів, що використовують PHP, відносяться Facebook, В контакті, Wikipedia, YouTube.&lt;br /&gt;
&lt;br /&gt;
=='''БАЗОВІ НАЛАШТУВАННЯ'''==&lt;br /&gt;
Файл dbsettings.php відповідає за базові налаштування системи.&lt;br /&gt;
&lt;br /&gt;
Необхідно встановити такі значення:&lt;br /&gt;
&lt;br /&gt;
$serverDB - cервер баз даних, який використовується на хостингу, можливі наступні значення: 0 - використовується сервер баз даних MySQL (використовується на переважній більшості хостингових платформ). Рекомендується використовувати саме його, так як CMS будувалася орієнтованою саме на нього. 1 - використовується сервер баз даних PostgreSQL. Для версії 1.4 на даний момент підтримка PostgerSQL неповна. Рекомендується використовувати лише на CMS версії 1.3&lt;br /&gt;
&lt;br /&gt;
$hostNameDB - ім'я серверу бази даних. Як правило, необхідно свтановити як localhost, якщо сервер баз даних розміщений на тому ж комп'ютері, що й хостинг.&lt;br /&gt;
&lt;br /&gt;
$nameDB - назва бази даних, в якій зберігатимуться всі налаштування та матеріали сайту. Базу даних необхідно створити до інсталяції системи.&lt;br /&gt;
&lt;br /&gt;
$userNameDB - ім'я користувача, що має доступ до бази даних, вказаної в $nameDB.&lt;br /&gt;
&lt;br /&gt;
$userPasswordDB - пароль користувача бази даних, який був вказаний в $userNameDB.&lt;br /&gt;
&lt;br /&gt;
$tableprefix - префікс перед кожною таблицею бази даних. Його рекомендується використовувати тоді, коли Ви використовуєте одну базу даних для декількох систем.&lt;br /&gt;
&lt;br /&gt;
$tableusersprefix - префікс перед назвою таблиці users. Рекомендується використовувати, якщо ви використовуєте багатомовну версію SiMan CMS та хочете, щоб в усіх версіях був спільний набір користувачів.&lt;br /&gt;
&lt;br /&gt;
$session_prefix - підвищує безпеку при використанні декількох SiMan CMS на одному хості. Обов'язково змініть його!&lt;br /&gt;
&lt;br /&gt;
$_settings['use_protect_code'] - підвищує безпеку, використовуючи графічне зображення 4-х значного коду, який генерується при реєстрації нового користувача чи інших діях, які вимагають антибот-перевірки (1 - ввімкнуто, 0 - вимкнуто).&lt;br /&gt;
&lt;br /&gt;
$dontExecuteUsersSqlInScript - дозволяє (0) або забороняє (1) виконання SQL-запитів, введених відвідувачем сайту. Рекомендується встановити значення 1 для покращення безпеки системи, але це відключить деякі можливості, наприклад імпорт бази даних безпосередньо з скрипту.&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%97%D0%BD%D0%B0%D0%B9%D0%BE%D0%BC%D1%81%D1%82%D0%B2%D0%BE_%D0%B7_PHP_(%D0%BF%D1%80%D0%B8%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D1%8F,_%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D1%8F_%D0%B2_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82,_%D0%BE%D0%B1%D1%80%D0%BE%D0%B1%D0%BA%D0%B0,_%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%96_%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)</id>
		<title>Знайомство з PHP (призначення, включення в документ, обробка, базові налаштування)</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%97%D0%BD%D0%B0%D0%B9%D0%BE%D0%BC%D1%81%D1%82%D0%B2%D0%BE_%D0%B7_PHP_(%D0%BF%D1%80%D0%B8%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D1%8F,_%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D1%8F_%D0%B2_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82,_%D0%BE%D0%B1%D1%80%D0%BE%D0%B1%D0%BA%D0%B0,_%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%96_%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)"/>
				<updated>2013-05-27T09:37:00Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: /* ПРИЗНАЧЕННЯ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Знайомство з PHP'''==&lt;br /&gt;
PHP (англ. PHP: Hypertext Preprocessor - «PHP: препроцесор гіпертексту», англ. Personal Home Page Tools (застар.) - «Інструменти для створення персональних веб-сторінок») - скриптова мова програмування загального призначення, інтенсивно застосовується для розробки веб-додатків. В даний час підтримується переважною більшістю хостинг-провайдерів і є одним з лідерів серед мов програмування, що застосовуються для створення динамічних веб-сайтів.&lt;br /&gt;
Мова і його інтерпретатор розробляються групою ентузіастів в рамках проекту з відкритим кодом. Проект поширюється під власною ліцензією, несумісною з GNU GPL. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
PHP інтерпретується веб-сервером в HTML-код, який передається на сторону клієнта. На відміну від таких скриптових мов програмування, як JavaScript, користувач не має доступу до PHP-коду, що є перевагою з точки зору безпеки але значно погіршує інтерактивність сторінок. Але ніщо не забороняє використовувати РНР для генерування і JavaScript-кодів які виконаються вже на стороні клієнта.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
PHP - мова, яка може бути вбудованою безпосередньо в html-код сторінок, які, в свою чергу коректно будуть оброблені PHP -інтерпретатором. Механізм РНР просто починає виконувати код після першої екрануючої послідовності (&amp;lt;?) і продовжує виконання до того моменту, коли він зустріне парну екрануючу послідовність (?&amp;gt;).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PHP — мова, яка може бути вбудована безпосередньо в html-код сторінок, які, в свою чергу коректно будуть оброблені PHP -інтерпретатором. Механізм РНР просто починає виконувати код після першої екрануючої послідовності (&amp;lt;?) і продовжує виконання до того моменту, коли він зустріне парну екрануючу послідовність (?&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Велика різноманітність функцій PHP дають можливість уникнути написання багаторядкових призначених для користувача функцій на C або Pascal.&lt;br /&gt;
*Наявність інтерфейсів до багатьох баз даних&lt;br /&gt;
*в PHP вбудовані бібліотеки для роботи з MySQL, PostgreSQL, mSQL, Oracle, dbm, Hyperware, Informix, InterBase, Sybase.&lt;br /&gt;
*через стандарт відкритого інтерфейсу зв'язку з базами даних (Open Database Connectivity Standard — ODBC) можна підключатися до всіх баз даних, до яких існує драйвер.&lt;br /&gt;
*Традиційність&lt;br /&gt;
Мова РНР здаватиметься знайомою програмістам, що працюють в різних областях. Багато конструкцій мови запозичені з С, Perl. Код РНР дуже схожий на той, який зустрічається в типових програмах на С або Pascal. Це помітно знижує початкові зусилля при вивченні РНР. PHP — мова, що поєднує переваги Perl і С і спеціально спрямована на роботу в Інтернеті, мова з універсальним і зрозумілим синтаксисом. І хоча PHP є досить молодою мовою, вона здобула таку популярність серед web-програмістів, що в наш час є мало не найпопулярнішою мовою для створення веб-застосунків (скриптів).&lt;br /&gt;
*Наявність вихідного коду та безкоштовність&lt;br /&gt;
Стратегія Open Source, і розповсюдження початкових текстів програм в масах, безсумнівно справили благотворний вплив на багато проектів, в першу чергу — Linux хоч і успіх проекту Apache сильно підкріпив позиції прихильників Open Source. Сказане відноситься і до історії створення РНР, оскільки підтримка користувачів зі всього світу виявилася дуже важливим чинником в розвитку проекту РНР.&lt;br /&gt;
Ухвалення стратегії Open Source і безплатне розповсюдження початкових текстів РНР надало неоціниму послугу користувачам. Додатково, користувачі РНР в усьому світі є свого роду колективною службою підтримки, і в популярних електронних конференціях можна знайти відповіді навіть на найскладніші питання.&lt;br /&gt;
*Ефективність&lt;br /&gt;
Ефективність є дуже важливим чинником при програмуванні для середовищ розрахованих на багато користувачів, до яких належить і web. Важливою перевагою PHP є те, що ця мова належить до інтерпретованих. Це дозволяє обробляти сценарії з достатньо високою швидкістю. За деякими оцінками, більшість PHP-сценаріїв (особливо не дуже великих розмірів) обробляються швидше за аналогічні їм програми, написані на Perl. Проте, щоб не робили розробники PHP, виконувані файли, отримані за допомогою компіляції, працюватимуть значно швидше — в десятки, а іноді і в сотні разів. Але продуктивність PHP цілком достатня для створення цілком серйозних веб-застосунків.&lt;br /&gt;
===Перші версії===&lt;br /&gt;
ІІсторія PHP починається з 1995 року, коли Расмус Лердорф (англ. Rasmus Lerdorf) створив простий застосунок мовою Perl, що аналізував відвідування користувачами його резюме на веб-сайті. Потім, коли цим застосунком вже користувалися кілька чоловік, а число охочих одержати його постійно збільшувалося, Лердорф назвав своє творіння Особисті інструменти домашньої сторінки англ. Personal Home Page Tools версія 1 і виставив для вільного завантаження. З цієї миті почався небувалий зліт популярності PHP.&lt;br /&gt;
&lt;br /&gt;
Як це завжди буває, терміново було потрібне доопрацювання і нові доповнення. Для їхньої реалізації Расмус створює нову версію пакету, тепер уже написану на С. Отриманий таким чином інструмент набуває робочої назви PHP/FI Персональна Домашня сторінка / Інтерпретатор Форм (англ. Personal Home Page / Forms Interpreter — ), надалі він також буде відомий під назвою PHP 2. Ця версія вже більшою мірою схожа на сьогоднішній PHP. Вона мала синтаксис і спосіб іменування змінних в стилі мови Perl, можливість вбудовування PHP операторів в html-код сторінки, автоматичну інтерпретацію форм, інтеграцію з базами даних. При цьому все працювало досить швидко, оскільки PHP прикомпилювалось до веб-серверу Apache. До 1997 року PHP використовувався вже на 50,000 доменах (не більше 1% всіх веб-серверів).&lt;br /&gt;
&lt;br /&gt;
У тому ж 1997 році до проекту PHP підключилися Зев Сураскі (англ. Zeev Suraski) і Енді Гутманс (англ. Andi Gutmans). Ці студенти Техніону, одного з найкращих ізраїльських університетів, намагалися використовувати PHP/FI для одного з комерційних університетських проектів. При цьому їм довелося зіткнутися з багатьма труднощами і обмеженнями цієї технології. Вивчаючи початковий код PHP 2, Зеєв і Енді дійшли висновку про необхідність доопрацювання, а точніше істотної переробки PHP, особливо в плані синтаксису мови. Протягом декількох місяців вони блискуче впоралися з цим завданням.&lt;br /&gt;
&lt;br /&gt;
Закінчивши роботу Зеєв і Енді домовились з Расмусом про співпрацю в галузі розвитку та вдосконалення мови. З цієї миті з'являється PHP Group — група однодумців, що працюють над розвитком технології PHP. Одержаний продукт з'явився на світ у 1998 році під назвою PHP 3.&lt;br /&gt;
&lt;br /&gt;
При цьому головною особливість PHP 3 була можливість розширення ядра, що привернуло до роботи над PHP безліч сторонніх розробників, що створюють спеціалізовані модулі. Їх наявність дала PHP можливість працювати з величезною кількістю баз даних, протоколів, підтримувати велике число API. До кінця 1998 кількість користувачів PHP перевалила за 100000, а PHP був вже встановлений на не менше ніж 10% серверах Інтернету. У той ж час значному поширенню даної мови сприяли публікації в електронній пресі та вихід книжок для вивчення PHP.&lt;br /&gt;
&lt;br /&gt;
Відразу ж після виходу PHP 3, Енді Гутманс і Зеєв Сураскі почали переробку ядра PHP. В першу чергу належало вирішити проблему підвищення продуктивності. Новий продукт, названий Zend Engine (від імен творців: Zeev і Andi), успішно справлявся з поставленим завданням і був реалізований в 1999 році. Основними реалізованними ідеями є можливість компіляції сценарію у виконуваний модуль, за рахунок чого продуктивність можна було підняти на порядок.&lt;br /&gt;
&lt;br /&gt;
===Недоліки PHP===&lt;br /&gt;
*Незручність дизайну мови&lt;br /&gt;
*Змінні з символом «$»&lt;br /&gt;
*Складні назви поширених функцій (html_entities_decode, mysql_select_db, nl2br тощо)&lt;br /&gt;
*Не підтримується Unicode в версіях до 6.0&lt;br /&gt;
*Непередбачуваність нових версій PHP.&lt;br /&gt;
===Додаткові можливості===&lt;br /&gt;
Мова явно підтримує HTTP cookies відповідно до специфікацій Netscape. Це дозволяє проводити встановлення та читання невеликих сегментів даних на стороні клієнта.&lt;br /&gt;
&lt;br /&gt;
PHP надає можливість організації роботи з користувачем протягом сеансів (сесій). В сесії можна зберігати різні дані, включаючи об'єкти.&lt;br /&gt;
&lt;br /&gt;
===Визнання та поширення===&lt;br /&gt;
PHP 4, що працює на цьому ядрі, вийшов в 2000 році. На додаток до збільшення продуктивності, PHP 4 мав нові можливості щодо підтримки сесій, буферизацію виводу, безпечні способи обробки інформації, що вводиться користувачем, і нові мовні конструкції. З виходом 4 версії PHP став використовуватися вже на більш ніж 20% доменів Інтернету.&lt;br /&gt;
&lt;br /&gt;
За час з 2000 по 2004 рік продовжувалися активні роботи з покращення 4 версії, але майже відразу PHP Group приступила до продумування можливостей нової версії. В першу чергу було вирішено підсилити об'єктні можливості мови, що дозволяло використовувати його для реалізації масштабних проектів. Роботи із створення версії 5 велися тривалий час, в них брало участь рекордна кількість фахівців, зокрема Стерлінг Хьюз (Шаблон:Lang en:) і Маркус Бергера (Шаблон:Lang en:).&lt;br /&gt;
&lt;br /&gt;
У липні 2004 року виходить офіційний реліз PHP 5. В першу чергу, як і планувалося, було перероблено весь механізм роботи з об'єктами. І якщо в попередніх версіях об'єктно-орієнтоване програмування на PHP було можливе в мінімальному ступені, а тому і використовувалося на практиці не часто, то PHP 5 володіє прекрасним потенціалом реалізації об'єктного програмування. Окрім цього, PHP збагатився рядом цінних розширень для роботи з XML, різними джерелами даних, генерації графіки і інше.&lt;br /&gt;
&lt;br /&gt;
Серед інших украй корисних доповнень в PHP 5 слід зазначити нову схему обробки виключень. Конструкція try/catch/throw дозволяє весь код обробки помилок локалізувати в одному місці сценарію.&lt;br /&gt;
&lt;br /&gt;
Всі основні бібліотеки для роботи з XML, запозичені в PHP 4, були піддані серйозній переробці. Такі популярні розширення, як SAX, DOM і XSLT, тепер використовують інструмент libxml2, що робить їх ще ефективнішими.&lt;br /&gt;
&lt;br /&gt;
У PHP 5 також включені два нові модулі для роботи з протоколами — SimpleXML і SOAP. SimpleXML дозволяє значно спростити роботу з XML-даними, представляючи вміст XML-документа у вигляді PHP-об'єкта. Розширення SOAP дозволяє будувати на PHP сценарії, що обмінюються інформацією з іншими застосунками за допомогою XML-повідомлень поверх існуючих веб-протоколів, наприклад HTTP. Модуль для роботи з SOAP для PHP 5 надає розробникам засіб для достатньо швидкого створення ефективних SOAP-клієнтів і SOAP-серверів.[1]&lt;br /&gt;
&lt;br /&gt;
Новий модуль PHP 5 MySQLi (MySQL Improved) призначений для роботи з MySQL-сервером версій 4.1.2 і вище, реалізовуючи не тільки процедурний, але і об'єктно-орієнтований інтерфейс до MySQL. Додаткові можливості цього модуля включають — SSL, контроль транзакцій, підтримка реплікації і ін. Очевидно, що, на цьому історія PHP не закінчується. Слід очікувати наступних версій мови із розширеними можливостями.&lt;br /&gt;
&lt;br /&gt;
=='''ПРИЗНАЧЕННЯ'''==&lt;br /&gt;
У області програмування Мережа PHP - одна з найпопулярніших скриптових мов (разом з JSP, Perl і мовами, використовуваними в ASP.NET) завдяки своїй простоті, швидкості виконання, багатій функціональності, багатоплатформеності і розповсюдженню початкових кодів на основі ліцензії PHP.&lt;br /&gt;
&lt;br /&gt;
Популярність у галузі побудови веб-сайтів визначається наявністю великого набору вбудованих засобів для розробки веб-додатків.&lt;br /&gt;
&lt;br /&gt;
Основні з них:&lt;br /&gt;
&lt;br /&gt;
* Автоматичне вилучення POST і GET-параметрів, а також змінних оточення веб-сервера в зумовлені масиви;&lt;br /&gt;
* Файлові функції успішно обробляють як локальні, так і віддалені файли;&lt;br /&gt;
* Автоматична відправка HTTP-заголовків;&lt;br /&gt;
* Робота з cookies і сесіями;&lt;br /&gt;
* Обробка файлів, що завантажуються на сервер;&lt;br /&gt;
* Робота з HTTP заголовками і HTTP авторизацією;&lt;br /&gt;
* Робота з XForms;&lt;br /&gt;
* Робота з віддаленими файлами і сокетами.&lt;br /&gt;
&lt;br /&gt;
В даний час PHP використовується сотнями тисяч розробників. Згідно з рейтингом Tiobe, що базується на даних пошукових систем, у грудні 2009 року PHP знаходиться на 3 місці серед мов програмування (поступаючись Java і C), піднявшись за рік на дві позиції. До найбільших сайтів, що використовують PHP, відносяться Facebook, В контакті, Wikipedia, YouTube.&lt;br /&gt;
&lt;br /&gt;
=='''БАЗОВІ НАЛАШТУВАННЯ'''==&lt;br /&gt;
Файл dbsettings.php відповідає за базові налаштування системи.&lt;br /&gt;
&lt;br /&gt;
Необхідно встановити такі значення:&lt;br /&gt;
&lt;br /&gt;
$serverDB - cервер баз даних, який використовується на хостингу, можливі наступні значення: 0 - використовується сервер баз даних MySQL (використовується на переважній більшості хостингових платформ). Рекомендується використовувати саме його, так як CMS будувалася орієнтованою саме на нього. 1 - використовується сервер баз даних PostgreSQL. Для версії 1.4 на даний момент підтримка PostgerSQL неповна. Рекомендується використовувати лише на CMS версії 1.3&lt;br /&gt;
&lt;br /&gt;
$hostNameDB - ім'я серверу бази даних. Як правило, необхідно свтановити як localhost, якщо сервер баз даних розміщений на тому ж комп'ютері, що й хостинг.&lt;br /&gt;
&lt;br /&gt;
$nameDB - назва бази даних, в якій зберігатимуться всі налаштування та матеріали сайту. Базу даних необхідно створити до інсталяції системи.&lt;br /&gt;
&lt;br /&gt;
$userNameDB - ім'я користувача, що має доступ до бази даних, вказаної в $nameDB.&lt;br /&gt;
&lt;br /&gt;
$userPasswordDB - пароль користувача бази даних, який був вказаний в $userNameDB.&lt;br /&gt;
&lt;br /&gt;
$tableprefix - префікс перед кожною таблицею бази даних. Його рекомендується використовувати тоді, коли Ви використовуєте одну базу даних для декількох систем.&lt;br /&gt;
&lt;br /&gt;
$tableusersprefix - префікс перед назвою таблиці users. Рекомендується використовувати, якщо ви використовуєте багатомовну версію SiMan CMS та хочете, щоб в усіх версіях був спільний набір користувачів.&lt;br /&gt;
&lt;br /&gt;
$session_prefix - підвищує безпеку при використанні декількох SiMan CMS на одному хості. Обов'язково змініть його!&lt;br /&gt;
&lt;br /&gt;
$_settings['use_protect_code'] - підвищує безпеку, використовуючи графічне зображення 4-х значного коду, який генерується при реєстрації нового користувача чи інших діях, які вимагають антибот-перевірки (1 - ввімкнуто, 0 - вимкнуто).&lt;br /&gt;
&lt;br /&gt;
$dontExecuteUsersSqlInScript - дозволяє (0) або забороняє (1) виконання SQL-запитів, введених відвідувачем сайту. Рекомендується встановити значення 1 для покращення безпеки системи, але це відключить деякі можливості, наприклад імпорт бази даних безпосередньо з скрипту.&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%97%D0%BD%D0%B0%D0%B9%D0%BE%D0%BC%D1%81%D1%82%D0%B2%D0%BE_%D0%B7_PHP_(%D0%BF%D1%80%D0%B8%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D1%8F,_%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D1%8F_%D0%B2_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82,_%D0%BE%D0%B1%D1%80%D0%BE%D0%B1%D0%BA%D0%B0,_%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%96_%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)</id>
		<title>Знайомство з PHP (призначення, включення в документ, обробка, базові налаштування)</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%97%D0%BD%D0%B0%D0%B9%D0%BE%D0%BC%D1%81%D1%82%D0%B2%D0%BE_%D0%B7_PHP_(%D0%BF%D1%80%D0%B8%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D1%8F,_%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D1%8F_%D0%B2_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82,_%D0%BE%D0%B1%D1%80%D0%BE%D0%B1%D0%BA%D0%B0,_%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%96_%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)"/>
				<updated>2013-05-27T08:15:03Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: /* Недоліки PHP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Знайомство з PHP'''==&lt;br /&gt;
PHP (англ. PHP: Hypertext Preprocessor - «PHP: препроцесор гіпертексту», англ. Personal Home Page Tools (застар.) - «Інструменти для створення персональних веб-сторінок») - скриптова мова програмування загального призначення, інтенсивно застосовується для розробки веб-додатків. В даний час підтримується переважною більшістю хостинг-провайдерів і є одним з лідерів серед мов програмування, що застосовуються для створення динамічних веб-сайтів.&lt;br /&gt;
Мова і його інтерпретатор розробляються групою ентузіастів в рамках проекту з відкритим кодом. Проект поширюється під власною ліцензією, несумісною з GNU GPL. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
PHP інтерпретується веб-сервером в HTML-код, який передається на сторону клієнта. На відміну від таких скриптових мов програмування, як JavaScript, користувач не має доступу до PHP-коду, що є перевагою з точки зору безпеки але значно погіршує інтерактивність сторінок. Але ніщо не забороняє використовувати РНР для генерування і JavaScript-кодів які виконаються вже на стороні клієнта.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
PHP - мова, яка може бути вбудованою безпосередньо в html-код сторінок, які, в свою чергу коректно будуть оброблені PHP -інтерпретатором. Механізм РНР просто починає виконувати код після першої екрануючої послідовності (&amp;lt;?) і продовжує виконання до того моменту, коли він зустріне парну екрануючу послідовність (?&amp;gt;).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PHP — мова, яка може бути вбудована безпосередньо в html-код сторінок, які, в свою чергу коректно будуть оброблені PHP -інтерпретатором. Механізм РНР просто починає виконувати код після першої екрануючої послідовності (&amp;lt;?) і продовжує виконання до того моменту, коли він зустріне парну екрануючу послідовність (?&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Велика різноманітність функцій PHP дають можливість уникнути написання багаторядкових призначених для користувача функцій на C або Pascal.&lt;br /&gt;
*Наявність інтерфейсів до багатьох баз даних&lt;br /&gt;
*в PHP вбудовані бібліотеки для роботи з MySQL, PostgreSQL, mSQL, Oracle, dbm, Hyperware, Informix, InterBase, Sybase.&lt;br /&gt;
*через стандарт відкритого інтерфейсу зв'язку з базами даних (Open Database Connectivity Standard — ODBC) можна підключатися до всіх баз даних, до яких існує драйвер.&lt;br /&gt;
*Традиційність&lt;br /&gt;
Мова РНР здаватиметься знайомою програмістам, що працюють в різних областях. Багато конструкцій мови запозичені з С, Perl. Код РНР дуже схожий на той, який зустрічається в типових програмах на С або Pascal. Це помітно знижує початкові зусилля при вивченні РНР. PHP — мова, що поєднує переваги Perl і С і спеціально спрямована на роботу в Інтернеті, мова з універсальним і зрозумілим синтаксисом. І хоча PHP є досить молодою мовою, вона здобула таку популярність серед web-програмістів, що в наш час є мало не найпопулярнішою мовою для створення веб-застосунків (скриптів).&lt;br /&gt;
*Наявність вихідного коду та безкоштовність&lt;br /&gt;
Стратегія Open Source, і розповсюдження початкових текстів програм в масах, безсумнівно справили благотворний вплив на багато проектів, в першу чергу — Linux хоч і успіх проекту Apache сильно підкріпив позиції прихильників Open Source. Сказане відноситься і до історії створення РНР, оскільки підтримка користувачів зі всього світу виявилася дуже важливим чинником в розвитку проекту РНР.&lt;br /&gt;
Ухвалення стратегії Open Source і безплатне розповсюдження початкових текстів РНР надало неоціниму послугу користувачам. Додатково, користувачі РНР в усьому світі є свого роду колективною службою підтримки, і в популярних електронних конференціях можна знайти відповіді навіть на найскладніші питання.&lt;br /&gt;
*Ефективність&lt;br /&gt;
Ефективність є дуже важливим чинником при програмуванні для середовищ розрахованих на багато користувачів, до яких належить і web. Важливою перевагою PHP є те, що ця мова належить до інтерпретованих. Це дозволяє обробляти сценарії з достатньо високою швидкістю. За деякими оцінками, більшість PHP-сценаріїв (особливо не дуже великих розмірів) обробляються швидше за аналогічні їм програми, написані на Perl. Проте, щоб не робили розробники PHP, виконувані файли, отримані за допомогою компіляції, працюватимуть значно швидше — в десятки, а іноді і в сотні разів. Але продуктивність PHP цілком достатня для створення цілком серйозних веб-застосунків.&lt;br /&gt;
===Перші версії===&lt;br /&gt;
ІІсторія PHP починається з 1995 року, коли Расмус Лердорф (англ. Rasmus Lerdorf) створив простий застосунок мовою Perl, що аналізував відвідування користувачами його резюме на веб-сайті. Потім, коли цим застосунком вже користувалися кілька чоловік, а число охочих одержати його постійно збільшувалося, Лердорф назвав своє творіння Особисті інструменти домашньої сторінки англ. Personal Home Page Tools версія 1 і виставив для вільного завантаження. З цієї миті почався небувалий зліт популярності PHP.&lt;br /&gt;
&lt;br /&gt;
Як це завжди буває, терміново було потрібне доопрацювання і нові доповнення. Для їхньої реалізації Расмус створює нову версію пакету, тепер уже написану на С. Отриманий таким чином інструмент набуває робочої назви PHP/FI Персональна Домашня сторінка / Інтерпретатор Форм (англ. Personal Home Page / Forms Interpreter — ), надалі він також буде відомий під назвою PHP 2. Ця версія вже більшою мірою схожа на сьогоднішній PHP. Вона мала синтаксис і спосіб іменування змінних в стилі мови Perl, можливість вбудовування PHP операторів в html-код сторінки, автоматичну інтерпретацію форм, інтеграцію з базами даних. При цьому все працювало досить швидко, оскільки PHP прикомпилювалось до веб-серверу Apache. До 1997 року PHP використовувався вже на 50,000 доменах (не більше 1% всіх веб-серверів).&lt;br /&gt;
&lt;br /&gt;
У тому ж 1997 році до проекту PHP підключилися Зев Сураскі (англ. Zeev Suraski) і Енді Гутманс (англ. Andi Gutmans). Ці студенти Техніону, одного з найкращих ізраїльських університетів, намагалися використовувати PHP/FI для одного з комерційних університетських проектів. При цьому їм довелося зіткнутися з багатьма труднощами і обмеженнями цієї технології. Вивчаючи початковий код PHP 2, Зеєв і Енді дійшли висновку про необхідність доопрацювання, а точніше істотної переробки PHP, особливо в плані синтаксису мови. Протягом декількох місяців вони блискуче впоралися з цим завданням.&lt;br /&gt;
&lt;br /&gt;
Закінчивши роботу Зеєв і Енді домовились з Расмусом про співпрацю в галузі розвитку та вдосконалення мови. З цієї миті з'являється PHP Group — група однодумців, що працюють над розвитком технології PHP. Одержаний продукт з'явився на світ у 1998 році під назвою PHP 3.&lt;br /&gt;
&lt;br /&gt;
При цьому головною особливість PHP 3 була можливість розширення ядра, що привернуло до роботи над PHP безліч сторонніх розробників, що створюють спеціалізовані модулі. Їх наявність дала PHP можливість працювати з величезною кількістю баз даних, протоколів, підтримувати велике число API. До кінця 1998 кількість користувачів PHP перевалила за 100000, а PHP був вже встановлений на не менше ніж 10% серверах Інтернету. У той ж час значному поширенню даної мови сприяли публікації в електронній пресі та вихід книжок для вивчення PHP.&lt;br /&gt;
&lt;br /&gt;
Відразу ж після виходу PHP 3, Енді Гутманс і Зеєв Сураскі почали переробку ядра PHP. В першу чергу належало вирішити проблему підвищення продуктивності. Новий продукт, названий Zend Engine (від імен творців: Zeev і Andi), успішно справлявся з поставленим завданням і був реалізований в 1999 році. Основними реалізованними ідеями є можливість компіляції сценарію у виконуваний модуль, за рахунок чого продуктивність можна було підняти на порядок.&lt;br /&gt;
&lt;br /&gt;
===Недоліки PHP===&lt;br /&gt;
*Незручність дизайну мови&lt;br /&gt;
*Змінні з символом «$»&lt;br /&gt;
*Складні назви поширених функцій (html_entities_decode, mysql_select_db, nl2br тощо)&lt;br /&gt;
*Не підтримується Unicode в версіях до 6.0&lt;br /&gt;
*Непередбачуваність нових версій PHP.&lt;br /&gt;
===Додаткові можливості===&lt;br /&gt;
Мова явно підтримує HTTP cookies відповідно до специфікацій Netscape. Це дозволяє проводити встановлення та читання невеликих сегментів даних на стороні клієнта.&lt;br /&gt;
&lt;br /&gt;
PHP надає можливість організації роботи з користувачем протягом сеансів (сесій). В сесії можна зберігати різні дані, включаючи об'єкти.&lt;br /&gt;
&lt;br /&gt;
===Визнання та поширення===&lt;br /&gt;
PHP 4, що працює на цьому ядрі, вийшов в 2000 році. На додаток до збільшення продуктивності, PHP 4 мав нові можливості щодо підтримки сесій, буферизацію виводу, безпечні способи обробки інформації, що вводиться користувачем, і нові мовні конструкції. З виходом 4 версії PHP став використовуватися вже на більш ніж 20% доменів Інтернету.&lt;br /&gt;
&lt;br /&gt;
За час з 2000 по 2004 рік продовжувалися активні роботи з покращення 4 версії, але майже відразу PHP Group приступила до продумування можливостей нової версії. В першу чергу було вирішено підсилити об'єктні можливості мови, що дозволяло використовувати його для реалізації масштабних проектів. Роботи із створення версії 5 велися тривалий час, в них брало участь рекордна кількість фахівців, зокрема Стерлінг Хьюз (Шаблон:Lang en:) і Маркус Бергера (Шаблон:Lang en:).&lt;br /&gt;
&lt;br /&gt;
У липні 2004 року виходить офіційний реліз PHP 5. В першу чергу, як і планувалося, було перероблено весь механізм роботи з об'єктами. І якщо в попередніх версіях об'єктно-орієнтоване програмування на PHP було можливе в мінімальному ступені, а тому і використовувалося на практиці не часто, то PHP 5 володіє прекрасним потенціалом реалізації об'єктного програмування. Окрім цього, PHP збагатився рядом цінних розширень для роботи з XML, різними джерелами даних, генерації графіки і інше.&lt;br /&gt;
&lt;br /&gt;
Серед інших украй корисних доповнень в PHP 5 слід зазначити нову схему обробки виключень. Конструкція try/catch/throw дозволяє весь код обробки помилок локалізувати в одному місці сценарію.&lt;br /&gt;
&lt;br /&gt;
Всі основні бібліотеки для роботи з XML, запозичені в PHP 4, були піддані серйозній переробці. Такі популярні розширення, як SAX, DOM і XSLT, тепер використовують інструмент libxml2, що робить їх ще ефективнішими.&lt;br /&gt;
&lt;br /&gt;
У PHP 5 також включені два нові модулі для роботи з протоколами — SimpleXML і SOAP. SimpleXML дозволяє значно спростити роботу з XML-даними, представляючи вміст XML-документа у вигляді PHP-об'єкта. Розширення SOAP дозволяє будувати на PHP сценарії, що обмінюються інформацією з іншими застосунками за допомогою XML-повідомлень поверх існуючих веб-протоколів, наприклад HTTP. Модуль для роботи з SOAP для PHP 5 надає розробникам засіб для достатньо швидкого створення ефективних SOAP-клієнтів і SOAP-серверів.[1]&lt;br /&gt;
&lt;br /&gt;
Новий модуль PHP 5 MySQLi (MySQL Improved) призначений для роботи з MySQL-сервером версій 4.1.2 і вище, реалізовуючи не тільки процедурний, але і об'єктно-орієнтований інтерфейс до MySQL. Додаткові можливості цього модуля включають — SSL, контроль транзакцій, підтримка реплікації і ін. Очевидно, що, на цьому історія PHP не закінчується. Слід очікувати наступних версій мови із розширеними можливостями.&lt;br /&gt;
&lt;br /&gt;
=='''ПРИЗНАЧЕННЯ'''==&lt;br /&gt;
У області програмування Мережа PHP - одна з найпопулярніших скриптових мов (разом з JSP, Perl і мовами, використовуваними в ASP.NET) завдяки своїй простоті, швидкості виконання, багатій функціональності, багатоплатформеності і розповсюдженню початкових кодів на основі ліцензії PHP.&lt;br /&gt;
&lt;br /&gt;
Популярність у галузі побудови веб-сайтів визначається наявністю великого набору вбудованих засобів для розробки веб-додатків.&lt;br /&gt;
Основні з них:&lt;br /&gt;
&lt;br /&gt;
- Автоматичне вилучення POST і GET-параметрів, а також змінних оточення веб-сервера в зумовлені масиви;&lt;br /&gt;
- Файлові функції успішно обробляють як локальні, так і віддалені файли;&lt;br /&gt;
- Автоматична відправка HTTP-заголовків;&lt;br /&gt;
- Робота з cookies і сесіями;&lt;br /&gt;
- Обробка файлів, що завантажуються на сервер;&lt;br /&gt;
- Робота з HTTP заголовками і HTTP авторизацією;&lt;br /&gt;
- Робота з XForms;&lt;br /&gt;
- Робота з віддаленими файлами і сокетами.&lt;br /&gt;
&lt;br /&gt;
В даний час PHP використовується сотнями тисяч розробників. Згідно з рейтингом Tiobe, що базується на даних пошукових систем, у грудні 2009 року PHP знаходиться на 3 місці серед мов програмування (поступаючись Java і C), піднявшись за рік на дві позиції. До найбільших сайтів, що використовують PHP, відносяться Facebook, В контакті, Wikipedia, YouTube.&lt;br /&gt;
&lt;br /&gt;
=='''БАЗОВІ НАЛАШТУВАННЯ'''==&lt;br /&gt;
Файл dbsettings.php відповідає за базові налаштування системи.&lt;br /&gt;
&lt;br /&gt;
Необхідно встановити такі значення:&lt;br /&gt;
&lt;br /&gt;
$serverDB - cервер баз даних, який використовується на хостингу, можливі наступні значення: 0 - використовується сервер баз даних MySQL (використовується на переважній більшості хостингових платформ). Рекомендується використовувати саме його, так як CMS будувалася орієнтованою саме на нього. 1 - використовується сервер баз даних PostgreSQL. Для версії 1.4 на даний момент підтримка PostgerSQL неповна. Рекомендується використовувати лише на CMS версії 1.3&lt;br /&gt;
&lt;br /&gt;
$hostNameDB - ім'я серверу бази даних. Як правило, необхідно свтановити як localhost, якщо сервер баз даних розміщений на тому ж комп'ютері, що й хостинг.&lt;br /&gt;
&lt;br /&gt;
$nameDB - назва бази даних, в якій зберігатимуться всі налаштування та матеріали сайту. Базу даних необхідно створити до інсталяції системи.&lt;br /&gt;
&lt;br /&gt;
$userNameDB - ім'я користувача, що має доступ до бази даних, вказаної в $nameDB.&lt;br /&gt;
&lt;br /&gt;
$userPasswordDB - пароль користувача бази даних, який був вказаний в $userNameDB.&lt;br /&gt;
&lt;br /&gt;
$tableprefix - префікс перед кожною таблицею бази даних. Його рекомендується використовувати тоді, коли Ви використовуєте одну базу даних для декількох систем.&lt;br /&gt;
&lt;br /&gt;
$tableusersprefix - префікс перед назвою таблиці users. Рекомендується використовувати, якщо ви використовуєте багатомовну версію SiMan CMS та хочете, щоб в усіх версіях був спільний набір користувачів.&lt;br /&gt;
&lt;br /&gt;
$session_prefix - підвищує безпеку при використанні декількох SiMan CMS на одному хості. Обов'язково змініть його!&lt;br /&gt;
&lt;br /&gt;
$_settings['use_protect_code'] - підвищує безпеку, використовуючи графічне зображення 4-х значного коду, який генерується при реєстрації нового користувача чи інших діях, які вимагають антибот-перевірки (1 - ввімкнуто, 0 - вимкнуто).&lt;br /&gt;
&lt;br /&gt;
$dontExecuteUsersSqlInScript - дозволяє (0) або забороняє (1) виконання SQL-запитів, введених відвідувачем сайту. Рекомендується встановити значення 1 для покращення безпеки системи, але це відключить деякі можливості, наприклад імпорт бази даних безпосередньо з скрипту.&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%97%D0%BD%D0%B0%D0%B9%D0%BE%D0%BC%D1%81%D1%82%D0%B2%D0%BE_%D0%B7_PHP_(%D0%BF%D1%80%D0%B8%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D1%8F,_%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D1%8F_%D0%B2_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82,_%D0%BE%D0%B1%D1%80%D0%BE%D0%B1%D0%BA%D0%B0,_%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%96_%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)</id>
		<title>Знайомство з PHP (призначення, включення в документ, обробка, базові налаштування)</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%97%D0%BD%D0%B0%D0%B9%D0%BE%D0%BC%D1%81%D1%82%D0%B2%D0%BE_%D0%B7_PHP_(%D0%BF%D1%80%D0%B8%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D1%8F,_%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D1%8F_%D0%B2_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82,_%D0%BE%D0%B1%D1%80%D0%BE%D0%B1%D0%BA%D0%B0,_%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%96_%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)"/>
				<updated>2013-05-27T08:13:59Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: /* Перші версії */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Знайомство з PHP'''==&lt;br /&gt;
PHP (англ. PHP: Hypertext Preprocessor - «PHP: препроцесор гіпертексту», англ. Personal Home Page Tools (застар.) - «Інструменти для створення персональних веб-сторінок») - скриптова мова програмування загального призначення, інтенсивно застосовується для розробки веб-додатків. В даний час підтримується переважною більшістю хостинг-провайдерів і є одним з лідерів серед мов програмування, що застосовуються для створення динамічних веб-сайтів.&lt;br /&gt;
Мова і його інтерпретатор розробляються групою ентузіастів в рамках проекту з відкритим кодом. Проект поширюється під власною ліцензією, несумісною з GNU GPL. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
PHP інтерпретується веб-сервером в HTML-код, який передається на сторону клієнта. На відміну від таких скриптових мов програмування, як JavaScript, користувач не має доступу до PHP-коду, що є перевагою з точки зору безпеки але значно погіршує інтерактивність сторінок. Але ніщо не забороняє використовувати РНР для генерування і JavaScript-кодів які виконаються вже на стороні клієнта.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
PHP - мова, яка може бути вбудованою безпосередньо в html-код сторінок, які, в свою чергу коректно будуть оброблені PHP -інтерпретатором. Механізм РНР просто починає виконувати код після першої екрануючої послідовності (&amp;lt;?) і продовжує виконання до того моменту, коли він зустріне парну екрануючу послідовність (?&amp;gt;).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PHP — мова, яка може бути вбудована безпосередньо в html-код сторінок, які, в свою чергу коректно будуть оброблені PHP -інтерпретатором. Механізм РНР просто починає виконувати код після першої екрануючої послідовності (&amp;lt;?) і продовжує виконання до того моменту, коли він зустріне парну екрануючу послідовність (?&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Велика різноманітність функцій PHP дають можливість уникнути написання багаторядкових призначених для користувача функцій на C або Pascal.&lt;br /&gt;
*Наявність інтерфейсів до багатьох баз даних&lt;br /&gt;
*в PHP вбудовані бібліотеки для роботи з MySQL, PostgreSQL, mSQL, Oracle, dbm, Hyperware, Informix, InterBase, Sybase.&lt;br /&gt;
*через стандарт відкритого інтерфейсу зв'язку з базами даних (Open Database Connectivity Standard — ODBC) можна підключатися до всіх баз даних, до яких існує драйвер.&lt;br /&gt;
*Традиційність&lt;br /&gt;
Мова РНР здаватиметься знайомою програмістам, що працюють в різних областях. Багато конструкцій мови запозичені з С, Perl. Код РНР дуже схожий на той, який зустрічається в типових програмах на С або Pascal. Це помітно знижує початкові зусилля при вивченні РНР. PHP — мова, що поєднує переваги Perl і С і спеціально спрямована на роботу в Інтернеті, мова з універсальним і зрозумілим синтаксисом. І хоча PHP є досить молодою мовою, вона здобула таку популярність серед web-програмістів, що в наш час є мало не найпопулярнішою мовою для створення веб-застосунків (скриптів).&lt;br /&gt;
*Наявність вихідного коду та безкоштовність&lt;br /&gt;
Стратегія Open Source, і розповсюдження початкових текстів програм в масах, безсумнівно справили благотворний вплив на багато проектів, в першу чергу — Linux хоч і успіх проекту Apache сильно підкріпив позиції прихильників Open Source. Сказане відноситься і до історії створення РНР, оскільки підтримка користувачів зі всього світу виявилася дуже важливим чинником в розвитку проекту РНР.&lt;br /&gt;
Ухвалення стратегії Open Source і безплатне розповсюдження початкових текстів РНР надало неоціниму послугу користувачам. Додатково, користувачі РНР в усьому світі є свого роду колективною службою підтримки, і в популярних електронних конференціях можна знайти відповіді навіть на найскладніші питання.&lt;br /&gt;
*Ефективність&lt;br /&gt;
Ефективність є дуже важливим чинником при програмуванні для середовищ розрахованих на багато користувачів, до яких належить і web. Важливою перевагою PHP є те, що ця мова належить до інтерпретованих. Це дозволяє обробляти сценарії з достатньо високою швидкістю. За деякими оцінками, більшість PHP-сценаріїв (особливо не дуже великих розмірів) обробляються швидше за аналогічні їм програми, написані на Perl. Проте, щоб не робили розробники PHP, виконувані файли, отримані за допомогою компіляції, працюватимуть значно швидше — в десятки, а іноді і в сотні разів. Але продуктивність PHP цілком достатня для створення цілком серйозних веб-застосунків.&lt;br /&gt;
===Перші версії===&lt;br /&gt;
ІІсторія PHP починається з 1995 року, коли Расмус Лердорф (англ. Rasmus Lerdorf) створив простий застосунок мовою Perl, що аналізував відвідування користувачами його резюме на веб-сайті. Потім, коли цим застосунком вже користувалися кілька чоловік, а число охочих одержати його постійно збільшувалося, Лердорф назвав своє творіння Особисті інструменти домашньої сторінки англ. Personal Home Page Tools версія 1 і виставив для вільного завантаження. З цієї миті почався небувалий зліт популярності PHP.&lt;br /&gt;
&lt;br /&gt;
Як це завжди буває, терміново було потрібне доопрацювання і нові доповнення. Для їхньої реалізації Расмус створює нову версію пакету, тепер уже написану на С. Отриманий таким чином інструмент набуває робочої назви PHP/FI Персональна Домашня сторінка / Інтерпретатор Форм (англ. Personal Home Page / Forms Interpreter — ), надалі він також буде відомий під назвою PHP 2. Ця версія вже більшою мірою схожа на сьогоднішній PHP. Вона мала синтаксис і спосіб іменування змінних в стилі мови Perl, можливість вбудовування PHP операторів в html-код сторінки, автоматичну інтерпретацію форм, інтеграцію з базами даних. При цьому все працювало досить швидко, оскільки PHP прикомпилювалось до веб-серверу Apache. До 1997 року PHP використовувався вже на 50,000 доменах (не більше 1% всіх веб-серверів).&lt;br /&gt;
&lt;br /&gt;
У тому ж 1997 році до проекту PHP підключилися Зев Сураскі (англ. Zeev Suraski) і Енді Гутманс (англ. Andi Gutmans). Ці студенти Техніону, одного з найкращих ізраїльських університетів, намагалися використовувати PHP/FI для одного з комерційних університетських проектів. При цьому їм довелося зіткнутися з багатьма труднощами і обмеженнями цієї технології. Вивчаючи початковий код PHP 2, Зеєв і Енді дійшли висновку про необхідність доопрацювання, а точніше істотної переробки PHP, особливо в плані синтаксису мови. Протягом декількох місяців вони блискуче впоралися з цим завданням.&lt;br /&gt;
&lt;br /&gt;
Закінчивши роботу Зеєв і Енді домовились з Расмусом про співпрацю в галузі розвитку та вдосконалення мови. З цієї миті з'являється PHP Group — група однодумців, що працюють над розвитком технології PHP. Одержаний продукт з'явився на світ у 1998 році під назвою PHP 3.&lt;br /&gt;
&lt;br /&gt;
При цьому головною особливість PHP 3 була можливість розширення ядра, що привернуло до роботи над PHP безліч сторонніх розробників, що створюють спеціалізовані модулі. Їх наявність дала PHP можливість працювати з величезною кількістю баз даних, протоколів, підтримувати велике число API. До кінця 1998 кількість користувачів PHP перевалила за 100000, а PHP був вже встановлений на не менше ніж 10% серверах Інтернету. У той ж час значному поширенню даної мови сприяли публікації в електронній пресі та вихід книжок для вивчення PHP.&lt;br /&gt;
&lt;br /&gt;
Відразу ж після виходу PHP 3, Енді Гутманс і Зеєв Сураскі почали переробку ядра PHP. В першу чергу належало вирішити проблему підвищення продуктивності. Новий продукт, названий Zend Engine (від імен творців: Zeev і Andi), успішно справлявся з поставленим завданням і був реалізований в 1999 році. Основними реалізованними ідеями є можливість компіляції сценарію у виконуваний модуль, за рахунок чого продуктивність можна було підняти на порядок.&lt;br /&gt;
&lt;br /&gt;
===Недоліки PHP===&lt;br /&gt;
*Незручність дизайну мови&lt;br /&gt;
*Змінні з символом «$»&lt;br /&gt;
*Складні назви поширених функцій (html_entities_decode, mysql_select_db, nl2br тощо)&lt;br /&gt;
*Не підтримується Unicode в версіях до 6.0&lt;br /&gt;
*Непередбачуваність нових версій PHP.&lt;br /&gt;
===Визнання та поширення===&lt;br /&gt;
PHP 4, що працює на цьому ядрі, вийшов в 2000 році. На додаток до збільшення продуктивності, PHP 4 мав нові можливості щодо підтримки сесій, буферизацію виводу, безпечні способи обробки інформації, що вводиться користувачем, і нові мовні конструкції. З виходом 4 версії PHP став використовуватися вже на більш ніж 20% доменів Інтернету.&lt;br /&gt;
&lt;br /&gt;
За час з 2000 по 2004 рік продовжувалися активні роботи з покращення 4 версії, але майже відразу PHP Group приступила до продумування можливостей нової версії. В першу чергу було вирішено підсилити об'єктні можливості мови, що дозволяло використовувати його для реалізації масштабних проектів. Роботи із створення версії 5 велися тривалий час, в них брало участь рекордна кількість фахівців, зокрема Стерлінг Хьюз (Шаблон:Lang en:) і Маркус Бергера (Шаблон:Lang en:).&lt;br /&gt;
&lt;br /&gt;
У липні 2004 року виходить офіційний реліз PHP 5. В першу чергу, як і планувалося, було перероблено весь механізм роботи з об'єктами. І якщо в попередніх версіях об'єктно-орієнтоване програмування на PHP було можливе в мінімальному ступені, а тому і використовувалося на практиці не часто, то PHP 5 володіє прекрасним потенціалом реалізації об'єктного програмування. Окрім цього, PHP збагатився рядом цінних розширень для роботи з XML, різними джерелами даних, генерації графіки і інше.&lt;br /&gt;
&lt;br /&gt;
Серед інших украй корисних доповнень в PHP 5 слід зазначити нову схему обробки виключень. Конструкція try/catch/throw дозволяє весь код обробки помилок локалізувати в одному місці сценарію.&lt;br /&gt;
&lt;br /&gt;
Всі основні бібліотеки для роботи з XML, запозичені в PHP 4, були піддані серйозній переробці. Такі популярні розширення, як SAX, DOM і XSLT, тепер використовують інструмент libxml2, що робить їх ще ефективнішими.&lt;br /&gt;
&lt;br /&gt;
У PHP 5 також включені два нові модулі для роботи з протоколами — SimpleXML і SOAP. SimpleXML дозволяє значно спростити роботу з XML-даними, представляючи вміст XML-документа у вигляді PHP-об'єкта. Розширення SOAP дозволяє будувати на PHP сценарії, що обмінюються інформацією з іншими застосунками за допомогою XML-повідомлень поверх існуючих веб-протоколів, наприклад HTTP. Модуль для роботи з SOAP для PHP 5 надає розробникам засіб для достатньо швидкого створення ефективних SOAP-клієнтів і SOAP-серверів.[1]&lt;br /&gt;
&lt;br /&gt;
Новий модуль PHP 5 MySQLi (MySQL Improved) призначений для роботи з MySQL-сервером версій 4.1.2 і вище, реалізовуючи не тільки процедурний, але і об'єктно-орієнтований інтерфейс до MySQL. Додаткові можливості цього модуля включають — SSL, контроль транзакцій, підтримка реплікації і ін. Очевидно, що, на цьому історія PHP не закінчується. Слід очікувати наступних версій мови із розширеними можливостями.&lt;br /&gt;
&lt;br /&gt;
=='''ПРИЗНАЧЕННЯ'''==&lt;br /&gt;
У області програмування Мережа PHP - одна з найпопулярніших скриптових мов (разом з JSP, Perl і мовами, використовуваними в ASP.NET) завдяки своїй простоті, швидкості виконання, багатій функціональності, багатоплатформеності і розповсюдженню початкових кодів на основі ліцензії PHP.&lt;br /&gt;
&lt;br /&gt;
Популярність у галузі побудови веб-сайтів визначається наявністю великого набору вбудованих засобів для розробки веб-додатків.&lt;br /&gt;
Основні з них:&lt;br /&gt;
&lt;br /&gt;
- Автоматичне вилучення POST і GET-параметрів, а також змінних оточення веб-сервера в зумовлені масиви;&lt;br /&gt;
- Файлові функції успішно обробляють як локальні, так і віддалені файли;&lt;br /&gt;
- Автоматична відправка HTTP-заголовків;&lt;br /&gt;
- Робота з cookies і сесіями;&lt;br /&gt;
- Обробка файлів, що завантажуються на сервер;&lt;br /&gt;
- Робота з HTTP заголовками і HTTP авторизацією;&lt;br /&gt;
- Робота з XForms;&lt;br /&gt;
- Робота з віддаленими файлами і сокетами.&lt;br /&gt;
&lt;br /&gt;
В даний час PHP використовується сотнями тисяч розробників. Згідно з рейтингом Tiobe, що базується на даних пошукових систем, у грудні 2009 року PHP знаходиться на 3 місці серед мов програмування (поступаючись Java і C), піднявшись за рік на дві позиції. До найбільших сайтів, що використовують PHP, відносяться Facebook, В контакті, Wikipedia, YouTube.&lt;br /&gt;
&lt;br /&gt;
=='''БАЗОВІ НАЛАШТУВАННЯ'''==&lt;br /&gt;
Файл dbsettings.php відповідає за базові налаштування системи.&lt;br /&gt;
&lt;br /&gt;
Необхідно встановити такі значення:&lt;br /&gt;
&lt;br /&gt;
$serverDB - cервер баз даних, який використовується на хостингу, можливі наступні значення: 0 - використовується сервер баз даних MySQL (використовується на переважній більшості хостингових платформ). Рекомендується використовувати саме його, так як CMS будувалася орієнтованою саме на нього. 1 - використовується сервер баз даних PostgreSQL. Для версії 1.4 на даний момент підтримка PostgerSQL неповна. Рекомендується використовувати лише на CMS версії 1.3&lt;br /&gt;
&lt;br /&gt;
$hostNameDB - ім'я серверу бази даних. Як правило, необхідно свтановити як localhost, якщо сервер баз даних розміщений на тому ж комп'ютері, що й хостинг.&lt;br /&gt;
&lt;br /&gt;
$nameDB - назва бази даних, в якій зберігатимуться всі налаштування та матеріали сайту. Базу даних необхідно створити до інсталяції системи.&lt;br /&gt;
&lt;br /&gt;
$userNameDB - ім'я користувача, що має доступ до бази даних, вказаної в $nameDB.&lt;br /&gt;
&lt;br /&gt;
$userPasswordDB - пароль користувача бази даних, який був вказаний в $userNameDB.&lt;br /&gt;
&lt;br /&gt;
$tableprefix - префікс перед кожною таблицею бази даних. Його рекомендується використовувати тоді, коли Ви використовуєте одну базу даних для декількох систем.&lt;br /&gt;
&lt;br /&gt;
$tableusersprefix - префікс перед назвою таблиці users. Рекомендується використовувати, якщо ви використовуєте багатомовну версію SiMan CMS та хочете, щоб в усіх версіях був спільний набір користувачів.&lt;br /&gt;
&lt;br /&gt;
$session_prefix - підвищує безпеку при використанні декількох SiMan CMS на одному хості. Обов'язково змініть його!&lt;br /&gt;
&lt;br /&gt;
$_settings['use_protect_code'] - підвищує безпеку, використовуючи графічне зображення 4-х значного коду, який генерується при реєстрації нового користувача чи інших діях, які вимагають антибот-перевірки (1 - ввімкнуто, 0 - вимкнуто).&lt;br /&gt;
&lt;br /&gt;
$dontExecuteUsersSqlInScript - дозволяє (0) або забороняє (1) виконання SQL-запитів, введених відвідувачем сайту. Рекомендується встановити значення 1 для покращення безпеки системи, але це відключить деякі можливості, наприклад імпорт бази даних безпосередньо з скрипту.&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%97%D0%BD%D0%B0%D0%B9%D0%BE%D0%BC%D1%81%D1%82%D0%B2%D0%BE_%D0%B7_PHP_(%D0%BF%D1%80%D0%B8%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D1%8F,_%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D1%8F_%D0%B2_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82,_%D0%BE%D0%B1%D1%80%D0%BE%D0%B1%D0%BA%D0%B0,_%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%96_%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)</id>
		<title>Знайомство з PHP (призначення, включення в документ, обробка, базові налаштування)</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%97%D0%BD%D0%B0%D0%B9%D0%BE%D0%BC%D1%81%D1%82%D0%B2%D0%BE_%D0%B7_PHP_(%D0%BF%D1%80%D0%B8%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D1%8F,_%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D1%8F_%D0%B2_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82,_%D0%BE%D0%B1%D1%80%D0%BE%D0%B1%D0%BA%D0%B0,_%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%96_%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)"/>
				<updated>2013-05-27T08:13:18Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: /* Перші версії */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Знайомство з PHP'''==&lt;br /&gt;
PHP (англ. PHP: Hypertext Preprocessor - «PHP: препроцесор гіпертексту», англ. Personal Home Page Tools (застар.) - «Інструменти для створення персональних веб-сторінок») - скриптова мова програмування загального призначення, інтенсивно застосовується для розробки веб-додатків. В даний час підтримується переважною більшістю хостинг-провайдерів і є одним з лідерів серед мов програмування, що застосовуються для створення динамічних веб-сайтів.&lt;br /&gt;
Мова і його інтерпретатор розробляються групою ентузіастів в рамках проекту з відкритим кодом. Проект поширюється під власною ліцензією, несумісною з GNU GPL. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
PHP інтерпретується веб-сервером в HTML-код, який передається на сторону клієнта. На відміну від таких скриптових мов програмування, як JavaScript, користувач не має доступу до PHP-коду, що є перевагою з точки зору безпеки але значно погіршує інтерактивність сторінок. Але ніщо не забороняє використовувати РНР для генерування і JavaScript-кодів які виконаються вже на стороні клієнта.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
PHP - мова, яка може бути вбудованою безпосередньо в html-код сторінок, які, в свою чергу коректно будуть оброблені PHP -інтерпретатором. Механізм РНР просто починає виконувати код після першої екрануючої послідовності (&amp;lt;?) і продовжує виконання до того моменту, коли він зустріне парну екрануючу послідовність (?&amp;gt;).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PHP — мова, яка може бути вбудована безпосередньо в html-код сторінок, які, в свою чергу коректно будуть оброблені PHP -інтерпретатором. Механізм РНР просто починає виконувати код після першої екрануючої послідовності (&amp;lt;?) і продовжує виконання до того моменту, коли він зустріне парну екрануючу послідовність (?&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Велика різноманітність функцій PHP дають можливість уникнути написання багаторядкових призначених для користувача функцій на C або Pascal.&lt;br /&gt;
*Наявність інтерфейсів до багатьох баз даних&lt;br /&gt;
*в PHP вбудовані бібліотеки для роботи з MySQL, PostgreSQL, mSQL, Oracle, dbm, Hyperware, Informix, InterBase, Sybase.&lt;br /&gt;
*через стандарт відкритого інтерфейсу зв'язку з базами даних (Open Database Connectivity Standard — ODBC) можна підключатися до всіх баз даних, до яких існує драйвер.&lt;br /&gt;
*Традиційність&lt;br /&gt;
Мова РНР здаватиметься знайомою програмістам, що працюють в різних областях. Багато конструкцій мови запозичені з С, Perl. Код РНР дуже схожий на той, який зустрічається в типових програмах на С або Pascal. Це помітно знижує початкові зусилля при вивченні РНР. PHP — мова, що поєднує переваги Perl і С і спеціально спрямована на роботу в Інтернеті, мова з універсальним і зрозумілим синтаксисом. І хоча PHP є досить молодою мовою, вона здобула таку популярність серед web-програмістів, що в наш час є мало не найпопулярнішою мовою для створення веб-застосунків (скриптів).&lt;br /&gt;
*Наявність вихідного коду та безкоштовність&lt;br /&gt;
Стратегія Open Source, і розповсюдження початкових текстів програм в масах, безсумнівно справили благотворний вплив на багато проектів, в першу чергу — Linux хоч і успіх проекту Apache сильно підкріпив позиції прихильників Open Source. Сказане відноситься і до історії створення РНР, оскільки підтримка користувачів зі всього світу виявилася дуже важливим чинником в розвитку проекту РНР.&lt;br /&gt;
Ухвалення стратегії Open Source і безплатне розповсюдження початкових текстів РНР надало неоціниму послугу користувачам. Додатково, користувачі РНР в усьому світі є свого роду колективною службою підтримки, і в популярних електронних конференціях можна знайти відповіді навіть на найскладніші питання.&lt;br /&gt;
*Ефективність&lt;br /&gt;
Ефективність є дуже важливим чинником при програмуванні для середовищ розрахованих на багато користувачів, до яких належить і web. Важливою перевагою PHP є те, що ця мова належить до інтерпретованих. Це дозволяє обробляти сценарії з достатньо високою швидкістю. За деякими оцінками, більшість PHP-сценаріїв (особливо не дуже великих розмірів) обробляються швидше за аналогічні їм програми, написані на Perl. Проте, щоб не робили розробники PHP, виконувані файли, отримані за допомогою компіляції, працюватимуть значно швидше — в десятки, а іноді і в сотні разів. Але продуктивність PHP цілком достатня для створення цілком серйозних веб-застосунків.&lt;br /&gt;
===Перші версії===&lt;br /&gt;
ІІсторія PHP починається з 1995 року, коли Расмус Лердорф (англ. Rasmus Lerdorf) створив простий застосунок мовою Perl, що аналізував відвідування користувачами його резюме на веб-сайті. Потім, коли цим застосунком вже користувалися кілька чоловік, а число охочих одержати його постійно збільшувалося, Лердорф назвав своє творіння Особисті інструменти домашньої сторінки англ. Personal Home Page Tools версія 1 і виставив для вільного завантаження. З цієї миті почався небувалий зліт популярності PHP.&lt;br /&gt;
&lt;br /&gt;
Як це завжди буває, терміново було потрібне доопрацювання і нові доповнення. Для їхньої реалізації Расмус створює нову версію пакету, тепер уже написану на С. Отриманий таким чином інструмент набуває робочої назви PHP/FI Персональна Домашня сторінка / Інтерпретатор Форм (англ. Personal Home Page / Forms Interpreter — ), надалі він також буде відомий під назвою PHP 2. Ця версія вже більшою мірою схожа на сьогоднішній PHP. Вона мала синтаксис і спосіб іменування змінних в стилі мови Perl, можливість вбудовування PHP операторів в html-код сторінки, автоматичну інтерпретацію форм, інтеграцію з базами даних. При цьому все працювало досить швидко, оскільки PHP прикомпилювалось до веб-серверу Apache. До 1997 року PHP використовувався вже на 50,000 доменах (не більше 1% всіх веб-серверів).[1]&lt;br /&gt;
&lt;br /&gt;
У тому ж 1997 році до проекту PHP підключилися Зев Сураскі (англ. Zeev Suraski) і Енді Гутманс (англ. Andi Gutmans). Ці студенти Техніону, одного з найкращих ізраїльських університетів, намагалися використовувати PHP/FI для одного з комерційних університетських проектів. При цьому їм довелося зіткнутися з багатьма труднощами і обмеженнями цієї технології. Вивчаючи початковий код PHP 2, Зеєв і Енді дійшли висновку про необхідність доопрацювання, а точніше істотної переробки PHP, особливо в плані синтаксису мови. Протягом декількох місяців вони блискуче впоралися з цим завданням.[1]&lt;br /&gt;
&lt;br /&gt;
Закінчивши роботу Зеєв і Енді домовились з Расмусом про співпрацю в галузі розвитку та вдосконалення мови. З цієї миті з'являється PHP Group — група однодумців, що працюють над розвитком технології PHP. Одержаний продукт з'явився на світ у 1998 році під назвою PHP 3.&lt;br /&gt;
&lt;br /&gt;
При цьому головною особливість PHP 3 була можливість розширення ядра, що привернуло до роботи над PHP безліч сторонніх розробників, що створюють спеціалізовані модулі. Їх наявність дала PHP можливість працювати з величезною кількістю баз даних, протоколів, підтримувати велике число API. До кінця 1998 кількість користувачів PHP перевалила за 100000, а PHP був вже встановлений на не менше ніж 10% серверах Інтернету. У той ж час значному поширенню даної мови сприяли публікації в електронній пресі та вихід книжок для вивчення PHP.&lt;br /&gt;
&lt;br /&gt;
Відразу ж після виходу PHP 3, Енді Гутманс і Зеєв Сураскі почали переробку ядра PHP. В першу чергу належало вирішити проблему підвищення продуктивності. Новий продукт, названий Zend Engine (від імен творців: Zeev і Andi), успішно справлявся з поставленим завданням і був реалізований в 1999 році. Основними реалізованними ідеями є можливість компіляції сценарію у виконуваний модуль, за рахунок чого продуктивність можна було підняти на порядок.&lt;br /&gt;
&lt;br /&gt;
===Недоліки PHP===&lt;br /&gt;
*Незручність дизайну мови&lt;br /&gt;
*Змінні з символом «$»&lt;br /&gt;
*Складні назви поширених функцій (html_entities_decode, mysql_select_db, nl2br тощо)&lt;br /&gt;
*Не підтримується Unicode в версіях до 6.0&lt;br /&gt;
*Непередбачуваність нових версій PHP.&lt;br /&gt;
===Визнання та поширення===&lt;br /&gt;
PHP 4, що працює на цьому ядрі, вийшов в 2000 році. На додаток до збільшення продуктивності, PHP 4 мав нові можливості щодо підтримки сесій, буферизацію виводу, безпечні способи обробки інформації, що вводиться користувачем, і нові мовні конструкції. З виходом 4 версії PHP став використовуватися вже на більш ніж 20% доменів Інтернету.&lt;br /&gt;
&lt;br /&gt;
За час з 2000 по 2004 рік продовжувалися активні роботи з покращення 4 версії, але майже відразу PHP Group приступила до продумування можливостей нової версії. В першу чергу було вирішено підсилити об'єктні можливості мови, що дозволяло використовувати його для реалізації масштабних проектів. Роботи із створення версії 5 велися тривалий час, в них брало участь рекордна кількість фахівців, зокрема Стерлінг Хьюз (Шаблон:Lang en:) і Маркус Бергера (Шаблон:Lang en:).&lt;br /&gt;
&lt;br /&gt;
У липні 2004 року виходить офіційний реліз PHP 5. В першу чергу, як і планувалося, було перероблено весь механізм роботи з об'єктами. І якщо в попередніх версіях об'єктно-орієнтоване програмування на PHP було можливе в мінімальному ступені, а тому і використовувалося на практиці не часто, то PHP 5 володіє прекрасним потенціалом реалізації об'єктного програмування. Окрім цього, PHP збагатився рядом цінних розширень для роботи з XML, різними джерелами даних, генерації графіки і інше.&lt;br /&gt;
&lt;br /&gt;
Серед інших украй корисних доповнень в PHP 5 слід зазначити нову схему обробки виключень. Конструкція try/catch/throw дозволяє весь код обробки помилок локалізувати в одному місці сценарію.&lt;br /&gt;
&lt;br /&gt;
Всі основні бібліотеки для роботи з XML, запозичені в PHP 4, були піддані серйозній переробці. Такі популярні розширення, як SAX, DOM і XSLT, тепер використовують інструмент libxml2, що робить їх ще ефективнішими.&lt;br /&gt;
&lt;br /&gt;
У PHP 5 також включені два нові модулі для роботи з протоколами — SimpleXML і SOAP. SimpleXML дозволяє значно спростити роботу з XML-даними, представляючи вміст XML-документа у вигляді PHP-об'єкта. Розширення SOAP дозволяє будувати на PHP сценарії, що обмінюються інформацією з іншими застосунками за допомогою XML-повідомлень поверх існуючих веб-протоколів, наприклад HTTP. Модуль для роботи з SOAP для PHP 5 надає розробникам засіб для достатньо швидкого створення ефективних SOAP-клієнтів і SOAP-серверів.[1]&lt;br /&gt;
&lt;br /&gt;
Новий модуль PHP 5 MySQLi (MySQL Improved) призначений для роботи з MySQL-сервером версій 4.1.2 і вище, реалізовуючи не тільки процедурний, але і об'єктно-орієнтований інтерфейс до MySQL. Додаткові можливості цього модуля включають — SSL, контроль транзакцій, підтримка реплікації і ін. Очевидно, що, на цьому історія PHP не закінчується. Слід очікувати наступних версій мови із розширеними можливостями.&lt;br /&gt;
&lt;br /&gt;
=='''ПРИЗНАЧЕННЯ'''==&lt;br /&gt;
У області програмування Мережа PHP - одна з найпопулярніших скриптових мов (разом з JSP, Perl і мовами, використовуваними в ASP.NET) завдяки своїй простоті, швидкості виконання, багатій функціональності, багатоплатформеності і розповсюдженню початкових кодів на основі ліцензії PHP.&lt;br /&gt;
&lt;br /&gt;
Популярність у галузі побудови веб-сайтів визначається наявністю великого набору вбудованих засобів для розробки веб-додатків.&lt;br /&gt;
Основні з них:&lt;br /&gt;
&lt;br /&gt;
- Автоматичне вилучення POST і GET-параметрів, а також змінних оточення веб-сервера в зумовлені масиви;&lt;br /&gt;
- Файлові функції успішно обробляють як локальні, так і віддалені файли;&lt;br /&gt;
- Автоматична відправка HTTP-заголовків;&lt;br /&gt;
- Робота з cookies і сесіями;&lt;br /&gt;
- Обробка файлів, що завантажуються на сервер;&lt;br /&gt;
- Робота з HTTP заголовками і HTTP авторизацією;&lt;br /&gt;
- Робота з XForms;&lt;br /&gt;
- Робота з віддаленими файлами і сокетами.&lt;br /&gt;
&lt;br /&gt;
В даний час PHP використовується сотнями тисяч розробників. Згідно з рейтингом Tiobe, що базується на даних пошукових систем, у грудні 2009 року PHP знаходиться на 3 місці серед мов програмування (поступаючись Java і C), піднявшись за рік на дві позиції. До найбільших сайтів, що використовують PHP, відносяться Facebook, В контакті, Wikipedia, YouTube.&lt;br /&gt;
&lt;br /&gt;
=='''БАЗОВІ НАЛАШТУВАННЯ'''==&lt;br /&gt;
Файл dbsettings.php відповідає за базові налаштування системи.&lt;br /&gt;
&lt;br /&gt;
Необхідно встановити такі значення:&lt;br /&gt;
&lt;br /&gt;
$serverDB - cервер баз даних, який використовується на хостингу, можливі наступні значення: 0 - використовується сервер баз даних MySQL (використовується на переважній більшості хостингових платформ). Рекомендується використовувати саме його, так як CMS будувалася орієнтованою саме на нього. 1 - використовується сервер баз даних PostgreSQL. Для версії 1.4 на даний момент підтримка PostgerSQL неповна. Рекомендується використовувати лише на CMS версії 1.3&lt;br /&gt;
&lt;br /&gt;
$hostNameDB - ім'я серверу бази даних. Як правило, необхідно свтановити як localhost, якщо сервер баз даних розміщений на тому ж комп'ютері, що й хостинг.&lt;br /&gt;
&lt;br /&gt;
$nameDB - назва бази даних, в якій зберігатимуться всі налаштування та матеріали сайту. Базу даних необхідно створити до інсталяції системи.&lt;br /&gt;
&lt;br /&gt;
$userNameDB - ім'я користувача, що має доступ до бази даних, вказаної в $nameDB.&lt;br /&gt;
&lt;br /&gt;
$userPasswordDB - пароль користувача бази даних, який був вказаний в $userNameDB.&lt;br /&gt;
&lt;br /&gt;
$tableprefix - префікс перед кожною таблицею бази даних. Його рекомендується використовувати тоді, коли Ви використовуєте одну базу даних для декількох систем.&lt;br /&gt;
&lt;br /&gt;
$tableusersprefix - префікс перед назвою таблиці users. Рекомендується використовувати, якщо ви використовуєте багатомовну версію SiMan CMS та хочете, щоб в усіх версіях був спільний набір користувачів.&lt;br /&gt;
&lt;br /&gt;
$session_prefix - підвищує безпеку при використанні декількох SiMan CMS на одному хості. Обов'язково змініть його!&lt;br /&gt;
&lt;br /&gt;
$_settings['use_protect_code'] - підвищує безпеку, використовуючи графічне зображення 4-х значного коду, який генерується при реєстрації нового користувача чи інших діях, які вимагають антибот-перевірки (1 - ввімкнуто, 0 - вимкнуто).&lt;br /&gt;
&lt;br /&gt;
$dontExecuteUsersSqlInScript - дозволяє (0) або забороняє (1) виконання SQL-запитів, введених відвідувачем сайту. Рекомендується встановити значення 1 для покращення безпеки системи, але це відключить деякі можливості, наприклад імпорт бази даних безпосередньо з скрипту.&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%97%D0%BD%D0%B0%D0%B9%D0%BE%D0%BC%D1%81%D1%82%D0%B2%D0%BE_%D0%B7_PHP_(%D0%BF%D1%80%D0%B8%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D1%8F,_%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D1%8F_%D0%B2_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82,_%D0%BE%D0%B1%D1%80%D0%BE%D0%B1%D0%BA%D0%B0,_%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%96_%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)</id>
		<title>Знайомство з PHP (призначення, включення в документ, обробка, базові налаштування)</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%97%D0%BD%D0%B0%D0%B9%D0%BE%D0%BC%D1%81%D1%82%D0%B2%D0%BE_%D0%B7_PHP_(%D0%BF%D1%80%D0%B8%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D1%8F,_%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D1%8F_%D0%B2_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82,_%D0%BE%D0%B1%D1%80%D0%BE%D0%B1%D0%BA%D0%B0,_%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%96_%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)"/>
				<updated>2013-05-27T08:12:56Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: /* Знайомство з PHP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Знайомство з PHP'''==&lt;br /&gt;
PHP (англ. PHP: Hypertext Preprocessor - «PHP: препроцесор гіпертексту», англ. Personal Home Page Tools (застар.) - «Інструменти для створення персональних веб-сторінок») - скриптова мова програмування загального призначення, інтенсивно застосовується для розробки веб-додатків. В даний час підтримується переважною більшістю хостинг-провайдерів і є одним з лідерів серед мов програмування, що застосовуються для створення динамічних веб-сайтів.&lt;br /&gt;
Мова і його інтерпретатор розробляються групою ентузіастів в рамках проекту з відкритим кодом. Проект поширюється під власною ліцензією, несумісною з GNU GPL. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
PHP інтерпретується веб-сервером в HTML-код, який передається на сторону клієнта. На відміну від таких скриптових мов програмування, як JavaScript, користувач не має доступу до PHP-коду, що є перевагою з точки зору безпеки але значно погіршує інтерактивність сторінок. Але ніщо не забороняє використовувати РНР для генерування і JavaScript-кодів які виконаються вже на стороні клієнта.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
PHP - мова, яка може бути вбудованою безпосередньо в html-код сторінок, які, в свою чергу коректно будуть оброблені PHP -інтерпретатором. Механізм РНР просто починає виконувати код після першої екрануючої послідовності (&amp;lt;?) і продовжує виконання до того моменту, коли він зустріне парну екрануючу послідовність (?&amp;gt;).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PHP — мова, яка може бути вбудована безпосередньо в html-код сторінок, які, в свою чергу коректно будуть оброблені PHP -інтерпретатором. Механізм РНР просто починає виконувати код після першої екрануючої послідовності (&amp;lt;?) і продовжує виконання до того моменту, коли він зустріне парну екрануючу послідовність (?&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Велика різноманітність функцій PHP дають можливість уникнути написання багаторядкових призначених для користувача функцій на C або Pascal.&lt;br /&gt;
*Наявність інтерфейсів до багатьох баз даних&lt;br /&gt;
*в PHP вбудовані бібліотеки для роботи з MySQL, PostgreSQL, mSQL, Oracle, dbm, Hyperware, Informix, InterBase, Sybase.&lt;br /&gt;
*через стандарт відкритого інтерфейсу зв'язку з базами даних (Open Database Connectivity Standard — ODBC) можна підключатися до всіх баз даних, до яких існує драйвер.&lt;br /&gt;
*Традиційність&lt;br /&gt;
Мова РНР здаватиметься знайомою програмістам, що працюють в різних областях. Багато конструкцій мови запозичені з С, Perl. Код РНР дуже схожий на той, який зустрічається в типових програмах на С або Pascal. Це помітно знижує початкові зусилля при вивченні РНР. PHP — мова, що поєднує переваги Perl і С і спеціально спрямована на роботу в Інтернеті, мова з універсальним і зрозумілим синтаксисом. І хоча PHP є досить молодою мовою, вона здобула таку популярність серед web-програмістів, що в наш час є мало не найпопулярнішою мовою для створення веб-застосунків (скриптів).&lt;br /&gt;
*Наявність вихідного коду та безкоштовність&lt;br /&gt;
Стратегія Open Source, і розповсюдження початкових текстів програм в масах, безсумнівно справили благотворний вплив на багато проектів, в першу чергу — Linux хоч і успіх проекту Apache сильно підкріпив позиції прихильників Open Source. Сказане відноситься і до історії створення РНР, оскільки підтримка користувачів зі всього світу виявилася дуже важливим чинником в розвитку проекту РНР.&lt;br /&gt;
Ухвалення стратегії Open Source і безплатне розповсюдження початкових текстів РНР надало неоціниму послугу користувачам. Додатково, користувачі РНР в усьому світі є свого роду колективною службою підтримки, і в популярних електронних конференціях можна знайти відповіді навіть на найскладніші питання.&lt;br /&gt;
*Ефективність&lt;br /&gt;
Ефективність є дуже важливим чинником при програмуванні для середовищ розрахованих на багато користувачів, до яких належить і web. Важливою перевагою PHP є те, що ця мова належить до інтерпретованих. Це дозволяє обробляти сценарії з достатньо високою швидкістю. За деякими оцінками, більшість PHP-сценаріїв (особливо не дуже великих розмірів) обробляються швидше за аналогічні їм програми, написані на Perl. Проте, щоб не робили розробники PHP, виконувані файли, отримані за допомогою компіляції, працюватимуть значно швидше — в десятки, а іноді і в сотні разів. Але продуктивність PHP цілком достатня для створення цілком серйозних веб-застосунків.&lt;br /&gt;
===Перші версії===&lt;br /&gt;
Історія PHP починається з 1995 року, коли Расмус Лердорф (англ. Rasmus Lerdorf) створив простий застосунок мовою Perl, що аналізував відвідування користувачами його резюме на веб-сайті. Потім, коли цим застосунком вже користувалися кілька чоловік, а число охочих одержати його постійно збільшувалося, Лердорф назвав своє творіння Особисті інструменти домашньої сторінки англ. Personal Home Page Tools версія 1 і виставив для вільного завантаження. З цієї миті почався небувалий зліт популярності PHP.&lt;br /&gt;
Як це завжди буває, терміново було потрібне доопрацювання і нові доповнення. Для їхньої реалізації Расмус створює нову версію пакету, тепер уже написану на С. Отриманий таким чином інструмент набуває робочої назви PHP/FI Персональна Домашня сторінка / Інтерпретатор Форм (англ. Personal Home Page / Forms Interpreter — ), надалі він також буде відомий під назвою PHP 2. Ця версія вже більшою мірою схожа на сьогоднішній PHP. Вона мала синтаксис і спосіб іменування змінних в стилі мови Perl, можливість вбудовування PHP операторів в html-код сторінки, автоматичну інтерпретацію форм, інтеграцію з базами даних. При цьому все працювало досить швидко, оскільки PHP прикомпилювалось до веб-серверу Apache. До 1997 року PHP використовувався вже на 50,000 доменах (не більше 1% всіх веб-серверів).&lt;br /&gt;
У тому ж 1997 році до проекту PHP підключилися Зев Сураскі (англ. Zeev Suraski) і Енді Гутманс (англ. Andi Gutmans). Ці студенти Техніону, одного з найкращих ізраїльських університетів, намагалися використовувати PHP/FI для одного з комерційних університетських проектів. При цьому їм довелося зіткнутися з багатьма труднощами і обмеженнями цієї технології. Вивчаючи початковий код PHP 2, Зеєв і Енді дійшли висновку про необхідність доопрацювання, а точніше істотної переробки PHP, особливо в плані синтаксису мови. Протягом декількох місяців вони блискуче впоралися з цим завданням.&lt;br /&gt;
Закінчивши роботу Зеєв і Енді домовились з Расмусом про співпрацю в галузі розвитку та вдосконалення мови. З цієї миті з'являється PHP Group — група однодумців, що працюють над розвитком технології PHP. Одержаний продукт з'явився на світ у 1998 році під назвою PHP 3.&lt;br /&gt;
При цьому головною особливість PHP 3 була можливість розширення ядра, що привернуло до роботи над PHP безліч сторонніх розробників, що створюють спеціалізовані модулі. Їх наявність дала PHP можливість працювати з величезною кількістю баз даних, протоколів, підтримувати велике число API. До кінця 1998 кількість користувачів PHP перевалила за 100000, а PHP був вже встановлений на не менше ніж 10% серверах Інтернету. У той ж час значному поширенню даної мови сприяли публікації в електронній пресі та вихід книжок для вивчення PHP.&lt;br /&gt;
Відразу ж після виходу PHP 3, Енді Гутманс і Зеєв Сураскі почали переробку ядра PHP. В першу чергу належало вирішити проблему підвищення продуктивності. Новий продукт, названий Zend Engine (від імен творців: Zeev і Andi), успішно справлявся з поставленим завданням і був реалізований в 1999 році. Основними реалізованними ідеями є можливість компіляції сценарію у виконуваний модуль, за рахунок чого продуктивність можна було підняти на порядок.&lt;br /&gt;
===Недоліки PHP===&lt;br /&gt;
*Незручність дизайну мови&lt;br /&gt;
*Змінні з символом «$»&lt;br /&gt;
*Складні назви поширених функцій (html_entities_decode, mysql_select_db, nl2br тощо)&lt;br /&gt;
*Не підтримується Unicode в версіях до 6.0&lt;br /&gt;
*Непередбачуваність нових версій PHP.&lt;br /&gt;
===Визнання та поширення===&lt;br /&gt;
PHP 4, що працює на цьому ядрі, вийшов в 2000 році. На додаток до збільшення продуктивності, PHP 4 мав нові можливості щодо підтримки сесій, буферизацію виводу, безпечні способи обробки інформації, що вводиться користувачем, і нові мовні конструкції. З виходом 4 версії PHP став використовуватися вже на більш ніж 20% доменів Інтернету.&lt;br /&gt;
&lt;br /&gt;
За час з 2000 по 2004 рік продовжувалися активні роботи з покращення 4 версії, але майже відразу PHP Group приступила до продумування можливостей нової версії. В першу чергу було вирішено підсилити об'єктні можливості мови, що дозволяло використовувати його для реалізації масштабних проектів. Роботи із створення версії 5 велися тривалий час, в них брало участь рекордна кількість фахівців, зокрема Стерлінг Хьюз (Шаблон:Lang en:) і Маркус Бергера (Шаблон:Lang en:).&lt;br /&gt;
&lt;br /&gt;
У липні 2004 року виходить офіційний реліз PHP 5. В першу чергу, як і планувалося, було перероблено весь механізм роботи з об'єктами. І якщо в попередніх версіях об'єктно-орієнтоване програмування на PHP було можливе в мінімальному ступені, а тому і використовувалося на практиці не часто, то PHP 5 володіє прекрасним потенціалом реалізації об'єктного програмування. Окрім цього, PHP збагатився рядом цінних розширень для роботи з XML, різними джерелами даних, генерації графіки і інше.&lt;br /&gt;
&lt;br /&gt;
Серед інших украй корисних доповнень в PHP 5 слід зазначити нову схему обробки виключень. Конструкція try/catch/throw дозволяє весь код обробки помилок локалізувати в одному місці сценарію.&lt;br /&gt;
&lt;br /&gt;
Всі основні бібліотеки для роботи з XML, запозичені в PHP 4, були піддані серйозній переробці. Такі популярні розширення, як SAX, DOM і XSLT, тепер використовують інструмент libxml2, що робить їх ще ефективнішими.&lt;br /&gt;
&lt;br /&gt;
У PHP 5 також включені два нові модулі для роботи з протоколами — SimpleXML і SOAP. SimpleXML дозволяє значно спростити роботу з XML-даними, представляючи вміст XML-документа у вигляді PHP-об'єкта. Розширення SOAP дозволяє будувати на PHP сценарії, що обмінюються інформацією з іншими застосунками за допомогою XML-повідомлень поверх існуючих веб-протоколів, наприклад HTTP. Модуль для роботи з SOAP для PHP 5 надає розробникам засіб для достатньо швидкого створення ефективних SOAP-клієнтів і SOAP-серверів.[1]&lt;br /&gt;
&lt;br /&gt;
Новий модуль PHP 5 MySQLi (MySQL Improved) призначений для роботи з MySQL-сервером версій 4.1.2 і вище, реалізовуючи не тільки процедурний, але і об'єктно-орієнтований інтерфейс до MySQL. Додаткові можливості цього модуля включають — SSL, контроль транзакцій, підтримка реплікації і ін. Очевидно, що, на цьому історія PHP не закінчується. Слід очікувати наступних версій мови із розширеними можливостями.&lt;br /&gt;
&lt;br /&gt;
=='''ПРИЗНАЧЕННЯ'''==&lt;br /&gt;
У області програмування Мережа PHP - одна з найпопулярніших скриптових мов (разом з JSP, Perl і мовами, використовуваними в ASP.NET) завдяки своїй простоті, швидкості виконання, багатій функціональності, багатоплатформеності і розповсюдженню початкових кодів на основі ліцензії PHP.&lt;br /&gt;
&lt;br /&gt;
Популярність у галузі побудови веб-сайтів визначається наявністю великого набору вбудованих засобів для розробки веб-додатків.&lt;br /&gt;
Основні з них:&lt;br /&gt;
&lt;br /&gt;
- Автоматичне вилучення POST і GET-параметрів, а також змінних оточення веб-сервера в зумовлені масиви;&lt;br /&gt;
- Файлові функції успішно обробляють як локальні, так і віддалені файли;&lt;br /&gt;
- Автоматична відправка HTTP-заголовків;&lt;br /&gt;
- Робота з cookies і сесіями;&lt;br /&gt;
- Обробка файлів, що завантажуються на сервер;&lt;br /&gt;
- Робота з HTTP заголовками і HTTP авторизацією;&lt;br /&gt;
- Робота з XForms;&lt;br /&gt;
- Робота з віддаленими файлами і сокетами.&lt;br /&gt;
&lt;br /&gt;
В даний час PHP використовується сотнями тисяч розробників. Згідно з рейтингом Tiobe, що базується на даних пошукових систем, у грудні 2009 року PHP знаходиться на 3 місці серед мов програмування (поступаючись Java і C), піднявшись за рік на дві позиції. До найбільших сайтів, що використовують PHP, відносяться Facebook, В контакті, Wikipedia, YouTube.&lt;br /&gt;
&lt;br /&gt;
=='''БАЗОВІ НАЛАШТУВАННЯ'''==&lt;br /&gt;
Файл dbsettings.php відповідає за базові налаштування системи.&lt;br /&gt;
&lt;br /&gt;
Необхідно встановити такі значення:&lt;br /&gt;
&lt;br /&gt;
$serverDB - cервер баз даних, який використовується на хостингу, можливі наступні значення: 0 - використовується сервер баз даних MySQL (використовується на переважній більшості хостингових платформ). Рекомендується використовувати саме його, так як CMS будувалася орієнтованою саме на нього. 1 - використовується сервер баз даних PostgreSQL. Для версії 1.4 на даний момент підтримка PostgerSQL неповна. Рекомендується використовувати лише на CMS версії 1.3&lt;br /&gt;
&lt;br /&gt;
$hostNameDB - ім'я серверу бази даних. Як правило, необхідно свтановити як localhost, якщо сервер баз даних розміщений на тому ж комп'ютері, що й хостинг.&lt;br /&gt;
&lt;br /&gt;
$nameDB - назва бази даних, в якій зберігатимуться всі налаштування та матеріали сайту. Базу даних необхідно створити до інсталяції системи.&lt;br /&gt;
&lt;br /&gt;
$userNameDB - ім'я користувача, що має доступ до бази даних, вказаної в $nameDB.&lt;br /&gt;
&lt;br /&gt;
$userPasswordDB - пароль користувача бази даних, який був вказаний в $userNameDB.&lt;br /&gt;
&lt;br /&gt;
$tableprefix - префікс перед кожною таблицею бази даних. Його рекомендується використовувати тоді, коли Ви використовуєте одну базу даних для декількох систем.&lt;br /&gt;
&lt;br /&gt;
$tableusersprefix - префікс перед назвою таблиці users. Рекомендується використовувати, якщо ви використовуєте багатомовну версію SiMan CMS та хочете, щоб в усіх версіях був спільний набір користувачів.&lt;br /&gt;
&lt;br /&gt;
$session_prefix - підвищує безпеку при використанні декількох SiMan CMS на одному хості. Обов'язково змініть його!&lt;br /&gt;
&lt;br /&gt;
$_settings['use_protect_code'] - підвищує безпеку, використовуючи графічне зображення 4-х значного коду, який генерується при реєстрації нового користувача чи інших діях, які вимагають антибот-перевірки (1 - ввімкнуто, 0 - вимкнуто).&lt;br /&gt;
&lt;br /&gt;
$dontExecuteUsersSqlInScript - дозволяє (0) або забороняє (1) виконання SQL-запитів, введених відвідувачем сайту. Рекомендується встановити значення 1 для покращення безпеки системи, але це відключить деякі можливості, наприклад імпорт бази даних безпосередньо з скрипту.&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%97%D0%BD%D0%B0%D0%B9%D0%BE%D0%BC%D1%81%D1%82%D0%B2%D0%BE_%D0%B7_PHP_(%D0%BF%D1%80%D0%B8%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D1%8F,_%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D1%8F_%D0%B2_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82,_%D0%BE%D0%B1%D1%80%D0%BE%D0%B1%D0%BA%D0%B0,_%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%96_%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)</id>
		<title>Знайомство з PHP (призначення, включення в документ, обробка, базові налаштування)</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%97%D0%BD%D0%B0%D0%B9%D0%BE%D0%BC%D1%81%D1%82%D0%B2%D0%BE_%D0%B7_PHP_(%D0%BF%D1%80%D0%B8%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D1%8F,_%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D1%8F_%D0%B2_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82,_%D0%BE%D0%B1%D1%80%D0%BE%D0%B1%D0%BA%D0%B0,_%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%96_%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)"/>
				<updated>2013-05-27T08:11:34Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: /* Знайомство з PHP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Знайомство з PHP'''==&lt;br /&gt;
PHP (англ. PHP: Hypertext Preprocessor - «PHP: препроцесор гіпертексту», англ. Personal Home Page Tools (застар.) - «Інструменти для створення персональних веб-сторінок») - скриптова мова програмування загального призначення, інтенсивно застосовується для розробки веб-додатків. В даний час підтримується переважною більшістю хостинг-провайдерів і є одним з лідерів серед мов програмування, що застосовуються для створення динамічних веб-сайтів.&lt;br /&gt;
Мова і його інтерпретатор розробляються групою ентузіастів в рамках проекту з відкритим кодом. Проект поширюється під власною ліцензією, несумісною з GNU GPL. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
PHP інтерпретується веб-сервером в HTML-код, який передається на сторону клієнта. На відміну від таких скриптових мов програмування, як JavaScript, користувач не має доступу до PHP-коду, що є перевагою з точки зору безпеки але значно погіршує інтерактивність сторінок. Але ніщо не забороняє використовувати РНР для генерування і JavaScript-кодів які виконаються вже на стороні клієнта.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
PHP - мова, яка може бути вбудованою безпосередньо в html-код сторінок, які, в свою чергу коректно будуть оброблені PHP -інтерпретатором. Механізм РНР просто починає виконувати код після першої екрануючої послідовності (&amp;lt;?) і продовжує виконання до того моменту, коли він зустріне парну екрануючу послідовність (?&amp;gt;).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PHP — мова, яка може бути вбудована безпосередньо в html-код сторінок, які, в свою чергу коректно будуть оброблені PHP -інтерпретатором. Механізм РНР просто починає виконувати код після першої екрануючої послідовності (&amp;lt;?) і продовжує виконання до того моменту, коли він зустріне парну екрануючу послідовність (?&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Велика різноманітність функцій PHP дають можливість уникнути написання багаторядкових призначених для користувача функцій на C або Pascal.&lt;br /&gt;
*Наявність інтерфейсів до багатьох баз даних&lt;br /&gt;
*в PHP вбудовані бібліотеки для роботи з MySQL, PostgreSQL, mSQL, Oracle, dbm, Hyperware, Informix, InterBase, Sybase.&lt;br /&gt;
*через стандарт відкритого інтерфейсу зв'язку з базами даних (Open Database Connectivity Standard — ODBC) можна підключатися до всіх баз даних, до яких існує драйвер.&lt;br /&gt;
*Традиційність&lt;br /&gt;
Мова РНР здаватиметься знайомою програмістам, що працюють в різних областях. Багато конструкцій мови запозичені з С, Perl. Код РНР дуже схожий на той, який зустрічається в типових програмах на С або Pascal. Це помітно знижує початкові зусилля при вивченні РНР. PHP — мова, що поєднує переваги Perl і С і спеціально спрямована на роботу в Інтернеті, мова з універсальним і зрозумілим синтаксисом. І хоча PHP є досить молодою мовою, вона здобула таку популярність серед web-програмістів, що в наш час є мало не найпопулярнішою мовою для створення веб-застосунків (скриптів).&lt;br /&gt;
*Наявність вихідного коду та безкоштовність&lt;br /&gt;
Стратегія Open Source, і розповсюдження початкових текстів програм в масах, безсумнівно справили благотворний вплив на багато проектів, в першу чергу — Linux хоч і успіх проекту Apache сильно підкріпив позиції прихильників Open Source. Сказане відноситься і до історії створення РНР, оскільки підтримка користувачів зі всього світу виявилася дуже важливим чинником в розвитку проекту РНР.&lt;br /&gt;
Ухвалення стратегії Open Source і безплатне розповсюдження початкових текстів РНР надало неоціниму послугу користувачам. Додатково, користувачі РНР в усьому світі є свого роду колективною службою підтримки, і в популярних електронних конференціях можна знайти відповіді навіть на найскладніші питання.&lt;br /&gt;
*Ефективність&lt;br /&gt;
Ефективність є дуже важливим чинником при програмуванні для середовищ розрахованих на багато користувачів, до яких належить і web. Важливою перевагою PHP є те, що ця мова належить до інтерпретованих. Це дозволяє обробляти сценарії з достатньо високою швидкістю. За деякими оцінками, більшість PHP-сценаріїв (особливо не дуже великих розмірів) обробляються швидше за аналогічні їм програми, написані на Perl. Проте, щоб не робили розробники PHP, виконувані файли, отримані за допомогою компіляції, працюватимуть значно швидше — в десятки, а іноді і в сотні разів. Але продуктивність PHP цілком достатня для створення цілком серйозних веб-застосунків.&lt;br /&gt;
===Перші версії===&lt;br /&gt;
Історія PHP починається з 1995 року, коли Расмус Лердорф (англ. Rasmus Lerdorf) створив простий застосунок мовою Perl, що аналізував відвідування користувачами його резюме на веб-сайті. Потім, коли цим застосунком вже користувалися кілька чоловік, а число охочих одержати його постійно збільшувалося, Лердорф назвав своє творіння Особисті інструменти домашньої сторінки англ. Personal Home Page Tools версія 1 і виставив для вільного завантаження. З цієї миті почався небувалий зліт популярності PHP.&lt;br /&gt;
Як це завжди буває, терміново було потрібне доопрацювання і нові доповнення. Для їхньої реалізації Расмус створює нову версію пакету, тепер уже написану на С. Отриманий таким чином інструмент набуває робочої назви PHP/FI Персональна Домашня сторінка / Інтерпретатор Форм (англ. Personal Home Page / Forms Interpreter — ), надалі він також буде відомий під назвою PHP 2. Ця версія вже більшою мірою схожа на сьогоднішній PHP. Вона мала синтаксис і спосіб іменування змінних в стилі мови Perl, можливість вбудовування PHP операторів в html-код сторінки, автоматичну інтерпретацію форм, інтеграцію з базами даних. При цьому все працювало досить швидко, оскільки PHP прикомпилювалось до веб-серверу Apache. До 1997 року PHP використовувався вже на 50,000 доменах (не більше 1% всіх веб-серверів).&lt;br /&gt;
У тому ж 1997 році до проекту PHP підключилися Зев Сураскі (англ. Zeev Suraski) і Енді Гутманс (англ. Andi Gutmans). Ці студенти Техніону, одного з найкращих ізраїльських університетів, намагалися використовувати PHP/FI для одного з комерційних університетських проектів. При цьому їм довелося зіткнутися з багатьма труднощами і обмеженнями цієї технології. Вивчаючи початковий код PHP 2, Зеєв і Енді дійшли висновку про необхідність доопрацювання, а точніше істотної переробки PHP, особливо в плані синтаксису мови. Протягом декількох місяців вони блискуче впоралися з цим завданням.&lt;br /&gt;
Закінчивши роботу Зеєв і Енді домовились з Расмусом про співпрацю в галузі розвитку та вдосконалення мови. З цієї миті з'являється PHP Group — група однодумців, що працюють над розвитком технології PHP. Одержаний продукт з'явився на світ у 1998 році під назвою PHP 3.&lt;br /&gt;
При цьому головною особливість PHP 3 була можливість розширення ядра, що привернуло до роботи над PHP безліч сторонніх розробників, що створюють спеціалізовані модулі. Їх наявність дала PHP можливість працювати з величезною кількістю баз даних, протоколів, підтримувати велике число API. До кінця 1998 кількість користувачів PHP перевалила за 100000, а PHP був вже встановлений на не менше ніж 10% серверах Інтернету. У той ж час значному поширенню даної мови сприяли публікації в електронній пресі та вихід книжок для вивчення PHP.&lt;br /&gt;
Відразу ж після виходу PHP 3, Енді Гутманс і Зеєв Сураскі почали переробку ядра PHP. В першу чергу належало вирішити проблему підвищення продуктивності. Новий продукт, названий Zend Engine (від імен творців: Zeev і Andi), успішно справлявся з поставленим завданням і був реалізований в 1999 році. Основними реалізованними ідеями є можливість компіляції сценарію у виконуваний модуль, за рахунок чого продуктивність можна було підняти на порядок.&lt;br /&gt;
===Недоліки PHP===&lt;br /&gt;
*Незручність дизайну мови&lt;br /&gt;
*Змінні з символом «$»&lt;br /&gt;
*Складні назви поширених функцій (html_entities_decode, mysql_select_db, nl2br тощо)&lt;br /&gt;
*Не підтримується Unicode в версіях до 6.0&lt;br /&gt;
*Непередбачуваність нових версій PHP.&lt;br /&gt;
&lt;br /&gt;
=='''ПРИЗНАЧЕННЯ'''==&lt;br /&gt;
У області програмування Мережа PHP - одна з найпопулярніших скриптових мов (разом з JSP, Perl і мовами, використовуваними в ASP.NET) завдяки своїй простоті, швидкості виконання, багатій функціональності, багатоплатформеності і розповсюдженню початкових кодів на основі ліцензії PHP.&lt;br /&gt;
&lt;br /&gt;
Популярність у галузі побудови веб-сайтів визначається наявністю великого набору вбудованих засобів для розробки веб-додатків.&lt;br /&gt;
Основні з них:&lt;br /&gt;
&lt;br /&gt;
- Автоматичне вилучення POST і GET-параметрів, а також змінних оточення веб-сервера в зумовлені масиви;&lt;br /&gt;
- Файлові функції успішно обробляють як локальні, так і віддалені файли;&lt;br /&gt;
- Автоматична відправка HTTP-заголовків;&lt;br /&gt;
- Робота з cookies і сесіями;&lt;br /&gt;
- Обробка файлів, що завантажуються на сервер;&lt;br /&gt;
- Робота з HTTP заголовками і HTTP авторизацією;&lt;br /&gt;
- Робота з XForms;&lt;br /&gt;
- Робота з віддаленими файлами і сокетами.&lt;br /&gt;
&lt;br /&gt;
В даний час PHP використовується сотнями тисяч розробників. Згідно з рейтингом Tiobe, що базується на даних пошукових систем, у грудні 2009 року PHP знаходиться на 3 місці серед мов програмування (поступаючись Java і C), піднявшись за рік на дві позиції. До найбільших сайтів, що використовують PHP, відносяться Facebook, В контакті, Wikipedia, YouTube.&lt;br /&gt;
&lt;br /&gt;
=='''БАЗОВІ НАЛАШТУВАННЯ'''==&lt;br /&gt;
Файл dbsettings.php відповідає за базові налаштування системи.&lt;br /&gt;
&lt;br /&gt;
Необхідно встановити такі значення:&lt;br /&gt;
&lt;br /&gt;
$serverDB - cервер баз даних, який використовується на хостингу, можливі наступні значення: 0 - використовується сервер баз даних MySQL (використовується на переважній більшості хостингових платформ). Рекомендується використовувати саме його, так як CMS будувалася орієнтованою саме на нього. 1 - використовується сервер баз даних PostgreSQL. Для версії 1.4 на даний момент підтримка PostgerSQL неповна. Рекомендується використовувати лише на CMS версії 1.3&lt;br /&gt;
&lt;br /&gt;
$hostNameDB - ім'я серверу бази даних. Як правило, необхідно свтановити як localhost, якщо сервер баз даних розміщений на тому ж комп'ютері, що й хостинг.&lt;br /&gt;
&lt;br /&gt;
$nameDB - назва бази даних, в якій зберігатимуться всі налаштування та матеріали сайту. Базу даних необхідно створити до інсталяції системи.&lt;br /&gt;
&lt;br /&gt;
$userNameDB - ім'я користувача, що має доступ до бази даних, вказаної в $nameDB.&lt;br /&gt;
&lt;br /&gt;
$userPasswordDB - пароль користувача бази даних, який був вказаний в $userNameDB.&lt;br /&gt;
&lt;br /&gt;
$tableprefix - префікс перед кожною таблицею бази даних. Його рекомендується використовувати тоді, коли Ви використовуєте одну базу даних для декількох систем.&lt;br /&gt;
&lt;br /&gt;
$tableusersprefix - префікс перед назвою таблиці users. Рекомендується використовувати, якщо ви використовуєте багатомовну версію SiMan CMS та хочете, щоб в усіх версіях був спільний набір користувачів.&lt;br /&gt;
&lt;br /&gt;
$session_prefix - підвищує безпеку при використанні декількох SiMan CMS на одному хості. Обов'язково змініть його!&lt;br /&gt;
&lt;br /&gt;
$_settings['use_protect_code'] - підвищує безпеку, використовуючи графічне зображення 4-х значного коду, який генерується при реєстрації нового користувача чи інших діях, які вимагають антибот-перевірки (1 - ввімкнуто, 0 - вимкнуто).&lt;br /&gt;
&lt;br /&gt;
$dontExecuteUsersSqlInScript - дозволяє (0) або забороняє (1) виконання SQL-запитів, введених відвідувачем сайту. Рекомендується встановити значення 1 для покращення безпеки системи, але це відключить деякі можливості, наприклад імпорт бази даних безпосередньо з скрипту.&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%97%D0%BD%D0%B0%D0%B9%D0%BE%D0%BC%D1%81%D1%82%D0%B2%D0%BE_%D0%B7_PHP_(%D0%BF%D1%80%D0%B8%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D1%8F,_%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D1%8F_%D0%B2_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82,_%D0%BE%D0%B1%D1%80%D0%BE%D0%B1%D0%BA%D0%B0,_%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%96_%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)</id>
		<title>Знайомство з PHP (призначення, включення в документ, обробка, базові налаштування)</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%97%D0%BD%D0%B0%D0%B9%D0%BE%D0%BC%D1%81%D1%82%D0%B2%D0%BE_%D0%B7_PHP_(%D0%BF%D1%80%D0%B8%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D1%8F,_%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D1%8F_%D0%B2_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82,_%D0%BE%D0%B1%D1%80%D0%BE%D0%B1%D0%BA%D0%B0,_%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%96_%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)"/>
				<updated>2013-05-27T08:10:00Z</updated>
		
		<summary type="html">&lt;p&gt;Bondar Egor: /* Знайомство з PHP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Знайомство з PHP'''==&lt;br /&gt;
PHP (англ. PHP: Hypertext Preprocessor - «PHP: препроцесор гіпертексту», англ. Personal Home Page Tools (застар.) - «Інструменти для створення персональних веб-сторінок») - скриптова мова програмування загального призначення, інтенсивно застосовується для розробки веб-додатків. В даний час підтримується переважною більшістю хостинг-провайдерів і є одним з лідерів серед мов програмування, що застосовуються для створення динамічних веб-сайтів.&lt;br /&gt;
Мова і його інтерпретатор розробляються групою ентузіастів в рамках проекту з відкритим кодом. Проект поширюється під власною ліцензією, несумісною з GNU GPL. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
PHP інтерпретується веб-сервером в HTML-код, який передається на сторону клієнта. На відміну від таких скриптових мов програмування, як JavaScript, користувач не має доступу до PHP-коду, що є перевагою з точки зору безпеки але значно погіршує інтерактивність сторінок. Але ніщо не забороняє використовувати РНР для генерування і JavaScript-кодів які виконаються вже на стороні клієнта.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
PHP - мова, яка може бути вбудованою безпосередньо в html-код сторінок, які, в свою чергу коректно будуть оброблені PHP -інтерпретатором. Механізм РНР просто починає виконувати код після першої екрануючої послідовності (&amp;lt;?) і продовжує виконання до того моменту, коли він зустріне парну екрануючу послідовність (?&amp;gt;).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PHP — мова, яка може бути вбудована безпосередньо в html-код сторінок, які, в свою чергу коректно будуть оброблені PHP -інтерпретатором. Механізм РНР просто починає виконувати код після першої екрануючої послідовності (&amp;lt;?) і продовжує виконання до того моменту, коли він зустріне парну екрануючу послідовність (?&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Велика різноманітність функцій PHP дають можливість уникнути написання багаторядкових призначених для користувача функцій на C або Pascal.&lt;br /&gt;
*Наявність інтерфейсів до багатьох баз даних&lt;br /&gt;
*в PHP вбудовані бібліотеки для роботи з MySQL, PostgreSQL, mSQL, Oracle, dbm, Hyperware, Informix, InterBase, Sybase.&lt;br /&gt;
*через стандарт відкритого інтерфейсу зв'язку з базами даних (Open Database Connectivity Standard — ODBC) можна підключатися до всіх баз даних, до яких існує драйвер.&lt;br /&gt;
*Традиційність&lt;br /&gt;
Мова РНР здаватиметься знайомою програмістам, що працюють в різних областях. Багато конструкцій мови запозичені з С, Perl. Код РНР дуже схожий на той, який зустрічається в типових програмах на С або Pascal. Це помітно знижує початкові зусилля при вивченні РНР. PHP — мова, що поєднує переваги Perl і С і спеціально спрямована на роботу в Інтернеті, мова з універсальним і зрозумілим синтаксисом. І хоча PHP є досить молодою мовою, вона здобула таку популярність серед web-програмістів, що в наш час є мало не найпопулярнішою мовою для створення веб-застосунків (скриптів).&lt;br /&gt;
*Наявність вихідного коду та безкоштовність&lt;br /&gt;
Стратегія Open Source, і розповсюдження початкових текстів програм в масах, безсумнівно справили благотворний вплив на багато проектів, в першу чергу — Linux хоч і успіх проекту Apache сильно підкріпив позиції прихильників Open Source. Сказане відноситься і до історії створення РНР, оскільки підтримка користувачів зі всього світу виявилася дуже важливим чинником в розвитку проекту РНР.&lt;br /&gt;
Ухвалення стратегії Open Source і безплатне розповсюдження початкових текстів РНР надало неоціниму послугу користувачам. Додатково, користувачі РНР в усьому світі є свого роду колективною службою підтримки, і в популярних електронних конференціях можна знайти відповіді навіть на найскладніші питання.&lt;br /&gt;
*Ефективність&lt;br /&gt;
Ефективність є дуже важливим чинником при програмуванні для середовищ розрахованих на багато користувачів, до яких належить і web. Важливою перевагою PHP є те, що ця мова належить до інтерпретованих. Це дозволяє обробляти сценарії з достатньо високою швидкістю. За деякими оцінками, більшість PHP-сценаріїв (особливо не дуже великих розмірів) обробляються швидше за аналогічні їм програми, написані на Perl. Проте, щоб не робили розробники PHP, виконувані файли, отримані за допомогою компіляції, працюватимуть значно швидше — в десятки, а іноді і в сотні разів. Але продуктивність PHP цілком достатня для створення цілком серйозних веб-застосунків.&lt;br /&gt;
===Перші версії===&lt;br /&gt;
Історія PHP починається з 1995 року, коли Расмус Лердорф (англ. Rasmus Lerdorf) створив простий застосунок мовою Perl, що аналізував відвідування користувачами його резюме на веб-сайті. Потім, коли цим застосунком вже користувалися кілька чоловік, а число охочих одержати його постійно збільшувалося, Лердорф назвав своє творіння Особисті інструменти домашньої сторінки англ. Personal Home Page Tools версія 1 і виставив для вільного завантаження. З цієї миті почався небувалий зліт популярності PHP.&lt;br /&gt;
Як це завжди буває, терміново було потрібне доопрацювання і нові доповнення. Для їхньої реалізації Расмус створює нову версію пакету, тепер уже написану на С. Отриманий таким чином інструмент набуває робочої назви PHP/FI Персональна Домашня сторінка / Інтерпретатор Форм (англ. Personal Home Page / Forms Interpreter — ), надалі він також буде відомий під назвою PHP 2. Ця версія вже більшою мірою схожа на сьогоднішній PHP. Вона мала синтаксис і спосіб іменування змінних в стилі мови Perl, можливість вбудовування PHP операторів в html-код сторінки, автоматичну інтерпретацію форм, інтеграцію з базами даних. При цьому все працювало досить швидко, оскільки PHP прикомпилювалось до веб-серверу Apache. До 1997 року PHP використовувався вже на 50,000 доменах (не більше 1% всіх веб-серверів).&lt;br /&gt;
У тому ж 1997 році до проекту PHP підключилися Зев Сураскі (англ. Zeev Suraski) і Енді Гутманс (англ. Andi Gutmans). Ці студенти Техніону, одного з найкращих ізраїльських університетів, намагалися використовувати PHP/FI для одного з комерційних університетських проектів. При цьому їм довелося зіткнутися з багатьма труднощами і обмеженнями цієї технології. Вивчаючи початковий код PHP 2, Зеєв і Енді дійшли висновку про необхідність доопрацювання, а точніше істотної переробки PHP, особливо в плані синтаксису мови. Протягом декількох місяців вони блискуче впоралися з цим завданням.&lt;br /&gt;
Закінчивши роботу Зеєв і Енді домовились з Расмусом про співпрацю в галузі розвитку та вдосконалення мови. З цієї миті з'являється PHP Group — група однодумців, що працюють над розвитком технології PHP. Одержаний продукт з'явився на світ у 1998 році під назвою PHP 3.&lt;br /&gt;
При цьому головною особливість PHP 3 була можливість розширення ядра, що привернуло до роботи над PHP безліч сторонніх розробників, що створюють спеціалізовані модулі. Їх наявність дала PHP можливість працювати з величезною кількістю баз даних, протоколів, підтримувати велике число API. До кінця 1998 кількість користувачів PHP перевалила за 100000, а PHP був вже встановлений на не менше ніж 10% серверах Інтернету. У той ж час значному поширенню даної мови сприяли публікації в електронній пресі та вихід книжок для вивчення PHP.&lt;br /&gt;
Відразу ж після виходу PHP 3, Енді Гутманс і Зеєв Сураскі почали переробку ядра PHP. В першу чергу належало вирішити проблему підвищення продуктивності. Новий продукт, названий Zend Engine (від імен творців: Zeev і Andi), успішно справлявся з поставленим завданням і був реалізований в 1999 році. Основними реалізованними ідеями є можливість компіляції сценарію у виконуваний модуль, за рахунок чого продуктивність можна було підняти на порядок.&lt;br /&gt;
&lt;br /&gt;
=='''ПРИЗНАЧЕННЯ'''==&lt;br /&gt;
У області програмування Мережа PHP - одна з найпопулярніших скриптових мов (разом з JSP, Perl і мовами, використовуваними в ASP.NET) завдяки своїй простоті, швидкості виконання, багатій функціональності, багатоплатформеності і розповсюдженню початкових кодів на основі ліцензії PHP.&lt;br /&gt;
&lt;br /&gt;
Популярність у галузі побудови веб-сайтів визначається наявністю великого набору вбудованих засобів для розробки веб-додатків.&lt;br /&gt;
Основні з них:&lt;br /&gt;
&lt;br /&gt;
- Автоматичне вилучення POST і GET-параметрів, а також змінних оточення веб-сервера в зумовлені масиви;&lt;br /&gt;
- Файлові функції успішно обробляють як локальні, так і віддалені файли;&lt;br /&gt;
- Автоматична відправка HTTP-заголовків;&lt;br /&gt;
- Робота з cookies і сесіями;&lt;br /&gt;
- Обробка файлів, що завантажуються на сервер;&lt;br /&gt;
- Робота з HTTP заголовками і HTTP авторизацією;&lt;br /&gt;
- Робота з XForms;&lt;br /&gt;
- Робота з віддаленими файлами і сокетами.&lt;br /&gt;
&lt;br /&gt;
В даний час PHP використовується сотнями тисяч розробників. Згідно з рейтингом Tiobe, що базується на даних пошукових систем, у грудні 2009 року PHP знаходиться на 3 місці серед мов програмування (поступаючись Java і C), піднявшись за рік на дві позиції. До найбільших сайтів, що використовують PHP, відносяться Facebook, В контакті, Wikipedia, YouTube.&lt;br /&gt;
&lt;br /&gt;
=='''БАЗОВІ НАЛАШТУВАННЯ'''==&lt;br /&gt;
Файл dbsettings.php відповідає за базові налаштування системи.&lt;br /&gt;
&lt;br /&gt;
Необхідно встановити такі значення:&lt;br /&gt;
&lt;br /&gt;
$serverDB - cервер баз даних, який використовується на хостингу, можливі наступні значення: 0 - використовується сервер баз даних MySQL (використовується на переважній більшості хостингових платформ). Рекомендується використовувати саме його, так як CMS будувалася орієнтованою саме на нього. 1 - використовується сервер баз даних PostgreSQL. Для версії 1.4 на даний момент підтримка PostgerSQL неповна. Рекомендується використовувати лише на CMS версії 1.3&lt;br /&gt;
&lt;br /&gt;
$hostNameDB - ім'я серверу бази даних. Як правило, необхідно свтановити як localhost, якщо сервер баз даних розміщений на тому ж комп'ютері, що й хостинг.&lt;br /&gt;
&lt;br /&gt;
$nameDB - назва бази даних, в якій зберігатимуться всі налаштування та матеріали сайту. Базу даних необхідно створити до інсталяції системи.&lt;br /&gt;
&lt;br /&gt;
$userNameDB - ім'я користувача, що має доступ до бази даних, вказаної в $nameDB.&lt;br /&gt;
&lt;br /&gt;
$userPasswordDB - пароль користувача бази даних, який був вказаний в $userNameDB.&lt;br /&gt;
&lt;br /&gt;
$tableprefix - префікс перед кожною таблицею бази даних. Його рекомендується використовувати тоді, коли Ви використовуєте одну базу даних для декількох систем.&lt;br /&gt;
&lt;br /&gt;
$tableusersprefix - префікс перед назвою таблиці users. Рекомендується використовувати, якщо ви використовуєте багатомовну версію SiMan CMS та хочете, щоб в усіх версіях був спільний набір користувачів.&lt;br /&gt;
&lt;br /&gt;
$session_prefix - підвищує безпеку при використанні декількох SiMan CMS на одному хості. Обов'язково змініть його!&lt;br /&gt;
&lt;br /&gt;
$_settings['use_protect_code'] - підвищує безпеку, використовуючи графічне зображення 4-х значного коду, який генерується при реєстрації нового користувача чи інших діях, які вимагають антибот-перевірки (1 - ввімкнуто, 0 - вимкнуто).&lt;br /&gt;
&lt;br /&gt;
$dontExecuteUsersSqlInScript - дозволяє (0) або забороняє (1) виконання SQL-запитів, введених відвідувачем сайту. Рекомендується встановити значення 1 для покращення безпеки системи, але це відключить деякі можливості, наприклад імпорт бази даних безпосередньо з скрипту.&lt;/div&gt;</summary>
		<author><name>Bondar Egor</name></author>	</entry>

	</feed>