NDIS RTP Quality Monitor

Chia-Hung Lee
Columbia University
Computer Science
2960 Broadway
New York, NY 10027-6902
USA
cl2208@columbia.edu

Abstract

Owing to the popularity of e-conference and multimedia applications, RTP is been used extensively. Hence, observing the quality of RTP traffic has became more and more important. This project focuses on developing a NDIS intermediate driver under Windows 2000/XP to provide quality information of RTP traffic.

Introduction

Due to the growing of e-conference and multimedia applications, many protocols have been used for transmitting the time base media. RTP is one of the most common used protocols. RTP provides control protocol (RTCP), which can generate feedback of RTP traffic. By monitoring the RTCP packets, we can know the traffic quality information. It can be used for research in order to assure quality-of-service (QoS), or may be used for system manager to monitor the RTP traffic. This project is to develop a RTP quality monitor under Windows 2000/XP and monitor applications. It can be divided into two parts, the driver and monitor application.

The driver for this project is a Windows NDIS intermediate driver. It monitors all RTCP traffic from Network Interface Card (NIC), parses the packet, and sends the quality information to the user-mode monitor application.

This project provides two Windows monitors. One of them is a Windows GUI monitor, the other is a command-line monitor. Both monitors retrieve the RTP quality information from the RTP monitor driver and represent it.

Background

Real-Time Transport Protocol (RTP)

RTP is a protocol designed to support the transmission of time-base media, such as audio and video, over multicast-capable networks. RTP includes payload type identifiers, sequence number, end-of-frame markers, and timestamps to provide lost detection, synchronization, identification. RTP also provides control component, which is Real Time Control Protocol (RTCP).

RTP Control Protocol (RTCP)

RTCP is a protocol designed to provide feedback for RTP. It involves five different packets. They are sender report (SR), receiver report (RR), source description (SDES), BYE and application specific extensions (APP).

Network Driver Interface Specification (NDIS)

Network Driver Interface Specification (NDIS) is a Windows device driver interface that makes a single network interface card (NIC) to support multiple network protocols.

NDIS defines three kinds of drivers, NDIS miniport driver, NDIS intermediate driver and NDIS protocol driver. The driver of the project is a NDIS intermediate driver which sits between the NDIS intermediate driver and NDIS protocol driver in order to monitor each packet pass through it.

This project is mainly focused on monitoring RTCP traffic by NDIS intermediate driver and sends the information back to user-mode application.

Architecture

NDIS Intermediate Driver

>From the graph above, the NDIS intermediate driver sits between the NDIS miniport driver and protocol drivers and in order to integrate the NDIS intermediate driver with the miniport/protocol seamless, we have to implement the interface for both miniport and intermediate driver.

The miniport interface is called a virtual miniport which does not control a physical device directly. Instead, it relies on an underlying miniport driver to deal with the actual physical device.

The upper edge of the virtual miniport binds with the next-higher driver, which can be a NDIS protocol driver or another NDIS intermediate driver. Also, the lower edge of the intermediate driver protocol binds to the next lower driver which can be an NDIS miniport driver or another NDIS intermediate driver.

Monitor Application:

The user-mode monitor application use Windows IO API to communicate with the NDIS driver. When the monitor send the "start" command to the driver, the driver will start to monitor all incoming/outgoing RTCP traffic and stores information in its buffer

The monitor application can send "get information" through the Windows IO API to retrieve the quality information periodically. After getting the necessary data from the driver, the monitor application just simply represent the result by using GUI or text-mode application.

Program Documentation

  • RTP Quality Monitor Driver

  • GUI RTP Quality Monitor

  • Command-Line RTP Quality Monitor
  • Task List

    NDIS Intermediate Driver

  • Parts of the driver are the sample NDIS driver from Microsoft Driver Development Kit.
  • A little piece of IO function is from the Printing Communications Association's tutorial
  • RTP header is from rtptools.
  • Windows GUI Monitor

    Command-line Monitor

    References

    1
    Microsoft Developer Network, Windows Driver Development Sample pass through NDIS driver, Microsoft.
    2
    Printing Communications Association,Extending The Microsoft PassThru NDIS Intermediate Driver Part 1 ,Thomas F. Divine