Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Технология Token Ring (ieee 802.5).

Поиск

Сети Token Ring используют разделяемую среду передачи данных, которая состоит из отрезков кабеля, соединяющих все станции сети в кольцо. Скорость работы сети может быть 4 и 16 Мбит в с. Технология обладает свойством отказоустойчивости. Для контроля сети одна из станций выполняет роль активного монитора, который выбирается во время инициализации кольца как станция с максимальным MAC адресом. Если активный монитор выходит из строя, то процедура инициализации повторяется и выбирается новый активный монитор. Чтобы сеть могла обнаружить отказ активного монитора, он каждые три секунды отправляет специальный кадр своего присутствия. Если этот кадр не появляется более 7 ми секунд, то остальные станции начинаю процедуру выбора активного монитора. Для обеспечения доступа станций к физической среде по кольцу циркулирует кадр специального формата и назначения — маркер. В сети tr любая станция всегда получает данные только от предыдущей в кольце станции — ближайший активный сосед выше по потоку. Передачу данных станция всегда осуществляет своему ближайшему соседу вниз по потоку. Получив маркер, станция анализирует его и при отсутствии у нее данных для передачи обеспечивает его продвижение к следующей станции. Станция, которая имеет данные для передачи, при получении маркера изымает его из кольца, что дает ей право доступа к физической среде. Станция выдает в кольцо кадр данных последовательно по битам. Переданные данные проходят по кольцу всегда в одном направлении от одной станции к другой. Кадр снабжен адресом источника и адресом назначения. Все станции ретранслируют кадр побитно. Если кадр распознан станцией назначения, то она копирует кадр в свой внутренний буфер и вставляет в кадр признак подтверждения приема. Станция, выдавшая кадр данных в кольцо, при обратном его получении с подтверждением приема изымает кадр из кольца и передает в сеть новый маркер. После истечения времени удержания маркера станция обязана прекратить передачу собственных данных, обычно при этом время удержания 10 мс, со скоростью 4 мбит в сек, можно передать 5000 байт 1 или более кадров. Существует процедура раннего освобождения маркера когда станция сразу после передачи последнего бита кадра не дожидаясь подтверждения о приеме кадра станцией назначения, передает маркер доступа другой станции. Для различных видов сообщений кадрам может назначаться приоритет, от 0 (низший) до 7(высший). Станция имеет захватить маркер если она имеет кадры для передачи того же или высшего приоритета чем приоритет маркера, иначе маркер передается следующей станции. За наличие единственного в сети маркера отвечает активный монитор, если активный монитор не получает долго время маркера, он порождает новый.

Существует три типа кадров. Кадр маркера состоит из трех полей длиной в 1 байт, сначала идет начальный ограничитель — уникальная последовательность символов манчестерского кода — jk0jk000. Затем управление доступом — с битами приоритета, маркера, монитора и резервных бит. Бит маркера указывает, что данный кадр является маркером, бит монитора устанавливается в 1 монитором и в ноль станциями, монитор тогда знает если маркер был обработан станциями при прохождении кольца. Поле конечного ограничителя — уникальная последовательность jk1jk1, а также бит ошибки и бит того, является ли кадр последним в серии кадров или промежуточным.

Кадр данных включает те же три поля и имеет еще несколько дополнительных полей: Начальный ограничитель, управление кадром, адрес назначения, адрес источника, данные, контрольная сумма, конечный ограничитель, статус кадра. Стандарт tr определяет шесть типов управляющих кадров MAC уровня. Для того, чтобы удостовериться, что адрес уникальный станция, когда впервые присоединяется к кольцу, посылает кадр — тест дублирования адреса. Активный монитор чтобы сообщить о своей работоспособности другим станциям периодически отправляет кадр — существует активный монитор. Резервный монитор отправляет кадр маркер заявки, когда подозревает отказ активного монитора. Станция отправляет кадр Сигнал в случае возникновения серьезных сетевых проблем — обрыв кабеля, обнаружения станции отправляющей кадры без получения маркера, выход станции из строя. Кадр очистка используется новым активным монитором для приведения кольца в исходное состояние и очистка от ранее посланных кадров. В данном стандарте используются тот же формат адресов, что и в ethernet.

Стандарт tr предусматривает построение сети связей с помощью концентраторов, MSAU (multistation access unit), допускается до 260 узлов сети. Концентратор может работать в режиме простого соединителя, так, чтобы станции при соединении образовывали кольцо и при отключении одного из узлов происходил обход порта данного узла через порт концентратора, также концентратор может быть и повторителем усиливающим сигналы. В общем случае tr имеет комбинированную звезднокольцевую конфигурацию. Конечные узлы подключаются к MSAU по топологии звезды, а сами концентраторы объединяются через специальные порты для образования магистрального физического кольца. Максимальная длина кольца 4000 м.

Технология FDDI — оптоволоконный интерфейс распределенных данных, во многом основана на технологии token ring. Позволяет достигать скорости передачи до 100 Мбит в сек. Сеть строится на основе двух оптоволоконных колец, которые образуют основной и резервный пути передачи данных между узлами сети. Максимальный диаметр кольца до 100 км, число машин 500, расстояние между узлами до 2 км. В нормальном режиме работы сети данные передаются через все узлы и все участки кабеля первичного кольца. В случае какого либо отказа, когда часть первичного кольца не может передавать данные, то первичное кольцо объединяется со вторичным образуя единое кольцо, при этом первичное кольцо замыкается на вторичное. При множественных отказах сеть распадается на несколько не связанных сетей. Время удержания маркера в fddi не является постоянной величиной. Механизм приоритетов отсутствует, вводится два класса трафика — синхронный и асинхронный. Синхронный обслуживается всегда, даже при перегрузки сети. Асинхронный может захватить маркер только если тот сделал обход кольца достаточно быстро. В остальном пересылка кадров на уровне mac такая же как и в tr. Станции fddi также используют механизм раннего освобождения маркера. Для передачи световых сигналов по оптическим волокнам реализовано кодирование 4b 5b в сочетании с потенциальным кодом и инверсией при единице.

Для ускорения передачи данных была разработана технология fast ethernet позволяющая достигать скорости передачи до 100 Мбит в сек, при этом данная технология наследовала практически все свойства технологии ethernet, оставив метод доступа с коллизиями. Все отличия в основном на физическом уровне, когда используются 4-е пары витой пары 3-й категории или две витые пары 5-й категории, либо два оптоволоконных кабеля. Время передачи минимального кадра уменьшено в 10 раз, диаметр сети сокращен до 200 м.

Технология 100VG-AnyLAN использует 4-е витых пары с скоростью передачи в каждой 25 мбит в сек, что в сумме дает 100 мбит в сек. Устранен механизм коллизий. Используется код 5b 6b. В сети используется арбитр доступа — концентратор, который решает проблему доступа к среде. Узлы и концентраторы могут выстраиваться в иерархию из трех уровней, где корнем выступает центральный концентратор. Каждый концентратор должен быть настроен либо на кадры token ring либо ethernet. Концентратор циклически проводит опрос портов. Станция желающая передать кадр посылает специальный низкочастотный сигнал запрашивая передачу кадра и указывая его приоритет — низкий или высокий. Например станция долго не имеющая доступ к сети, получает высокий приоритет, либо высокий приоритет могут иметь мультимедийные данные. Если сеть свободная концентратор разрешает передачу кадра. При этом анализируя адрес получателя сразу отправляет данные по назначению, анализ адресов и маршрутов производится на этапе подключения узлов к сети. Если не свободна то ставит запрос в очередь и обслуживает запрос в соответствии с приоритетами. Если к концентратору подключён другой концентратор, то сначала ожидается когда завершит опрос концентратор на более низком уровне. Решение об обслуживании запроса выполняется после опроса всех концентраторов и портов. Концентратор не может хранить кадры в своем буфере.

Gigabit ethernet допускает скорость передачи до 1000 мбит в секунду. Минимальный размер кадра увеличен до 512 байт. Сохраняются все принципы ethernet.

Задание на лабораторную работу.

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

Варианты заданий.

1) Топология шина. Технология Ethernet. Рассмотреть ситуации связанные с коллизиями, вывести на экран количество коллизий и количество переданных кадров, количество полученных кадров. Осуществить расчет минимального размера кадра исходя из диаметра сети и скорости передачи.

2) Топология шина. Технология Ethernet. Осуществить сравнение сети с наличием интеллектуального коммутатора (или моста) и сетью без разбиения на сегменты. Реализовать для этого работу интеллектуального коммутатора. Проверить ситуации связанные с появлением петель.

3) Топология кольцо. Технология Token Ring. Осуществить реализацию выбора системного монитора в случае его потери, для чего случайным образом или по выбору пользователя моделировать данную ситуацию. Осуществить моделирование ситуации потери маркера.

4) Топология кольцо. Технология FDDI. Реализовать выборы системного монитора в случае разрыва кольца, использование резервного кольца в случае разрыва или выхода из строя промежуточного элемента связи.

5) Иерархическая топология (арбитрный доступ). Звезда. Технология 100VGAnyLan. Реализовать работу арбитрного коммутатора, арбитрных коммутаторов соединенных между собой в виде иерархии.

 

 

Пример клиента и сервера, использующие UDP

 

UDP основывается на протоколе без установления соединений, то есть протокол, не гарантирующий доставку информации. UDP-пакеты могут приходить не в указанном порядке, дублироваться и приходить более одного раза, или даже не доходить до адресата вовсе. Из-за этих минимальных гарантий, UDP значительно уступает протоколу TCP. Отсутствие установки соединений означает отсутствие потоков или соединений между двумя хостами, так как вместо этого данные прибывают в датаграммах (Датаграммный сокет).

 

Адресное пространство UDP, область номеров UDP-портов (в терминологии ISO — TSAP) полностью отделены от TCP-портов.

Сервер

 

Код может создавать UDP-сервер на порту 7654 следующим образом:

 

int sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);

 

struct sockaddr_in sa;

int bound;

ssize_t recsize;

socklen_t *address_len=NULL;

 

sa.sin_addr.s_addr = htonl(INADDR_ANY);

sa.sin_port = htons(7654);

 

bound = bind(sock, (struct sockaddr*)&sa, sizeof(struct sockaddr));

 

if (bound < 0)

fprintf(stderr, "bind(): ошибка %s\n", strerror(errno));

 

//bind() связывает сокет с парой адрес/порт.

 

while(1)

{

printf("recv test....\n");

recsize = recvfrom(sock, (void*)Hz, 100, 0, (struct sockaddr*)&sa, address_len);

 

if (recsize < 0)

fprintf(stderr, "Ошибка %s\n", strerror(errno));

 

printf("recsize: %d\n ", recsize);

sleep(1);

printf("datagram: %s\n", Hz);

}

 

Такой бесконечный цикл получает все UDP-датаграммы, приходящие на порт 7654, при помощи recvfrom(). Функция использует параметры:

 

 

Клиент

 

Простейшая демонстрация отправки UDP-пакета, содержащего «Привет!» на адрес 127.0.0.1 порт 7654 выглядит примерно так:

 

#include <stdio.h>

#include <errno.h>

#include <string.h>

#include <sys/socket.h>

#include <sys/types.h>

#include <netinet/in.h>

#include <unistd.h> /* для вызова close() для сокета */

 

int main(void)

{

int sock;

struct sockaddr_in sa;

int bytes_sent;

const char* buffer = "Привет!";

int buffer_length;

 

buffer_length = strlen(buffer) + 1;

 

sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);

 

if (sock == -1)

{

printf("Ошибка создания сокета");

return 0;

}

 

sa.sin_family = PF_INET;

sa.sin_addr.s_addr = htonl(0x7F000001);

sa.sin_port = htons(7654);

 

bytes_sent =

sendto(

sock,

buffer,

strlen(buffer) + 1,

0,

(struct sockaddr*)&sa,

sizeof(struct sockaddr_in)

);

 

if (bytes_sent < 0)

printf("Ошибка отправки пакета: %s\n", strerror(errno));

 

close(sock);

return 0;

}

 



Поделиться:


Последнее изменение этой страницы: 2016-08-10; просмотров: 246; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.6.176 (0.009 с.)