Краткий перевод PDF документа "FreeBSD 5 Network Enhancements (http://people.freebsd.org/~andre/FreeBSD-5.3-Networking.pdf)", в котором детально рассматриваются новшества и изменения в сетевой подсистеме FreeBSD 5 относительно FreeBSD 4.
Ниже, сжатый перевод:
<h3>Таблица маршрутизации</h3>
<ul>
- Удален PRCLONING.
- Удален указатель на маршрут из INPCB. Теперь нет необходимости периодически сканировать все INPCB (блокируя их при этом) для удаления указателя после удаления маршрута.
- RTENTRY выделяются с помощью UMA что позволило объем занимаемый в памяти одним маршрутом с 256 до 130 байт.
</ul>
<h3>Работа с интерфейсам</h3>
<ul>
- Уведомление о состоянии через RTSOCKET и KQUEUE. Пока реализовано уведомление об отключении/подключении кабеля для Ethernet интерфейсов.
- Переименования интерфейса (например ifconfig bge0 name office).
- Клонирование для создание виртуальных интерфейсов (например ifconfig gre0 create).
- Автоматические VLAN'ы. (упрощена настройка vlan интерфейсов, теперь достаточно просто ifconfig bge1.100 inet 192.168.1.1/24 для создания интерфейса в 100 vlan)
- Бинарная совместимость с NDIS (проект Evil). Теперь во FreeBSD можно использовать бинарные драйвера для Ethernet и WLAN карт написание согласно спецификации Windows XP NDIS 5.1
</ul>
<h3>Работа IPv4</h3>
<ul>
- IP FastForward. (идея похожа на Cisco CEF). По сравнению с обычным IP forwarding прирост скорости 40-60%. Была достигнута скорость 1Mpps (миллион пакетов в секунду).
- Генерация случайных IP ID. При обычной последовательной генерации IP ID возможно определить число хостов находящихся за NAT, использование случайных ID делает это невозможным.
- Обработка опций IP. Реакцией на пакеты содержащие IP опции (такие как record route) можно стало управлять переменной sysctl net.inet.ip.process_options
</ul>
<h3>Фильтрация пакетов</h3>
<ul>
- PFIL_HOOKS постоянно включены и не требуют перекомпиляции ядра.
- PF (из OpenBSD) и ALTQ (KAME) импортированы и полностью функциональны, за исключением CARP (скоро будет).
Во FreeBSD 5 теперь три пакетных фильтра IPFW, PF и IPFILTER.
- IPFW был изменен для использования PFIL_HOOKS как и другие два. Добавлен ряд новых функций в IPFW.
</ul>
<h3>Работа TCP</h3>
<ul>
- TCP Hostcache. Кэш в котором сохраняются характеристики удаленных хостов от предыдущих соединений, для предварительной настройки новых подключений к этому же хосту. Это позволяет увеличить скорость работы HTTP.
- Inflight Bandwidth-Delay Limiter. Ограничивает размер окна на основе времени прихода ACK позволяя избежать циклов потеря пакетов - уменьшение размеров окна. Это увеличивает скорость длительных соединений таких как FTP.
- Сжатие состояния TIME_WAIT2. Соединение в состоянии TIME_WAIT2, ожидающее таймаут 2MSL содержит минимум необходимой информации, что сокращает требуемый соединению объем памяти ядра на 80%.
- RFC3042 Limited Transmit. Ускоряет восстановление потерянных сегментов, за счет ускорения отправки данных при получении двойного ACK.
- RFC3390 - увеличенное начальное окно TCP.
- SACK, выборные TCP ACK.
- TCP_MD5 Реализовано только частично, о позволяет Zebra/Quagga подключаться к Cisco и Juniper используя подписанные TCP соединения.
</ul>
<h3>Новые сетевые стеки</h3>
<ul>
- Поддержка Bluetooth на основе Netgraph
- Поддержка ATM на основе Netgraph
</ul>
Дополнительная ссылка: Сайт конференции http://www.suug.ch/sucon/04/ (http://www.suug.ch/sucon/04/)
URL: http://people.freebsd.org/~andre/FreeBSD-5.3-Networking.pdf
Новость: http://www.opennet.dev/opennews/art.shtml?num=4320