Тема работы:
«Высокоскоростной радиомост»

Часть 2. Канальный уровень.



Выполнил:
Студент группы 218
Исаев М.О.

    1.5. Построение результирующих иерархических моделей терминала и выделенных узлов сети (в соответствии с концепцией OSI) с отражением путей доставки служебных, так и информационных сообщений.    
    
    Модель OSI описывает схему взаимодействия сетевых объектов, определяет перечень задач и правила передачи данных. Она включает в себя семь уровней: физический (Physical), канальный (Data-Link), сетевой (Network), транспортный (Transport), сеансовый (Session), представления данных (Presentation ) и прикладной (Application).    
    В проектируемой сети, основными уровнями с которыми мы будет работать это физический (L1), канальный (L2) уровни, и будет кратко осмотрен сетевой (L3) уровень. В этой статье подробно будет рассмотрена работа канального уровня и немного освещён сетевой, т.к. это необходимо для описания концепции работы сети. Физический уровень сети в соответствии с моделью OSI будет подробно освещен в пункте 1.5. другой работы.
    Иерархическая модель терминала сети представлена на рисунке 18.

Рисунок 18 - Иерархическая схема терминала сети

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

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

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

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

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

Рисунок 19 - Блок-схема алгоритма модели при передаче трафика

    Основные моменты реализуемые при передаче сообщений на канальном уровне следующие - загрузка данных с сетевого уровня, их объем может различаться в зависимости от типа передаваемого сообщения (в случае, изображенном на рисунке 19, передается сообщение трафика объемом 256 бит), далее рассчитывается CRC для последующей возможности определить ошибочное ли пришедшее сообщение или нет, после этого рассчитывается номер для текущего сообщения трафика в пределах кадра для возможности реализации механизма ARQ, как только все необходимые части сообщения канального уровня рассчитаны, оно собирается воедино, помимо поле номера сообщения и CRC добавляется поле, определяющее тип сообщения (в случае, если передаваемое сообщение несёт в себе пользовательскую информацию, то в этом поле ставится "10"), и в начало ставится поле, содержащее пять нулевых битов для индикации начала пакета, после того, как сообщение L2-уровня было собрано, оно помещается в специальный буфер на хранение (в пределах кадра в нём хранятся все передаваемые сообщения трафика и как только приходит отчёт об успешном приёме данных, он очищается), это так же делается для реализации механизма ARQ. Если передаваемое сообщение является служебным, то объем передаваемой информации уменьшается в зависимости от принадлежности к ЛКС, опускается расчёт и добавление поля номера сообщения, а так же добавление служебного сообщения в буфер.


Рисунок 20 - Блок-схема алгоритма модели при приёме трафика

    Рассмотрим блок-схему алгоритма приёма сообщения-трафика представленную на рисунке 20. Сначала с физического уровня поступает обработанное сообщение канального уровня, после происходит выделение полей сообщения (в данном случае это сообщение трафика), потом происходит проверка CRC, и если ошибок не выявлено то как результат будет выведено содержимое поля "Re_l3 Data". В случае, если проверка CRC выявила ошибку, то номер сообщения (поле Re_Nm) будет добавлен в список ошибочных сообщений, и будет выведено сообщение об ошибке. После принятия всего объема данных, в которых возникли ошибки, то будет выведено количество ошибочно принятых сообщений и их номера.
    Более подробно алгоритмы приёма/передачи рассмотрены в пункте 1.3.7 работы.
    
    2.2. Разработка программных модулей передачи и приема сообщений канального уровня.
    
    Ниже будут представлены фрагменты программ реализующие прием и передачу сообщения трафика на канальном уровне.

% Подготовка к передаче сообщения
% Перевод параметров, передаваемых в сообщении в двоичную систему счисления
L3_data = my_de2bi(st.L3_data,'left_msb',1)'; % данные с L3 уровня
Nm = my_de2bi(Nm,'left_msb',10); % номер сообщения

% Сборка части L2-сообщения: соединение информационного поля с полем
% со служебными полями TYPE, Nm, FL 
msg_Lev2 = [FL TYPE Nm L3_data ];
      
% Получение CRC кода
m=[msg_Lev2 zeros(1,st.y-1)]; % вставка нулей в поле CRC

% Поиск частного и остатка от деления информационной части
% на порождающий полином CRC кода 
[q r] = deconv(m,st.poly); 
r = mod(abs(r),2);
CRC = r(st.length_msg_Lev2 + 1:end);%расчет CRC
   
% Сборка сообщения
msg_Lev1 = [msg_Lev2 CRC TAIL];
trx = msg_Lev1;
    
    Таким образом будут рассчитаны и собраны вместе поля сообщения, несущего в себе пользовательскую информацию
Рисунок 21 - Сообщение трафика

% Подготовка к проверке CRC
[q r]=deconv(L2_msg_rcv,st.poly);

% Проверка остатка 
r = mod(abs(r),2);
if r == zeros(1,length(L2_msg_rcv))
     detect=0;% ошибок нет
else
     error = error + 1; 
     detect=1;% обнаружены ошибки
end;

% Выделение и преобразование информационного поля
L3_data = my_bi2de(L2_msg_rcv(18:228),'left_msb');

% Вывод информации на экран
R_message = [L3_data];    
    
    В ходе выполнения фрагмента кода, представленного выше, у сообщения будет проверена контрольная сумма, выделена и преобразована информационная часть.
    Для других типов сообщений алгоритм работы такой же.




    
Список используемой литературы: