Изменения

Перейти к: навигация, поиск

Участник:Shersh/Билеты к экзамену по сетям

4624 байта добавлено, 00:44, 2 апреля 2015
5. Модель OSI. Канальный уровень (протоколы).
=== 4. Модель OSI. Канальный уровень (сервисы, подуровни). ===
=== 5. Модель OSI. Канальный уровень (протоколы). ===
Удобнее всего будет привести протоколы в виде псевдокода (хотя это валидный сишный код, кажется). От самого простого к более сложным.
 
TODO: хорошо бы эти картиночки заменить на код, но мне пока как-то не хочется этим заниматься.
 
==== Общие объявления ====
TODO[[Файл: Networks Link Layer Protocols Definitions.png]] [[Файл: Networks 1.5 Definitions.png]]
==== Неограниченный симлексный протокол ====
TODOДанные передаются в одном направлении. Время обработки равно нулю, буфер бесконечен, канал идеальный.[[Файл: Networks 1.5 Protocol1.png]]
==== Симлексный протокол с ожиданием ====
TODOВсё то же самое, только теперь считаем, что получатель обрабатывает данные не моментально, поэтому посылающий будет ждать подтверждение, а принимающий будет его посылать, когда будет готов.[[Файл: Networks 1.5 Protocol2.png]]
==== Симплексный протокол для замушлённых каналов ====
TODOТеперь перестаём верить в идеальный канал, кадры могут теряться и искажаться (в том числе служебные). Введём порядковые номера для сообщений и будем посылать их в подтверждениях. Если нам пришло подтверждение с тем же номером, что и у отправленного кадра, то всё ок. В псевдокоде для простоты порядковый номер — 0 или 1. Также будем запускать таймер, чтобы понимать, что сообщение потерялось.[[Файл: Networks 1.5 Protocol3.1.png]] [[Файл: Networks 1.5 Protocol3.2.png]]
==== Протоколы скользящего окна ====
TODOДуплексный протокол. Каждая сторона хранит «окно», то есть диапазон порядковых номеров, соответствующих кадрам, которые мы можем посылать и на которые можем получить подтверждения. При получении кадра на отправку увеличиваем верхнюю границу окна, при получении подтверждения увеличиваем нижнюю. Таким образом, в окне находятся те кадры, которые были посланы, но ещё не подтверждены. Размер окна (максимальный) как-то заранее фиксируется. В псевдокоде он равен единице. Также по-прежнему будем гонять таймер.[[Файл: Networks 1.5 Protocol4.1.png]] [[Файл: Networks 1.5 Protocol4.2.png]]
==== Протоколы с возвратом на N ====
Предыдущие протоколоы плохи тем, что если у нас есть большая пропускная способность, небольшие кадры и большое время прохождения сигнала, то пропускная способность будет использоваться очень слабо, так как большую часть времени мы будем ждать подтверждение, прежде чем посылать очередной кадр. Поэтому будем посылать сразу много кадров не дожидаясь доставки/потери предыдущего.
 
Возврат на n подразумевает, что если бы повреждён какой-то кадр (не пришло подтверждение/не сошлась checksum), то все кадры с большими номерами игнорируются, подтверждения на них не посылаются. Отправитель должен будет перепослать испорчённый кадр и все за ним.
 
Альтернативный вариант (выборочный повтор) — буферизовать все кадры после ошибочного. В таком случае отправитель перепошлёт только испорченные кадры. Можно послать отрицательное подтверждение (NAK) для испорченного кадра, в этом случае отправитель сразу же перепошлёт повреждённый кадр.
 
TODO
170
правок

Навигация