Как производится кодирование типа протокола сетевого пакета для формирования обучающей выборки

Обновлено: 04.07.2024

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид дипломная работа
Язык русский
Дата добавления 14.03.2015
Размер файла 756,6 K

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

В данном дипломном проекте рассматривается эффективность передачи речи по пакетной сети.

Речь представляет собой поток чередующихся интервалов активности и пауз. Аналоговый по своей природе, речевой сигнал может передаваться цифровым способом после дискретизации, квантования и кодирования, например методом импульсно-кодовой модуляции (ИКМ).

СОДЕРЖАНИЕ

1. ПАКЕТНАЯ ПЕРЕДАЧА РЕЧЕВЫХ СИГНАЛОВ

1.1 Постановка задачи

1.2 Пакетная передача речи

1.3 Структура ПО для реализации возможности передачи речи по сетям передачи данных с пакетной коммутацией

1.4 ПО пакетирования речи

1.5 ПО шлюза телефонной сигнализации

2. МЕТОДЫ ОРГАНИЗАЦИИ ПАКЕТНОЙ ПЕРЕДАЧИ РЕЧИ

2.1 Метод передачи речи по сетям передачи данных Frame Relay

2.2 Метод передачи речи по сетям передачи данных IP

2.3 Метод передачи речи по сетям передачи данных АТМ

3. ВНЕДРЕНИЯ МЕТОДА ПЕРЕДАЧИ РЕЧИ VOIP

4. ОСОБЕННОСТИ ПАКЕТНОЙ ПЕРЕДАЧИ РЕЧИ

4.1 Задержка

4.2 Отношение сигнал/шум

4.3 Разборчивость

5. КОДЕРЫ ФОРМЫ

5.1 Импульсно-кодовая модуляция. Рекомендация G.711

5.2 Дифференциальная импульсно-кодовая модуляция

5.3 Адаптивная дифференциальная импульсно-кодовая модуляция

6.3 Программа расчета погрешности передачи речевых процессов

6.4 Оценка результирующей погрешности вносимой каналом связи

6.5 Программа оценки результирующей погрешности канала связи

7. РАСЧЕТ ВОЗМОЖНОСТИ ПЕРЕДАЧИ РЕЧИ ПО СЕТИ ПЕРЕДАЧИ ДАННЫХ FRAME RELAY

7.1 Наиболее вероятная схема организации речевой связи по сети передачи данных Frame Relay

7.2 Оценка количества речевых трактов, при организации речевой связи по физическому каналу связи 19,2 кбит/с

7.3 Оценка количества речевых трактов, при организации речевой связи по физическому каналу связи 2048 кбит/с

7.4 Анализ задержки передачи речи по сети передачи данных Frame Relay

8. РАСЧЕТ ВОЗМОЖНОСТИ ПЕРЕДАЧИ РЕЧИ ПО СЕТИ ПЕРЕДАЧИ ДАННЫХ IP

8.1 Наиболее вероятная схема организации речевой связи по сети передачи данных IP

8.2 Оценка количества речевых трактов, при организации речевой связи по физическому каналу связи 19,2 кбит/с

8.3 Оценка количества речевых трактов, при организации речевой связи по физическому каналу связи 2048 кбит/с

8.4 Анализ задержки передачи речи по сети передачи данных IP

9. РАСЧЕТ СРЕДНЕГО ВРЕМЕНИ ЗАПАЗДЫВАНИЯ ПРИ ПАКЕТНОЙ ПЕРЕДАЧИ

9.1 Расчет общей задержки

9.2 Программа расчета среднего времени запаздывания и общей задержки

10. РАСЧЕТ ПРОПУСКНОЙ СПОСОБНОСТИ КАНАЛА В СЕТИ IP

11. БИЗНЕС ПЛАН

11.1 Цели проекта

11.2 Объем инвестиций

11.3 Характеристика отрасли

11.4 Характеристика услуг

11.5 Рынок

11.6 Маркетинг

11.7 Оценка риска

11.8 Доходы предприятия

11.9 Основные фонды предприятия

11.10 Расчет численности производственного персонала

11.11 Эксплуатационные расходы

11.12 Затраты на электроэнергию

11.13 Срок окупаемости проекта

12. БЕЗОПАСНОСТЬ ЖИЗНЕДЕЯТЕЛЬНОСТИ

12.1 Анализ условий труда на цифровой телефонной станции

12.2 Расчет естественного освещения помещения

12.3 Расчет искусственного освещения

12.4 Расчет системы вентиляции

ЗАКЛЮЧЕНИЕ

ПЕРЕЧЕНЬ ПРИНЯТЫХ СОКРАЩЕНИЙ

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

ВВЕДЕНИЕ

Дипломный проект посвящен проблеме передачи речи в реальном масштабе времени по сетям передачи данных с пакетной коммутацией. Интерес к вопросам передачи речи по сетям передачи данных с пакетной коммутацией (VoP) возник с тех пор, как стало очевидным, что коммутация каналов более не в состоянии удовлетворять растущие потребности рынка, обеспечивать активное внедрение новых и дополнительных услуг, снижение удельных затрат на расширение сетей.

В настоящее время вопросы передачи речи по пакетным сетям находятся в центре внимания поставщиков телематических услуг и производителей сетевого оборудования, телефонных операторов и администраторов и индивидуальных пользователей Интернет. Каждый из фигурантов телекоммуникационного рынка имеет здесь свой интерес. Для поставщиков телематических услуг это, прежде всего уникальная возможность предоставлять своим клиентам междугородную и международную связь в обход традиционных монополистов в этом спектре бизнеса, для владельцев ПК речевое общение друг с другом через Интернет, для сетевых администраторов снижение расходов путем интеграции телефонного трафика и трафика данных в корпоративной сети.

Целью данной работы является не разработка какого-либо нового метода реализации данного сетевого приложения, а лишь попытка систематизировать имеющиеся методы и оценить возможность их использования в корпоративных сетях передачи данных.

