Svoboda | Graniru | BBC Russia | Golosameriki | Facebook

Для установки нажмите кнопочку Установить расширение. И это всё.

Исходный код расширения WIKI 2 регулярно проверяется специалистами Mozilla Foundation, Google и Apple. Вы также можете это сделать в любой момент.

4,5
Келли Слэйтон
Мои поздравления с отличным проектом... что за великолепная идея!
Александр Григорьевский
Я использую WIKI 2 каждый день
и почти забыл как выглядит оригинальная Википедия.
Статистика
На русском, статей
Улучшено за 24 ч.
Добавлено за 24 ч.
Что мы делаем. Каждая страница проходит через несколько сотен совершенствующих техник. Совершенно та же Википедия. Только лучше.
.
Лео
Ньютон
Яркие
Мягкие

Из Википедии — свободной энциклопедии

XDR
Название External Data Representation
Уровень (по модели OSI) Представления
Семейство TCP/IP, ONC
Назначение протокола Стандартизация формата данных
Спецификация RFC 4506 / STD 67
Разработчик Sun Microsystems

XDR (англ. External Data Representation - внешнее представление данных) — международный стандарт передачи данных в Интернете, используемый в различных RFC для описания типов. XDR позволяет организовать не зависящую от платформы передачу данных между компьютерами в гетерогенных сетях.

External Data Representation (XDR) — это стандарт IETF с 1995 года. Он позволяет данным быть упакованными не зависящим от архитектуры способом, таким образом, данные могут передаваться между гетерогенными компьютерными системами.

  • Преобразование из локального представления в XDR называется кодированием.
  • Преобразование из XDR в локальное представление называется декодированием.
  • XDR выполнен как портативная (переносная) библиотека функций между различными операционными системами и так же не зависит от транспортного уровня.

Среди использующих XDR программ можно назвать следующие:

Типы данных в XDR

  • boolean
  • int (32-битное целое число)
  • hyper (64-битное целое число)
  • float
  • double
  • enumeration
  • structure
  • string
  • массивы фиксированной длины
  • массивы переменной длины
  • неформатированные («сырые») данные

Мотивация использования XDR

Разные компьютеры могут иметь разное внутреннее представление информации. Например, 32-битный Integer имеет 2 возможные формы представления:

  • Порядок байтов от старшего к младшему (Motorola 68000)
  • Прямой порядок байтов (Intel 80x86)

Для некоторых функций WinSock их аргументы (то есть, параметры функций) должны храниться в обратном порядке.

  • Сервер и клиент могут обмениваться разными типами данных.
  • Если сервер и клиент выполняются на двух соответствующих машинах, используя разное внутреннее представление данных, то они должны согласовывать точно представление всех данных, передаваемых между ними.
  • Sun Microsystems разработала external data representation (XDR), который определяет представление для различных типов данных (integer, enumeration….)
  • XDR стал стандартом де-факто для большинства клиент-серверных приложений:

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

Типы данных в XDR

XDR указывает представление для большинства типов данных в C:

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

Программная поддержка использования XDR

  • XDR определяет представление для каждого типа данных.
  • Например, 32-битный integer имеет порядок байтов от старшего к младшему.
  • Для содействия программистам XDR обеспечивает библиотеку стандартных программ для конвертирования представления данных.

Посылка сообщения в XDR

  • Посылаемое сообщение может состоять из нескольких пунктов данных (items).
  • Например, сообщение содержит информацию о студенте. Оно состоит из трёх пунктов:

— имя (строка символов) -ID (целое) -совокупный GPA (floating-point number)

  • Перед посылкой сообщения программа (клиент или сервер) конвертирует всю информацию пунктов из внутреннего представления в XDR.
  • Шаги конвертирования
    1. Предоставление буфера для хранения всей информации сообщения, которая должна быть послана.
    2. Вызов xdrmem_create() для инициализации потока XDR.

Например: xdrmem_create() возвращает указатель на пустой поток.

    1. Вызов стандартной программы в XDR для преобразования каждого пункта информации. Она будет дописывать закодированную информацию в конец потока следующим образом:
       *#* помещать закодированную информацию в следующее доступное место в буфере
       *#* обновлять внутренний указатель на поток, помещая его на новое доступное свободное место 
      • Например, конвертирование 32-битного целого:
    1. После кодирования всех пунктов сообщения это сообщение посылается.

Стандартные программы преобразования в XDR

Получение сообщения в XDR

  • Когда программа получает сообщение в XDR, она конвертирует каждый пункт данных в сообщении из XDR в своё внутреннее представление.
  • Шаги:
    1. Вызов xdrmem_create() для инициализации потока XDR , указав XDR_DECODE, как четвёртый аргумент.
    2. Помещение полученного сообщения в буфер.
    3. Вызов подходящей стандартной программы преобразования для декодирования каждого пункта данных полученного сообщения.

Например, декодирование 32-битного целого:

Ссылки

Эта страница в последний раз была отредактирована 25 ноября 2023 в 11:45.
Как только страница обновилась в Википедии она обновляется в Вики 2.
Обычно почти сразу, изредка в течении часа.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).