Donation Goal Detail
Рубрика: Разное - Энциклопедия сетевых протоколов

Новый стандарт

Принят стандарт IEEE 802.3cd TM -2018, Standard for Ethernet — Amendment 3: Media Access Control Parameters for 50 Gb/s and Physical Layers and Management Parameters for 50 Gb/s, 100 Gb/s, and 200 Gb/s Operation.

Стандарт определяет параметры MAC, спецификации физического уровня и параметры управления для передачи кадров  Ethernet со скоростью 50 Гбит/с по оптическим или электрическим линиям. Определены дополнительные спецификации физического уровня и параметры управления для передачи по оптическим и электрическим линиям со скоростью 100 Гбит/с и 200 Гбит/с.

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




Поддержка HTTPS

С 12 января 2019 года на сайте поддерживаются защищенные соединения HTTPS с заверенным УЦ сертификатом. Если вы заинтересованы в защите ваших коммуникаций, вы можете использовать защищенное соединение, перейдя по ссылке.




Семантика SMTP local-part на почтовых серверах Google

С некоторых пор на мой адрес в домене google.com стал сыпаться адресованный некому Александру  спам, связанный с получением «быстрых кредитов». Поскольку я Александром никогда себя не называл и традиционно пользуюсь данным родителями именем, решил копнуть поглубже и посмотреть заголовки, благо интерфейс позволяет сделать это. И что же я увидел?

Тут самое время сказать ¨Wow¨ — в заголовке локальная часть адреса совсем не моя, хоть и похожа несказанно.

И разница совсем не велика — всего лишь отсутствующая в моем адресе точечка после буквы n. Не правда ли, мелочь совсем не значимая. Однако с точки зрения программ (серверов) строки символов nmalykh и n.malykh совершенно не совпадают и даже длиной различаются. В RFC 5321 сказано:

эта часть адреса должна интерпретироваться только хостом, указанным в доменной части адреса.

Вот они и интерпретируют, как им заблагорассудится. Если глянуть на строку с адресом на приведенной выше картинке, можно заметить справа от адреса текст «(Да, это ваш адрес) Подробнее…«, где последнее слово является ссылкой. Торкаем ссылочку и попадаем на очень любопытную страницу.

Любопытная трактовка, не правда ли?




AoE (ATA over Ethernet)

                                                              S. Hopkins
                                                                B. Coile
                                        The Brantley Coile Company, Inc.
AoEr11                                                     February 2009



AoE (ATA over Ethernet)

PDF

Статус документа

В этом документе приведена спецификация облегченного протокола доступа к устройствам ATA через сеть Ethernet.

1. Введение

AoE используется для поддержки очень простого механизма удаленного вызова процедур (RPC1) между клиентом и сервером в виде устройства ATA. Сервер воспринимает команды и генерирует отклики на базе кода команд в заголовке AoE.

В этом документе описывается формат заголовка AoE и набор команд для первой версии протокола. Все значения, для которых существенен порядок байтов, приводятся с использованием сетевого порядка байтов2. Для зарезервированных полей при передаче любого сообщения должны устанавливаться нулевые значения.

Каждое сообщение содержит заголовок, за которым следует поле аргумента. Формат поля аргумента определяется кодом команды в заголовке.

1.1. Соединения

Протокол AoE не базируется на прямых соединениях3. Каждое сообщение, переданное серверу, следует рассматривать, как уникальное, доставка которого не гарантируется.

2. Формат заголовка AoE

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 0 |                    Ethernet Destination Addr                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 4 |   Ethernet Destination Addr   |      Ethernet Source Addr     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 8 |                      Ethernet Source Addr                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 |     Ethernet Type (0x88A2)    |  Ver  | Flags |     Error     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
16 |             Major             |     Minor     |    Command    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
20 |                              Tag                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
24 |                              Arg                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

2.1. Адреса Ethernet Source, Destination и Ethernet Type

Стандартный заголовок Ethernet MAC, используемый для кадров IEEE 802.3 Ethernet.

Протокол AoE использует зарегистрированное значение типа Ethernet — 0x88A2.

2.2. Ver (Версия)

Поле номера версии определяет формат заголовка AoE, а также набор кодов команд. Все будущие версии протокола должны содержать это поле в заголовке с сохранением позиции. В этом документе описывается протокол версии 1.

Коды команд для этой версии протокола описана в параграфе 2.6. Command.

Отклик Query Config Information включает номер версии протокола, поддерживаемой сервером.

+-+-+-+-+
|R|E|Z|Z|
+-+-+-+-+

2.3. Флаги

Поле Flags содержит биты флагов, описанные ниже.

Бит R устанавливается для сообщений, являющихся откликами. Бит E устанавливается в сообщениях с откликами, если соответствующее отклику сообщение с командой привело к возникновению ошибки AoE. Флаги Z являются резервными и должны иметь значение 0.

2.4. Error

Если в поле Flags установлен бит E, это поле содержит один из определенных ниже кодов ошибок.

Error 1: Unrecognized command code — неизвестный код команды

Сервер не понял кода команды, заданного в поле Command.

Error 2: Bad argument parameter — некорректный параметр