При рассмотрении методов пакетной передачи речи основное внимание уделено вопросам их практического применения, а подробные описания соответствующих стандартов и спецификаций приведены в материалах ITU и других международных организаций стандартизации. Все методы VoP имеют общую структуру, поэтому сначала рассматривается общая модель пакетной передачи речи, а затем к ней привязывается каждый конкретный метод.

Основная часть дипломной работы состоит из описания исследований некоторых параметров сетей передачи данных IP, Frame Relay,Х.25 и АТМ сравнения теоретически рассчитанных и полученных опытным путем величин и вывода о возможности использования той или иной модели передачи речи.

1. ПАКЕТНАЯ ПЕРЕДАЧА РЕЧЕВЫХ СИГНАЛОВ

Достоинства цифровых методов представления, обработки, передачи и хранение информации, бурное развитие цифровой элементной базы - все это способствует тому, что цифровые методы обработки и передачи информации стали основным направлением систем связи телевидения, других инфокоммуникационных систем,

Под цифровым представлением аналогового случайного процесса будем понимать преобразование каждой реализации этого процесса на интервале наблюдения Т в совокупность чисел, по которым данная реализация может быть восстановлена в аналоговой форме с допустимой погрешностью.

Оптимальное цифровое преобразование аналогового процесса с априорно известными статистическими характеристиками в цифровую последовательность, как правило, содержит две процедуры:

безызбыточное статистическое кодирование каждой координаты.

1.2 Пакетная передача речи

Речь представляет собой поток чередующихся интервалов активности и пауз. Аналоговый по своей природе, речевой сигнал может передаваться цифровым способом после дискретизации, квантования и кодирования, например методом импульсно-кодовой модуляции (ИКМ).

Важное условие эффективного использования каналов связи передача речи в цифровой форме речевыми пакетами. (РП).

Исследование вопросов выборов оптимальной длинны РП и уплотнение речевых каналов связанно с адекватным моделированием речевого сигнала. Для этой цели обычно используется упрощенная модель, отображающая только распределения длин активностей и пауз. Активности и паузы распределены геометрически (или полигеометрически), причем математические ожидания их длительностей примерно одинаковы около 1 мс, а диапазон их изменения составляет от 10 мкс до 2с.

Пакетизированная речь принадлежит категории трафика реального времени, т.е. задает жесткие требования к временным характеристикам доставки. При этом речь достаточно нечувствительна к ошибкам.

Разработки цифровых систем передачи речи связаны с необходимостью учета потерь, вызываемых задержкой, а также пробелами в речевом сигнале. Эти причины порождаются флюктуациями времени задержки, перегрузками буферов и особенностями соответствующих сетевых протоколов. В результате необходимо обеспечить минимальное среднее время прохождения РП через сеть. Вариации этого среднего времени должны быть небольшими. Общее время задержки РП не должно превышать допустимого и, вместе с тем, должно быть достижимым при достаточно низких затратах на соответствующее оборудование. Когда задержка достигает 800 мс, психологические факторы препятствуют нормальному телефонному разговору; задержка ниже 200 мс, с этой точки зрения, является допустимой. Это достигается при передачи речи короткими пакетами.

Восстановленная (непрерывная) речь, доведенная до слушателя по сети с КП, содержит пробелы из-за статистических флюктуаций сетевой нагрузки и соответствующих флюктуаций сетевой задержки, потерь пропускной способности.

Основными моментами при передачи речи по пакетной сети являются: преобразование аналогового речевого сигнала в цифровой вид, формирование пакетов, передача пакетов по пакетной сети, восстановлении речевого сигнала на приемном конце. Таким образом, для организации телефонной связи на передающем и приемном концах необходимо иметь набор аппаратно-программ-ных средств, осуществляющих оцифровку/восстановление речи, формирование пакетов и ввод этих пакетов вместе с пакетами данных в пакетную сеть.

При организации телефонной (речевой) связи по пакетной сети важную роль играют некоторые характеристики телефонного разговора, которые могут наложить существенные ограничения на выбор той или иной модели передачи.

В самом общем виде схема организации телефонной связи по сети передачи данных с пакетной коммутацией представлена на рисунке 1.1. Для наглядности этой схемы, вводится понятие УСПРД (устройство совместной передачи речи и данных), включающее весь набор аппаратно-программных средств, реализующих возможность совместной передачи речи и данных по пакетной сети. Могут быть предложены и другие сетевые решения, однако они будут представлять собой частные случаи приведенной схемы [1].

Рисунок 1.1 Схема организации телефонной связи по пакетной сети

1.3 Структура ПО для реализации возможности передачи речи по сетям передачи данных с пакетной коммутацией

Для организации телефонной связи по пакетной сети необходим набор аппаратно-программных средств, функциями которого является:

а) преобразование речевого аналогового сигнала и сигналов телефон-

ной сигнализации в информационные единицы протоколов (пакеты

б) объединение речевого трафика и трафика данных.

Для частичной реализации первой функции используется ЦПОС (цифровой процессор обработки сигналов), который необходим для преобразования речевого сигнала в цифровой вид и формирования речевых кадров. Остальные преобразования реализуются программными средствами с использованием обычных универсальных процессоров.

На рисунке 1.2 изображена структура программного обеспечения (ПО) для реализации возможности передачи речи по пакетной сети.

Рисунок 1.2 Структура ПО организации телефонной связи по СПД с пакетной коммутацией

Данное ПО организует интерфейсы для речевых сигналов и сигналов сигнализации, исходящих из телефона или УПАТС и преобразует их в единый информационный поток для передачи по сети. ПО разделено на четыре части, с тем, чтобы обеспечить четкий интерфейс между программным обеспечением ЦПОС и остальным ПО для возможности использования различных протоколов пакетной передачи речи. ПО для реализации возможности передачи речи по сети с пакетной коммутацией состоит из следующих частей:

а) ПО пакетирования речи. Это ПО запускается на ЦПОС и используется для подготовки речевых элементов для последующей передачи их по СПД. В состав ПО входят: вокодер, алгоритм эхоподавления, алгоритм обнаружения активности речи и алгоритм удаления джиттера;

б) ПО шлюза телефонной сигнализации. Данное ПО взаимодействует с телефонным оборудованием, преобразуя сигналы телефонной сигнализации в так называемые изменяемые состояния (установление соединения, отбой и т.п.), которые используются в модуле сетевых протоколов для установления соединений;

в) ПО сетевых протоколов. Это ПО обрабатывает информацию о сигнализации и преобразует ее из формата телефонных протоколов сигнализации в конкретный протокол передачи сигнальной информации по сетям с коммутацией пакетов. Кроме того, это ПО выполняет упаковку речевых кадров и сигнальной информации в информационные единицы сетевых протоколов, используемых в пакетной сети;

г) ПО управления сетью. Это ПО предоставляет интерфейс управления передачей речи для конфигурации и обслуживания модулей системы пакетной передачи речи. Вся управляющая информация определяется в соответствии с ASN.1 и имеет синтаксис SNMP.

1.4 ПО пакетирования речи

Программное обеспечение пакетирования речи выполняет подготовку речевого сигнала для дальнейшей передачи по пакетной сети. В связи с этим, в его основные функции входит: преобразование речевого сигнала методом ИКМ, кодирование речевого сигнала, эхоподавление, обнаружение активности речи и адаптация воспроизведения. Кроме того, для нужд системы сигнализации вырабатываются специальные тоны сигнализации.

Определение активности речи заключается в том, что полученный сигнал проверяется на наличие в нем речевой информации. Если в течение определенного времени активность не обнаружена, то ПО информирует об этом протокол пакетной передачи речи. Данная функция позволяет избежать передачу речевых пауз, что может существенно влиять на эффективность использования полосы пропускания. Экономия может достигать 60%.

Адаптация воспроизведения заключается в буферизации речевых кадров для их равномерного воспроизведения. Реализация этой функции имеет следующие особенности:

Рисунок 1.3 Модуль пакетирования речи

Организуется буфер FIFO, предназначенный для хранения речевых элементов перед воспроизведением и компенсации задержек при передачи речевых пакетов; выбирается время измерения джиттера, которое позволяет осуществлять адаптивный контроль задержки FIFO.

Структура модуля пакетирования речи представлена на рисунке 1.3.

1.5 ПО шлюза телефонной сигнализации

Данное ПО осуществляет телефонную сигнализацию для обнаружения нового вызова и собирает адресную информацию (номер вызываемого абонента), которая используется системой для передачи вызова в порт получателя. ПО взаимодействует с ЦПОС для детектирования и генерации тонов сигнализации,

Рисунок 1.4 Структура ПО шлюза телефонной сигнализации

А также для управления режимами работы, основанное на наблюдении состояния телефонной линии. Кроме того, ПО взаимодействует с телефонным интерфейсом для обеспечения функций сигнализации.

Структура программного обеспечения шлюза телефонной сигнализации представлена на рисунке 1.4 [1].

Драйвер интерфейса ЦПОС занимается распределением управляющей информации между основным микропроцессором и одним или несколькими ЦПОС.

2. МЕТОДЫ ОРГАНИЗАЦИИ ПАКЕТНОЙ ПЕРЕДАЧИ

2.1 Метод передачи речи по сетям передачи данных Frame Relay

Метод передачи речи по сетям передачи данных Voice over Frame Relay (VoFR), принятый Форумом Frame Relay в качестве стандарта FRF.11, расширяет область применения сетей передачи данных Frame Relay, и предусматривает набор мер (протоколов), позволяющих передавать по ним речевой трафик и некоторые другие виды информации.

Данный стандарт предусматривает:

поддержку множества алгоритмов кодирования речи;

эффективное использование низкоскоростных соединений Frame Relay;

мультиплексирование до 255 подканалов в одном логическом соединении;

поддержку различных речевых информационных элементов различных подканалов в пределах одного кадра;

мультиплексирование подканалов данных и речевых подканалов в единственном DLC (Data Link Connection).

Транспортировка речи обеспечивается универсальным форматом кадра, который поддерживает мультиплексирование речевых подканалов и подканалов данных в единственном DLC.

Доступ к сети осуществляется посредством специального устройства VFRAD (Voice Frame Relay Access Device), которое использует метод Frame Relay в интерфейсе ”пользователь - сеть” (UNI) как средство передачи речи, телефонной сигнализации и данных. VFRAD подключаются к UNI через физические интерфейсы, как определено в стандарте.

В качестве оконечных устройств могут использоваться: ПК с соответствующим программным обеспечением, факсимильный аппарат, телефонный аппарат, УПАТС, и т.п.

FRF.11 поддерживает такие возможности как инициализацию и завершение вызовов для оконечных устройств, обеспечение межсетевого обмена между индивидуальными подканалами в интерфейсе VoFR и подканалами в другом типе речевого интерфейса, коммутацию вызовов.

Для того чтобы в полной мере реализовать описанные возможности, стек протоколов должен обеспечить полнодуплексный обмен информацией. Обмен информацией осуществляется посредством передачи двух типов информационных элементов: основных информационных элементов (ИЭ) и сигнальных ИЭ.

К основным ИЭ относятся:

закодированная факсимильная информация;

кадры с данными.

К сигнальным ИЭ относятся:

цифры телефонного номера: DTMF или импульсы;

биты сигнализации (внутриканальная сигнализация);

закодированная факсимильная информация;

дескриптор информации о паузе.

Дескриптор информации о паузе (SID) информируют о паузе в разговоре и обеспечивает передачу параметров генерации комфортного шума. SID поддерживают алгоритмы обнаружения активности речи (VAD) и схемы подавления пауз.

В случае использования VAD, подкадры SID могут быть дополнительно переданы за последним закодированным речевым подкадром. Прием подкадра SID происходит после того, как речевой подкадр был интерпретирован как явное указание конца речевого потока. Кроме того, подкадры SID могут передаваться в любое время в течение интервала тишины для коррекции генерации комфортного шума.

Рисунок 2.1 Возможность мультиплексирования множества речевых подканалов

