EMZETT.
Войти

Commit (в сетях)

Коротко: Подтверждение того, что переданные данные действительно успешно дошли до получателя и были там окончательно приняты; не путать с коммитом в Git.

Подробнее: В протоколах передачи одной лишь отправки данных часто недостаточно, чтобы исключить потерю данных; только явное подтверждение («commit») получателя гарантирует, что данные пришли полными и неизменными, прежде чем отправитель, например, удалит их из буфера. Этот принцип повторяется во многих протоколах, например в составе двухфазных commit-процедур в распределённых системах или как шаг подтверждения в надёжных протоколах передачи.

Подробности

Основная проблема: неопределённость состояния сети

Отправитель сам никогда не знает наверняка, дошёл ли отправленный пакет: сеть может терять пакеты, дублировать их или доставлять в неверном порядке, и даже отсутствие ответа не доказывает, что исходное сообщение не дошло (возможно, потерялось лишь само подтверждение). «Commit» — явное встречное подтверждение получателя, разрешающее эту фундаментальную проблему неопределённости распределённых систем.

См. также: ACK, передача, TCP