3

Зачем TCP нужна контрольная сумма, когда нижние уровни все равно проверяют целостность (например, Ethernet CRC)?

2 ответа2

12

Протокол TCP гарантирует точную доставку независимо от базовых механизмов. Нет гарантии, что каждый протокол, который он может запустить, будет выполнять какую-либо проверку целостности. SLIP, например, не обнаруживает ошибок.

1

Потому что это протокол, который коренится в начале 1970-х годов. Слоистая модель общения еще тогда не была здравым смыслом.

Лично я думаю об этом как о пережитке ранних лет разработки протокола.

Вот почему я считаю эту контрольную сумму чокнутой:

  1. он слишком слаб, чтобы обеспечить значимую защиту
  2. все равно больно рассчитывать (особенно на микроконтроллеры. Это пустая трата циклов)
  3. это не защищает от манипуляций (потому что это так легко исправить)
  4. многие реализации игнорируют его в любом случае

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .