Способ сжатия заголовков TCP/IP-пакетов был предложен
Van-Jacobson в RFC 1144 и 1332.
Суть его состоит в следующем.
В каждом TCP/IP-пакете IP и TCP-заголовки составляют
в сумме 40 байт, и половина из них в пределах одного TCP/IP-соединения
меняется достаточно редко.
При низкоскоростном соединении число одновременных TCP/IP-соединений
не велико и обычно не превышает двух десятков.
Поэтому для каждого TCP/IP-соединения можно выделить слот,
который будет содержать всю информацию о состоянии соединения.
Это позволяет заменить 20 неизменных байт одним байтом, равным
номеру слота.
При использовании такой схемы ещё 2 поля по 2 байта каждое
становятся избыточными и их можно убрать без потери функциональности.
Оставшиеся поля обычно меняются незначительно и
для кодирования их изменения требуется меньше байт,
чем для кодирования значений этих полей.
Кроме того, эти поля обычно меняются не одновременно.
Все это в результате позволяет уменьшить размеры
заголовка более половины пакетов до размеров от 3 до 16 байт.
Единственное поле, передаваемое всегда в неизменном виде, -
это 2 байта контрольной суммы, находящейся в заголовке TCP.
pppd поддерживает до 16 слотов и до недавних пор
этого было вполне достаточно, но сейчас скорости модемных соединений
существенно выросли и этого уже не хватает.
Например, у меня при соединении по протоколу v.90 и скоростью соединения
49333/28800 существует, как правило, около десяти соединений, а в пике
их число достигает двадцати.
| |