В поле Arg имеется неприемлемое значение.

Error 3: Device unavailable — устройство недоступно

Сервер больше не способен воспринимать команды ATA.

Error 4: Config string present — присутствует строка конфигурации

Сервер не может установить строку конфигурации, поскольку она не пуста (см. параграф 3.2).

Error 5: Unsupported version — неподдерживаемая версия

Сервер не понимает номер версии протокола, указанный в поле Ver.

Error 6: Target is reserved — «цель» забронирована.

Команда не может быть выполнена, поскольку «цель» забронирована (см. параграф 3.4).

2.5. Major, Minor

Каждый сервер AoE обладает двумя адресами — старшим (major) и младшим (minor). До обработки поля Command в заголовке сервер должен сравнить свои адреса с соответствующими полями Major и Minor в заголовке. Сервер будет принимать командное сообщение для обработке при выполнении обоих приведенных ниже условий:

значение поля Major в заголовке совпадает со старшим адресом сервера или содержит только единицы (0xffff);

значение поля Minor в заголовке совпадает с младшим адресом сервера или содержит только единицы (0xff).

Если любое из условий не выполняется, сервер должен игнорировать команду.

Сервер должен включать свой старший и младший адрес в каждый отклик, даже в тех случаях, когда адрес в соответствующем запросе содержал только единицы.

2.6. Command

Это поле содержит код команды. В данной версии протокола определены следующие коды команд:

Command 0: Issue ATA Command — ввести команду ATA;

Command 1: Query Config Information — запросить конфигурационные данные;

Command 2: Mac Mask List — список масрок MAC;

Command 3: Reserve / Release – обратить, освободить.

Коды 240-255 (0xf0-0xff) зарезервированы для конкретного использования производителями.

2.7. Tag

Поле Tag позволяет клиенту устанавливать корреляцию откликов с соответствующими командами. Это поле сервер копирует в отклик из сообщения с командой; при обработке команды сервером значение этого поля не используется.

2.8. Arg

Поле Arg содержит входные данные для заданной кодом команды.

3. Коды команд

3.1. Command 0, Issue ATA Command

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
24 |    AFlags     |  Err/Feature  |  Sector Count |   Cmd/Status  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
28 |     lba0      |     lba1      |     lba2      |     lba3      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
32 |     lba4      |     lba5      |           Reserved            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
36 |                             Data                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Команда 0 используется для ввода команды ATA в подключенное к серверу устройства ATA.

Все данные, связанные с командой, должны помещаться в одно сообщение. Максимальный размер стандартного кадра Ethernet (1520 байтов) ограничивает возможность однократного считывания или записи двумя секторами.

Операции чтения/записи ATA должны быть защищены списком бронирования, как описано в параграфе 3.4. Если доступ к «цели» ограничен бронированием, должно возвращаться сообщение об ошибке AoE с кодом 6.

+-+-+-+-+-+-+-+-+
|Z|E|Z|D|Z|Z|A|W|
+-+-+-+-+-+-+-+-+

Формат поля AoE Arg показан на рисунке выше.

Поле AFlags показано на рисунке справа.

Флаг W должен устанавливаться в тех случаях, когда команда ATA требует записи в устройство. Бит A должен устанавливаться в тех случаях, когда запрос на запись будет выполняться в асинхронном режиме. Значение бита D определяется регистром ATA Device/Head и принимается во внимание только при установленном бите E. Установленный флаг E говорит о том, что команда относится к числу расширенных команд LBA48. Флаги Z являются резервными и должны иметь значение 0.

Флаг W вместе с полем Sector Count определяют направление переноса данных — на устройство или с устройства:

при записи данных на устройство бит W должен быть установлен, а поле Data должно содержать Sector Count * 512 байтов данных;

при считывании данных с устройства бит W должен быть сброшен (0), а поле Sector Count должно указывать количество секторов, считываемых с устройства; при успешном выполнении команды поле Data в отклике будет содержать считанные с устройства данные;

если переноса данных не выполняется, поле Sector Count должно иметь нулевое значение, а бит W игнорируется.

Если установлены оба флага A и W, сервер может кэшировать запросы на запись в своей памяти и отвечать на запрос незамедлительно, возвращая значение поля Arg без изменений. Сервер может ввести аппаратный запрос на запись в любое удобное время, если обеспечивается возврат кэшированных данных при запросе на считывание этого сектора. Однако при возникновении на сервере проблем с питанием кэшированные данные могут быть потеряны. При завершении исполнения кэшированного запроса на запись никакого сообщения не передается, если в процессе записи не возникло ошибок.

Если установлен флаг E, сервер будет переносить содержимое каждого поля в регистры устройства ATA, как показано ниже:

      Device        <- (AFlags & 0x50 | 0xA0)
      LBA Low       <- lba3
      LBA Low       <- lba0
      LBA Mid       <- lba4
      LBA Mid       <- lba1
      LBA High      <- lba5
      LBA High      <- lba2
      Sector Count  <- 0
      Sector Count  <- Sector Count
      Err/Feature   <- Err/Feature
      Cmd/Status    <- Cmd/Status