UNI Frame Relay может поддерживать множество PVC, обеспечивающих услуги VoFR, а VoFR, в свою очередь, предусматривает организацию множества речевых подканалов и подканалов данных в единственном DLC. На рисунке 2.1 представлен пример мультиплексирования речи и данных.

На рисунке 2.2 представлен формат речевого ИЭ, где поле ”Тип кодирования” определяет тип применяемого алгоритма кодирования речи.

Передача данных — многоуровневый процесс. На практике для разработки протоколов и других средств связи между компьютерами разработчики пользуются моделью OSI (Open System Interconnection), определяющей семь уровней процесса обмена данными.

Модель OSI определяет различные уровни взаимодействия систем, дает им стандартные имена (они приведены в предлагаемой табличке) и указывает, какие функции должен выполнять каждый уровень.

Модель OSI лежит в основе построения различных сетей. Общая модель вычислительной сети определяет характеристики сети в целом и характеристики и функции входящих в нее основных компонентов. В модели OSI сетевые функции распределены между 7-ю уровнями. Каждый из уровней представляет определенную группу функций, необходимых для работы компьютерной сети. Каждому уровню соответствуют различные сетевые операции, оборудование и протоколы.

Протокол— это набор правил, определяющих поведение функциональных блоков при передачи информации в сети. Протоколы определяют формат данных, а также всю необходимую информацию для правильной обработки передаваемых данных.

Представительский уровеньпереводит поступающую от прикладного уровня информацию в формат для обмена данными между сетевыми компьютерами, обеспечивает преобразование данных (кодирование, шифрование данных, сжатие и т. п.), т.е. представительский уровень отвечает за возможность диалога между приложениями на разных компьютерах. Он гарантирует представление данных в кодах и форматах, принятых в данной системе. В некоторых системах этот уровень может быть объединен с прикладным.

Сеансовый уровеньотвечает за организацию сеансов обмена данными между компьютерами через коммуникационную сеть. Он позволяет производить обмен данными в режиме, определенном прикладной программой, или предоставляет возможность выбора режима обмена. Сеансовый уровень поддерживает и завершает сеанс связи. Сеансовый уровень выполняет также функции по синхронизации и защите. Протоколы сеансового уровня являются составной частью функций трех верхних уровней модели.

Транспортный уровень- делит потоки информации на достаточно малые фрагменты (пакеты), обеспечивает их маршрутизацию и передачу на сетевой уровень. Обеспечивает контроль за доставкой пакетов. Размер отдельного пакета измеряется в килобайтах (эквивалентно примерно одной странице текста). В пакет входит часть передаваемого файла и заголовок с информацией, необходимой для гарантированной доставки.

Канальный уровеньобеспечивает управление потоком данных в виде кадров, в которые упаковываются информационные пакеты, обнаруживает ошибки передачи и реализует алгоритм восстановления информации в случае обнаружения сбоев или потерь данных. Канальный уровень реализует процесс передачи информации по информационному каналу. Информационный канал - логический канал, он устанавливается между двумя компьютерами, соединенными физическим каналом, осуществляет подготовку данных к передаче по физическому соединению.

Физический уровень- получает кадры данных от вышележащего канального уровня и преобразует их в оптические или электрические сигналы, соответствующие 0 или 1 бинарного потока. Его основная задача - управление аппаратурой передачи данных и подключенным к ней каналом связи.




Три верхних уровня объединяются под общим названием - процесс или прикладной процесс. Эти уровни определяют функциональные особенности вычислительной сети как прикладной системы (уровень прикладных программ). Четыре нижних уровня образуют транспортную службу компьютерной сети, которая обеспечивает передачу (транспортировку) информации между компьютерами, освобождая более высокие уровни от решения этих задач.

При этом в абонентской ЭВМ происходит обратный процесс - чтение и отсечение заголовков уровнями модели взаимодействия открытых систем. Каждый уровень реагирует только на свой заголовок. Заголовки верхних уровней нижними уровнями не воспринимаются и не изменяются - они "прозрачны " для нижних уровней. Так, перемещаясь по уровням модели OSI, информация, наконец, поступает к процессу, которому она была адресована. Функции, описываемые уровнями модели, должны быть реализованы либо в аппаратуре, либо в виде программ. Функции физического уровня всегда реализуются в аппаратуре. Это адаптеры, мультиплексоры передачи данных, сетевые платы и т.д. Функции остальных уровней реализуются в виде программных модулей - драйверов.

Итак, информация на компьютере- отправителе должна пройти через все нижележащие уровни. Затем она на физическом уровне передается по сетевому кабелю на компьютер - получатель и опять проходит все уровни, пока не достигнет того же уровня, с которого она была послана на ПК- отправителе.

Следует при этом сказать, что за исключением самого нижнего уровня сетевой модели, никакой иной уровень не может непосредственно посылать информацию соответствующему уровню другого компьютера. Но при этом каждый уровень на компьютере отправителя работает так, будто он напрямую связан с таким же уровнем на компьютере получателя (виртуальная или логическая связь).

В чем же основное достоинство семиуровневой модели OSI? В процессе развития и совершенствования любой системы возникает потребность изменять ее отдельные компоненты. Иногда это вызывает необходимость изменять и другие компоненты, что существенно усложняет и затрудняет процесс модернизации системы.

Здесь и проявляются преимущества семиуровневой модели. Если между уровнями определены однозначно интерфейсы, то изменение одного из уровней не влечет за собой необходимости внесения изменений в другие уровни. Таким образом, существует относительная независимость уровней друг от друга.

Основные протоколы компьютерной сети.Как было показано ранее, при обмене информацией в сети каждый уровень модели OSI реагирует на свой заголовок. Иными словами, происходит взаимодействие между одноименными уровнями модели в различных абонентских компьютерах. Такое взаимодействие должно выполняться по определенным правилам.

Как уже отмечалось, протокол - набор правил, определяющий взаимодействие двух одноименных уровней модели взаимодействия открытых систем в различных абонентских ЭВМ.

Протокол - это не программа. Правила и последовательность выполнения действий при обмене информацией, определенные протоколом, должны быть реализованы в программе. Обычно функции протоколов различных уровней реализуются в драйверах для различных вычислительных сетей.

Компьютеры, подключенные к сети Интернет, могут быть различной архитектуры и с различным программным обеспечением. Их совместимость достигается за счет использования коммуникационных протоколов.

Стек протоколов- это разделенный на уровни набор протоколов, которые работают совместно, реализуя определенную коммуникационную архитектуру. Обычно задачи того или иного уровня реализуются одним или несколькими протоколами.

Стек Transmission Control Protocol/Internet Protocol (TCP/IP) - промышленный стандарт стека протоколов, разработанных для обеспечения взаимосвязи различных устройств в глобальных сетях. Стек TCP/IP поддерживают все современные операционные системы, и он служит основой для создания сети Интернет.

Протокол TCP (протокол управления передачей) разбивает информацию на порции (пакеты) и нумерует их. Затем протокол IP (протокол Интернета) добавляет к каждой порции служебную информацию с адресами отправителя и получателя и обеспечивает доставку всех пакетов.

Благодаря такому способу передачи информации в Интернете, каждый компьютер может одновременно принимать пакеты от большого числа других компьютеров. В этом случае нет необходимости устанавливать отдельный канал связи между двумя компьютерами.

Протоколы и службы Интернета можно использовать и в рамках локальной сети. В терминах модели OSI в стеке протоколов TCP/IP используются протоколы следующих типов. Это основныепринятые в мире протоколы.

1. Telnet (протокол эмуляции терминала) - протокол доступа к удаленному компьютеру и обработки данных на нем.

2. FTP (File Transmission Protocol) - протокол пересылки файлов (предоставляет возможность интерактивной работы с удаленной машиной, выполняет аутентификацию пользователей и др.).

4. DNS (Domain Name System) - протокол поддержки сетевого адреса.

5. RIP (Routing Internet Protocol) - протокол межсетевого взаимодействия, предназначенный для сбора маршрутной информации.

6. SNPM (Simple Network Management Protocol) - протокол централизованного управления узлами сети, например серверами, рабочими станциями, маршрутизаторами, мостами и концентраторами. Кроме того, SNPM можно использовать для конфигурирования удаленных устройств, мониторинга производительности сети, выделения ошибок сети и попыток НСД, а также аудита использования сети.

8. UDP (User Datagram Protocol) - протокол дейтаграмм пользователя, который обеспечивает передачу прикладных процессов дейтаграммным способом (каждый пакет из набора пакетов, содержащего данные пользователя, передается между узлами независимо друг от друга) и выполняет только функции связующего звена между сетевым протоколом и многочисленными прикладными процессами.

9. IP (Internet Protocol) - основной протокол сетевого уровня. IP первоначально проектировался как протокол передачи пакетов в составных сетях, состоящих из большого числа локальных сетей, объединенных как локальными, так и глобальными сетями.

10. ARP (Address Resolution Protocol) - вспомогательный протокол стека TCP/IP, предназначенный для определения аппаратного адреса узла назначения по заданному IP- адресу.

11. ICMP (Internet Control Message Protocol) - вспомогательный протокол стека TCP/IP, предназначенный для обмена информацией об ошибках передачи данных протоколом IP, а также для обмена управляющей информацией на сетевом уровне.

12. GMP (Internet Group Management Protocol) - протокол, используемый для отправки данных определенной группе получателей.

Как сетевые функции распределены по всем уровням модели OSI, так и протоколы совместно работают на различных уровнях стека протоколов. Уровни в стеке протоколов соответствуют уровням модели OSI. В совокупности протоколы дают полную характеристику функциям и возможностям стека.

Протоколы Telnet, FTP, SMPT, DNS, RIP, SNMP реализуются на уровнях 5 - 7 модели OSI; протоколы TCP и UDP обеспечивают транспортный уровень; протоколы IP, ARP, ICMP используются на сетевом уровне. На физическом и канальном уровнях модели OSI. стек протокола TCP/IP не регламентируется, но поддерживает все популярные стандарты физического и канального уровня: для локальных сетей это Ethernet, Token Ring, FDDI, Fast Ethernet, 100VG-AnyLAN, для глобальных сетей - протоколы соединений "точка-точка" SLIP и PPP, протоколы территориальных сетей с коммутацией пакетов X.25, frame relay.

Как же действуют компьютер-отправитель и компьютер-получатель в соответствии с указанными протоколами?

Компьютер-отправитель в соответствии с протоколами выполняет следующие действия:

· разбивает данные на небольшие блоки, называемые пакетами, с которыми может работать протокол;

· добавляет к пакетам адресную информацию, чтобы компьютер-получатель мог определить, что эти данные предназначены именно ему;

· подготавливает данные к передаче через плату сетевого адаптера и далее - по сетевому кабелю.

Компьютер-получатель в соответствии с протоколами выполняет те же действия, но только в обратном порядке:

· принимает пакеты данных из сетевого кабеля;

· через плату сетевого адаптера передает пакеты в компьютер;

· удаляет из пакета всю служебную информацию, добавленную компьютером- отправителем;

· копирует данные из пакетов в буфер - для их объединения в исходный блок данных;

· передает приложению этот блок данных в том формате, который оно использует.

И компьютеру-отправителю, и компьютеру-получателю необходимо выполнять каждое действие одинаковым способом, с тем чтобы пришедшие по сети данные совпадали с отправленными. Кроме того, эти действия (шаги) должны быть выполнены в одной и той же последовательности на каждом сетевом компьютере. На компьютере-отправителе эти действия выполняются в направлении сверху вниз, а на компьютере-получателе - снизу вверх.

Примечание . Строго говоря, задачи выполняют не сами протоколы, а соответствующие программы. Протоколы же представляют собой всего-навсего форматы представления данных того или иного уровня. А программы, выполняющие обработку (синтаксический анализ) данных в соответствии с уровнем, должны осуществлять ее в соответствии с правилами протокола этого уровня.

Существует модель OSI (Open System Interface или модель открытых систем), содержащая 7 уровней протоколов:

Несмотря на, казалось бы, избитость этой темы, все же, некоторые моменты изложены в книгах, интернетных ресурсах как-то туманно. Мы в этой статье постараемся немного прояснить ситуацию.

Модель OSI: схема

Модель OSI является семиуровневой. Однако, зачастую, на практике используются не все семь уровней, а меньше. Например, как правило, протоколы сеансового и представительского уровня, в силу небольшого объема выполняемых задач, объединяются с транспортным или прикладным уровнями. Поэтому, фактически, на практике используется 3…5 уровней протоколов.

Что часто интересует программиста, занимающегося сетевыми технологиями?

Надо сказать, что сетевые технологии в настоящее время, на самом деле, уже давно разделились, как минимум, на три отдельных, не особенно сильно пересекающихся, очень условных области:

Физический уровень

Так как этот уровень имеет дело с электрическими сигналами в виде битов, соответственно, их источником и адресатом являются соответствующие физические сетевые устройства (например, модемы и/или сетевые карты). Эти физические устройства могут быть связаны друг с другом посредством той или иной среды передачи – USB-кабель, оптоволокно, радиоканал и т.п. На физическом уровне вообще не идет речи об IP-адресах, доменах, URL и т.п. Эти абстракции появляются на более высоких уровнях модели OSI.

Здесь играет роль правильность составления кадра из битов, для чего используются различные способы низкоуровневого или физического кодирования: манчестерский код, дифференциальное, потенциальное кодирование, NRZ, БВН и многие другие способы. Физическое кодирование осуществляется в рамках соответствующих стандартов, например, IEEE 802.3 .

Для чего используется физическое кодирование? Для того, чтобы как-то подстраховать сетевую передачу битов (в составе кадра) от ошибок. Вследствие заторов в сети, а также ее возможной неисправности, наличия помех, не все биты кадра могут дойти до адресата. Предположим, клиент (источник) передал в сеть следующие биты:

Если все будет хорошо, то эти и именно эти биты должен бы принять приемник (сервер), находящийся на другом конце сетевого соединения. Но, зачастую, практика вносит свои коррективы. Например, вместо указанной последовательности битов может прийти:

1101100001 0 011

Некоторые биты могут попросту затеряться, а некоторые – добавиться дополнительно взамен потерянных. В итоге - серверу придет не тот кадр, который был отправлен клиентом (источником). Так вот, физическое кодирование и служит для того, чтобы если не полностью избавиться от ошибок передачи кадров битов, то, по крайней мере, свести такие ошибки к минимуму. Если в процессе передачи возникла ошибка (по крайней мере, один бит передан неверно), то передачу кадра, содержащего этот бит, придется повторять – до тех пор, пока не будет передан правильный кадр или до тех пор, пока сетевое соединение не будет прервано.

Канальный уровень

На этом уровне происходит контроль правильности составления кадров (фреймов). Типичный размер фрейма – 1 кБ. При разработке стеков протоколов на канальном уровне осуществляется помехоустойчивое кодирование. К таким способам кодирования относится код Хемминга, блочное кодирование, код Рида-Соломона. В программировании этот уровень представляет драйвер сетевой платы, в операционных системах имеется программный интерфейс взаимодействия канального и сетевого уровней между собой. Это не новый уровень, а просто реализация модели для конкретной операционной системы. Здесь, как и на физическом уровне, также пока нет ни байтов, ни файлов, ни т.п.

Однако, средств контроля правильности кадров, предоставляемых канальным уровнем, не застраховывает ото всех ошибок передачи. Поэтому дополнительные средства контроля используются в сетевых передачах на более вышележащем (транспортном) уровне. Только канального уровня для контроля правильности сетевой передачи недостаточно.

Взаимодействие на канальном уровне осуществляется, также как и на физическом, естественно, между физическими устройствами. Однако, для адресации используются так называемые МАС-адреса (аппаратные адреса). Они имеют следующий примерный вид (в шестнадцатеричном представлении):

Каждый компьютер в сети интернет имеет СВОЙ уникальный аппаратный адрес. МАС-адрес источника и адресата входят в состав кадра, формирующегося на канальном уровне. Отметим, что и здесь никаких IP-адресов, доменных имен и др. нет в помине. Речь идет просто о передаче битовых кадров от сетевого устройства с одним МАС-адресом другому устройству (с другим MAC-адресом). Именно так работает современный интернет в подавляющем большинстве случаев.

Следует иметь в виду, что сервер (компьютер-адресат), получая пакеты от клиента (например, от браузера), естественно, получает и МАС-адрес компьютера, на котором запущен. браузер. Так же, как и его IP-адрес. И если IP-адрес несложно подменить, например, путем соединения с сервером-адресатом через прокси-сервер, то подмена МАС-адреса представляет собой куда более сложное занятие. Ранние версии операционных систем Linux, как правило, позволяли делать такую подмену на пользовательском уровне. Тогда как современные версии это запрещают (надеемся, понятно, почему). Впрочем, конечно, никто никому не мешает заново собрать и перекомпилировать ядро операционной системы, в котором уже предусмотреть такую замену. Однако, сделать это способен далеко не каждый программист. Или же можно использовать такой прокси-сервер, который будет парсить заголовки протоколов канального уровня и записывать в них какой-нибудь другой МАС-адрес.

Поэтому КАЖДЫЙ, кто выходит в интернет со своего компьютера, на котором установлена стандартная операционная система, типа Windows, Linux, MacOS, Android и т.п., неважно, через прокси-сервер или напрямую, должен ясно понимать, что МАС-адрес его компьютера может быть известен серверу-адресату . Если только, повторимся, он не использует такой прокси-сервер, который способен сделать подмену МАС-адреса. В общем же случае ЛЮБОЙ сервер способен точно идентифицировать пользователя - именно по его MAC-адресу. Кстати, этот аргумент когда-нибудь вполне сможет использовать Раскомнадзор, если ему будет дана команда - заблокировать интернет. Тут же в СМИ возникнут статьи на тему: "А Вы знаете, что любой сервер знает о ВАС ВСЁ?". Вот, мол, Раскомнадзор стал настолько заботлив о пользователях интернета, что решил защитить их от него. Причем, отметим, что Яндекс- и Google-метрики - это сущий пустяк по сравнению с этим. Ни Google, ни Яндекс не собирают информацию о МАС-адресах посетителей сайтов. Ну, по крайней мере, с их слов.

Аналогию можно привести в отношении сотовых телефонов. Ведь любой сотовый телефон представляет собой устройство, подключенное к внешней сети (через ближайшую вышку сотовой связи). КАЖДЫЙ сотовый телефон имеет уникальный МАС-адрес, как и компьютер, ноутбук и т.д. Поэтому ЛЮБОЙ сотовый оператор способен в течение нескольких секунд идентифицировать, с какого именно телефона производится звонок (вызов) на конкретную вышку. А телефонный номер здесь, по идее, и не столь важен, сим-карта может быть вообще любая, это не имеет значения. Может возникнуть вопрос: почему же тогда так называемые "правоохранительные" органы зачастую утверждают, что, якобы, "не могут найти" краденые сотовые телефоны? Ответ: потому, что не хотят или не имеют полномочий. Впрочем, может и хотят, и имеют полномочия, но кто-то вышестоящий запрещает им это делать. Другое дело, что ряд сотовых телефонов можно перепрошить, т.е. подменить в них МАС-адрес. Но, разве те, кто воруют телефоны, а также те, кто покупает краденые телефоны - это всегда делают? Как правило, нет. Ибо и те, и другие прекрасно осведомлены о том, что ни с какими такими МАС-адресами никто дела иметь не будет. Ну, за исключением особо важных случаев, конечно (точнее, "особо важных персон"). Там-то, да, будут смотреть не только МАС-адреса, а и многое другое.

Сетевой уровень

На этом уровне протоколов появляется такая сетевая абстракция, как IP-адрес узла сети. Придумана она исключительно для того, чтобы компьютерам (точнее, пользователям компьютеров) проще было взаимодействовать друг с другом. Чтобы на основе IP-адресов можно было выделять классы сетей, осуществлять защиту от доступа и т.п. Хотя, повторимся, все это вполне можно было бы осуществить, используя исключительно МАС-адреса, не пользуясь технологией IP-адресов.

Т.е. еще раз следует подчеркнуть: фактически, связь осуществляется на основе МАС-адресов. Тогда как IP-адреса используются больше для организации сетевого взаимодействия, понятного не только для компьютеров, но и для людей.

Транспортный уровень

На транспортном уровне появляется также такое понятие, как порт (точнее, логический порт). Которого не существовало на нижележащих уровнях. Порт в данном случае – это просто некое целое число из определенного диапазона значений, при помощи которого (а также при помощи IP-адреса узла) происходит адресация между узлами в сетевых соединениях. Наличие конкретного порта, а также IP-адреса – необходимо и достаточно для того, чтобы однозначно адресовать сетевой интерфейс и, соответственно, запрос к нему. Открытый порт на конкретном узле сети соответствует сокету, который находится в режиме прослушивания или, наоборот, приема сетевых запросов.

Итак, на транспортном уровне для облегчения управления взаимодействием узлов сети добавляется порт сокета, открытого на прием или передачу данных.

Прикладной уровень

В общем, дело обстоит следующим образом:

Клиент (например, браузер) начинает открывать страницу, URL которой введен, к примеру, в его адресной строке. Для начала, браузер будет делать запрос в сеть на предмет того – какому IP-адресу соответствует сервер с доменными именем, содержащимся в открываемом URL. Далее, делается запрос (см. выше) о том, каков МАС-адрес узла сети, соответствующий этому IP-адресу. И только после этого, когда браузер получает в свое распоряжение MAC-адрес искомого узла, он и может выполнить запрос к нему.

Строго говоря, описание сетевого взаимодействия немного упрощено и не учитывает, например, прохождение запроса в локальных сетях, роутерах, маршрутизаторах.

Типичная схема передачи сетевого запроса

Инкапсуляция протоколов

Кадр протокола канального уровня

В связи с этим предлагаем взглянуть на схему инкапсуляции протоколов:

или, отображая в виде рисунка:

Схема инкапсуляции сетевых протоколов (предварительно)

Для большей полноты изображения, покажем место IPv4-протокола в кадре канального протокола:

Схема инкапсуляции сетевых протоколов (полностью)

Если данные, содержащиеся в поле данных протокола IPv4, имеют достаточно большой размер (нередко так и бывает, когда по сети передаются большие объемы информации), тогда формируются не один, а несколько кадров в формате канального протокола.

Гриша, если еще актуально: данные протокола НТТР вложены внутрь ТСР-пакетов. Порты разные у НТТР и ТСР и независимые друг от друга.

* тогда на какой МАС-адрес будет отправлять ответ адресат? Для ответа нам не нужен МАК отправителя для этого у нас есть его IP. Мы отправляем ответ в дефолтный шлюз (если для сети отправителя нет особых маршрутов).

Правила пакетов H.264 RTP и анализ захвата пакетов RTSP

Каталог статей

Исходный кодовый поток состоит из последовательных уровней сетевой абстракции NALU (Network Abstract Layer), где NALU = [StartCode] + [NALU Header] + [NALU Payload], где

Заголовок NALU: представляет группу информации заголовка кодирования видео, конкретный анализ выглядит следующим образом.

Полезная нагрузка: представляет собой полезную нагрузку исходной последовательности байтов.

NAL unit Header

Давайте сравним заголовок блока NAL H264 и H265 исходного кодового потока. Заголовок Nal Unit H264 представляет собой байт, и каждый бит выражается следующим образом:

H264 NAL Header

F:forbidden_zero_bit NRI:nal_reference_idc type:nal_unit_type
1 bit 2 bits 5 bits
В спецификации H.264 указано, что этот бит должен быть равен 0. VCL может характеризовать атрибуты опорного кадра, опорный кадр не равен нуль, не опорный кадр 0, Non-VCL характеризует, может ли он быть отброшен во время декодирования, например, SPS, PPS не может быть отброшен в 1, ДИР может быть отброшен Текущий тип NAL

VCL: Video Coding Layer

Способ анализа исходного кода по типу H264:

Часто используемые типы H.264

type type value
sps 7
pps 8
sei (расширенный информационный фрейм, необязательно) 6
Часто используемые I-образные рамы 5
Обычно используемые P-кадры 1

Позвольте мне объяснить здесь, что некоторые коды не имеют фреймов SEI. Расширенный информационный фрейм SEI обычно заполнен некоторой информацией, такой как координаты распознавания лиц, и некоторая информация также может быть настроена. Обычно потоки отправляются в порядке sps, pps, I, p, I, P и т. Д. Чтобы иметь возможность анализировать и кодировать в любой момент при отправке потокового мультимедиа, sps и pps обычно добавляются перед I кадр. Отдельный пакет или агрегированный пакет из двух кадров, а затем отправляется I-кадр.

Полный заголовок показан выше, а вот таблица, объясняющая значение следующего:

Среди них CC во многих случаях равен 0, то есть информация CSRC отсутствует, поэтому заголовок RTP обычно состоит из 12 байтов.

Если используется передача UDP, этот заголовок RTP будет использоваться напрямую; однако четыре байта будут добавлены перед заголовком во время передачи tcp:

​ [magic number]+[channel number]+[data length]

magic number channel number data length
1 байт 1 байт 2 байта
Знак "$" 00 – Видео RTP, 01 – Видео RTCP
02 – Audio RTP, 03 – Audio RTCP
Общая длина заголовка RTP + блок NAL

Давайте возьмем кадр данных для иллюстрации, как показано ниже:



Среди них Payload начинается с 67, что представляет собой инкапсуляцию данных. Как инкапсулировать эту полезную нагрузку, будет рассказано ниже.

Описание типа

Здесь мы сначала говорим о типе Type. В RTP были добавлены другие форматы, кроме 23 в H264. Давайте сначала взглянем на этот заголовок.

Этот тип типа используется для различения типа инкапсуляции. Типы кадров H.264 находятся в диапазоне 1-23, а RTP был добавлен позже, а именно:

Некоторые типы здесь делятся на тип A и тип B. Разница в том, содержит ли он информацию (DON, DONB, DOND). Тип, который содержит информацию, - это тип B, а тип, который не содержит тип A. Обычно мы используем тип A, который не содержит информации (DON, DONB, DOND), который является нашим основным объектом анализа.

Следовательно, из стандартного документа упаковки существует три формата: единичный блок NAL, пакет агрегации и блок фрагментации.

Одиночный пакет NAL: единичный пакет NAL

Это очень просто. Пакет RTP состоит только из полного NALU. В этом случае поле типа заголовка NAL RTP и исходный H.264
Поле типа заголовка NALU такое же, т. е. оно варьируется от 1 до 23.

Пакеты агрегирования: пакеты агрегирования

Одноразовый пакет агрегирования: одноразовый пакет агрегирования

Пакеты многократного агрегирования (MTAP)

Существует два типа пакетов многоразового агрегирования: MTAP16 и MTAP 24. Разница в том, что длина каждого смещения TS NALU составляет 16 бит, а другого - 24 бита.

резюме:

В пакете агрегирования обычно используется тип пакета одноразового агрегирования STAP-A, который обычно используется для агрегирования кадров sps, pps и sei в один пакет RTP для отправки, в то время как пакет многократного агрегирования является не часто используется, и обычно не используется при самостоятельном создании rtspserver. Будем использовать этот подход.

Среди них STAP-A NAL HDR обычно устанавливает тип равным 24, а затем собирает кадры sps, pps, sei, код выглядит следующим образом:

Единицы фрагментации: Единицы фрагментации (FU)

Формат FU-A следующий

Ниже приведен индикатор FU: индикатор FU фактически почти такой же, как заголовок NAL, то есть конечный тип становится типом 28 пакета фрагмента, а исходный конечный тип сохраняется в типе в заголовке FU.

Виды S
start, 1 означает первый пакет фрагментированного пакета
E
конец, когда он равен 1, это означает, что последний пакет фрагмента пакета
R
Зарезервировано, всегда 0
Стартовый пакет 1 0 0
Промковщик 0 0 0
Последний пакет 0 1 0

После того, как это содержимое будет заполнено, он синтезирует пакет RTP с данными полезной нагрузки, а затем отправит его.

одиночный блок NAL: фрейм конфигурации анализа


Кадры sps, pps, sei отправляются с использованием одного блока NAL, поэтому тип синтаксического анализа = Payload [0] & 0x1F

67 & 0x1F = 7, это кадр sps



68 & 0x1F = 8, это кадр pps



06 & 0x1F = 6, это расширенный информационный фрейм sei.

FU пересылает фрагментами, анализирует I кадр типа = 5

Первый пакет



Это первый байт 0x7C (двоичный 0111 1100), определенный следующим образом:

Проанализируйте и получите:

type = 0x7C & 0x1F = 0x1C = 28, который является типом фрагмента

NRI = 0x7C & 0x60 = 0x60, двоичный (0110 0000)

Второй байт - 0x85 (двоичный 1000 0101) и определяется следующим образом:

NALType = 0x85 & 0x1F = 0x05 = 5, что является I-кадром

По количеству двоичных цифр S = 1, E = 0, R = 0, поэтому запустите пакет

Промковщик


Индикатор FU среднего пакета должен быть таким же, как и у первого пакета, оба - 0x7C,

Второй байт - 0x05 (двоичный 0000 0101), то есть type = 0x05 = 5

И S = 0, E = 0, R = 0, так что это промежуточный пакет

Сумка для хвоста


Индикатор FU последнего пакета должен быть таким же, как у первого пакета, оба 0x7C,

Читайте также: