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.
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.
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.
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.
NDIS Intermediate Driver
Windows GUI Monitor
Command-line Monitor