Transport Driver Interface

Transport Driver Interface (TDI) — общий интерфейс для драйверов (таких как Windows 2000 redirector и server) для общения с различными сетевыми транспортными протоколами. Это позволяет сервисам оставаться независимыми от транспортных протоколов.

В отличие от NDIS, нет драйвера для TDI, который является спецификацией для передачи сообщений между двумя уровнями в сетевой архитектуре.

Microsoft разработали TDI чтобы обеспечить большую гибкость и функциональность, чем это обеспечивали существующие интерфейсы (такие как Winsock и NetBIOS). Весь транспорт в Windows 2000 имеет прямой интерфейс к TDI. Это позволяет TDI обеспечивать последовательный интерфейс транспортных протоколов.

Спецификация TDI описывает набор функций и механизмов вызова, с помощью которых транспортные драйверы и TDI клиенты общаются.

Transport Driver Interface (TDI) — разработан SUN, IBM и Microsoft, TDI программный интерфейс между протоколами и приложениями других уровней в Windows NT network model.

Программная модель TDI

  • Программная модель TDI очень похожа на модель Winsocket. TDI-клиенты реализуют следующие шаги для установления соединения с удаленным сервером:
    1. TDI-клиент формирует пакет TDI IRP типа address open для размещения адреса. TDI-транспорт возвращает файловый объект, известный как объект-адрес, представляющий адрес. Этот шаг эквивалентен использованию функции bind в Winsocket.
    2. TDI-клиент размещает и формирует пакет TDI IRP типа connection open, и TDI-транспорт возвращает файловый объект, известный как объект-соединение, представляющий соединение. Этот шаг эквивалентен использованию функции socket в Winsocket.
    3. TDI-клиент ассоциирует объект-соединение с объектом-адресом с помощью пакета TDI IRP типа associate address.
    4. TDI-клиент, принимающий удалённое соединение, выпускает TDI IRP пакет типа listen, определяющий число соединений, поддерживаемых для объекта-соединения, и затем выпускает пакет TDI IRP типа accept, который завершается, когда удалённая система установит соединение. Эта операция эквивалентна использованию функций listen и accept в Winsocket.
    5. TDI-клиент, который хочет установить соединение с удалённым сервером, выпускает TDI IRP пакет типа connect, определяя объект-соединение, который TDI-транспорт завершает, когда установится соединение. Выпуск TDI IRP пакета типа connect эквивалентно использованию функции connect в Winsocket.

Главные черты TDI

  • Асинхронные операции: Большинство операций в TDI (режим ядра) — это асинхронные операции; это значит, что они используют обратный вызов процедур, который обеспечивают TDI клиенты, для определения любых событий, когда-либо происходивших в сети.
  • Гибкая схема адресации: Одна из черт и достоинств использования TDI это то, что TDI предлагает гибкую схему адресации. TDI имеет специальный и расширяемый механизм, который может быть использован в целях поддержки, использования и идентификации различных форматов адресации.
  • Уведомление о событии: Это специальная черта TDI, с помощью которой определяется используемая схема, и транспорты могут предупреждать клиентов о любом интересующем событии в сети.
  • 32-битная адресация: Другая черта интерфейса транспортных драйверов — это то, что и транспорты, и клиенты — оба 32 разрядные.
  • Внутренняя буферизация: Эта черта позволяет TDI транспортировать в буфер полученное от клиентов и посылать во внутренний буфер. Эта внутренняя буферизация позволяет TDI клиентам запрашивать и устанавливать размер внутреннего буфера, получая уведомления о доступном пространстве буфера и просматривать данные из буфера даже перед тем, как получить их.
  • Уведомление о событии (Plug & Play): Интерфейс транспортного драйвера определяет конкретную схему, с помощью которой транспорты (in case of Windows 2000 & later versions) могут уведомлять TDI клиента о различных событиях PnP, таких как удаление или добавление соединений и другое.

Ссылки

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.