Биты E,D поля AFlags соответствуют битам L,D в регистрах устройства. По отношению к ним используется операция ИЛИ 0xA0 для установки утративших значение битов в 1 в соответствии со спецификацией ATA.

Если флаг E не установлен, сервер будет переносить содержимое каждого поля в регистры устройства ATA, как показано ниже:

      Device        <- lba3
      LBA Low       <- lba0
      LBA Mid       <- lba1
      LBA High      <- lba2
      Sector Count  <- Sector Count
      Err/Feature   <- Err/Feature
      Cmd/Status    <- Cmd/Status

За исключением случаев асинхронной записи отклик не генерируется, пока не будет завершено выполнение команды ATA (успешно или с ошибкой). По завершении обработки команды ATA регистры устройства ATA копируются в поля сообщения, как показано ниже:

      Err/Feature   <- Err/Feature
      Sector Count  <- Sector Count
      lba0          <- LBA Low
      lba1          <- LBA Mid
      lba2          <- LBA High
      Cmd/Status    <- Cmd/Status

Порядок копирования регистров в поля сообщения сохраняется независимо от состояния бита E.

При установленном бите E дополнительно будут копироваться перечисленные ниже значения регистров устройства ATA в поля lba3, lba4 и lba5 после установки флага в регистре ATA Device Control.

      lba3          <- LBA Low
      lba4          <- LBA Mid
      lba5          <- LBA High

Во всех остальных полях отклика сохраняются значения из коответствующих полей сообщения с командой.

3.2. Command 1, Query Config Information

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
24 |         Buffer Count          |       Firmware Version        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
28 | Sector Count  |  AoE  | CCmd  |      Config String Length     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
32 |         Config String         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Command 1 позволяет получить от сервера конфигурационную информацию, а в некоторых случаях — поменять параметры конфигурации. Формат поля Arg в команде и отклике показан на рисунке.

Buffer Count

Максимальное число сообщений, которые могут сохраняться в очереди обработки сервера. При достижении порога новые сообщения будут отбрасываться.

Firmware Version

Номер версии ПО сервера (firmware).

Sector Count

Отличное от нуля значения счетчика задает число секторов, обрабатываемых по одной команде. Нулевое значение в целях совместимости со старыми устройствами трактуется, как 2.

AoE

Версия протокола AoE, поддерживаемая сервером.

CCmd

Субкоманда запроса/установки строки конфигурации (Config string).

Config String Length

Размер строки конфигурации.

Config String

Строка конфигурации размером до 1024 байтов, включительно.

В сообщениях с командами для полей Buffer Count, Firmware Version и AoE клиент должен устанавливать значение 0, а сервер должен игнорировать эти поля. Остальные поля могут использоваться для считывания или устанвоки строки конфигурации.

Допустимые значения CCmd перечислены ниже.

CCmd 0: read config string — считать строку конфигурации

Считать конфигурационную строку сервера без какой-либо проверки или отклика.

CCmd 1: test config string — проверить строку конфигурации

Отклик выдается только при точном совпадении строки в аргументе со строкой конфигурации сервера.

CCmd 2: test config string prefix — проверить префикс строки конфигурации

Отклик выдается только при точном совпадении префикса в аргументе со строкой конфигурации сервера.

CCmd 3: set config string — установить строку конфигурации

Если строка конфигурации сервера пуста, она устанавливается в соответстствии со строкой в аргументе и возвращается в отклике. Если строка конфигурации сервера не пуста, возвращается отклик с установленным битом E в поле E и кодом ошибки 4 в поле Error.

CCmd 4: force set config string — принудительно установить строку конфигурации

Строка конфигурации сервера устанавливается в соответствии со строкой аргумента и возвращается в отклике.

В откликах сервер должен указывать свои текущие значения для всех полей.

Когда сервер завершил загрузку и готов к обработке команд, ему следует передать в широковещательном режиме отклик Query Config Information с нулевым значением тега.

3.3. Command 2, Mac Mask List

Команда Mac Mask List используется для считывания списка масок MAC для цели AoE и управления этим списком. Цель AoE может использовать список масок для контроля доступа. Предполагается, что реализации «целей» будут вести себя, как описано ниже.

Цель AoE будет воспринимать полученный кадр с командой при выполнении любого из приведенных ниже условий:

  1. список масок пуст;

  2. адрес отправителя кадра имеется в списке масок.

Если ни одно из условий не выполняется, цель должна игнорировать команду. Такая проверка должна выполняться для всех команд AoE, включая команды Mac Mask List.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
24 |    Reserved   |      MCmd     |     MError    |   Dir Count   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
28 |                         Directive 0                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
32 |                         Directive 0                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Формат поля Arg показан на рисунке.

MCmd

Субкоманда Mac Mask List. MCmd может принимать значения:

MCmd 0: прочесть список;

MCmd 1: редактировать список.

MError

При возникновении ошибки в процессе обработки списка для поля MError устанавливается одно из значений:

MError 1: Unspecified Error — неизвестная ошибка;

MError 2: Bad DCmd directive — некорректная директива DCmd;

MError 3: Mask list full — список масок полон.

Dir Count

Счетчик числа директив, содержащихся в сообщении.

   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 |    Reserved   |      DCmd     |       Ethernet Address        |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
4 |                       Ethernet Address                        |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Directive

Директива для маски MAC. Каждая директива занимает 8 байтов и включает перечисленные ниже поля.

DCmd

Код директивы, который может принимать одно из значений:

0 — нет директивы;

1 — добавить MAC-адрес в список масок;

2 — удалить MAC-адрес из списка масок.


Ethernet Address

Адрес Ethernet, включаемый в список масок или удаляемый из списка.

В командах считывания списка масок должно быть установлено MCmd=0. Отклик будет возвращать MAC-адреса в директивах, следующих после заголовка. Число директив указывается в поле Dir Count.

В командах редактирования списка масок должно задаваться значение MCmd=1. Кадр с командой должен содержать число директив, указанное в поле Dir Count. Сервер, обрабатывающий такую команду, должен брать директивы в соответствии с порядком их размещения в кадре. При возникновении ошибки в процессе обработки директив сервер должен прервать обработку и возвратить отклик со значением поля Dir Count, указывающим на связанную с ошибкой директиву, и кодом ошибки в поле MError. Отклик сервера на ошибку должен содержать список масок из соответствующей команды.

Если при обработке списка не возникло ошибок, сервер должен вернуть в отклике список масок, включая значение Dir Count для счетчика директив. Попытка включения дубликата адреса Ethernet в список масок не считается ошибкой. Точно так же не относится к числу ошибок и попытка удаления из списка отсутствующего в нем адреса Ethernet. Сервер должен игнорировать такие попытки.

Здесь не предполагается считывания списка масок, содержащего более 255 элементов. Серверам, поддерживающим эту команду, рекомендуется ограничивать размер списка масок значением 255. Однако сервер не обязан поддерживать 255 масок в своем списке.

Следует отметить, что при добавлении клиентом в пустой список масок того или иного набора адресов, не включающего адрес самого клиента, этот клиент утратит дальнейшую возможность обмена данными с «целью». Рекомендуется при любом изменении списка адресов включать Ethernet-адрес клиента в качестве первой директивы.

3.4. Command 3, Reserve/Release

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
24 |      RCmd     |     NMacs     |       Ethernet Address 0      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
28 |                       Ethernet Address 0                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
32 |                       Ethernet Address 1                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
36 |      Ethernet Address 1       |              ...              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Команда Reserve/Release служит для управления блокировкой доступа к цели AoE по списку MAC-адресов. Забронированная цель AoE будет выполнять команды ATA на чтение/запись только в тех случаях, когда MAC-адрес отправителя из кадра с командой будет присутствовать в списке бронирования. Остальные команды (запрос конфигурации, идентификация ATA и т.п.) обрабатываются независимо от адреса отправителя. Когда цель недоступна в результате бронирования, возвращается сообщение об ошибке AoE с кодом 6: Target is reserved.

Формат поля Arg показан на рисунке.

RCmd

Код команды бронирования/освобождения, который может принимать одно из следующих значений:

0 — прочесть список бронирования;

1 — установить список бронирования;

2 — принудительно выполнить команду бронирования/освобождения.

По команде RCmd 0 возвращается список бронирования.

RCmd 1 используется для бронирования или освобождения цели. Бронирование осуществляется путем создания списка с одним или множеством MAC-адресов. Освобождение выполняется путем сброса списка адресов (организации пустого списка) за счет установки NMacs=0. Команда Rcmd 1 будет обрабатываться только в тех случаях, когда текущий список бронирования пуст или включает MAC-адрес отправителя команды. Если команда Rcmd 1 не может быть выполнена в результате бронирования, должно возвращаться сообщение об ошибке AoE с кодом 6, как сказано выше.

Команда Rcmd 2 используется для принудительного бронирования/освобождения цели, независимо от наличия MAC-адреса отправителя в списке бронирования. Эта команда используется прежде всего для изменения устаревших списков бронирования. Применять эту команду следует лишь в тех случаях, когда имеется достоверная информация о некорректности списка бронирования.

NMacs

Число MAC-адресов в сообщении.

Ethernet Address [0..n]

Один или множество 6-байтовых адресов Ethernet.

В откликах о выполнении или ошибке должен возвращаться текущий список бронирования для сведения клиента.

Адреса авторов

The Brantley Coile Company, Inc.

565 Research Drive

Athens, GA 30605

{sah,brantley}@borf.com

Перевод на русский язык

Николай Малых

nmalykh@gmail.com

Благодарности

Большое спасибо Norman Wilson за критику и предложения.


1Remote Procedure Call. Прим. перев.

2От старшего байта к младшему — т. е., первым указывается самый старший байт. Этот порядок еще называют big-endian. Прим. перев.

3Connectionless. Прим. перев.




Моделирование процессов во фрактальной сети. Возможная субструктура для сознания

MODELLING PROCESSES IN A FRACTAL NETWORK:
A POSSIBLE SUBSTRUCTURE FOR CONSCIOUSNESS.

Моделирование процессов во фрактальной сети

Возможная субструктура для сознания

Richard Dryden

16 January 1996

PDF

Аннотация. Предполагается, что сознание не возникает из одного уровня биологической организации (например, из вычислительной активности на синаптическом уровне в нейронной сети), а является следствием независимого моделирования в сетях на разных уровнях организации, включая молекулярный, органелльный1 и клеточный, объединяемых для возникновения сознания. Фрактальная укладка (stacking) и взаимодействие сетей на разных уровнях предлагается рассмотреть в качестве субстрата (основы), который может требоваться для сознания (естественного или машинного). Принятие такой концепции поможет преодолеть некоторые трудности, возникающие при использовании редукционистских стратегий изусчения сознания.

Введение

Современные дискуссии о сознании склонны опираться на самые глубокие особенности индивидуального мировоззрения, будь то квантовая теория, теория информации, теория хаоса, прапсихология или спиритизм, в надежде, что та или иная их комбинация приведет к просветлению. Здесь явно имеется проблема «циклической зависимости» в том, что сознание является одновременно инструментом и объектом (Miller, 1962) [12].

Сознание пытается понято самое себя и у него нет резерва возможности моделирования, чтобы помочь упрощению или сделать шаг назад и взглянуть на себя из более сложной метасистемы. При попытке моделировать сознание путем упрощения допущений или применения редуктивных методологий возникает опасность уйти в сторону — сознание представляется продуктом «целостности», а не «частичности». Однако это не означает бесполезности любой попытки понять сознание или невозможности прогресса — в наблюдаемом мире достаточно закономерностей, позволяющих экстраполировать знание из известных областей на малознакомые.

Далее предлагается объединение идей общей теории систем и теории нейронных сетей в концептуальную схему для рассмотрения сознания. По сути, предполагается, что сознание не возникает из действий на одном уровне биологической организации (например, из вычислительной активности на уровне синаптических соединений в нейронной сети), а является следствием независимого моделирования сетями на разных уровнях, совместно порождающего сознание.

Общая теория систем

Идеи общей теории систем (GST2) очень полезны для понимания развития биологического мира. GST выявляет повторяющиеся картины организации систем различных типов. У этой теории есть несколько вариантов, среди которых в качестве основы были выбраны концепции, разработанные Bertalanfly (1968) [2]. Основой GST является концепция полуоткрытых систем, взаимодействующих с окружающим по входам и выходам. Выбранная часть окружения со временем «протекает» через открытую систему, изменяясь в ней (трансформируясь). Хотя некоторые границы систем (например, внешнии мембраны клеток) наблюдаемы, нужно учитывать роль наблюдателя в «рисовании» границ. Такое разделение мира на системы еще является редукционистским подходом.

Открытые системы состоят из взаимозависимых частей, каждая из которых может рассматриваться как открытая система. На данном уровне организации открытые системы могут взаимодействовать, создавая системы с более высоким уровнем организации (например, атомы и молекулы взаимодействуют, образуя клетки, а те взаимодействуют, образуя многоклеточный организм, при этом организмы также взаимодействуют, образуя сообщества). Внутри данного уровня организации могут существовать распознаваемые модели взаимодействия, такие как иерархия.

Сила GST заключается в распознаваниишаблонов (pattern), повторяющихся в системах разного уровня и это может стать основой для включения редукционистских наблюдений в более елостное мировоззрение. Таким образом, GST может внести вклад в изучение сознания.

Из исследований эмбрионов и других биологических систем можно добавить к этой обобщенной концепции открытых систем еще одно свойство — способность системы каким-то образом «моделировать» свое окружение. Т. е. с течением времени система развивает изменяющееся представление о своем окружении через двухстороннее взаимодействие как следствие своей внутренней организации и функций.

Слово «модель» здесь выбрано потому, что оно более нейтрально, нежели часто применяемые термины «сознание» и «осведомленность» (awareness)3. Здесь не предпринимается попыток определить точное значение термина «модель», он просто служит для обозначения деятельности в целом (разумной или иной). Поэтому на уровне человека модель будет указывать как сознательную, так и подсознательную деятельность. Для простоты модель размещается внутри границ открытой системы, но это не обязательно предполагает ее физическое присутствие в системе, а просто говорит о тесной связи деятельности модели с другими системными структурами и процессами на данном уровне организации.

Хотя на человеческом уровне сознательный опыт дает нам прямой доступ к процессам моделирования, допущение о распространении идеи возможностей моделирования на системы иных уровней может показаться спекулятивным.Однако доказательства в поддержку этого начали накапливаться и недавно было опубликовано несколько работ (например, Albrecht-Buehler, 1985 [1], Hameroff, 1994 [10], Bray, 1995 [3]), предполагающих, что клетки, органеллы и даже молекулы обдладают способностью к расчетам и репрезентативным процессам вследствие их организации.

Допущение о том, что открытые системы в целом, независимо от уровня, могут обладать способностью к моделированию, повторяет панпсихизм — идею о том, что всей материи присуще некое качество, которое можно назвать «разумом» или «сознанием» Панпсихиз часто наряду с витализмом считают ненаучным и ненужным (например, Popper, Eccles, 1990 [14]), хотя панэкспериенциализм и панпсихизм недавно вновь стали предметом обсуждения (de Quincey, 1994 [6], Seager, 1995 [15]). Однако ниже будет отмечено, что моделирование может быть обеспечено процессами, знакомыми современной науке, в частности, процессами, которые происходят в природных и искусственных нейронных сетях, и не требующими придания материи дополнительных свойств. Это не означает, что эмпирический аспект сознания обязательно возникнет из предлагаемых здесь процессов моделирования — скорее нужна концептуальная основа, на которой можно начать решение «трудного вопроса» о сознании, отмеченного Chalmers (1995) [4].

внутренняя модель придала бы определенную степень автономности системе по отношению к ее окружению или, по меньшей мере, была бы наблюдаемым впечатлением, поскольку циклы стимул-отклик будут буферизоваться и измеряться вычислительными действиями модели. Результатом будет то, что отклики системы со временем изменятся — отклик, вызванный определенной картиной на входе, может не совпадать при таком же входном воздействии после того, как система со временем обрела другой опыт. De Quincey (1994) [6] (сир. 223) выразил это следующим образом: ««Сложный индивид» — это иерахическое сообщество суборганизмов, каждый из которых имеет свой уровень опыта и способности к самоопределению (например, животное, состоящее из живых клеток, клетка, состоящая из органических молекул).

Если это так, возникает возможность более тонкого поведения отдельных систем при взаимодействии с окружением и между собой. В случае развивающегося зародыша можно представить растущее сообщество клеток, формирующих сеть социальных взаимодействий (Dryden, 1991 [8]), где каждая клетка непрерывно соразмеряет свои внутренние побуждения с влияющими на нее сигналами из внешней среды. В то же время, похоже, что эмбрио в целом обладает идентичностью или моделью, поскольку с нарушениями нормального потока развития можно справиться и ответить на них даже при потере или повреждении отдельных клеток. Таким образом, при взаимодействии открытых систем в социальном плане возникает впечатление, что создается новый потенциал для творчества.

Ограничения GST

Однако у такого подхода есть недостаток при взгляде на мир и системы внутри него. Расслоение наблюдаемого мира системой GST по уровням организации представляется достаточно безвредным в том смысле, что оно распознает кажущуюся «целостность» молекулы, клетки или человека и идентифицирует повторяющиеся картины на каждом уровне. Но возникает проблема понимания того, как события на одном уровне влияют на события другого уровня (например, событие на верхнем уровне определяет происходящее на нижележащих уровнях (нисходящая причина) или события на нижних уровнях влияют на события верхних уровней (восходящая причина)). Интересно, что научные дициплины представляются стратифицированными аналогичным способоми каждая сосредоточена внутри одного уровня. При этом возникает проблема — дисциплина, работающая внутри одного уровня (например, цитология) может не иметь очевидного объяснения для дисциплины вышележащего уровня (например, психологии). Это выглядит как наличие «хорошей науки» внутри уровня и нехватку «лучшей науки» между уровнями. С учетом того, что мир считается взаимосвязанным целым а наука является последовательной методологией его изучения, это дает повод пересмотреть способ наблюдения мира и провести корректировку деления на уровни. Часть современных сложностей может оказаться результатом неверного деления на уровни.

Проблема привязки относится также к предположению о возможности существования в системах моделей на разных уровнях. Как эти модели будут взаимодействовать? Например, как модели внутри клеток могут взаимодействовать или иным путем вносить вклад в сознание на уровне человека? В контексте панпсихизма Seager (1995) [15] назвал это «проблемой комбинирования» — «как можно объединить множество элементов «атомного сознания» в новое, сложное и богатое сознание, которым мы обладаем» (стр. 280). Редукционизм — это подход, требующий разложения (демонтажа) системы и изучения ее частей или изусения поведения системы в искуственно упрощенной и контролируемой среде. Однако сознание, по-видимому, является свойством, возникающим из нетронутой (intact) системы, из «целостности», а не «частичности», и может не быть сводимым в обычном смысле без риска потери искомого понимания.

Нейронные сети

Хотя GST сталкивается с трудностями на этом этапе, можно пойти дальше с идеей взаимодействующих моделей на разных уровнях путем внесения и изменения концепции нейронных сетей.

Термин «нейронная сеть» (neural network) используется достаточно свободно и может относиться к сети биологических нейронов, образующих часть нервной системы (естественная сеть), а также к компьютерному моделированию сети, состоящей из соединенных между собой элементов, с нейроноподобными свойствами (искусственная сеть). В обоих случаях каждый узел сети имеет один или несколько входов переменной «силы» (обычно как возбуждающих, так и тормозящих) и суммирует входные данные, что приводит к подаче сигнала на выход или выходы при превышении порога возбуждения4.

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

Концепция нейронной сети объясняет возможности моделирования в сетях взаимосвязанных элементов и играет важную роль в развитии понимания о биологических системах. Как отмечено выше, концепцию можно применить не только к изучению нейронных сборок, но и к отдельным клеткам и их частям, таким как органеллы или макромолекулы (Albrecht-Buehler, 1985 [1], Hameroff, 1994 [10], Bray, 1995 [3]).

