Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
92.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
100.76 Кб
Скачать

Санкт-Петербургский государственный университет телекоммуникаций

им. проф. М.А.Бонч-Бруевича

Курсовая Работа

По дисциплине

«Сети ЭВМ и телекоммуникации»

Разработка прикладного протокола передачи и приём звукового файла

Выполнил: Горшков Д.Н.

Взвод: СПВ-82

2011 г.

Цель курсового проекта.

Разработка протокола верхнего уровня согласно требованиям на курсовое проектирование.

Задание на курсовое проектирование

  1. Разработать структуру протокола согласно функциям (см. табл.1):

    1. Определить функции протокола и структуру пакета разрабатываемого протокола;

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

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

  2. Разработать алгоритмы обработки данных на приеме и передаче и представить их блок-схемы.

  3. Разработать программную реализацию протокола:

    1. Описать разработанные функции, их назначение и структуру;

    2. Описать подключаемые стандартные функции Windows;

    3. Скомпилировать файл .exe, протестировать на реальной сети.

Вариант задания

А

Б

тип трафика

значение поля дополнительной информации

число посылок пакетов

длина поля данных пакета, байт

задержка воспроиз-ведения, пак.

9

2

Stream

символьное с именем файла

1

192

14

табл.1

Решение

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

В качестве протокола транспортного уровня необходимо использовать UDP.

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

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

  • поле данных в пакетах имеет фиксированный размер и содержит строго определённую длительность аудиоданных,

  • на приёме заранее известны оба параметра.

Выполнение первого условия требует использования голосового кодека с постоянной скоростью кодирования речевого сигнала.

В программе используется кодек, реализующий импульсно-кодовую модуляцию со следующими параметрами: частота дискритизации 48 кГц, точность отсчетов – 8 бит, число каналов – 1 (моно).

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

Рис.1.2. Организация джиттер-буфера

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]