Приложение E Конфигурируемые опции
В тексте встречаются характеристики TCP/IP,
которые нам пришлось описывать следующим
образом "это зависит от конфигурации".
Например, рассчитывается или нет контрольная
сумма UDP (глава 11, раздел "Контрольная
сумма UDP"), является IP адрес назначения с
одним и тем же идентификатором сети, но с
различными идентификаторами подсети, локальным
или нелокальным (глава 18, раздел "Максимальный
размер сегмента"), и будет ли
перенаправляться широковещательный запрос или
нет (глава 12, раздел "Примеры
широковещательных запросов"). И
действительно, множество характеристик в
реализациях TCP/IP могут быть модифицированы
системным администратором. В этом приложении
приводится список некоторых конфигурируемых
опций для различных реализаций TCP/IP, которые
использовались в тексте. Как Вы могли ожидать,
продукт каждого поставщика программного
обеспечения отличается от других. В этом
приложении дается представление о том, какие
типы параметров в различных реализациях могут
быть модифицированы. Небольшое количество опций,
которые принадлежат совсем уж конкретным
реализациям, такие как, например, метка низкой
воды для буфера памяти, не рассматриваются.
Эти переменные
описываются только для информационных целей. Их
имена, значения по умолчанию или интерпретации
могут изменяться от одного релиза к другому.
Обратитесь к документации, которая поставляется
с программным обеспечением, для того чтобы
составить для себя представление об этих
переменных.
Здесь не приводится описания процесса
установки опций, которая происходит каждый раз
при загрузке системы: инициализация каждого
сетевого интерфейса с использованием ifconfig
(установка IP адреса, маски подсети), ввод
статических маршрутов в таблицу маршрутизации и
так далее. Вместо этого в приложении
сфокусировано внимание на опциях конфигурации,
которые влияют на функционирование TCP/IP.
BSD/386 Version 1.0
Эта система является примером
"классической" BSD конфигурации, которая
используется, начиная с 4.2BSD. Так как вместе с
системой распространяются исходные тексты,
администратор может указать опции конфигурации,
после чего необходимо пересобрать ядро.
Существует два типа опций: константы, которые
определяются в конфигурационном файле ядра (см.
страницы помощи config(8)), и переменные,
которые инициализируются в различных файлах С
текста. Смелые и квалифицированные
администраторы могут изменить значение этих С
переменных в работающем ядре или в дисковом
имидже ядра с использованием отладчика, чтобы не
пересобирать ядро. Ниже приведены константы,
которые могут быть изменены в конфигурационном
файле ядра.
IPFORWARDING
- Значение этой константы устанавливается в
переменной ядра ipforwarding . Если равно 0
(по умолчанию), IP датаграммы не перенаправляются.
Если равно 1, перенаправление включено.
GATEWAY
- Если эта константа определена, IPFORWARDING
должна быть установлена в 1. Помимо того,
определение этой константы вызывает увеличение
определенных системных таблиц (ARP кэша и таблицы
маршрутизации).
SUBNETSARELOCAL
- Значение этой константы устанавливает
переменную ядра subnetsarelocal. Если равно 1
(по умолчанию), IP адрес назначения с тем же самым
идентификатором сети, как и у посылающего хоста,
но с другим идентификатором подсети, считается
локальным. Если равно 0, только IP адреса
назначения непосредственно подключенной
подсети считаются локальными. Кратко это описано
на рисунке Е.1.
Идентификатор
сети |
Идентификатор
подсети |
subnetsarelocal |
Комментарий
|
1 |
0 |
одинаковый |
одинаковый |
локальный |
локальный |
всегда локальный |
одинаковый |
разный |
локальный |
нелокальный |
зависит от
конфигурации |
разный |
|
нелокальный |
нелокальный |
всегда нелокальный |
Рисунок Е.1 Интерпретация
переменной ядра subnetsarelocal.
Это влияет на MSS, который
выбирается TCP. Когда происходит отправка на
локальный пункт назначения, TCP выбирает MSS,
основываясь на MTU исходящего интерфейса. Когда
происходит отправка на нелокальный пункт
назначения, TCP использует значение переменной
tcp_mssdflt как MSS.
IPSENDREDIRECTS
Значение этой константы инициализирует
переменную ядра ipsendredirects. Если равно 1
(по умолчанию), хост будет отправлять ICMP
перенаправления при перенаправлении IP
датаграмм. Если установлено в 0, ICMP
перенаправления не отправляются.
DIRECTED_BROADCAST
Если равно 1 (по умолчанию), полученные
датаграммы, адреса назначения которых это
широковещательные адреса подключенных
интерфейсов, перенаправляются как
широковещательные запросы канального уровня.
Если равно 0, эти датаграммы молча отбрасываются.
Следующие переменные также могут быть
модифицированы. Эти переменные рассеяны в
различных файлах в директории /usr/src/sys/netinet.
tcprexmtthresh
- Количество последовательно принятых
подтверждений, которое включает алгоритм
быстрой повторной передачи и быстрого
восстановления. По умолчанию равно 3.
tcp_ttl
- Это значение устанавливается по умолчанию в
поле TTL в TCP сегментах. Значение по
умолчанию 60.
tcp_mssdflt
- Значение MSS TCP по умолчанию для нелокальных
пунктов назначения. Значение по умолчанию 512.
tcp_keepidle
- Количество 500-миллисекундных тиков часов
перед отправкой пробы "оставайся в
живых". Значение по умолчанию 14400 (2 часа).
tcp_keepintvl
- Количество 500-миллисекундных тиков часов
между последовательными пробами "оставайся
в живых", когда не получен ответ. Значение по
умолчанию 150 (75 секунд).
tcp_sendspace
- Размер по умолчанию отправляющего
буфера TCP. Значение по умолчанию 4096.
tcp_recvspace
- Размер по умолчанию приемного
буфера TCP. Он оказывает влияние на предлагаемый
размер окна. Значение по умолчанию 4096.
udpcksum
- Если не равно 0, рассчитывается контрольная
сумма UDP для исходящих UDP датаграмм, и если
входящие UDP датаграммы содержат ненулевую
контрольную сумму, эти контрольные суммы
проверяются. Если равно 0, исходящие UDP датаграммы
не содержат контрольную сумму, и не
осуществляется проверка контрольных сумм для
входящих UDP датаграмм, даже если отправитель
рассчитал контрольную сумму. По умолчанию равно
1.
udp_ttl
- Значение по умолчанию для поля TTL в UDP
датаграммах. По умолчанию равно 30.
udp_sendspace
- Размер по умолчанию для отправляющего
буфера UDP. Определяет максимальный размер UDP
датаграммы, которая может быть отправлена. По
умолчанию 9216.
udp_recvspace
- Размер по умолчанию приемного
буфера UDP. По умолчанию равно 41600, что означает 40
датаграмм размером 1024 байта.
SunOS 4.1.3
Метод, используемый с SunOS 4.1.3, напоминает
тот, что мы видели в случае BSD/386. Так как
большинство кодов ядра не распространяются, все
установки С переменных содержатся в одном файле
С кода, который поставляется в системе. Из файла
конфигурации ядра администратора (см. страницы
помощи config(8)) можно определить следующие
переменные. После модификации конфигурационного
файла должно быть создано новое ядро, и система
должна быть перезагружена.
IPFORWARDING
- Значение этой константы инициализирует
переменную ядра ip_forwarding. Если равно -1,
IP датаграммы никогда не
перенаправляются. Более того, переменная не
может быть изменена. Если равно 0 (по умолчанию), IP
датаграммы не перенаправляются, однако значение
переменной изменяется в 1, если "поднято"
несколько интерфейсов. Если равно 1,
перенаправление всегда включено.
SUBNETSARELOCAL
- Эта константа инициализирует переменную
ядра ip_subnetsarelocal. Если равно 1 (по
умолчанию), IP адрес назначения с тем же самым
идентификатором сети, как и у отправляющего
хоста, однако с другим идентификатором подсети,
считается локальным. Если равно 0, только IP адреса
назначения, подключенные непосредственно к этой
подсети, считаются локальными. Подобный подход
кратко описан на рисунке Е.1. Когда
осуществляется отправка на локальные пункты
назначения, TCP выбирает MSS на основе MTU исходящего
интерфейса. Когда происходит отправка на
нелокальный пункт назначения, TCP использует для
этой цели переменную tcp_default_mss.
IPSENDREDIRECTS
- Значение этой константы инициализирует
переменную ядра ip_sendredirects. Если равно
1 (по умолчанию), хост будет отправлять ICMP
перенаправления при перенаправлении IP
датаграмм. Если равно 0, ICMP перенаправления не
отправляются.
DIRECTED_BROADCAST
- Значение этой константы инициализирует
переменную ядра ip_dirbroadcast . Если равно
1 (по умолчанию), принятые датаграммы, адрес
назначения которых это широковещательный адрес
непосредственно подключенного интерфейса, перенаправляются как
широковещательные запросы канального уровня.
Если равно 0, эти датаграммы молча отбрасываются.
Файл /usr/kvm/sys/netinet/in_proto.c
определяет следующие переменные, которые могут
быть изменены. Если переменные изменены, должно
быть собрано новое ядро и система перезагружена.
tcp_default_mss
- Значение по умолчанию MSS TCP для нелокальных
пунктов назначения. Значение по умолчанию 512.
tcp_sendspace
- Размер по умолчанию отправляющего
буфера TCP. Значение по умолчанию 4096.
tcp_recvspace
- Размер по умолчанию приемного
буфера TCP. Оказывает влияние на предлагаемый
размер окна. Значение по умолчанию 4096.
tcp_keeplen
- Проба "оставайся в живых" на хост 4.2BSD должна содержать один байт данных,
для того чтобы получить отклик. Установка
переменной в 1 осуществляет совместимость с
этими более старыми реализациями. Значение по
умолчанию 1.
tcp_ttl
- Значение по умолчанию для поля TTL TCP
сегментов. По умолчанию 60.
tcp_nodelack
- Если не равно 0, подтверждения не
задерживаются. Значение по умолчанию 0.
tcp_keepidle
- Количество 500-миллисекундных тиков часов
перед отправкой пробы "оставайся в живых".
Значение по умолчанию 14400 (2 часа).
tcp_keepintvl
- Количество 500-миллисекундных тиков часов
между последовательными пробами "оставайся в
живых", если не получен отклик. Значение по
умолчанию 150 (75 секунд).
udp_cksum
- Если не равно 0, UDP контрольные
суммы рассчитываются для исходящих UDP датаграмм,
а для входящих UDP датаграмм, содержащих ненулевую
контрольную сумму, контрольная сумма
проверяется. Если равно 0, исходящие UDP датаграммы
не содержат контрольную сумму, и не
осуществляется проверка контрольной суммы для
входящих UDP датаграмм, даже если отправитель
рассчитал контрольную сумму. По умолчанию 0.
udp_ttl
- Значение по умолчанию для поля TTL в UDP
датаграммах. По умолчанию 60.
udp_sendspace
- Размер по умолчанию для отправляющего
буфера UDP. Определяет максимальный размер UDP
датаграммы, которая может быть отправлена. По
умолчанию 9000.
udp_recvspace
- Размер по умолчанию приемного
буфера UDP. Значение по умолчанию 18000, что означает
две датаграммы размером 9000 байт.
System V Release 4
Конфигурация TCP/IP в SVR4 напоминают две
предыдущие системы, однако доступно значительно
меньше опций. В файле /etc/conf/pack.d/ip/space.c
определены две константы, которые могут быть
изменены, после чего ядро должно быть
перестроено, а система перезагружена.
IPFORWARDING
- Значение этой константы инициализирует
переменную ядра ipforwarding . Если равно 0
(по умолчанию), IP датаграммы не
перенаправляются. Если равно 1, перенаправление
всегда включено.
IPSENDREDIRECTS
- Значение этой константы инициализирует
переменную ядра ipsendredirects. Если равно 1
(по умолчанию), хост будет отправлять ICMP
перенаправления при перенаправлении IP
датаграмм. Если равно 0, ICMP перенаправления не
отправляются.
Большинство из переменных, которые мы
описали в двух предыдущих разделах, определены в
ядре, однако необходимо иметь patch (patch (англ.) -
заплата; исправления, поставляемые
производителями к программному обеспечению),
чтобы модифицировать их. В качестве примера
можно привести переменную tcp_keepidle со
значением 14400.
Solaris 2.2
Solaris 2.2 это типичная Unix система
нового поколения. Она предоставляет программу,
которая позволяет администратору изменить опции
конфигурации для системы TCP/IP. Это позволяет
осуществлять переконфигурацию без модификации
файлов с исходными текстами и перестройки ядра.
Конфигурационная программа называется ndd(1)
. Мы можем запустить программу, чтобы посмотреть,
какие параметры могут быть просмотрены или
модифицированы в UDP модуле:
solaris % ndd /dev/udp \?
udp_wroff_extra (read and write-чтение и запись)
udp_def_ttl (read and write-чтение и запись)
udp_first_anon_port (read and write-чтение и запись)
udp_trust_optlen (read and write-чтение и запись)
udp_do_checksum (read and write-чтение и запись)
udp_status (read only-только чтение)
Мы можем указать пять модулей: /dev/ip,
/dev/icmp, /dev/arp, /dev/udp
и /dev/tcp. Знак вопроса в качестве
аргумента (перед которым необходимо поставить
обратный слэш, чтобы предотвратить
интерпретацию вопросительного знака
интерпретатором команд) сообщает программе о
необходимости показать список всех параметров
для этого модуля. В качестве примера, который
запрашивает значение переменной, можно привести
следующее:
solaris % ndd /dev/tcp tcp_mss_def
536
Чтобы изменить значение переменной,
необходимо с привилегиями суперпользователя
ввести следующее:
solaris # ndd -set /dev/ip ip_forwarding 0
Эти переменные могут быть поделены на три
категории:
- Переменные конфигурации, которые могут быть
изменены системным администратором (например, ip_forwarding).
- Переменные статуса, которые могут быть
только просмотрены (например, ARP кэш). Обычно, эта
информация предоставляется в формате, пригодном
для чтения, командами ifconfig, netstat
и arp.
- Отладочные переменные, предназначенные для
исходного кода ядра. Включение некоторых из них
генерирует отладочный вывод ядра, что может
значительно снизить производительность.
Сейчас мы опишем эти параметры для каждого
модуля. Все параметры могут быть считаны и
записаны, если они не помечены "только для
чтения" (Read only). Эти параметры только для чтения
являются переменными статуса (см. выше, пункт 2).
Переменные, упомянутые в пункте 3, помечены как
"отладочные" (Debug). Все временные
характеристики приведены в миллисекундах, что
отличается от других систем, которые обычно
указывают время в некотором количестве
500-миллисекундных тиков часов.
/dev/ip
ip_cksum_choice
- (Отладочная) Осуществляет выбор между двумя
независимыми реализациями алгоритма расчета контрольной суммы IP.
ip_debug
- (Отладочная) Включает печать отладочного
вывода от ядра, если больше чем 0. Чем больше
значение, тем больше генерируется вывода. По
умолчанию 0.
ip_def_ttl
- Значение TTL по умолчанию для исходящих IP
датаграмм (если не указано на транспортном
уровне). По умолчанию 255.
ip_forward_directed_broadcasts
- Если равно 1 (по умолчанию), принятые
датаграммы, адрес назначения которых является
широковещательным адресом непосредственно
подключенного интерфейса, перенаправляются
как широковещательные запросы канального
уровня. Если равно 0, эти датаграммы молча
отбрасываются.
ip_forward_src_routed
- Если равно 1 (по умолчанию), принятые
датаграммы, содержащие опцию
маршрутизации от источника, перенаправляются.
Если равно 0, эти датаграммы отбрасываются.
ip_forwarding
- Указывает, будет ли система перенаправлять
входящие IP датаграммы: 0 означает нет
перенаправления, 1 обозначает перенаправляет
всегда и 2 (по умолчанию) означает, что
перенаправление осуществляется только в том
случае, если функционирует два или более
интерфейсов.
ip_icmp_return_data_bytes
- Количество байт данных после IP заголовка,
которые возвращаются в ICMP ошибке. По умолчанию 64.
ip_ignore_delete_time
- (Отладочная) Минимальное время жизни записи
в таблице маршрутизации IP (IRE). По умолчанию 30
секунд. (Этот параметр приводится в секундах, а не
в миллисекундах).
ip_ill_status
- (Только для чтения) Отображает статус для
структуры данных уровня, находящегося ниже IP.
Существует одна структура нижнего уровня для
каждого интерфейса.
ip_ipif_status
- (Только для чтения) Отображает статус каждой
структуры данных IP интерфейса (IP адрес, маска
подсети и так далее). Существует только одна
структура для каждого интерфейса.
ip_ire_cleanup_interval
- (Отладочная) Интервал, с которым
просматриваются записи в таблице маршрутизации
IP для возможного удаления. По умолчанию 30000
миллисекунд (30 секунд).
ip_ire_flush_interval
- Интервал, через который информация ARP
безусловно удаляется из таблицы маршрутизации IP.
По умолчанию 1200000 миллисекунд (20 минут).
ip_ire_pathmtu_interval
- Интервал, через который алгоритм
определения транспортного MTU
пытается увеличить MTU. По умолчанию 30000
миллисекунд (30 секунд).
ip_ire_redirect_interval
- Интервал, через который записи в таблице
маршрутизации IP, которые получены с помощью ICMP
перенаправления, удаляются. По умолчанию 60000
миллисекунд (60 секунд).
ip_ire_status
- (Только для чтения) Отображает все записи в
таблице маршрутизации IP.
ip_local_cksum
- Если равно 0 (по умолчанию), IP не рассчитывает
контрольную сумму IP или контрольную
сумму верхних протоколов (TCP, UDP, ICMP или IGMP)
для датаграмм, которые отправляются или
принимаются через loopback интерфейс.
Если равно 1, контрольные суммы рассчитываются.
ip_mrtdebug
- (Отладочная) Включает печать отладочного
вывода, связанного с групповой маршрутизацией
ядра, если равно 1. По умолчанию равно 0.
ip_path_mtu_discovery
- Если равно 1 (по умолчанию), определение
транспортного MTU осуществляется уровнем IP. Если
равно 0, IP никогда не установит бит "не
фрагментировать" для исходящих датаграмм.
ip_respond_to_address_mask
- Если равно 0 (по умолчанию), хост не отвечает
на ICMP запросы маски адреса. Если равно 1 -
отвечает.
ip_respond_to_echo_broadcast
- Если равно 1 (по умолчанию), хост отвечает на ICMP эхо запросы, которые отправлены на
широковещательный адрес. Если равно 0 - не
отвечает.
ip_respond_to_timestamp
- Если равно 0 (по умолчанию), хост не отвечает
на ICMP запросы временной марки. Если
равно 1 - отвечает.
ip_respond_to_timestamp_broadcast
- Если равно 0 (по умолчанию), хост не отвечает
на ICMP запросы временной марки, которые
отправлены на широковещательный адрес. Если
равно 1 - отвечает.
ip_rput_pullups
- (Отладочная) Счетчик количества буферов в
драйвере сетевого интерфейса, который
необходимо опросить, чтобы получить полный IP
заголовок. Устанавливается в 0 во время загрузки
и может быть сброшен в 0.
ip_send_redirects
- Если равно 1 (по умолчанию), хост отправляет ICMP перенаправления, когда
функционирует как маршрутизатор. Если равно 0 - не
отправляет.
ip_send_source_quench
- Если равно 1 (по умолчанию), хост генерирует ICMP ошибки подавления источника, когда
входящие датаграммы отбрасываются. Если равно 0 -
не генерирует.
ip_wroff_extra
- (Отладочная) Количество байт
дополнительного пространства, необходимого в
буфере, чтобы расположить IP заголовки. По
умолчанию 32.
/dev/icmp
icmp_bsd_compat
- (Отладочная) Если равно 1 (по умолчанию), поле
длины в IP заголовке принятой датаграммы
настраивается так, чтобы исключить длину IP
заголовка. Это совместимо с Berkeley реализациями и
необходимо для приложений, которые читают
символьные (raw) IP или символьные ICMP пакеты. Если
равно 0, поле длины не изменяется.
icmp_def_ttl
- Значение TTL по умолчанию для
исходящих ICMP сообщений. По умолчанию 255.
icmp_wroff_extra
- (Отладочная) Количество байт
дополнительного пространства в буферах,
необходимого, чтобы расположить IP опции и
заголовки канального уровня. По умолчанию 32.
/dev/arp
arp_cache_report
- (Только для чтения) ARP кэш.
arp_cleanup_interval
- Интервал, после которого запись удаляется
из ARP кэша. По умолчанию 300000 миллисекунд (5 минут).
(IP поддерживает свой собственный кэш полной ARP
трансляции; см. ip_ire_flush_interval.)
arp_debug
- (Отладочная) Если равно 1, включает печать
отладочного вывода ARP драйвера. По умолчанию 0.
/dev/udp
udp_def_ttl
- TTL по умолчанию для исходящих UDP датаграмм.
По умолчанию 255.
udp_do_checksum
- Если равно 1 (по умолчанию), рассчитывается контрольная сумма UDP для исходящих UDP
датаграмм. Если равно 0, исходящие UDP датаграммы
не содержат контрольной суммы. (В отличие от
большинства других реализаций, этот флаг
контрольной суммы UDP не влияет на входящие
датаграммы. Если получена датаграмма, которая
имеет ненулевую контрольную сумму, контрольная
сумма всегда будет проверена.)
udp_largest_anon_port
- Самый большой номер порта,
который может быть назначен как динамически
назначаемый UDP порт. По умолчанию 65535.
udp_smallest_anon_port
- Начальный номер порта, с которого
начинаются динамически назначаемые UDP порты. По
умолчанию 32768.
udp_smallest_nonpriv_port
- Процессу требуются привилегии
суперпользователя, чтобы назначить самому себе
номер порта меньше чем этот. По умолчанию 1024.
udp_status
- (Только для чтения) Статус всех локальных
конечных точек UDP: локальный IP адрес и порт,
удаленный IP адрес и порт.
udp_trust_optlen
- (Отладочная) В настоящее время не
используется.
udp_wroff_extra
- (Отладочная) Количество байт
дополнительного пространства, необходимого,
чтобы расположить в буфере IP опции и заголовки
канального уровня. По умолчанию 32.
/dev/tcp
tcp_close_wait_interval
- Значение 2MSL: время, которое
необходимо провести в состоянии TIME_WAIT.
По умолчанию 240000 миллисекунд (4 минуты).
tcp_conn_grace_period
- (Отладочная) Время, добавляемое к значению
таймера при отправке SYN. По умолчанию 500
миллисекунд.
tcp_conn_req_max
- Максимальное количество необслуженных запросов на соединение, которые могут
быть поставлены в очередь для любой слушающей
конечной точки. По умолчанию 5.
tcp_cwnd_max
- Максимальное значение окна
переполнения. По умолчанию 32768.
tcp_debug
- (Отладочная) Если равно 1, включается печать
отладочного вывода TCP. По умолчанию 0.
tcp_deferred_ack_interval
- Время, которое необходимо подождать перед
отправкой задержанного ACK. По
умолчанию 50 миллисекунд.
tcp_dupack_fast_retransmit
- Количество последовательно пришедших
дублированных ACK, которые включают быструю
повторную передачу и алгоритм быстрого
восстановления. По умолчанию 3.
tcp_eager_listeners
- (Отладочная) Если равно 1 (по умолчанию), TCP
завершает трехразовое рукопожатие перед
передачей нового соединения приложению с
ожидающим пассивным открытием. Это способ,
которым пользуется большинство реализаций TCP.
Если равно 0, TCP передает пришедший запрос на
соединение (принятый SYN) приложению и не
завершает трехразовое рукопожатие до тех пор,
пока приложение не примет соединение. (Установка
этого значения в 0 может сломать многие
существующие приложения.)
tcp_ignore_path_mtu
- (Отладочная) Если равно 1, определение
транспортного MTU игнорирует принятые ICMP
сообщения о необходимости фрагментации. Если
равно 0 (по умолчанию), для TCP включается алгоритм
определения транспортного MTU.
tcp_ip_abort_cinterval
- Полное время тайм-аута повторной передачи,
когда TCP осуществляет активное открытие. По
умолчанию 240000 миллисекунд (4 минуты).
tcp_ip_abort_interval
- Полное время тайм-аута повторной передачи
для TCP соединения, после того как оно
установлено. По умолчанию 120000 миллисекунд (2
минуты).
tcp_ip_notify_cinterval
- Величина тайм-аута, когда TCP осуществляет
активное открытие, после чего TCP уведомляет IP о
необходимости найти новый маршрут. По умолчанию
10000 миллисекунд (10 секунд).
tcp_ip_notify_interval
- Величина тайм-аута для установленного
соединения, после истечения которого TCP
уведомляет IP о необходимости найти новый
маршрут. По умолчанию 10000 миллисекунд (10 секунд).
tcp_ip_ttl
- TTL, используемый для исходящих TCP
сегментов. По умолчанию 255.
tcp_keepalive_interval
- Время, в течение которого соединение не
используется, по истечению которого будет
отправлена проба "оставайся в
живых". По умолчанию 7200000 миллисекунд (2 часа).
tcp_largest_anon_port
- Самый большой номер порта, который может
быть использован как динамически
назначаемый порт TCP. По умолчанию 65535.
tcp_maxpsz_multiplier
- (Отладочная) Указывает множитель MSS, на
основании которого данные, которые выдает
приложение, разбиваются на пакеты. По умолчанию 1.
tcp_mss_def
- Значение MSS по умолчанию для
нелокальных пунктов назначения. По умолчанию 536.
tcp_mss_max
- Максимальный MSS. По умолчанию 65495.
tcp_mss_min
- Минимальный MSS. По умолчанию 1.
tcp_naglim_def
- (Отладочная) Максимальное значение порога
алгоритма Нагла для каждого
соединения. По умолчанию равно 65535. Значение для
соединения начинается с минимального MSS
или этого значения. Значение для соединения
устанавливается в 1 опцией сокета TCP_NODELAY,
которая выключает алгоритм Нагла.
tcp_old_urp_interpretation
- (Отладочная) Если равно 1 (по умолчанию),
используется старая (но наиболее
распространенная) BSD интерпретации указателя срочности: он указывает на 1 байт
позади последнего байта срочных данных. Если
равно 0, используется интерпретация, приведенная
в требованиях к хостам RFC: указатель срочности
указывает на последний байт срочных данных.
tcp_rcv_push_wait
- (Отладочная) Максимальное количество байт,
полученных без установленного флага
PUSH, перед тем как данные передаются приложению.
По умолчанию 16384.
tcp_rexmit_interval_initial
- (Отладочная) Первоначальная величина
тайм-аута повторной передачи. По умолчанию 500
миллисекунд.
tcp_rexmit_interval_max
- (Отладочная) Максимальная величина
тайм-аута повторной передачи. По умолчанию 60000
миллисекунд (60 секунд).
tcp_rexmit_interval_min
- (Отладочная) Минимальная величина тайм-аута
повторной передачи. По умолчанию 200 миллисекунд.
tcp_rwin_credit_pct
- (Отладочная) Часть приемного окна (в
процентах), которая должна быть буферизирована,
перед тем как управление потоком проверяет
каждый принятый сегмент. По умолчанию 50%.
tcp_smallest_anon_port
- Начальный номер порта, с
которого начинаются динамические назначаемые
порты TCP. По умолчанию 32768.
tcp_smallest_nonpriv_port
- Процессу требуются привилегии
суперпользователя, чтобы назначить самому себе
номер порта меньше чем этот. По умолчанию 1024.
tcp_snd_lowat_fraction
- (Отладочная) Если не равно 0, метка "низкой
воды" отправляющего буфера равна
размеру отправляющего буфера поделенного на это
значение. По умолчанию 0 (выключено).
tcp_status
- (Только для чтения) Информация о всех TCP
соединениях.
tcp_sth_rcv_hiwat
- (Отладочная) Если не равно 0, значение
устанавливается в метку "высокой воды" для
потока. По умолчанию равно 0.
tcp_sth_rcv_lowat
- (Отладочная) Если не равно 0, значение
устанавливается в метку "низкой воды" для
потока. По умолчанию 0.
tcp_wroff_xtra
- (Отладочная) Количество байт
дополнительного пространства, необходимого,
чтобы расположить в буферах IP опции и заголовки
канального уровня. По умолчанию 32.
AIX 3.2.2
AIX 3.2.2 позволяет установить сетевые опции с
использованием команды no. Она может
отобразить значения опций, установить значения
опций или установить значения по умолчанию.
Например, посмотреть опцию можно следующим
образом:
aix % no -o udp_ttl
udp_ttl = 30
Модифицированы могут быть следующие опции.
arpt_killc
- Время (в минутах) перед тем, как
неиспользуемая запись ARP полностью удаляется. По
умолчанию 20.
ipforwarding
- Если равно 1 (по умолчанию), IP
датаграммы всегда перенаправляются. Если равно 0,
перенаправление выключено.
ipfragttl
- Время жизни (в секундах) для IP фрагментов,
которые ожидают повторной сборки. По
умолчанию 60.
ipsendredirects
- Если равно 1 (по умолчанию), хост будет
отправлять ICMP перенаправления, когда
перенаправляет IP датаграммы. Если равно 0, ICMP
перенаправления не отправляются.
loop_check_sum
- Если равно 1 (по умолчанию), контрольная
сумма IP рассчитывается для датаграмм, которые
посылаются по loopback интерфейсу. Если
равно 0, эта контрольная сумма не рассчитывается.
nonlocsrcroute
- Если равно 1 (по умолчанию), полученные
датаграммы, содержащие опцию
маршрутизации от источника, перенаправляются.
Если равно 0, эти датаграммы отбрасываются.
subnetsarelocal
- Если равно 1 (по умолчанию), IP адрес
назначения с тем же самым идентификатором сети,
как и у отправляющего хоста, однако с другим
идентификатором подсети, считается локальным.
Если равно 0, только IP адреса назначения
принадлежащие непосредственно подключенной
подсети считаются локальными. Кратко это описано
на рисунке Е.1. Когда происходит отправка на
локальный пункт назначения, TCP выбирает MSS,
основываясь на MTU исходящего интерфейса. Когда
происходит отправка на нелокальные пункты
назначения, TCP использует значение по умолчанию
(536) в качестве MSS.
tcp_keepidle
- Количество 500-миллисекундных тиков часов
перед отправкой пробы "оставайся в
живых". Значение по умолчанию 14400 (2 часа).
tcp_keepintvl
- Количество 500-миллисекундных тиков часов
перед отправкой последовательных проб
"оставайся в живых", если не получен отклик.
Значение по умолчанию 150 (75 секунд).
tcp_recvspace
- Размер по умолчанию приемного
буфера TCP. Это оказывает влияние на предлагаемый
размер окна. Значение по умолчанию 16384.
tcp_sendspace
- Размер по умолчанию отправляющего
буфера TCP. Значение по умолчанию 16384.
tcp_ttl
- Значение TTL по умолчанию для TCP
сегментов. Значение по умолчанию 60.
udp_recvspace
- Размер по умолчанию приемного
буфера UDP. Значение по умолчанию 41600, что
позволяет принять 40 датаграмм размером 1024 байта.
udp_sendspace
- Размер по умолчанию отправляющего
буфера UDP. Определяет максимальный размер UDP
датаграммы, которая может быть отправлена. По
умолчанию 9216.
udp_ttl
- Значение TTL по умолчанию в UDP датаграммах. По
умолчанию 30.
4.4BSD
4.4BSD это первый релиз Berkeley, который
предоставлял динамическую конфигурацию
большого количества параметров ядра. При этом
использовалась команда sysctl(8) . Имена
параметров были выбраны так, чтобы напоминать
имена MIB из SNMP. Просмотреть параметры можно
следующим образом:
vangogh % sysctl net.inet.ip.forwarding
net.inet.ip.forwarding = 1
Чтобы изменить параметр (обязательно с
привилегиями суперпользователя), можно сделать
следующее:
vangogh # sysctl -w net.inet.ip.ttl=128
Могут быть изменены следующие параметры.
net.inet.ip.forwarding
- Если равно 0 (по умолчанию), IP
датаграммы не перенаправляются. Если равно 1,
перенаправление включено.
net.inet.ip.redirect
- Если равно 1 (по умолчанию), хост будет
отправлять ICMP перенаправления при
перенаправлении IP датаграмм. Если равно 0, ICMP
перенаправления не отправляются.
net.inet.ip.ttl
- Значение TTL по умолчанию для TCP и UDP. По
умолчанию 64.
net.inet.icmp.maskrepl
- Если равно 0 (по умолчанию), хост не отвечает
на ICMP запросы маски адреса. Если
равно 1 - отвечает.
net.inet.udp.checksum
- Если равно 1 (по умолчанию), рассчитывается контрольная сумма UDP для исходящих UDP
датаграмм, а для входящих UDP датаграмм, если
контрольная сумма не равна нулю, она проверяется.
Если равно 0, исходящие UDP датаграммы не содержат
контрольной суммы, и не осуществляется проверка
контрольной суммы для входящих UDP датаграмм, даже
если отправитель рассчитал контрольную сумму.
Помимо этого, большое количество
переменных, которые мы описали раньше в этом
приложении, находятся в различных файлах
исходных текстов (tcp_keepidle, subnetsarelocal и
так далее) и могут быть модифицированы.