Объединение концепций GST и нейронных сетей

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

На основе опыта работы с GST можно продолжить анализ. При рассмотрении естественной сети элементами являются нейроны, каждый из которых представляет собой сложную и живую совокупность взаимодействующих частей, которые можно считать открытыми системами. Таким образом, можно смоделировать сам нейрон как сеть, состоящую, например, из органелл. Точно так же можно представить органеллы (такие как митохондрии) как сети составляющих их молекул. Этот процесс идентификации характеристик сети можно было бы расширить и включить в него молекулы (белки), которые, как известно, реагируют на внешние сигналы. Получается в результате взаимосвязанная схема сетей внутри сетей.

С этой точки зрения биологическая организация выглядит как вложенные друг в друга наборы сетей, и элементы одного уровня являются сетями нижележащего уровня и т. д. Подходящим термином для этого будет фрактальная сеть, поскольку это отражает свойство самоподобия или повторяющихся картин на разных уровнях (сети внутри сетей). Термин фрактал здесь имеет несколько иной смысл, нежели в работах Merrill, Port (1991) [11] и Globus (1992) [9], где рассматриваются фрактальные сети с одним уровнем организации, хотя эти варианты слова фрактал дополняют друг друга. Hameroff (1994) [10] также намекал на описанную выше схему организации: «цитоскелет внутри» каждого нейрона мозга можно рассматривать как фракталоподобный субэлемент в иерархии адаптивных сетей» (стр. 114).

Обсуждение

Многие считают сознание результатом физиологических процессов в мозге. «Поток сознания», возможно, является продуктом изменения картин нервных импульсов, проходящих через невероятно сложную сеть нейронных коммуникаций по синапсам. С этой точки зрения сознание «возникает» из вычислительной деятельности мозга на нейронно-синаптическом уровне. Hameroff (1994) [10] отметил: «механизм сознания может зависеть от понимания организации адаптивных (когнитивных) функций в живых клетках» (стр. 97). Другие предполагают необходимость вмешательства иных (не вычислительных) процессов (Globus, 1992 [9], Penrose, 1994 [13]) или даже введения новых свойств вещества или информации на фундаментальном уровне научного описания (Chalmers, 1995 [4], Seager, 1995, [15]).

Если принимать во внимание уровни организации, лежащие в основе синаптического уровня мозговой активности, нужен какой-то эффективный способ связать действия на разных уровнях. В приведенной выше гипотезе поведение открытой системы на любом уровне организации рассматривается как результат социальных взаимодействий между частично автономными компонентами, каждый из которых способен моделировать аспекты своего окружения. Моделирование считается фундаментальным свойством открытых систем, позволяющим им взаимодействовать творческими и искусными способами. Предполагается, что моделирование и социальная деятельность на каждом уровне интегрируются для создания новых свойств, распознаваемых на более высоких уровнях, включая сознание.

Взаимодействие, наряду с присутствием индивидуальных возможностей для моделирования, может быть источником нового усложнения (комплексности) открытых систем. Структуры, специализации, процессы и организации возникают таким способом, который, по-видимому, был бы невозможен без взаимодействия между отдельными членами с общественным (социальным) потенциалом. Сообщества клеток строят организмы, сообщества муравьев строят сложные муравейники. В человеческом социальном контексте известны системы управления, правосудия, образования, здравоохранения и т. п., возникающие как свойства индивидуальных социальных взаимодействий. Если свормировать концептуальную связь между творческой деятельностью социальных систем и адаптивным поведением нейронных сетей, это улучшит понимание возникающих свойств, включая сознание.

Для соединения уровней может оказаться полезной интеграция концепции открытых систем GST с концепцией нейронных сетей, ведущая к фрактальному объединению адаптивных сетей. Это обеспечивает 2 преимущества.

  • Предлагаемая сетевая организация открытых систем будет источником способностей к обучению и адаптации — это свойство сетевой организации будет иметь вес для наблюдения о том, что открытые системы, по-видимоу, способны «моделировать» свою ситуацию.

  • В предложенной здесь концептуальной схеме сети на всех уровнях четко взаимосвязаны (каждая сеть служит элементов сети вышележащего уровня) для формирования непрерывной организационной структуры и не возникает проблемы межуровневой связи, подобной имеющейся в стандартной GST.

Концепция фрактальных сетей обеспечивает потенциал для более глубокого обсуждения сознания в том смысле, что она не связывает действия более чем на одном уровне организации. Однако, просто добавляя больше уровней сетей, мы не обязательно приблизимся к решению «трудной проблемы» сознания (что является источником эмпирического аспекта сознания? Chalmers, 1995 [4]), поскольку были высказаны сомнения о возможности сетей с одним уровнем демонстрировать понимание всоей вычислительной деятельности (например, Searle, 1990 [16]), не говоря уже о субъективном опыте.

