№8
Записки джунаПодумал, что по пятницам буду делиться интересными ресурсами, которые я посмотрел/прочитал на неделе. Это не обязательно будет разработка. Возможно, будут книги/статьи/видео, которые помогли переосмыслить какие-то вещи в жизни. Но это позже. А сейчас ссылка на интервью, о котором я писал вчера.
Итак, сегодня мне удалось понять, как же канальный уровень обнаруживает и исправляет ошибки при передаче кадров. Если отправитель посылает данные получателю, а они не доходят, то на исправление таких ошибок существуют два метода, основанные на корректирующих кодах.
1. Коды с исправлением ошибок (Error-correcting codes).
Здесь необходима информация, которая должна присутствовать, чтобы принимающая сторона могла выявить: какие данные не дошли.
2. Коды с обнаружением ошибок (Error-detecting codes).
Здесь немного иначе. Информации должно быть ровно столько, чтобы получатель понял, что произошла ошибка и запросил повторную передачу.
Углубляться не стал. Пока что. Но принцип ясен.
Есть ещё одна важная вещица на канальном уровне - управление потоком (данных).
При передаче данных случаются ситуации, когда быстрый отправитель буквально "топит" медленного получателя информацией. Чтобы избежать таких ситуаций, применяются два похода:
1. Управление потоком с обратной связью (Feedback based flow control).
Собственно, здесь получатель просто периодически отправляет информацию о том, как у него идут дела с приёмом.
2. Управление потоком с ограничением (Rate based flow control).
Здесь чуть сложнее. В протокол уровня встраивают механизм, который ограничивает скорость передачи для отправителей. При этом подходе нет никакой обратной связи с получателем.
Пожалуй, на этом сегодня закончу пост, но не разбираться в компьютерных сетях. Времени еще много.