СПОСОБ ПЕРЕДАЧИ БЛОКОВ ДАННЫХ С ДИНАМИЧЕСКОЙ ГРАНИЦЕЙ
METHOD OF TRANSMITTING DATA UNITS WITH DYNAMIC BOUNDARY

1. Область техники
Изобретение относится к области электросвязи и предлагает способ передачи пакетов с динамической границей с целью передачи данных между системами либо приема/передачи данных, либо обработки данных.
Изобретение может быть использовано при построении либо локальных, территориальных или глобальных сетей подвижной и фиксированной связи, либо распределенных вычислительных сред.
2. Уровень техники
Общеизвестно [1, 2, 3], что одним из способов передачи информации является последовательная передача пакетов, каждый их которой состоит из конечного числа бит, определяемые как заголовок, тело и концевик. Заголовок пакета содержит сведения, определяющие адреса отправителя и получателя, служебные данные задающие, в том числе, длину пакета. Тело пакета содержит полезную нагрузку, собственно информацию. Концевик содержит контрольную сумму пакета. Контрольная сумма и длина пакета обеспечивают контроль соответствия между переданным и принятым пакетами, что определяют как целостность пакета.
Заголовок пакета передают в канал связи первым, так как сведения о длине пакета и контрольной сумме, служат основой для принятия решения на приемной стороне о правильности принятого пакета.
Известно [4], что пакеты имеют разную длину и требование к времени доставки. Для выполнения требований по времени доставки пакета используют методы приоритетной передачи пакета.
Известно [5], что приоритетная передача пакета реализуется по приоритету пакета.
Известно [6], что приоритетная передача пакета реализуется по уровню сервиса.
Известно [7], что приоритетная передача пакета реализуется по классу сервиса (CQ).
Известно [8], что приоритетная передача пакета реализуется методом справедливой очереди (WFQ).
Известно [9], что приоритетная передача пакета реализуется методом справедливой очереди, основанной на классе потока (CBWFQ).
Известно [10], что приоритетная передача пакета реализуется методом очереди с малой задержкой (LLQ).
Известно [4], что остановка передачи пакета с целью передачи другого пакета делает сведения о правильности приема пакета недостоверными. В результате при использовании режима с надежной доставкой организуют повторную передачу непринятого пакета, а в режиме с негарантированной доставкой пакет признают утерянным.
Аналогом является общеизвестный способ передачи информации посредством последовательной передачи пакетов. Недостаток способа передачи информации посредством пакетов состоит в отсутствии возможности корректной остановки передачи в канал связи пакета в произвольный момент с целью передачи другого пакета. Остановка передачи пакета ведет к его потере или появлению его копии, что увеличивает загрузку канала связи.
3. Сущность изобретения
Сущность изобретения заключается в том, что способ передачи блоков данных с динамической границей разбивает передаваемую информацию на блоки, каждый из которых состоит из заголовка и тела, и передает в канал связи тело блока первым, а заголовок блока вторым (фигура 1),
при этом между телом и заголовком блока данных существует разрыв,
под заголовком первого блока данных (фигура 3) принимают совокупность бит конечного размера, объединенных в поля, значение которых интерпретируют как поля: «управление», «размер файла», «адрес получателя», «адрес отправителя», «область поиска получателя», «область поиска отправителя», «скорость передачи», «протокол» и «проверочный код»,
под заголовком второго и последующих блоков данных (фигура 4) принимают совокупность бит конечного размера, объединенных в поля, значение которых интерпретируют как поля: «управление», «граница», «указатель» и «проверочный код»,
последовательную передачу блоков данных организуют следующим образом (фигура 2):
тело первого блока имеет нулевую длину,
передают в канал связи заголовок первого блока,
за ним в канал связи поступает тело второго блока без разрыва,
поступление в канал связи тела второго (текущего) блока останавливают в произвольном месте,
записывают число единиц переданных бит, начиная с нулевого значения, в поле «граница», вычисленное значение циклического избыточного контрольного кода в поле «проверочный код» в заголовок второго (текущего) блока,
заголовок второго (текущего) блока записывают в запоминающее устройство на заданное время,
через заданное время возобновляют поступление в канал связи заголовка предыдущего блока и тела текущего блока данных без разрыва,
последовательную передачу в канал связи блоков данных заканчивают, когда в поле «управление» появится код, однозначно указывающий на прекращение передачи блоков.
Заявляемый технический результат использует динамическую границу (фигура 5) как число, указывающее на текущий номер единицы передаваемых бит,
в заголовке первого блока данных передают поле «размер файла», указывающее на общее число единиц передаваемых бит, если общее число единиц передаваемых бит неизвестно, то устанавливают максимальное число, ограниченное размером поля «размер файла»,
при поступлении в тело блока данных единицы передаваемых бит значение поля «граница» увеличивают на единицу, начиная с нулевого значения,
под единицей переданных бит принимают число бит, поступивших в тело блока данных, принимающее одно из возможных значений 8, 32, 128, 512.
Способ передачи блоков данных с динамической границей обеспечивает возможность корректной остановки передачи за счет использования динамической границы с поддержанием целостности переданных данных посредством хранения значений полей «граница» и «проверочный код» в запоминающем устройстве заданное время.
Функциональная схема заявляемого технического результата (фигура №6) включает входной мультиплексор 30 с N+2 входами, блок контроллера 31, блок памяти 32, блок управления памятью 33, блок вычисления проверочного кода 34, при этом
входной мультиплексор 30 входами 2.1÷2.N линиями 35.1÷35.N соединен с внешними входными линиями связи, выходом 5 линией 41 соединен с входом 1 блока памяти 32 и входом 2 блока контроллера 31,
блок памяти 32 выходом 3 линией 42 соединен с входом 2 блока вычисления проверочного кода 34, с входом 3 блока управления памятью 33 и внешней выходной линией связи,
блок контроллера 31 выходом 1 линией 38 соединен с входом 4 входного мультиплексора 30, и выходом 3 линией 39 соединен с входом 4 блока управления памятью 33,
блок управления памятью 33 выходом 1 линией 40 соединен с входом 2 блока памяти 32, и выходом 2 линией 37 соединен с входом 3 входного мультиплексора 30,
блок вычисления проверочного кода 34 выходом 1 линией 36 соединен с входом 1 входного мультиплексора 30.
4. Перечень фигур
Фиг.1. Структура блока данных.
Фиг.2. Последовательность передачи блоков данных.
Фиг.3. Формат заголовка первого блока данных.
Фиг.4. Формат второго и последующих заголовков блока данных.
Фиг.5. Способ формирования динамической границы.
Фиг.6. Структурная схема мультиплексора для передачи блоков данных с динамической границей.
5. Сведения, подтверждающие возможность осуществления изобретения
Способ передачи блока данных с динамической границей реализуют посредством блока входного мультиплексора 30, блока контроллера 31, блока памяти 32, блока управления памятью 33 и блока вычисления проверочного кода 34.
Блоки 30, 31, 33, 34 реализуют на базе программируемой пользователем логической схемы типа (field-programmable gate array - FPGA) фирм Altera, Lattice, Xilinx.
Блок 32 реализуют на базе оперативного запоминающего устройства с произвольной выборкой (RAM) для временного хранения блока данных.
Блок контроллера 31 подает сигнал «выбор входа» с выхода 1 по линии 38 на вход 4 блока 30, принимает по линии 41 на вход 2 входного блока и подает сигнал «начальный адрес» с выхода 3 по линии 39 на вход 4 блока управления памятью 33,
блок входного мультиплексора 30 в зависимости от сигнала на входе 4 подключает один из сигналов, поступающих по линиям 35.1÷35.N на входы 2.1÷2.N, по линии 36 на вход 1 и по линии 37 на вход 3, к выходу 5,
блок управления памятью 33 передает адрес на выходе 1 по линии 40 на вход 2 блока памяти 32, изменяет адрес либо для записи блока данных в блок памяти 32, либо для чтения блока данных из блока памяти 32, подсчитывает на линии 42 вход 3 число единиц переданных бит и передает число единиц переданных бит на выход 2 по линии 37 на вход 3 блока входного мультиплексора 30, с целью записи значения переданных единиц бит в поле «граница» заголовка текущего блока,
32
26
23
22
16
12
11
10
8
7
5
4
2
блок вычисления проверочного кода 34 принимает на вход 1 по линии 42 блок информации и вычисляет [11,12] циклический избыточный контрольный код () по полиному (G(x)=x+x+x+x+x+x+x+x+x+x+x+x+x+x+1) и передает вычисленное значение на выход 1 по линии 36 на вход 1 блока входного мультиплексора 30, с целью записи значения CRC-32 в поле «проверочный код» заголовка текущего блока,
если блок контроллера 31 примет по линии 41 на вход 2 входной блок с кодом закончить, то удаляет сигнал «начальный адрес» с выхода 3 по линии 39 на вход 4 блока управления памятью 33.
При этом входной мультиплексор 30 входами 2.1÷2.N линиями 35.1÷35.N соединен с внешними входными линиями связи, выходом 5 линией 41 соединен с входом 1 блока памяти 32 и входом 2 блока контроллера 31,
блок памяти 32 выходом 3 линией 42 соединен с входом 2 блока вычисления проверочного кода 34, с входом 3 блока управления памятью 33 и внешней выходной линией связи,
блок контроллера 31 выходом 1 линией 38 соединен с входом 4 входного мультиплексора 30 и выходом 3 линией 39 соединен с входом 4 блока управления памятью 33,
блок управления памятью 33 выходом 1 линией 40 соединен с входом 2 блока памяти 32 и выходом 2 линией 37 соединен с входом 3 входного мультиплексора 30,
блок вычисления проверочного кода 34 выходом 1 линией 36 соединен с входом 1 входного мультиплексора 30.
Источники информации
1. RFC-22, Host-Host Control Message Formats, Vint Cerf, October 17, 1969, http://www.rfc-editor.org/rfc/rfc22.txt.
2. RFC-791 INTERNET PROTOCOL, J. Postel, September 1981, http://www.rfc-editor.org/rfc/rfc791.txt.
3. В.Олифер, Н.Олифер, Основы сетей передачи данных. Курс лекций, ISBN: 5-9556-0035-3, 2005.
4. Хант К, TCP/IP. Сетевое администрирование, 3-е издание, ISBN: 5-93286-056-1, 2004.
5. Патент US 7230918, от 12 июля 2007 г.
6. Патент WO 00/30307, от 25 мая 2000 г.
7. Патент СА 2243405, от 24 января 2000 г.
8. Патент WO 03084283, от 9 октября 2003 г.
9. Патент GB 2443229, от 14 октября 2009 г.
10. Патент WO 2006011909, от 2 февраля 2006 г.
11. rfc1071, Computing the Internet Checksum, R. Braden, D. Borman, C. Partridge, September 1988 http://www.rfc-editor.org/rfc/rfc1071.txt.
12. ITU-T Recommendation V.42 (03/2002) Error-correcting procedures for DCEs using asynchronous-to-synchronous conversion. http://www.itu.int/rec/T-REC-V.42-200203-l/en.