The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Улучшения сетевого стека FreeBSD 5

05.09.2004 16:58

Краткий перевод PDF документа "FreeBSD 5 Network Enhancements", в котором детально рассматриваются новшества и изменения в сетевой подсистеме FreeBSD 5 относительно FreeBSD 4.

Ниже, сжатый перевод:

Таблица маршрутизации

  • Удален PRCLONING.
  • Удален указатель на маршрут из INPCB. Теперь нет необходимости периодически сканировать все INPCB (блокируя их при этом) для удаления указателя после удаления маршрута.
  • RTENTRY выделяются с помощью UMA что позволило объем занимаемый в памяти одним маршрутом с 256 до 130 байт.

Работа с интерфейсам

  • Уведомление о состоянии через 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

Работа IPv4

  • 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

Фильтрация пакетов

  • PFIL_HOOKS постоянно включены и не требуют перекомпиляции ядра.
  • PF (из OpenBSD) и ALTQ (KAME) импортированы и полностью функциональны, за исключением CARP (скоро будет). Во FreeBSD 5 теперь три пакетных фильтра IPFW, PF и IPFILTER.
  • IPFW был изменен для использования PFIL_HOOKS как и другие два. Добавлен ряд новых функций в IPFW.

Работа TCP

  • 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 соединения.

Новые сетевые стеки

  • Поддержка Bluetooth на основе Netgraph
  • Поддержка ATM на основе Netgraph

Дополнительная ссылка: Сайт конференции http://www.suug.ch/sucon/04/

  1. Главная ссылка к новости (http://people.freebsd.org/~and...)
Автор новости: Антон Южанинов
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/4320-freebsd
Ключевые слова: freebsd, network, socket, kernel, tcp
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (14) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, robin zlobin (?), 17:50, 05/09/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    pf на bridge все равно пока нет... а я так хотел бы перевести свой obsd-мост обратно на фрю..
     
  • 1.2, Банзай (??), 20:12, 05/09/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Пора собирать подписи под петицией к Free и Open о кросс лицензировании?

     
  • 1.3, Finch (??), 23:42, 05/09/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А лучше усилия разработчиков фри и опена объединить, и получить 1 ось. Сам использую где то опен, где то фрю,в опене многое хотелось бы из фри, а во фрю хотелось бы что то из опена.
    Но думаю, скоро буду избавляться от опена на фрю.... :( Благо для этого скоро будут все условия :)
     
     
  • 2.8, Danil (??), 12:45, 06/09/2004 [^] [^^] [^^^] [ответить]  
  • +/
    Хочу спросить robin zlobin и Finch: почему вы бы хотели перейти обратно с OpenBSD на FreeBSD? Дело в том, что я некоторое время работаю с FreeBSD и начал также смотреть в сторону OpenBSD: думаю, может быть, и её попробовать на production-сервере?
    Какие у неё по-вашему есть явные недостатки по сравнению с FreeBSD? И достоинства? ;-)
     
     
  • 3.9, andrew (??), 16:54, 06/09/2004 [^] [^^] [^^^] [ответить]  
  • +/
    Самый перывый недостаток -- она медленее. Так что если нагрузка велика, а вычеслительные мощности ограничены, то лучше -- FreeBSD. Для router'а лучше всего, конечно, OpenBSD -- лоно PF. Сейчас она у меня там и стоит. Но хотелось бы иметь не одну операционку, а две (на рабочей станции тоже FreeBSD)... Тогда поддержка всего узла сильно упростится. Поэтому я так жду FreeBSD 5.3! Как только выдет -- в тот же день заменю платформу рутера.
     
  • 3.13, robin zlobin (?), 20:05, 07/09/2004 [^] [^^] [^^^] [ответить]  
  • +/
    1. OpenBSD таки да тормоз. В 3.5-current вроде как нашли мегабаг на эту нему и исправили, посмотрим, что будет в 3.6
    2. Удобнее и привычнее держать ферму одинаковых ОС, чем разномастные операционки
    3. Ко FreeBSD привык, люблю ее больше.
    as the result, 4. Не вижу у OpenBSD преимуществ перед FreeBSD 5. Ну кроме pf bridge, естественно.
     

  • 1.4, Аноним (4), 01:52, 06/09/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Очень хочется поддержку FORWARD в IPFW2 под бриджем, чтоб сквиду траффик скармливать.
    И еще хочется иметь возможность присваивать адрес самому бриджу, а не одному из интерфейсов.
     
  • 1.5, dawnshade (?), 10:21, 06/09/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А RANDOM_IP_ID еще в 4-ке был..
    Как это они его сделали заново в 5-ке???
     
     
  • 2.6, Аноним (4), 11:14, 06/09/2004 [^] [^^] [^^^] [ответить]  
  • +/
    они просто перенесли random_ip_id в sysctl - до этого только через конфиг ядра.
     
     
  • 3.7, dawnshade (?), 11:15, 06/09/2004 [^] [^^] [^^^] [ответить]  
  • +/
    >они просто перенесли random_ip_id в sysctl - до этого только через конфиг
    >ядра.


    А. То вроде помню в каких-то 5-ках это еще в ядре было.

     

  • 1.10, Андрей (??), 09:26, 07/09/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А где вы там про миллион пакетов нашли, я увидел только про 1.2 миллиона правил, покажите, где про это писано?
     
     
  • 2.11, Nickolay (??), 12:33, 07/09/2004 [^] [^^] [^^^] [ответить]  
  • +/
    и еще вопрос в догонку: разве количество обрабатываемых пакетов в единицу времени не зависит от процессора?
     
  • 2.12, Algol (?), 14:36, 07/09/2004 [^] [^^] [^^^] [ответить]  
  • +/
    Страница 11 пдф-ки
     

  • 1.14, Игорь (??), 04:08, 08/09/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну не знаю, не знаю, у меня 5.1(без обновления src'ов) уже месяц работает с options RANDOM_IP_ID =))
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру