Begin
D:= 1
IF D = 1 THEN GO TO P1 ELSE IF D = 2 THEN GO TO P2 ELSE
IF D= 3 THEN GO TO P3 ELSE IF D = 4 THEN GO TO P4 ELSE
IF D = 5 THEN GO TO P5 ELSE IF D = 6 THEN GO TO P6 ELSE IF D =7 THEN GO TO P7 ELSE
END
Программы:
P1 – формирование очереди из N1 свободных блоков;
P2 – формирование N3 пакетов “Запрос Bызова” (ЗВ), находящихся в очереди принятых пакетов с канального процессора КПР=5;
P3 – формирование очереди свободных номеров Освн из очереди свободных блоков Освоб. и запись в них значений для использования в качестве логического канального номера LCN;
P4 – перенос пакет ЗВ из очереди массивов принятых пакетов (с канального процессора КПР=5) ОЗВпм (5) в очередь пакетов на передачу в канальный процессор 4 – Опд (4);
P5 – формирование строки таблицы маршрутизации в Центре Коммутации Пакетов (ЦКП);
P6 – формирование одного пакета “Вызов Принят” (ВП), находящегося в очереди принятых пакетов с канального процессора КПР=4;
P7 – перенос пакета ВП из очереди массивов принятых пакетов (с канального процессора КПР=4) ОВПпм (4) в очередь пакетов на передачу в канальный процессор 5 – Опд (5).
7.1. Программа P1
а) Выделение памяти под N1 свободных блоков (для всех вариантов и контрольного примера N1=50). Каждый свободный блок занимает 34 байта:
- 2 байта под адрес предыдущего блока в списке блоков (первое адресное поле связки очереди);
- 2 байта под адрес следующего блока в списке блоков (второе адресное поле связки очереди);
- 30 байт под пакеты установления и сброса соединения (Запрос Вызова, Вызов Принят и др.);
Очистить память, занятую свободными блоками.
б) Установление адресов связки в N1 свободных блоках:
- выделить память под характеристику очереди свободных блоков Нсвоб с начальным адресом АНсвоб. Установить поля характеристики Нсвоб (рис.2).
АНсвоб
А(1) | А(N1) | N1 |
Рис. 2. Характеристика Нсвоб
Здесь:
А(1) – адрес начала массива первого свободного блока в очереди Освоб;
А(N1) – адрес начала массива последнего свободного блока в очереди Освоб.
Под массивом блока будем понимать блок (пакет, кадр, ячейка и др.) с адресными полями связки очереди.
Установить адресные поля связки первого (рис. 3, а) и N1 – го (рис. 3, б) свободного блока в очереди Освоб.
А(1)
А(N1) |
а)
А(N1)
А(N1) -1 |
б)
Рис. 3. Формат массивов первого (а) и последнего (б) свободного блока в очереди Освоб
Установить адреса связки массивов всех свободных блоков, кроме первого и последнего.
FOR i=2, 3 …. (N1-1) DO
Запись в первое адресное поле массива i-го блока адрес начала массива i-1 блока списка очереди;
Запись во второе адресное поле массива i-го блока адрес начала массива i+1 блока списка очереди.
i=i+1
END
D:=D+1
GO TO DISP7
7.2. Программа P2
Запишем в центральный процессор N3 пакетов “Запрос Bызова” ”, поступивших с канального процессора j=5 (т.е. КПР=5), в первые массивы очереди свободных блоков Освоб. В контрольном примере N3=3.
На рис. 4 показано формат полей массива пакета с начальным адресом A(i) “Запрос Bызова” (ЗВ), размещенного в Освоб.
Число байт | |||
Начальный адрес A(i) | Первое адресное поле | Второе адресное поле | “Запрос Bызова” – логический канальный номер LCN 12 бит (биты <1- 8> 1 байта и биты <5-8> 2 байта), идентификатор пакета – 4 бита 1011 (биты <1- 4> 2 байта), адрес вызываемого – 14 (1+3+10) байт, адрес вызывающего – 14 (1+3+10) байт |
Рис. 4. Формат полей пакета “Запрос Bызова” в массиве свободного блока очереди Освоб
Примечание: биты <5-8> 2 байта LCN являются младшими.
Установим значение полей этих пакетов “Запрос Bызова”.
Значения LCN этих пакетов запишем в виде следующего одномерного массива - LCN (i) = 179, 195, 201. Здесь i- номер пакета ЗВ.
FOR i= 1,2…..N3 DO
Записать в поле пакета “ЗВ” с начальным адресом массива A(i): биты <1-8> 1 байта и биты <5-8> 2 байта:= LCN(i), биты <1- 4> 2 байта:=1011; в каждые 14 байт с начиная с третьего записать значение i+1 (адрес вызываемого абонента), в каждые 14 байт с начиная с 17-го записать значение i+2 (адрес вызывающего абонента)
END
В результате в N3 пакетах “ Запрос Bызова ”, находящиеся в Освоб с начальными адресами массивов A(1), A(2), A(3), записаны соответственно следующие логические канальные номера LCN=179, 195 и 201.
Перенести массивы этих N3 пакетов из Освоб в очередь массивов принятых пакетов ОЗВпм (5) с канального процессора j=5, т.е. КПР=5.
Откорректировать очередь свободных блоков Освоб, создать ОЗВпм (5) и характеристики Нсвоб, НЗВпм (5). На рис. 5 приведена характеристика этой очереди Нсвоб. Корректировка и создание очередей здесь не показана.
АНсвоб.
А(N3+1) | А(N1) | N1- N3 |
Рис.5. Характеристика Нсвоб.
На рис. 6 приведена характеристика очереди НЗВпм (5).
АНЗВпм (5)
А(1) | А(N3) | N3 |
Рис.6. Характеристика НЗВпм (5)
D:=D+1
GO TO DISP7
7.3. Программа P3
Создать очередь свободных номеров Освн из очереди свободных блоков Освоб. Принять число свободных номеров для всех вариантов и контрольного примера Y=20. . Корректировка и создание очередей здесь не показана.
Установить характеристику Нсвн очереди свободных номеров Освн (рис. 7)
АНсвн
А(N3+1) | А(N3+20) |
Рис.7. Характеристика Нсвн
Откорректировать очередь массивов свободных блоков Освоб. На рис. 8 приведена характеристика этой очереди Нсвоб
АНсвоб
А(N3+20+1) | А(N1) | N1- N3 - 20 |
Рис.8. Характеристика Нсвоб
На рис. 9 приведен формат массива блока свободных номеров.
Байты | |||
Значение | Начальный адрес предыдущего блока | Начальный адрес следующего блока | Значение свободного номера для записи LCN |
Рис.9. Формат массива свободного номера
Установить значения одномерного массива свободных номеров для шести (для упрощения из 20) значений LCN1 (i) = 3201, 220, 4072, 3701, 475, 432.
Записать в шесть массивов блоков очереди свободных номеров Освн эти значения свободных логических канальных номеров LCN
FOR i= 1, 2…..6 DO
Записать в поле значения свободного номера массива свободных номеров (рис. 8) с начальным адресом А(N3+i):= LCN1(i)
END
Заменить значения логических канальных номеров LCN во всех N3 принятых пакетах ОЗВпм (5) с канального процессора КПР=5 на значения, взятые из очереди свободных номеров Освн.
FOR i= 1,2…..N3 DO
Записать в поле пакета “ЗВ” с начальным адресом массива A(i): биты <1-8> 1 байта и биты <5-8> 2 байта:= А(N3+i)
END
- откорректировать очередь Освн и характеристику Нсвн ..
Корректировка очереди здесь не показана. Массивы свободных номеров, начиная с А(N3+1) по А(N3+ N3) пересылаются в отдельную очередь занятых номеров, которая для упрощения здесь не показана. На рис. 10 показана характеристика Нсвн.
АНсвн
А(N3+ N3+1) | А(N3+20) | 20- N3 |
Рис. 10. Характеристика Нсвн
D:=D+1
GO TO DISP7
7.4. Программа P4
В настоящей работе ограничимся установлением одной строки таблицы маршрутизации по логическим канальным номерам (Примечание. В очереди ОЗВпм (5) стоят N3 пакета ЗВ).
Cчитаем, что адреса вызываемого и вызывающего пользователя были зашифрованы (канальное шифрование) для защиты о угрозы формирования нелегитимных сообщений и их передачи по полученному злоумышленником адресу конечного пункта (глава 2). Примем, что имитация шифрования была осуществлена добавлением к каждому байту адреса по единице. В очереди массивов принятых пакетов ОЗВпм (5) с канального процессора КПР=5 стоят зашифрованные адреса: адрес вызываемого 14 байт - в каждом байте “10”, адрес вызывающего 14 байт - в каждом байте “11”. Производим дешифрование адресной части, т.е. вычитаем единицу в каждом байте. С помощью таблицы маршрутизации по физическим адресам на основании расшифрованных адресов вызываемого и вызывающего пользователя (каждый длиной 14 байт) находим номер канального процессора, на который должен быть скоммутирован первый принятый пакет ЗВ. Этот пакет стоит первым в очереди массивов принятых пакетов ОЗВпм (5) с канального процессора КПР=5 с логическим канальный номером LCN – 3201 (программа Р3). В примере (раздела 9) номер канального процессора 4, на который должен быть скоммутирован этот пакет ЗВ. Программно здесь это не реализовано. В очередь пакетов на передачу в канальный процессор 4 – Опд (4) должен быть перенесен этот пакет ЗВ из очереди массивов принятых пакетов ОЗВпм (5). При этом необходимо для имитации канального шифрования снова зашифровать адреса вызываемого и вызывающего пользователя (шифрование в примере имитируется) добавлением к каждому байту адреса по единице.
На рис. 11 приведено содержание полей массива этого пакета ЗВ.
Число байт | |||
Начальный адрес A(1) | Первое адресное поле - 0 | Второе адресное поле - 0 | 101000000001 (логический канальный номер LCN- 3201), 1011 (идентификатор пакета ЗВ), адрес вызываемого 14 байт - в каждом байте “10”, адрес вызывающего 14 байт - в каждом байте “11”. |
Рис. 11. Массив пакета “Запрос Bызова” в очереди пакетов на передачу в канальный процессор 4 – Опд (4)
Установить характеристику очереди (рис.12) пакетов на передачу в канальный процессор 4 – Нпд (4). Поскольку в настоящем примере в этой очереди один пакет, то значения адресных полей массива пакета ЗВ в этой очереди равны нулю.
АНпд (4)
А(1) | А(1) |
Рис.12 Характеристика Нпд (4)
Откорректировать очередь массивов принятых пакетов ОЗВпм (5) с канального процессора КПР=5. Корректировка очереди здесь не показана.
На рис. 13 показана характеристика НЗВпм (5) .
АНЗВпм (5).
А(2) | А(N3) | N3-1 |
Рис. 13. Характеристика НЗВпм (5)
D:=D+1
GO TO DIS
7.5. Программа P5
В таблице 1 приведена строка маршрутизации по логическим канальным номерам LCN, полученная в результате работы программ P1- P4 по обработке пакета “Запрос Bызова” и в соответствии с алгоритмом, изложенным в главе 7.
В столбце 5 отмечается, что при формировании этой строки LCN в пакете на выходе ЦКП было установлено с использованием свободного номера из очереди Освн.
Таблица 1. Таблица маршрутизации ЦКП
Номер канального процессора пакета, входящего в ЦКП | Номер канального процессора пакета, исходящего из ЦКП | LCN входящего пакета в ЦКП | LCN исходящего пакета из ЦКП | Признак использования Освн при формировании строки таблицы маршрутизации (да/нет) |
да |
D:=D+1
GO TO DISP7
7.6. Программа P6
На рис. 14 показан формат полей принятого одного пакета “Вызов Принят” (ВП) из канального процессора КПР=4, размещенного в первом свободном блоке Освоб. Этот пакет является квитанцией на пакет ЗВ, который сформировал строку таблицы маршрутизации виртуального канала связи (табл. 1).
Число байт | |||
Начальный адрес A(i) | Первое адресное поле | Второе адресное поле | “Вызов Принят” – логический канальный номер LCN 12 бит (биты <1-8> 1 байта и биты <5-8> 2 байта), идентификатор пакета – 4 бита 1111 (биты <1-4> 2 байта), адрес вызываемого – 14 (1+3+10) байт, адрес вызывающего – 14 (1+3+10) байт |
Рис. 14. Формат размещения пакета “Вызов Принят” в свободном блоке Освоб с начальным адресом A(i)
Установим значение полей пакета “Вызов Принят” в первом массиве блоков очереди Освоб. Согласно рис. 7 начальный адрес такого массива А(N3+21). В первых 12 битах этого пакета в десятичном отображении LCN = 3201 в соответствии с табл. 1. Поля адресов вызывающего и вызываемого те же, что и в ранее обработанном пакете ЗВ.
Откорректировать очередь Освоб. Корректировка очереди здесь не показана.
. На рис. 15 приведена характеристика этой очереди Нсвоб
АНсвоб.
А(N3+22) | А(N1) | N1- N3 - 21 |
Рис. 15. Характеристика Нсвоб
В результате в первом свободном блоке по адресу A(N3+21) установлен пакет “Вызов Принят” (ВП). Перенести массив пакета ВП из очереди Освоб. в очередь массивов принятых пакетов ОВПпм (4) с канального процессора КПР=4. Откорректировать ОВПпм (4).. Корректировка очереди здесь не показана.
Установить характеристику очереди НВПпм (4) массивов принятых пакетов ОВПпм (4) с канального процессора КПР=4.
На рис. 16 приведена характеристика очереди НВПпм (4).
АНВПпм (4)
А(N3+21) | А(N3+21) |
Рис. 16. Характеристика НВПпм (4)
D:=D+1
GO TO DISP7
7.7. Программа P7
Перенести первый пакет ВП из очереди массивов принятых пакетов (с канального процессора КПР=4) ОВПпм (4), который находится по адресу А(N3+21) первого поля характеристики этой очереди (рис. 16) в очередь пакетов на передачу в канальный процессор 5 – Опд (5). Прежде, чем перенести этот пакет ЗВ на основании таблицы маршрутизации ЦКП (табл. 1) в нем необходимо заменить LCN=3201 на значение LCN=179 (10110011), т.е. записать в первые 12 бит пакета ВП (рис. 14). Установить характеристику очереди (рис. 17) пакетов на передачу в канальный процессор 5 – Нпд (5). Поскольку в настоящем примере в этой очереди один пакет, то значения адресных полей массива пакета ВП в этой очереди равны нулю.
АНпд (4)
А(N3+21) | А(N3+21) |
Рис. 17. Характеристика Нпд (5)
В результате обработки пакета ВП в таблицу маршрутизации ЦКП добавляется еще одна строка маршрутизации (табл. 2). В столбце 5 отмечается, что при формировании этой строки LCN в пакете на выходе ЦКП было установлено без использования свободного номера из очереди Освн.
Таблица 2. Таблица маршрутизации ЦКП
Номер канального процессора пакета, входящего в ЦКП | Номер канального процессора пакета, исходящего из ЦКП | LCN входящего пакета в ЦКП | LCN исходящего пакета из ЦКП | Признак использования Освн при формировании строки таблицы маршрутизации (да/нет) |
да | ||||
нет |
- откорректировать характеристику очереди НВПпм (4) массивов принятых пакетов ОВПпм (4) с канального процессора КПР=4 в результате снятия первого пакета ВП из очереди массивов принятых пакетов (с канального процессора КПР=4) ОВПпм (4).
D:=D+1
GO TO DISP7