Тем не менее, природа соединений гипотетической фрактальной сети может помочь в понимании взаимодействия предложенных низкоуровневых влияний с сознанием. Penrose (1994) [13] предположил, что «согласованность (когерентность) может быть частью того, что требуется для сознания» (стр. 408), а Hameroff (1994) [10] считает, что цитоплахматические микротрубки могут обеспечить подходящее место для «размывания» между классическим и квантовым подходом. Seager (1995) [15] соглашается с Penrose в том, что «только когерентные системы с множеством частиц сохранят характерные квантово-механические свойства, лежащие в основе подходящих «правил суммирования», которые могут поддерживать квантовую когерентность» и добавляет: «только системы, способные поддерживать квантовую когерентность допускают «психическую комбинацию», где сложные состояния сознания будут ассоциироваться только с такими системами» (сир. 285).

Концепция фрактальных сетей представляется учитывающей возможность межуровневой связи, но на этом этапе неясно, как этого можно достичь или поддерживать. Преимущество концепции состоит в том, что все части сети остаются соединенными между собой и, следовательно, представляют единую сущность, поэтому, хотя на синаптическом уровне функции мозда могут быть смещенные картины деятельности, все же могут существовать непрерывность и коммуникации подуровней в более глобальном смысле, что повышает согласованность.

Есть основания полагать, что сознательны опыт требует той или иной формы «увлечения» или резонансной привязки деятельности на разных уровнях. Поскольку сознательная настороженность не может поддерживаться долго в непрерывном состоянии и перемежается с периодами снижения настороженности, включая сон, это может указывать на периодическую необходимость отсоединения деятельности на разных уровнях, возможно для выполнения восстановительных процедур. При отсутствии согласованности можно было бы предположить, что вычислительные процессы останутся доступными на данном уровне, но, возможно, без полного эмпирического сопровождения.

Хотя гипотеза о фрактальной сети является спекулятивной, она доступна для проверки доступными методами. Фрактальные сети поддаются компьютерному моделированию (Merrill, Port, 1991 [11]), дающему представление об их вычислительных свойствах. Эффект блокировки коммуникаций между сетями на разных уровнях организации также может быть изучен. Это может прояснить допущение о том, что анестезия действует на уровне блокировки работы микротрубок и следующего из этого отключения эффектов квантовой когерентности (Hameroff, 1994 [10]). Было бы интересно также проверить предположение о том, что моделирование на молекулярном и органелльном уровне влияет на возможности моделирования отдельных клеток. Экстраполяция с этих более низких и менее сложных уровней может помочь лучше понять возникновение человеческого сознания.

Литература

[1] Albrecht-Buehler, G. (1985), ‘Is cytoplasm intelligent too?’, Cell & Muscle Motility, 6, pp. 1-21.

[2] Bertalanffy, L.v. (1968), General systems theory (New York: Braziller).

[3] Bray, D. (1995), ‘Protein molecules as computational elements in living cells’, Nature, 376, pp. 307-12.

[4] Chalmers, D.J. (1995), ‘Facing up to the problem of consciousness’, Journal of Consciousness Studies, 2(3), pp. 200-19.

[5] Crick, F. (1989), ‘The recent excitement about neural networks’, Nature, 337, pp. 129-32.

[6] de Quincey, C. (1994), ‘Consciousness all the way down? An analysis of McGinn’s critique of panexperientialism’, Journal of Consciousness Studies, 1(2), pp. 217-29.

[7] Dryden, R. (1980), ‘Visualizing systems’, Kybernetes, 9, pp. 175-9.

[8] Dryden, R. (1991), ‘Networks of social interactions between embryonic cells’, In: Human Biology: an integrative science, Proceedings of the Australasian Society for Human Biology, Volume 4, pp. 1-9 (Nedlands, Western Australia: The Centre for Human Biology).

[9] Globus, G.G. (1992), ‘Toward a noncomputational cognitive neuroscience’, Journal of Cognitive Neuroscience, 4(4), pp.299-310.

[10] Hameroff, S.R. (1994), ‘Quantum coherence in microtubules: a neural basis for emergent consciousness?’, Journal of Consciousness Studies, 1(1), pp.91-118.

[11] Merrill, J.W.L., and Port, R.F. (1991), ‘Fractally configured neural networks’, Neural Networks, 4, pp. 53:60.

[12] Miller, G. (1962), Psychology: the science of mental life (New York: Harper & Row).

[13] Penrose, R. (1994), Shadows of the mind: a search for the missing science of consciousness (Oxford: Oxford University Press).

[14] Popper, K.R., and Eccles, J.C. (1990), The self and its brain (London: Routledge).

[15] Seager, W. (1995), ‘Consciousness, information and panpsychism’, Journal of Consciousness Studies, 2(3), pp.272-88.

[16] Searle, J.R. (1990), ‘Is the brain’s mind a computer program?’, Scientific American, 262(1), pp.20-S.

[17] Velmans, M. (1995), ‘The relation of consciousness to the material world’, Journal of Consciousness Studies, 2(3), pp. 255-65.

Перевод на русский язык

Николай Малых

nmalykh@protocols.ru

1В клеточной биологии — специальный элемент (обычно внутри клетки), выполняющий определенную функцию.

2General systems theory.

3Обсуждение сложностей, связанных с этими терминами приведено в работе Velmans, 1995 [17].

4Обзор нейронных сетей и некоторые их ограничения рассмотрены в работе Crick, 1989 [5].