Во многих протоколах канального уровня для повышения безопасности используются различные сочетания описанных методов. В протоколах Ethernet и 802.11 кадр часто начинается с четко определенного шаблона, называемого преамбулой (preamble). Этот шаблон может быть довольно длинным (для 802.11 обычно 72 бита), что упрощает адресату задачу приема пакета. Вслед за преамбулой в заголовке передается поле длины (счетчик битов). Он нужен для обнаружения конца кадра.
3.1.3. Обработка ошибок
Решив проблему маркировки начала и конца кадра, мы сталкиваемся с новой проблемой: как гарантировать доставку сетевому уровню принимающей машины всех кадров и при этом расположить их в правильном порядке. Предположим, что у адресата есть возможность понять, содержит полученный кадр правильную или ошибочную информацию (подробнее о кодах, позволяющих распознать и исправить ошибки передачи, мы поговорим чуть далее). В линиях, где подтверждение передачи не требуется, отправитель просто посылает кадры, не заботясь о том, дошли ли они до адресата. Но для ориентированного на соединение сервиса с подтверждениями этого недостаточно.
Обычно для гарантирования надежной доставки отправителю посылается информация о том, что происходит на другом конце линии. Протокол требует от получателя посылать обратно специальные управляющие кадры, содержащие позитивные или негативные сообщения о полученных кадрах. Получив позитивное сообщение, отправитель узнает, что посланный им кадр успешно получен на том конце линии. Негативное сообщение, напротив, означает, что с кадром что-то случилось и его нужно передать снова.
Кроме того, посланный кадр может из-за неисправности оборудования или какой-нибудь помехи (например, шума) пропасть полностью. В этом случае принимающая сторона его просто не получит и, соответственно, никак не прореагирует. Аналогично, если кадр подтверждения теряется, то отправитель также не знает, как ему действовать дальше. Очевидно, что протокол, в котором отправитель отсылает кадр, а затем начинает ожидать подтверждения (положительного или отрицательного ответа), зависнет навсегда, если кадр потеряется из-за, например, сбоя оборудования или коммуникационного канала.
Чтобы избежать зависаний сети в случае полной потери кадров, используются таймеры канального уровня. После посылки кадра включается таймер, отсчитывая интервал времени, достаточный для получения принимающим компьютером этого кадра, его обработки и посылки обратно подтверждения. В нормальной ситуации кадр правильно принимается, а подтверждение посылается назад и вручается отправителю, прежде чем истечет установленный интервал времени, и только после этого таймер отключается.
Однако если либо кадр, либо подтверждение теряется по пути, установленный интервал времени истечет, и отправитель получит сообщение о возможной проблеме. Самым простым решением для отправителя будет послать кадр еще раз. Однако при этом возникает опасность получения одного и того же кадра несколько раз на канальном уровне принимающего компьютера и повторной передачи его сетевому уровню. Чтобы этого не случилось, необходимо последовательно пронумеровать отсылаемые кадры, так чтобы получатель мог отличить повторно переданные кадры от оригиналов.
Вопрос управления таймерами и порядковыми номерами, гарантирующими, что каждый кадр доставлен сетевому уровню принимающего компьютера ровно один раз, не больше и не меньше, является очень важной частью задачи, решаемой канальным уровнем (и более высокими уровнями). Ниже в этой главе мы подробно изучим методы этого управления на серии постепенно усложняющихся примеров.
3.1.4. Управление потоком
Еще один важный аспект разработки канального уровня (а также более высоких уровней) связан с вопросом о том, что делать с отправителем, который постоянно желает передавать кадры быстрее, чем получатель способен их получать. Такая ситуация может возникнуть, если у передающей стороны оказывается более быстрый и мощный компьютер, чем у принимающей. Представьте, например, смартфон, запрашивающий веб-страницу с высокотехнологичного сервера. Мощнейшая машина развертывает
пожарный шланг, наводит его на бедный телефон и бомбардирует его данными до тех пор, пока тот не захлебнется. Даже при идеально работающей линии связи в определенный момент получатель просто не сможет продолжать обработку все прибывающих кадров и начнет их терять.
Читать дальше
Конец ознакомительного отрывка
Купить книгу