Способ и устройство повторной передачи данных по протоколу пользовательских дейтаграмм
Иллюстрации
Показать всеИзобретение относится к области цифровых систем связи, а именно к методам повторной передачи данных по протоколу пользовательских дейтаграмм (UDP). Технический результат заключается в уменьшении потерь данных при сохранении высоких скоростных характеристик. Сравнивают номер текущей пользовательской дейтаграммы с предыдущей дейтаграммой, в случае обнаружения факта потери запускается механизм перезапроса потерянной дейтаграммы, который выполняется до получения потерянной дейтаграммы. В устройстве в блок обработки полезной нагрузки введены блок управления чтением и поиском потерянных дейтаграмм, таймер перезапроса, блок поиска потерянных дейтаграмм, блок чтения полезных данных из блока хранения полезных данных, счетчик записанных/прочитанных дейтаграмм, блок записи служебной информации, блок приема данных полезной нагрузки, блок записи полезных данных, блок FIFO, мультиплексор чтения и поиска дейтаграмм, а в блок обработки полезной нагрузки блока передачи введены блок формирования пакета ошибки, блок управления системой перезапроса, счетчик обработанных данных, счетчик переданных данных, блок записи полезных данных, блок мультиплексирования полезных данных, блок чтения полезных данных. 2 н. и 1 з.п. ф-лы, 8 ил., 2 табл.
Реферат
Область техники, к которой относится изобретение
Данное изобретение относится к области систем связи, а именно к методам повторной передачи данных по протоколу пользовательских дейтаграмм (UDP).
Уровень техники
Известно устройство и способ для передачи/приема битового потока в сети (патент RU 2224377 С2), которое осуществляет стабильную передачу битового потока видеоданных посредством использования двух логических каналов.
Недостатком изобретения является то, что при использовании одного из логических каналов для передачи сообщений посредством протокола управления передачей (TCP), при отправке сообщений в канале, подверженном влиянию помех и приводящем к большому количеству ошибок или потерь пакетов, приведет к зависанию канала, так как отправка других сообщений обрабатывается с более низким приоритетом. Кроме этого потеря служебной информации передающейся по UDP каналу о пакете с полезной нагрузкой, приведет к дублированию этого пакета с полезной нагрузкой.
Также известны способ и устройство для уменьшения влияний импульсного шума на передачу пакетов данных (патент RU 2449479 С2). Данное изобретение предназначено для уменьшения влияния импульсного шума на передачу пакетов данных по линии связи. Данное изобретение состоит из: блока повторной передачи пакетов данных по линии связи, блока запоминания недавно переданных пакетов данных, блока приема запроса повторной передачи для потерянного пакета данных, блока формирования таймаутов. Количество повторно запрашиваемых пакетов зависит от максимальной длительности задержки перемежения физического уровня линии связи, от битовой скорости передачи данных и размера передаваемого пакета.
Недостатком данного изобретения является отсутствие механизма обеспечения процесса упорядочивания пакетов, что при передаче информации мультимедийного характера будет приводить к видимым помехам. Кроме этого, устройство не осуществляет управление памятью для переданных пакетов, что снижает достоверность перезапрашиваемых данных при полном заполнении средства запоминания переданных пакетов.
Наиболее близким по сущности к заявленному способу повторной передачи данных, является известный способ, изложенный в описании к патенту на изобретение «Устройство и способ для компенсации потери пакетов в режиме передачи данных по протоколу пользовательских дейтаграмм» (патент RU 2501172 С2). Способ компенсации потери пакетов в режиме передачи данных по протоколу UDP состоит из следующих шагов: запуск процесса компенсации потери пакета при обнаружении утраты пакета в группе полученных пакетов данных; запуск первого счетчика времени ожидания; если по истечении времени ожидания первого счетчика потерянный пакет так и не был получен, то информация о потерянном пакете отсылается отправителю, после чего выполняется запуск второго счетчика времени ожидания и, если потерянный пакет будет получен прежде, чем истечет время ожидания по второму счетчику, то потерянный пакет будет вставлен на соответствующую позицию в группе полученных пакетов данных и на этом данный процесс компенсации потери пакета завершается, вместе с тем при обнаружении потери еще одного пакета процесс компенсации потери пакета запускается заново.
Недостатком данного способа является то, что при ненулевом значении коэффициента потерь и истечении второго счетчика процесс компенсации потерянного пакета прекращается. Это приводит к потере информации, что является неприемлемым для многих систем связи.
Наиболее близким по сущности к заявленному устройству передачи данных является устройство, изложенное в описании к патенту на изобретение «Устройство и способ для компенсации потери пакетов в режиме передачи данных по протоколу пользовательских дейтаграмм» (патент RU 2501172 С2). Устройство для компенсации потери пакетов в режиме передачи данных по протоколу UDP (патент RU 2501172 С2) состоит из блока обнаружения и блока компенсации потерь пакетов, при этом: блок обнаружения при обнаружении потери пакета в полученной группе пакетов данных приводит в действие первый модуль блока компенсации потерь пакетов, который служит для запуска счетчика ожидания; блок компенсации потерь пакетов включает в себя следующее: первый модуль запуска счетчика ожидания, предназначенный для запуска первого счетчика времени ожидания; первый модуль определения приема потерянного пакета, который определяет, был ли получен потерянный пакет во время действия первого счетчика ожидания, и при неполучении пакета запускает отчетный модуль для предоставления информации о потерянном пакете; отчетный модуль для предоставления информации о потерянном пакете, предназначенный для предоставления отправителю отчета о потерянном пакете и для запуска второго модуля запуска счетчика ожидания; второй модуль запуска счетчика ожидания, предназначенный для запуска второго счетчика времени ожидания; второй модуль определения приема потерянного пакета, который определяет, был ли получен потерянный пакет во время действия второго счетчика ожидания, и при обнаружении полученного пакета запускает модуль для вставки потерянного пакета, в противном случае он запускает блок обнаружения; а также модуль для вставки потерянного пакета, который используется для вставки потерянного пакета на соответствующее место в группе полученных пакетов данных.
Недостатком данного устройства является отсутствие механизма обработки ошибок при невыполнении компенсации, возникающих при ненулевом значении коэффициента потерь и истечении второго счетчика ожидания, это приводит к потере информации, что является неприемлемым для ряда систем связи.
Сведения, раскрывающие сущность изобретения
Целью изобретения является максимальное уменьшение потерь данных при сохранении высоких скоростных характеристик.
Поставленная цель достигается тем, что в способ повторной передачи данных по протоколу пользовательских дейтаграмм (UDP) согласно изобретению введены следующие дополнительные шаги: данные пришедшие от передатчика записывают в блок хранения полезных данных последовательно по мере прихода, параллельно осуществляют чтение и детектируют факт пропуска пакета, формируют команду перезапроса, отправляют команду на формирование дейтаграммы повторной передачи блоку обработки управляющих команд, отправляют сформированную команду перезапроса блоку передачи на повторную отправку соответствующей дейтаграммы, при приеме блоком передачи дейтаграммы осуществляют повторную передачу запрашиваемой дейтаграммы, при получении соответствующей дейтаграммы продолжают осуществлять чтение из памяти при помощи блока чтения полезных данных и детектирование потерянных дейтаграмм. Согласно изобретению факт потери дейтаграммы определяют по отсутствию метки о приходе следующей дейтаграммы в блоке хранения служебной информации на момент его чтения и отправляют команду блоку управления чтением и поиском потерянных дейтаграмм, при получении данной команды и ненулевом значении таймера запускают таймер перезапроса и осуществляют поиск потерянных дейтаграмм, при приходе потерянной дейтаграммы, сбрасывают таймер и продолжают чтение памяти и детектирование отсутствия следующей дейтаграммы, в ином случае при достижении таймером максимального значения осуществляют поиск потерянных дейтаграмм, перезапускают таймер перезапроса и формируют перезапрос.
Для поиска потерянных дейтаграмм формируют блок хранения полезных данных и блок хранения служебной информации. Данные записывают в блок хранения полезных данных по адресу, являющимся производным от номера дейтаграммы. При записи устанавливают 1 в блоке хранения служебной информации по адресу, являющимся производным от номера дейтаграммы. При чтении устанавливают 0 в блоке хранения служебной информации по адресу, являющимся производным от номера дейтаграммы. При записи счетчик записанных/прочитанных дейтаграмм увеличивают на 1, а при чтении уменьшают на 1. Поиск потерянных дейтаграмм осуществляют в интервале от индекса последней прочитанной дейтаграммы до индекса последней записанной дейтаграммы в блоке хранения служебной информации. Индексы найденных потерянных дейтаграмм помещают в промежуточный буфер FIFO. При наличии данных в буфере FIFO считывают индекс и формируют команду перезапроса с соответствующим индексом. При отправке данных получателю, значение верхней границы равняется номеру отправленной дейтаграммы. Отправляемые данные параллельно записывают в память перезапроса. При приеме пакета перезапроса сравнивают значение полученного индекса с нижней границей принятых дейтаграмм, если значение больше, то отправляют запрашиваемый пакет, в противном случае действия не осуществляют. Данные из блока хранения полезных данных считываются по адресу, являющимся производным от индекса дейтаграммы. Каждый раз при прочтении N дейтаграмм блок приема отправляет блоку передачи пакет увеличения нижней границы, значение нижней границы равняется предыдущее значение индекса +N.
Поставленная цель достигается тем, что в устройство повторной передачи данных по протоколу пользовательских дейтаграмм согласно изобретению введены блок приема управляющих команд, блок формирования пакета, блок мультиплексирования передаваемых пакетов, блок передачи содержит блок UDP обработки, блок обработки управляющих команд, блок прикладного уровня, блок обработки полезной нагрузки, блок хранения полезных данных, блок обработки управляющих команд содержит блок отправки управляющих команд, блок приема управляющих команд, блок мультиплексирования управляющих пакетов, блок демультиплексирования управляющих пакетов, при этом первый вход блока UDP обработки соединен со вторым выходом блока обработки управляющих команд, второй выход блока UDP обработки соединен с первым входом блока обработки управляющих команд, третий выход соединен с третьим входом блока обработки полезной нагрузки, третий выход блока обработки управляющих команд соединен с первым входом блока прикладного уровня, четвертый вход блока обработки управляющих команд соединен со вторым выходом блока прикладного уровня, пятый вход блока обработки управляющих команд соединен с шестым выходом блока обработки полезной нагрузки, шестой вход блока обработки управляющих команд соединен с седьмым выходом блока обработки полезной нагрузки, третий выход блока прикладного уровня соединен с первым входом блока обработки полезной нагрузки, четвертый вход блока прикладного уровня соединен со вторым выходом блока обработки полезной нагрузки, второй выход блока хранения служебной информации соединен с четвертым входом блока обработки полезной нагрузки, третий выход блока хранения служебной информации соединен с десятым входом блока обработки полезной нагрузки, первый вход блока хранения служебной информации соединен с пятым выходом блока обработки полезной нагрузки, первый вход блока хранения полезных данных соединен с восьмым выходом блока обработки полезной нагрузки, второй выход блока хранения полезных данных соединен с девятым входом блока обработки полезной нагрузки, в блоке обработки управляющих команд блока приема первый выход блока обработки управляющих команд соединен с первым входом блока приема управляющих команд, второй выход блока приема управляющих команд соединен с третьим входом блока обработки управляющих команд, второй вход блока обработки управляющих команд соединен со вторым выходом блока формирования пакета, первый вход блока формирования пакета соединен с первым выходом блока мультиплексирования передаваемых пакетов, второй, третий и четвертый входы блока мультиплексирования передаваемых пакетов соединены с четвертым, пятым и шестым выходами блока обработки управляющих команд соответственно, в блоке передачи первый вход блока UDP обработки соединен с первым выходом блока обработки управляющих команд, второй выход блока UDP обработки соединен со вторым входом блока обработки управляющих команд, третий вход блока UDP обработки соединен с третьим выходом блока обработки полезной нагрузки, шестой выход блока обработки управляющих команд соединен с первым входом блока прикладного уровня, пятый вход блока обработки управляющих команд соединен со вторым выходом блока прикладного уровня, третий выход блока обработки управляющих команд соединен с первым входом блока обработки полезной нагрузки, четвертый вход блока обработки управляющих команд соединен со вторым выходом блока обработки полезной нагрузки, третий выход блока прикладного уровня соединен с шестым входом блока обработки полезной нагрузки, первый выход блока хранения полезных данных соединен с четвертым входом блока обработки полезной нагрузки, второй вход блока хранения полезных данных соединен с пятым выходом блока обработки полезной нагрузки, в блоке обработки управляющих команд блока передачи первый выход блока отправки управляющих команд соединен с первым входом блока обработки управляющих команд, второй вход блока отправки управляющих команд соединен с первым выходом блока мультиплексирования управляющих пакетов, второй и третий входы соединены с четвертым и пятым выходами блока обработки управляющих команд соответственно, первый вход блока приема управляющих команд соединен со вторым выходом блока обработки управляющих команд, второй выход блока приема управляющих команд соединен с первым входом блока демультиплексирования управляющих пакетов, второй и третий выходы блока приема управляющих команд соединены с шестым и третьим входами блока обработки управляющих команд соответственно.
Согласно изобретению в устройстве повторной передачи данных по протоколу пользовательских дейтаграмм блок обработки полезной нагрузки блока приема состоит из блока FIFO, таймера перезапроса, блока приема данных полезной нагрузки, блока записи полезных данных, блока записи служебной информации, блока управления чтением и поиском потерянных дейтаграмм, блока поиска потерянных дейтаграмм, блока чтения полезных данных, мультиплексора чтения и поиска дейтаграмм, счетчика записанных/прочитанных дейтаграмм, блок обработки полезной нагрузки блока передачи включает в себя счетчик обработанных данных, счетчик переданных данных, блок формирования пакета ошибки, блок записи полезных данных, блок чтения полезных данных, блок мультиплексирования полезных данных, блок управления системой перезапроса, при этом третий выход блока обработки полезной нагрузки блока приема соединен с первым входом блока приема данных полезной нагрузки, второй выход блока приема данных полезной нагрузки соединен с первым входом блока записи служебной информации, третий выход блока приема данных полезной нагрузки соединен с первым входом блока записи полезных данных, четвертый вход блока приема полезной нагрузки соединен с десятым выходом блока обработки полезной нагрузки блока приема, второй выход блока записи полезных данных соединен с восьмым входом блока обработки полезной нагрузки, второй выход блока записи служебной информации соединен с первым входом счетчика записанных/прочитанных дейтаграмм, третий выход блока записи служебной информации в блоке хранения служебной информации соединен с пятым входом блока обработки полезной нагрузки, второй выход счетчика записанных/прочитанных дейтаграмм соединен с девятым входом блока управления чтением и поиском потерянных дейтаграмм, третий вход счетчика записанных/прочитанных дейтаграмм соединен с первым выходом блока чтения полезных данных, второй выход блока чтения полезных данных соединен с восьмым входом блока управления чтением и поиском потерянных дейтаграмм, третий вход блока чтения полезных данных соединен с седьмым выходом блока управления чтением и поиском потерянных дейтаграмм, четвертый вход блока чтения полезных данных соединен с первым выходом мультиплексора чтения и поиска дейтаграмм, пятый выход блока чтения полезных данных из блока хранения полезных данных соединен с седьмым входом блока обработки полезной нагрузки, шестой выход блока чтения полезных данных соединен с девятым входом блока обработки полезной нагрузки, первый выход блока поиска потерянных дейтаграмм соединен с пятым входом блока управления чтением и поиском потерянных дейтаграмм, второй вход блока поиска потерянных дейтаграмм соединен с четвертым выходом блока управления чтением и поиском потерянных дейтаграмм, третий вход блока поиска потерянных дейтаграмм соединен с третьим выходом мультиплексора чтения и поиска дейтаграмм, второй вход мультиплексора чтения и поиска дейтаграмм соединен с шестым выходом блока управления чтением и поиском потерянных дейтаграмм, четвертый вход мультиплексора чтения и поиска дейтаграмм соединен с четвертым выходом блока обработки полезной нагрузки, первый выход блока управления чтением и поиском потерянных дейтаграмм соединен со вторым входом блока обработки полезной нагрузки, второй выход блока управления чтением и поиском потерянных дейтаграмм соединен с первым входом блока FIFO, третий вход блока управления чтением и поиском потерянных дейтаграмм соединен с первым выходом блока обработки полезной нагрузки, десятый вход блока управления чтением и поиском потерянных дейтаграмм соединен с первым входом таймера перезапроса, одиннадцатый выход блока управления чтением и поиском потерянных дейтаграмм соединен со вторым входом таймера перезапроса, второй выход блока FIFO соединен с шестым выходом блока обработки полезной нагрузки, при этом первый вход блока управления системой перезапроса соединен с первым входом блока обработки полезной нагрузки блока отправки, второй вход блока управления системой перезапроса соединен с первым выходом счетчика обработанных данных, третий выход блока управления системой перезапроса соединен со вторым входом счетчика обработанных данных, четвертый выход блока управления системой перезапроса соединен с первым входом блока формирования пакета ошибки, пятый вход блока управления системой перезапроса соединен с первым выходом счетчика переданных данных, шестой выход блока управления системой перезапроса соединен с первым входом блока мультиплексирования полезных данных, седьмой выход блока управления системой перезапроса соединен с первым входом блока чтения полезных данных, второй выход блока формирования пакета ошибки соединен со вторым входом блока обработки полезной нагрузки блока отправки, второй вход счетчика переданных данных соединен с первым выходом блока записи полезных данных, второй вход блока записи полезных данных соединен с шестым входом блока обработки полезной нагрузки блока отправки, третий выход блока записи полезных данных соединен с пятым входом блока обработки полезной нагрузки блока отправки, четвертый выход блока записи полезных данных соединен со вторым входом блока мультиплексирования полезных данных, третий выход блока мультиплексирования полезных данных соединен с третьим входом блока обработки полезной нагрузки, четвертый вход блока мультиплексирования полезных данных соединен со вторым выходом блока чтения полезных данных, третий вход блока чтения полезных данных соединен с четвертым выходом блока обработки полезной нагрузки блока передачи.
Технический результат, достигаемый при реализации изобретения, позволяет практически исключить потерю данных, при сохранении высоких скоростных характеристик.
Сопоставительный анализ технического решения с устройством, выбранным в качестве прототипа, показывает, что новизна технического решения заключается в введении в заявленное устройство новых схемных элементов: блока хранения служебной информации, блока FIFO, таймера перезапроса, блока приема данных полезной нагрузки, блока записи полезных данных, блока записи служебной информации, блока управления чтением и поиском потерянных дейтаграмм, блока чтения полезных данных, мультиплексора чтения и поиска дейтаграмм, счетчика записанных/прочитанных дейтаграмм, счетчика обработанных данных, счетчика переданных данных, блока формирования пакета ошибки, блока записи полезных данных, блока чтения полезных данных, блока мультиплексирования полезных данных, блока управления системой перезапроса.
Сопоставительный анализ технического решения со способом, выбранным в качестве прототипа, показывает, что новизна технического решения заключается в том, что факт потери дейтаграммы определяется по отсутствию метки о приходе следующей дейтаграммы в блок хранения служебной информации на момент его чтения, запуск таймера перезапроса осуществляется при переходе в режим поиска, а также адреса в блоке хранения служебной информации блока приема, блоке хранения служебной информации блока передачи, блоке хранения полезных данных блока приема и блоке хранения полезных данных блока передачи формируются в соответствии с номером дейтаграммы, а также команда на освобождение памяти формируется от блока приема в блок передачи.
Таким образом, заявляемое изобретение соответствует критерию «новизна».
Анализ известных технических решений в исследуемой и смежных областях позволяет сделать вывод, что введенные функциональные блоки известны. Однако введение их в известное устройство с указанными связями придает ему новые свойства. Введенные функциональные блоки взаимодействуют таким образом, что позволяют практически исключить потерю данных при сохранении высоких скоростных характеристик.
Таким образом, изобретение соответствует критерию «изобретательский уровень».
Изобретение может быть использовано в системах связи, требующих максимальную пропускную способность канала и исключающих потерю данных, что характерно при обмене информацией в корпоративных сетях.
Таким образом, изобретение соответствует критерию «промышленная применимость».
Краткое описание чертежей
Фиг. 1 - общая схема устройства приема/передачи.
Фиг. 2 - структурная блок-схема блока приема.
Фиг. 3 - структурная блок-схема блока обработки управляющих команд блока приема.
Фиг. 4 - структурная блок-схема блока обработки полезной нагрузки блока приема.
Фиг. 5 - структурная блок-схема блока передачи.
Фиг. 6 - структурная блок-схема блока обработки управляющих команд блока передачи.
Фиг. 7 - структурная блок-схема блока обработки полезной нагрузки блока передачи.
Фиг. 8 - автомат состояний блока управления чтением и поиском потерянных дейтаграмм.
Описание вариантов осуществления изобретения
Устройство повторной передачи данных по протоколу пользовательских дейтаграмм (фиг. 1) содержит блок приема 1 и блок передачи 2. Блок приема 1 (фиг. 2) состоит из блока UDP обработки 3, блока обработки управляющих команд 4, блока прикладного уровня 6, блока обработки полезной нагрузки 5, блока хранения служебной информации 7, блока хранения полезных данных 8. Блок обработки управляющих команд 4 (фиг. 3) включает в себя блок приема управляющих команд 10, блок формирования пакета 9, блок мультиплексирования передаваемых пакетов 11. Блок обработки полезной нагрузки 5 (фиг. 4) блока приема состоит из блока FIFO 12, таймера перезапроса 13, блока приема данных полезной нагрузки 14, блока записи полезных данных 15, блока записи служебной информации 16, блока управления чтением и поиском потерянных дейтаграмм 17, блока поиска потерянных дейтаграмм 18, блока чтения полезных данных 19, мультиплексора чтения и поиска дейтаграмм 20, счетчика записанных/прочитанных дейтаграмм 21. Блок передачи 2 (фиг. 5) содержит блок UDP обработки 22, блок обработки управляющих команд 23, блок прикладного уровня 24, блок обработки полезной нагрузки 25, блок хранения полезных данных 26. Блок обработки управляющих команд 23 (фиг. 6) состоит из блока отправки управляющих команд 29, блока приема управляющих команд 30, блока мультиплексирования управляющих пакетов 27, блока демультиплексирования управляющих пакетов 28. Блок обработки полезной нагрузки 25 (фиг. 7) состоит из счетчика обработанных данных 31, счетчика переданных данных 32, блока формирования пакета ошибки 33, блока записи полезных данных 34, блока чтения полезных данных 35, блока мультиплексирования полезных данных 36, блока управления системой перезапроса 37.
В блоке приема первый вход блока 3 соединен со вторым выходом блока 4, второй выход блока 3 соединен с первым входом блока 4, третий выход блока 3 соединен с третьим входом блока 5, третий выход блока 4 соединен с первым входом блока 6, четвертый вход блока 4 соединен со вторым выходом блока 6, пятый вход блока 4 соединен с шестым выходом блока 5, шестой вход блока 4 соединен с седьмым выходом блока 5, третий выход блока 6 соединен с первым входом блока 5, четвертый вход блока 6 соединен со вторым выходом блока 5, второй выход блока 7 соединен с четвертым входом блока 5, первый вход блока 7 соединен с пятым выходом блока 5, третий выход блока 7 соединен с десятым входом блока 5, первый вход блока 8 соединен с восьмым выходом блока 5, второй выход блока 8 соединен с девятым входом блока 5. В блоке 4 первый выход блока 4 соединен с первым входом блока 10, второй выход блока 10 соединен третьим входом блока 4, второй вход блока 4 соединен со вторым выходом блока 9, первый вход блока 9 соединен с первым выходом блока 11, второй, третий и четвертый входы блока 11 соединены с четвертым, пятым и шестым выходами блока 4. В блоке 5 третий выход блока 5 соединен с первым входом блока 14, второй выход блока 14 соединен с первым входом блока 16, третий выход блок 14 соединен с первым входом блока 15, четвертый вход блока 14 соединен с десятым выходом блока 5, второй выход блока 15 соединен с восьмым входом блока 5, второй выход блока 16 соединен с первым входом счетчика 21, третий выход блока 16 соединен с пятым входом блока 5, второй выход счетчика 21 соединен с девятым входом блока 17, третий вход счетчика 21 соединен с первым выходом блока 19, второй выход блока 19 соединен с восьмым входом блока 17, третий вход блока 19 соединен с седьмым выходом блока 17, четвертый вход блока 19 соединен с первым выходом мультиплексора 20, пятый выход блока 19 соединен с седьмым входом блока 5, шестой вход блока 19 соединен с девятым выходом блока 5, первый выход блока 18 соединен с пятым входом блока 17, второй вход блока 18 соединен с четвертым выходом блока 17, третий вход блока 18 соединен с третьим выходом мультиплексора 20, второй вход мультиплексора 20 соединен с шестым выходом блока 17, четвертый вход мультиплексора 20 соединен с четвертым выходом блока 5, первый выход блока 17 соединен со вторым входом блока 5, второй выход блока 17 соединен с первым входом блока 12, третий вход блока 17 соединен с первым выходом блоком 5, десятый вход блока 17 соединен с первым входом таймера 13, одиннадцатый выход блока 17 соединен со вторым входом таймера 13, второй выход блока 12 соединен с шестым входом блока 5. В блоке 2 первый вход блока 22 соединен с первым выходом блока 23, второй выход блока 22 соединен со вторым входом блока 23, третий вход блока 22 соединен с третьим выходом блока 25, шестой выход блока 23 соединен с первым входом блока 24, пятый вход блока 23 соединен со вторым выходом блока 24, третий выход блока 23 соединен с первым входом блока 25, четвертый вход блока 23 соединен со вторым выходом блока 25, третий выход блока 24 соединен с шестым входом блока 25, первый выход блока 26 соединен с четвертым входом блока 25, второй вход блока 26 соединен с пятым выходом блока 25. В блоке 23 первый выход блока 29 соединен с первым входом блока 23, второй вход блока 29 соединен с первым выходом блока 27, второй и третий входы блока 27 соединены с четвертым и пятым выходами блока 23 соответственно, первый вход блока 30 соединен со вторым выходом блока 23, второй выход блока 30 соединен с первым входом блока 28, второй и третий выходы блока 28 соединены с шестым и третьим входами блока 23 соответственно. В блоке 25 первый вход блока 37 соединен с первым выходом блока 25, второй вход блока 37 соединен с первым выходом счетчика 31, третий выход блока 37 соединен со вторым входом 31, четвертый выход блока 37 соединен с первым входом блока 33, пятый вход блока 37 соединен с первым выходом счетчика 32, шестой выход блока 37 соединен с первым входом блока 36, седьмой выход блока 37 соединен с первым входом блока 35, второй выход блока 33 соединен со вторым входом блока 25, второй вход счетчика 32 соединен с первым выходом блока 34, второй вход блока 34 соединен с шестым выходом блока 25, третий выход блока 34 соединен с пятым входом блока 25, четвертый выход блока 34 соединен со вторым входом блока 36, третий выход блока 36 соединен с третьим входом блока 25, четвертый вход блока 36 соединен со вторым выходом блока 35, третий вход блока 35 соединен с четвертым выходом блока 25.
Предлагаемое устройство работает следующим образом.
Процесс отправки разнородных данных на блок приема 1 заключается в следующем: с блока прикладного уровня 24 на блок обработки полезной нагрузки 25 подаются полезные данных (DN), при этом связь между блоками может быть реализована в устройстве в виде шины Avalon-ST[1]. С блока обработки полезной нагрузки 25 данные DN поступают на блок записи полезных данных 34. Блок записи полезных данных 34 предназначен для записи полезных данных DN в блок хранения полезных данных 26 и отправки полезных данных DN в блок мультиплексирования полезных данных 36. При передаче полезных данных DN в блок мультиплексирования 36, в счетчик переданных данных 32 блок записи полезных данных 34 записывает новое значение счетчика N, при достижении счетчиком 32 максимального значения (определяется объемом оперативной памяти блока хранения полезных данных 26), счетчик сбрасывается. Данные DN и значение счетчика (N) блока записи полезных данных 32 подаются на блок мультиплексирования полезных данных 36. В случае если блок мультиплексора 36 переключен на взаимодействие с блоком записи полезных данных 34, то сигналы с блока чтения полезных данных 35 блокируются. Полезные данные на блок мультиплексора 36 приходят с блока записи полезных данных 34. Если блок мультиплексора 36 переключен на взаимодействие с блоком записи полезных данных 34, данные DN передаются на блок мультиплексирования и параллельно передаются на блок записи полезных данных 34, который осуществляет запись данных в блок хранения полезных данных 26. Интерфейс взаимодействия с блоком хранения полезных данных осуществляется по протоколу Avalon-MM [1]. Разрядность счетчика 32 переданных данных составляет 24 разряда. Адрес в блоке хранения полезных данных 26 соответствует значению счетчика 32 для данного пакета. После поступления полезных данных DN и значения счетчика N на блок мультиплексирования полезных данных 36, осуществляется упаковка полезных данных с добавлением дополнительной служебной информации (CI). После проведения данной операции сформированный пакет подается на блок UDP обработки 22. Процесс упаковки пакета представлен в таблице 1. Поле служебная информация CI[3:0] идентифицируют устройство, CI[4] содержит информацию о том, какой передается пакет, управляющий или пакет данных (дейтаграмма), для пакета с данными бит CI[5] отвечает за то, что данная дейтаграмма новая или перезапрашиваемая, CI[7:6] зарезервированы.
В блоке UDP обработки 22 осуществляется упаковка приходящего пакета, пакет упаковывается в начале в UDP дейтаграмму, потом в IP пакет и Ethernet кадр. После процесса упаковки данные передаются в среду передачи и достигают блока приема 1.
Поступившие на блок 1 приема данные передаются на блок UDP обработки 3. В блоке UDP обработки 3 осуществляется считывание идентификатора, который сигнализирует о том, что данное устройство относится к устройствам, позволяющим осуществить повторную передачу, после чего считывается значение 4 бита служебной информации для определение класса информации, если дейтаграмма относится к служебной информации, то отправляется на блок обработки управляющих команд 4, если к данным, то на блок обработки полезной нагрузки 5. Блок обработки полезной нагрузки 5 предназначен для осуществления упорядочивания пакетов, проверки на наличие потерянных дейтаграмм, поиска потерянных дейтаграмм, осуществления запроса повторной передачи. После передачи на блок обработки полезной нагрузки 5 данные поступают на блок приема данных полезной нагрузки 14. В данном блоке осуществляется чтение 24-битного номера пакета и выделение из пакета полезных данных. Полезные данные и номер пакета передаются на блок записи полезных данных в блок хранения полезных данных 15, номер пакета кроме этого также передается на блок записи служебной информации 16.
Блок приема данных полезной нагрузки 14 осуществляет считывание по адресу номера пакета содержимое блока хранения служебной информации 7. Данные (CONI) из блока хранения служебной информации 7 передаются на блок приема данных полезной нагрузки 14. Размер хранимых данных CONI по адресу в блоке хранения служебной информации 7 составляет 2 бита. CONI[0] определяет наличие данных в памяти по данному адресу, 1 устанавливается в случае, если данные были ранее записаны, 0 соответственно в противном случае, CONI[1] определяет новизну записанных данных, 1 - пакет новый, 0 - старый.
Условие записи полезных данных можно сформировать следующим образом:
Если на блок приема данных полезной нагрузки 14 подается новый пакет, то независимо от содержимого в поле по данному адресу, производят операцию записи пакета, в случае если в блоке хранения служебной информации 7 по данному адресу отсутствует пакет, запись осуществляется независимо от служебной информации в принятом пакете, также если пришел пакет с битом CI[1] равным 0, то пакет записывается только в том случае, если в блоке хранения служебной информации 7 бит CONI[1] установлен в 0.
При возникновении операции записи в блок хранения полезных данных поступают номер пакета N и непосредственно полезные данные DN и также на блок записи служебной информации 16 поступают номер пакета N и служебная информация пакета CI. После чего блок записи полезных данных 15 в блок хранения полезных данных по интерфейсу Avalon-MM записывает данные DN по адресу N. А блок записи служебной информации 16 по интерфейсу Avalon-MM записывает по адресу N значение {1, CI[5]}. Каждый раз при записи блок записи служебной информации 16 подает команду на счетчик записанных/прочитанных дейтаграмм 21 для увеличения значения счетчика на 1.
Значение счетчика записанных/прочитанных дейтаграмм 21 передается на блок управления чтением и поиском потерянных дейтаграмм 17. Работа блока управления чтением и поиском пропущенных пакетов 17 определяется автоматом изображенным на фигуре 8.
Автомат состояния (фиг. 8) состоит из четырех состояний: IDLE, READ, WAIT и LOOKFOR. Первоначально автомат находится в состоянии IDLE. Когда значение счетчика 21 превышает 1, автомат переходит в состояние READ. В состоянии READ блок управления чтением и поиском потерянных дейтаграмм 17 подает управляющие сигналы на блок поиска потерянных дейтаграмм 18, блок чтения полезных данных из блока хранения полезных данных 19 и мультиплексор чтения и поиска дейтаграмм 20. После чего мультиплексор 20 переключается в режим приема управляющих сигналов с блока чтения полезных данных 19 из блока хранения полезных данных 8. При поступлении управляющих команд блок поиска потерянных дейтаграмм отключается, а блок чтения полезных данных 19 в состоянии READ запускается. В состоянии READ блок чтения полезных данных 19 осуществляет чтение служебной информации из блока хранения служебной информации 7 по интерфейсу Avalon-MM через мультиплексор чтения и поиска 20.
Во время чтения служебной информации, блок чтения 19 считывает содержимое по адресу K, K в начальный момент считывания равняется 0, и по мере чтения пакетов увеличивается на 1, считав служебные данные CONI. После чтения блок чтения 19 анализирует бит CONI[0], если данный бит равен 0, то детектирована потеря дейтаграммы, в противном случае с адреса K блока хранения полезных данных 8 по интерфейсу Avalon-MM поступают соответствующие данные, после чего полученные данные передаются на блок чтения 19 и затем поступают на блок управления 17. После этого данные передаются по интерфейсу Avalon-ST на блок прикладного уровня 6. При удачном чтении управляющий сигн