Network Redirector

The audience who can go through is middle level system engineers , programmers, and one who aspires to understand the network architecture.


In windows everything goes with dll’s , API’s , usermode applications and kernel mode drivers. People at the debugging end only talk in terms of process , PEB, threads, TEB and API call’s. Today I am going to explain about the windows networking I/O model which is vast but interesting.


Everyday , users access files on remote servers , access the shares, access the drives etc. Many of the engineers or system administrators do not think about the troubleshooting aspect of file systems, because it is one of the toughest protocol to understand which is Server Message Block  ( SMB )  . My article will help system engineers to analyze and debug SMB protocol and after reading my blog , every one can have a fair idea about the file operations and they can easily start troubleshooting the issues.


As I said earlier in my post, every component in windows operating system is either a SYS or a DLL . Microsoft has designed the redirector in the form of a driver. The term redirector is used with network because its job is to redirect the request to the destination using TCP stack.


In windows the basic functionality of redirector is used access files from a client to the server .Here client falls into two categories , on which is operating system and other is the client application. This helps engineers while troubleshooting various issues related to file systems which are very complex to resolve.


So typical implementation of client redirector is shown below  ( write diagram )



Network redirector is used to forward the file I/O requests from source / client to destination , either from an custom / user mode application or from windows explorer, the request is then handled by the network redirector and pass the request to the appropriate NDIS interface and down to the NIC card.


Windows Server 2008 R2 Kernel Changes

It was my first public speaking engagement in Singapore SWUG. I had an opportunity to talk about the kernel changes made to the windows 208 R2 . I understand that many IT managers / CEO’s are pretty upset about the windows 2008 R2 and its requirements, but honestly speaking its the best ! . You feel happy only when you understand the engineering done on windows 208 R2 is just AWESOME !.
In my speach i had covered the following
a) Locks : What is a lock with respect to operating system , different types of locks
    — Passive global lock : All user mode locks falls into this category
    — Push Locks : Kernel mode locsk falls into this category such as Mutex, Semaphore
    — Spin Lock : Architecture of spin lock and the disadvantage of it until windows 2008
    — Explained about the CPU locking entire session and not releasing the object
    — Explained how it is overcomed in windows 2008 R2
b) PFN : Page Frame Number
    –Explained what is Virtual memory
    –PFN usage
    –PFN problem : Memroy manager locks entire PFN while working on a particular working set.
    –PFN Lock Removed : only the required pages will be locked by Memory manager.
c) NUMA: Non Uniform Memory Access
   –Explained about NUMA architecture
   –How does CPU scheduler will make use of NUMA
   –Applications which can use NUMA
d) UMS : User mode scheduling
  –Explained what are fibers
  –Explained the problem with the fibers when they spawn user mode and kernel mode and theh problem of returning back to fiber from kernel
  –Explained about UMS
  –Advantage of UMS : now that kernel can keep track of return address / return fiber
Please find the below slides which were used during the presentation.

Telnet Client Windows Server 2008 R2

In earlier operating systems Telnet client was installed and we were using telnet to check the application ports status
eg: telent localhost 80
The above command use to give us an idea whether the application on local host or on remote was opened for communication .
But in windows server 2008 R2 you cannot have the straight answer for telnet. All that you need to do is to install the Telnet client in order to query application port status on local host. I personally use telnet for many occasions which is fastest way to query for any port.
Steps To Install Telnet Client
Though the help options have not been changed