Какова необходимость контроля ошибок на уровне канала передачи данных, когда транспортный уровень обеспечивает контроль ошибок? В чем разница между двумя элементами управления ошибками?Уровень канала передачи данных и транспортный уровень
ответ
Данные транспортного уровня могут быть разбиты на множество кадров/пакетов уровня передачи данных.
Возможно, что даже без каких-либо ошибок в линии передачи данных поток/пакет транспортного уровня может быть поврежден. Редактировать: Это потому, что путь, транспортный уровень, как правило, состоит из многих слоя канального хмель, например:
Host1 <----> switch1 <----> switch2 <----> Host2
, если пакет был потерян между switch1
и switch2
, то не было бы никаких ошибок, записанных на ссылке switch2
Host2
, но соответствующий поток транспортного уровня будет поврежден.
С другой стороны - после того, как возникла ошибка передачи данных, можно отказаться от перезапуска переноса транспортного уровня, не тратя ресурсы.
Предполагая, что контрольная сумма была правильной, этот результат означает, что данные были повреждены при транспортировке. Кроме того, повреждение произошло не на линиях передачи (где оно было уловлено CRC), а скорее должно произойти в одной из промежуточных систем (маршрутизаторы и мосты) или принимающие или принимающие хосты.
http://conferences.sigcomm.org/sigcomm/2000/conf/paper/sigcomm2000-9-1.pdf
Это действительно зависит от протоколов, а не на уровне, но при условии, вы имеете в виду TCP ...
обнаружения ошибок TCP минимальна и предназначен скорее как проверка целостности, чем какой-либо надежной ошибки обнаружение. Причина, по которой вы не видите этого, - практика, заключающаяся в том, что уровни данных для передачи данных, такие как Ethernet, PPP, FrameRelay и т. Д., Имеют гораздо более надежные алгоритмы обнаружения ошибок, и поэтому практически нет ошибок передачи для протокола TCP для обнаружить.
Если у вас был другой протокол транспортного уровня с надежным обнаружением ошибок, вы бы не нуждались в нем строго на более низких уровнях. Преимущество, в основном, связанное с производительностью и использованием ресурсов, - отбросить ошибки как можно меньше в стеке.
Обратите внимание, что ошибки могут ползать в выше транспортном уровне из-за таран глюков и т.д., так что если данные действительно, действительно важно, то вы должны включать в себя проверку ошибок прямо в приложении.
Это связано с тем, что уровень передачи данных связан исключительно с коррекцией ошибок на уровне бит. Он принимает пакет, на котором уже находится принимающий компьютер, и определяет, произошла ли ошибка при передаче и нет ли данных или нет данных. Тем не менее, необходимо иметь дополнительные элементы управления, чтобы убедиться, что система знает, что все пакеты прибывают. Это называется сквозным контролем ошибок и несет ответственность за транспортный уровень. Транспортному слою все равно, насколько полезны или плохи данные в полезной нагрузке. Это работа с данными. Транспорт заботится только о том, получает ли он каждый пакет, который он должен, и независимо от того, прибывают ли они в правильном порядке. Это транспортный уровень, который обнаруживает отсутствие пакетов или повреждение пакетов, которые произошли на конце передачи, прежде чем они достигли уровня канала передачи данных.
Для получения дополнительной информации, обратитесь к
В канале с шумом, где частота ошибок высока, как и беспроводных сетей, исправление ошибок осуществляется на канальном уровне.
В надежных сетях, где уровень ошибок низкий, например, LAN, исправление ошибок выполняется на транспортном уровне, поэтому стоимость повторной передачи сводится к минимуму.
Очень небольшое количество протоколов передачи данных выполняет коррекцию ошибок. Большинство делают обнаружение ошибок, и они отбрасывают любые кадры, которые имеют ошибки, но не исправляют ошибки. –
Можете ли вы рассказать о том, как это возможно? Если каждый пакет получил ошибку, как сообщение может содержать ошибки? – Shookie
@Shookie посмотрите отредактированный ответ на возможный сценарий, иллюстрирующий это – wroniasty
Спасибо! Но пример, который вы дали, связан с потерей пакета. Я думал, что вы подразумеваете, что все пакеты могут добраться до места назначения и все еще быть поврежденными (после прохождения уровня канала передачи данных). – Shookie