
- •Минск, бгу,
- •Содержание.
- •Глава1. Компьютерные сети и протоколы…………………………..15
- •Введение в Интернет Коротко об истории Интернет
- •Как работает Интернет?
- •Система адресации
- •Способы подключения к сети
- •Сервисы Интернет
- •Электронная почта
- •Передача файлов по ftp
- •Всемирная паутина www
- •Задания по теме “Введение в Интернет”
- •Глава 1. Компьютерные сети и протоколы
- •Локальные сети
- •Распределенные и глобальные сети
- •Сеть vpn
- •Адресация в локальных сетях
- •Адресация в глобальных сетях и в Интернет
- •Понятие и краткое описание протоколов
- •Соотношение между tcp/ip и osi/iso
- •Межсетевой протокол iPv4
- •Транспортный протокол tcp
- •Протокол дэйтаграмм udp
- •Протоколы arp и rarp
- •Протоколы сетевого уровня
- •Протоколы электронной почты
- •Протоколы smtp и pop3
- •Протокол imap4
- •Спецификация mime
- •Протокол ftp
- •Http – Протокол передачи гипертекстов
- •Клиентский запрос http
- •Ответ сервера
- •Развитие прикладных протоколов: soap, rest, rpc
- •Безопасность в сети
- •Протокол ssl
- •Установление подлинности участников
- •Проблемы с кодировкой и Unicode
- •Задания по теме «Протоколы Интернет»
- •Глава 2. Проектирование и разработка сайтов
- •Виды сайтов
- •Этапы проектирования и разработки сайта
- •Модели проектирования и управление проектами
- •Итерационная (спиральная) модель
- •Программные средства управления проектами
- •Логическое проектирование дизайна сайта
- •Главная страница сайта
- •Внутренние страницы сайта
- •Оценки качества Веб – сайтов
- •Глава 3. Краткий обзор основных технологий разработки Веб приложений
- •Язык разметки гипертекста xml
- •Синтаксис xml
- •Объявление xml
- •Конструкции языка
- •Правильно построенные и действительные документы xml
- •Отображение xml документа
- •Словари xml
- •Вставка флэш в страницу
- •Язык ActionScript
- •Видео-аудио проигрыватели
- •Технология «клиент-сервер»
- •Язык Java на клиентской и серверной странице
- •Базы данных и язык sql
- •Нормализация модели данных
- •Язык sql
- •Команды определения структуры данных
- •Команды манипулирования данными
- •Команды управления транзакциями
- •Команды управления доступом
- •Извлечение данных, команда select
- •Секция where
- •Групповые функции
- •Секция having
- •Изменение данных
- •Команда insert
- •Язык разметки гипертекста html
- •Формы html
- •Новые элементы форм html5
- •Новый тип input – range служит для ввода значения из диапазона
- •Теги div и span
- •Метатеги
- •Новые возможности html5
- •Поддержка аудио
- •Поддержка видео
- •Атрибут Controls
- •Валидация документов
- •Каскадные таблицы стилей css
- •Способы включения каскадных таблиц стилей
- •Теги div , span и link
- •Свойства шрифтов (фонтов).
- •Заголовок1 Заголовок2 Заголовок3
- •Стили текста.
- •Цвет и фон.
- •Свойства списков
- •Свойства таблиц
- •Псевдоклассы
- •Псевдостили текста
- •Псевдоэлементы
- •Форматирование псевдоклассов и псевдоэлементов
- •Различные свойства
- •Представление документа в виде блоков
- •Отступы, поля, позиционирование
- •Границы элементов
- •Визуальное форматирование
- •Визуальные эффекты
- •Новое в css3
- •Глава 5. Язык JavaScript Введение
- •Включение скриптов JavaScript в html-код
- •Создание простых сценариев
- •Комментарии. Скрытие сценариев от браузеров
- •Отладка скриптов. Ввод и вывод данных
- •Описание языка Типы данных
- •Преобразование типа
- •Булев тип
- •Переменные типа Undefined и Null
- •Массивы
- •Операторы и выражения
- •Оператор присваивания
- •Арифметические операторы
- •Операторы сравнения
- •Функции пользователя
- •Передача параметров по значению и по ссылке
- •Глобальные и локальные переменные
- •Модель событий
- •Ключевое слово this
- •Перехват события.
- •Методы addEventListener, removeEventListener, attachEvent.
- •Исключения: throw/catch/finally
- •Объектная модель
- •Пользовательские объекты
- •Прототипы
- •Встроенные объекты String, Array, Date, Math Объект String
- •Объект Array
- •Объект Date (Дата)
- •Методы объекта Date
- •Коллекции
- •Свойства элемента innerHtml и outerHtml
- •Навигация по дереву документа
- •Создание новых узлов
- •Удаление и замена узлов в документе
- •Объект window
- •Свойства окна, передаваемые методу open()
- •Методы объекта window
- •Свойства и методы объекта navigator
- •Свойства и методы объекта history
- •Свойства и методы объекта location
- •Объект layer
- •Свойства объекта layer
- •Методы объекта layer
- •Использование каскадных таблиц стилей и объекта style
- •Модель ajax:
- •Класс xmlHttpRequest
- •Свойства класса
- •Методы класса
- •Создание экземпляра объекта
- •Использование dom
- •Объект FormData
- •Работа с cookie
- •Синтаксис http заголовка для поля Cookie
- •Способы задания значений cookie
- •Примеры на JavaScript
- •Глава 6. Язык серверных скриптов php
- •Инструменты для разработки
- •Как php работает
- •Описание языка Типы данных
- •Массивы и инициализация массивов
- •Операции и выражения
- •Операции сравнения
- •Логические операции
- •Строковые операции
- •Операторы управления
- •Функции
- •Рекурсивные функции
- •Аргументы функции
- •Область действия и время жизни переменных
- •Изменяемые (динамические) переменные
- •Внешние библиотечные функции
- •Функции для работы с массивами
- •Функции для работы со строками.
- •Функции форматных преобразований строк
- •Преобразование строк и файлов к формату html и наоборот
- •Преобразование html в простой текст
- •Преобразование строки к верхнему и нижнему регистру
- •Установка локальных настроек
- •Регулярные выражения
- •Perl-совместимые функции для работы с регулярными выражениями
- •Функции даты и времени
- •Математические функции
- •Объектно-ориентированное программирование в php Основные понятия ооп
- •Классы и Объекты
- •Конструкторы и деструкторы
- •Наследование классов и интерфейсов
- •Магические методы
- •Обработка ошибок
- •Ошибки php и журнал error_reporting
- •Чтение и запись бинарных файлов
- •Работа с каталогами в рнр
- •MySql – сервер: бд1; бд2; бд3; бд4;
- •Язык запросов sql
- •Операция соединения.
- •Команды sql для создания баз данных и таблиц
- •Выборка данных из таблиц бд
- •Работа с MySql (сохранение данных в базе данных).
- •Работа с MySql занесение и получение данных из базы данных
- •Организации работы с данными
- •Передача данных от клиента к серверу и обратно. Протокол http
- •Клиентские методы http
- •Обработка html-форм
- •Передача переменных из формы в скрипт.
- •Передача значений переменных по методу get
- •Передача данных из формы на сервер по методу get
- •Передача данных из формы на сервер по методу post
- •Php и различные формы
- •Обработка форм
- •Более сложные переменные формы
- •Глава 7. Лабораторные работы Лабораторная работа 1 (4 часа). Инструменты и средства создания простых сайтов
- •Лабораторная работа 3 (4часа). Применение каскадных таблиц стилей css
- •Трехколоночный контейнерный макет сайта
- •Лабораторная работа 4. Применение каскадных таблиц стилей css
- •Некоторые подсказки по синтаксису css:
- •1. Свойства шрифтов.
- •2. Свойства текста.
- •3. Свойства цвета и фона.
- •4. Свойства рамки.
- •5. Свойства списков.
- •6. Свойства изображений.
- •Форматирование блока
- •Лабораторная работа 5 (4 часа). Динамика и JavaScript на Веб –странице.
- •Ответить на следующие вопросы
- •Пример вывода даты и времени.
- •Пример вывода строки в стиле печатной машинки
- •Дополнительные задачи и упражнения по JavaScript
- •Лабораторная работа 6 по JavaScript (4 часа).
- •Проверка правильности заполнения формы на сайте
- •Методы объекта window
- •Методы focus() и blur()
- •Лабораторная работа 7. Php Задание 1. Массивы и строки Выполнить одно из перечисленных ниже упражнений
- •Задание 2. Функции
- •Задание 4. Работа с базами данных Выполнить одно из перечисленных ниже упражнений
- •Задание 5. Создание web-объектов Список заданий
- •Приложение 1. Курсовые работы Курсовая работа 1. Создание клиентских приложений
- •Курсовая работа №2. Сайты клиент-сервер
- •Каталог товаров
- •Система вопрос/ответ
- •Курсовая работа №3. Технологии разработки Веб – приложений Проекты сайтов
- •Перечень заданий
- •Приложение 2. Быстрая разработка Веб-приложений и cms
- •Начало работы с сайтом
- •Установка нового модуля
- •Создание шаблона
- •Создание индивидуальных шаблонов
- •Движок шаблонирования xTemplate
- •Создание нового шаблона
- •Удаление блока с формой входа на сайт
- •Включение блока для отображение популярных статей
- •Удаление ссылки "Далее" в отображение статьи
- •Drupal: практические примеры
- •Как заставить Drupal работать быстрее
- •Литература
Соотношение между tcp/ip и osi/iso
Распределение протоколов по уровням модели OSI
|
||
7 |
Прикладной |
HTTP, SMTP, SNMP, RTP, FTP, Telnet, SSH, SCP, SMB, NFS, RTSP, BGP |
6 |
Представительский |
XDR, ASN.1, AFP, TLS, SSL |
5 |
Сеансовый |
ISO 8327 / CCITT X.225, RPC, ASP |
4 |
Транспортный |
TCP, UDP, SCTP, SPX, ATP, DCCP, GRE |
3 |
Сетевой |
IP, ICMP, IGMP, CLNP, OSPF, RIP, IPX, DDP, ARP, RARP |
2 |
Канальный |
Ethernet, Token ring, PPP, HDLC, X.25, Frame relay, ISDN, ATM, MPLS, Wi-Fi |
1 |
Физический |
провода, радиосвязь, оптоволокно |
Широко используемый стек протоколов TCP/IP, на базе которого была построена Internet, включает в себя протоколы четырёх уровней:
прикладного уровня (FTP, DNS, HTTP, HTTPS, IMAP, IRC, POP3, SMTP, Telnet); транспортного уровня (TCP, UDP); межсетевого (Internet) (IP, ICMP); сетевого (network access) (Ethernet, X.25, Token Ring, Wi-Fi).
В стеке TCP/IP верхние 3 уровня модели OSI(прикладной, представительский и сеансовый) объединяют в один – прикладной.
Распределение протоколов по уровням модели TCP/IP |
||
5 |
Прикладной |
HTTP, RTP, FTP, DNS |
4 |
Транспортный |
TCP, UDP, SCTP, DCCP |
3 |
Сетевой |
IP и вспомогательные протоколы ICMP и IGMP |
2 |
Канальный |
Ethernet, SLIP, Token Ring, ATM и MPLS |
1 |
Физический |
физическая среда и принципы кодирования |
На стеке протоколов TCP/IP построено взаимодействие пользователей в IP-сетях. Стек является независимым от физической среды передачи данных. На каждом уровне стека протоколов TCP/IP обмен данными ведется блоками данных конечной длины. Названия блоков данных зависят от уровня стека протоколов: прикладной и транспортный – Пакет, межсетевой – Сегмент, сетевой – Кадр.
Межсетевой протокол iPv4
Протокол реализует обмен информации IP-сегментами размером до 65535 байт. Каждый сегмент содержит заголовок и данные. IP является протоколом взаимодействия без установления логического соединения. Для адресации узлов сети используется IP - адрес длиной 4 байта. Протокол не гарантирует надежность доставки сегментов адресату. IP-сегменты имеют конечное время жизни в сети. В Таблице приведен формат IPv4 заголовка IP-сегмента.
-
0
1
2
3
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
Версия
IHL
Тип обслуживания
Длина пакета
Идентификатор
Флаги
Смещение фрагмента
Число переходов (TTL)
Протокол
Контрольная сумма заголовка
IP-адрес отправителя (32 бита)
IP-адрес получателя (32 бита)
Параметры (до 320 бит)
Данные (до 65535 байт минус заголовок)
Версия – 4-х битовое поле содержит версию протокола=4
IHL – длина заголовка IP-пакета в 32-битных словах. Минимальное значение равно 5.
Длина сегмента: двухбайтовое поле, содержащее длину IP-сегмента, включая заголовок. Максимальная длина 65535 байт.
Идентификатор – значение, назначаемое отправителем пакета для корректной последовательности фрагментов при сборке пакета.
Число переходов – максимальное число маршрутизаторов.
Транспорт: содержит идентификатор протокола транспортного уровня. Например: 1 -ICMP, 6 – TCP, 17-UDP.
Контрольная сумма заголовка: двухбайтовое поле, содержащее контрольную сумму заголовка IP-сегмента. Для данных контрольная сумма подсчитывается в протоколах транспортного уровня.
Время жизни (TTL – Time To Live): однобайтовое поле, содержащее количество единиц времени жизни сегмента в сети. Каждый транзитный узел сети, через который проходит IP-сегмент, уменьшает содержимое этого поля на 1 и обязан уничтожать IP-сегменты, для которых "время жизни" стало равным нулю.
Адрес источника и адрес приемника: четырехбайтовые IP-адреса узлов сети.
Дополнительные данные IP-заголовка: Предписываемый маршрут, пройденный маршрут, временные метки, флаг окончания.
Формат пакета IPv6
Пакеты состоят из данных и управляющей информации, необходимой для доставки пакета адресату. Управляющая информация содержится в основном фиксированном заголовке, или в одном из необязательных дополнительных заголовков. Полезные данные – это дейтаграмма или фрагмент протокола более высокого транспортного уровня. IPv6-пакеты передаются с помощью протоколов канального уровня, таких как Ethernet, который инкапсулирует каждый пакет в кадр.
Заголовок IPv6
Рис. Формат заголовка пакета IPv6
Версия- 4-битный код версия Интернет протокола для IPv6= 6)
Приор.- 8-битный код приоритета
Метка потока- 24-битный код метки потока (для мультимедиа)
Размер поля данных- 16-битовое число представляет код длины поля данных в октетах, которое следует сразу после заголовка пакета.
Следующий заголовок- 8-битовый разделитель. Идентифицирует тип заголовка, который следует непосредственно за IPv6 заголовком. Использует те же значения, что и протокол IPv4.
Предельное число шагов-8-битовое целое число. Уменьшается на 1 в каждом узле, через который проходит пакет. При предельном числе шагов, равном нулю, пакет удаляется.
Адрес отправителя-128-битовый адрес отправителя пакета.
Адрес получателя-128-битовый адрес получателя пакета
Заголовки расширения IPv6
В IPv6, опционная информация записывается в отдельных заголовках, которые могут быть помещены между IPv6 заголовком и заголовком верхнего уровня пакета. Каждый заголовок задается определенным значением кода поля следующий заголовок. В настоящее время определены заголовки: маршрутизации, фрагментации, аутентификации, инкапсуляции, опций hop-by-hop, места назначения и отсутствия следующего заголовка. IPv6 пакет может нести нуль, один, или более заголовков расширения, каждый задается предыдущим полем следующий заголовок . Содержимое и семантика каждого заголовка расширения определяет, следует или нет обрабатывать следующий заголовок. Единственное исключение из этого правила касается заголовка опций hop-by-hop, несущего в себе информацию, которая должна быть рассмотрена и обработана каждым узлом по пути доставки, включая отправителя и получателя. Заголовок опций hop-by-hop, если присутствует, должен следовать сразу после IPv6-заголовка. Его присутствие отмечается записью нуля в поле следующий заголовок заголовка IPv6.
Когда используется более одного заголовков расширения в одном пакете, рекомендуется помещать их в следующем порядке:
IPv6 заголовок
Заголовок опций hop-by-hop
Заголовок опций места назначения (destination options header)
Заголовок маршрутизации
Заголовок фрагмента
Заголовок authentication
Заголовок безопасных вложений (encapsulating security payload)
Заголовок опций места назначения
Заголовок верхнего уровня
Каждый заголовок расширения должен встречаться не более одного раза, исключение представляет собой заголовок опций места назначения, который должен быть представлен дважды (один раз перед заголовком маршрутизации и второй раз перед заголовком верхнего уровня).
Маршрутный заголовок
Заголовок маршрутизации используется отправителем, чтобы заставить пакет посетить один или более промежуточных узлов на пути к месту назначения. Эта функция схожа с опцией принудительной маршрутизации в протоколе IPv4. Заголовок маршрутизации идентифицируется кодом 43 поля следующий заголовок предыдущего заголовка. Заголовок маршрутизации не рассматривается и не анализируется до тех пор, пока пакет не достигнет места назначения, указанного в поле IPv6 заголовка. Узел, указанный в поле следующий заголовок заголовка, которому принадлежит модуль заголовка маршрутизации, реализует следующий алгоритм:
Заголовок фрагмента
В отличие от IPv4, фрагментация в IPv6 выполняется только узлами-отправителями, а не маршрутизаторами вдоль пути доставки. Заголовок фрагмента используется отправителем IPv6. Заголовок фрагментации идентифицируется кодом поля, равным 44.
Нефрагментированная часть состоит из IPv6 заголовка плюс любые заголовки расширения, вплоть до заголовка маршрутизации, если таковой присутствует, или до заголовка опций hop-by-hop.
Фрагментируемая часть представляет остальную часть пакета и включает в себя заголовки расширений, которые должны быть обработаны в узле места назначения, заголовок верхнего уровня и данные. Длина фрагментов должна выбираться такой, чтобы пакеты-фрагменты соответствовали значению MTU для маршрута к месту назначения. В узле места назначения из пакетов-фрагментов восстанавливается оригинальный пакет.
Приоритет
4-битовое поле приоритета в IPv6 заголовке позволяет отправителю идентифицировать приоритет доставки пакетов 0..15. Предполагается, что чем больше код, тем выше приоритет данных. Практически, уровни приоритета выше или равные 8 зарезервированы для передачи данных в реальном масштабе времени.
Контрольные суммы верхнего уровня
Любой транспортный или другой протокол верхнего уровня, который включает адреса IP-заголовка в свою контрольную сумму, должен быть модифицирован, чтобы работать с 128-битовыми IPv6 адресами.
В отличие от IPv4, при формировании UDP-пакета IPv6 узел должен вычислить контрольную UDP сумму пакета и псевдо-заголовка и, если вычисление дает в качестве результата нуль, он должен быть заменен на FFFF для помещения в UDP заголовок.
IPv6 версия ICMP-пакетов включает псевдо-заголовок в вычисление контрольной суммы; это отличается от IPv4 версии ICMP, которая не включает псевдо-заголовок в контрольную сумму. Причина изменения связана с попыткой защитить ICMP от некорректной доставки или искажений важных полей в IPv6 заголовке, который в отличие от IPv4 не защищен контрольным суммированием на интернет-уровне. Поле следующий заголовок в псевдо-заголовке для ICMP содержит код 58, который идентифицирует IPv6 версию ICMP.
Максимальное время жизни пакета
В отличие от IPv4, узлы IPv6 не требуют установки максимального времени жизни пакетов. По этой причине поле IPv4 "time to live" (TTL) переименовано в "hop limit" (предельное число шагов) для IPv6.
Максимальный размер поля данных
При вычислении максимального размера поля данных, доступного для протокола верхнего уровня, должен приниматься во внимание большой размер заголовка IPv6 относительно IPv4. При использовании TCP поверх IPv6, MSS должно быть вычислено как максимальная длина пакета минус 60 октетов, так как минимальная длина заголовка IPv6 равна 40 и на 20 октетов больше, чем для IPv4.
Протокол управляющих сообщений (ICMPv6)
IPv6 использует протокол управляющих сообщений (ICMP) с некоторым количеством изменений. Результирующий протокол называется ICMPv6, и имеет код следующего заголовка 58. ICMPv6 используется узлами IPv6 для сообщений об ошибках при обработке пакетов, и для выполнения других функций уровня Интернет, таких как диагностика.