почему в заголовках TCP и IP есть отдельная контрольная сумма? - PullRequest
16 голосов
/ 29 января 2011

Зачем нужна контрольная сумма на разных слоях?Например, существует контрольная сумма на уровне TCP и снова на уровне IP, а также на уровне Ethernet.Разве не достаточно иметь контрольную сумму на одном слое?

Ответы [ 3 ]

16 голосов
/ 29 января 2011

Необходимы все три уровня по нескольким причинам:

  • IP не всегда работает по Ethernet (представьте, что IP через последовательный порт RS-232, что может сделать каждый Cisco и Unix)

  • IP не проверяет контрольную сумму данных

  • TCP-пакеты могут быть неправильно собраны из IP-пакетов и фрагментов, каждый из которых имеет идеальные контрольные суммы

  • Даже при правильной сборке в слоях между IP и TCP могут появиться программные или другие ошибки

  • Даже если все программное обеспечение работает правильно и TCP / IPиз-за превышения Ethernet, ограниченный размер контрольных сумм может быть случайно правильным (и будет в какой-то момент при наличии достаточного количества пакетов) перед лицом постоянных ошибок, поэтому полезно иметь более одной контрольной суммы.

  • Каждый раз, когда вводится новый заголовок, появляется дополнительная контрольная сумма, и новый слой не может видеть биты заголовка слоя ниже.

8 голосов
/ 13 июня 2013

Контрольная сумма Ethernet представляет собой контрольную сумму прыжка - это означает, что она пересчитывается каждый раз при изменении полей заголовка Ethernet. Контрольная сумма TCP / UDP - это сквозная контрольная сумма, означающая, что она вычисляется отправителем и проверяется получателем. Контрольные суммы TCP / UDP охватывают весь сегмент. Контрольная сумма IP охватывает только заголовок. Ethernet CRC охватывает весь кадр.

1 голос
/ 30 апреля 2015

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...