Font Size: a A A

Development Of TCP Stack Under Windows

Posted on:2008-11-13Degree:MasterType:Thesis
Country:ChinaCandidate:Y LiFull Text:PDF
GTID:2178360215982675Subject:Computer application technology
Abstract/Summary:PDF Full Text Request
When TCP applied to wireless environment, its congestion control arithmetic become inapplicable because of the packet lost is caused by wireless error almostly not by congestion, so the congestion control arithmetic need revise by a new arithmetic. We needed to modify TCP stack source for test the new arithmetic under Windows environment. But the TCP stack of the system is not open-source, so we must develop a TCP stack under Windosw platform by ourselves.This paper mainly introduced the technology, material method and the implementing process of us developing the TCP stack, flow designment of every part, function of every module and unitary design implementation.There are detail instruction and regulation for protocol driver devemopment in Windows Driver Developemnt Kit. According to the instruction of DDK, we can develop a protocol driver which low interface conform Network Driver Interface Specification(NDIS), so we needn't to care about bottom NIC driver. And its high layer interfacer conform Transport Driver Interface (TDI) regulation, so we needn't care about high layer application. For these reasons, we choose NDIS and TDI for our specification of whole high-low-layer interfaces.TCP protocol supports connection-oriented service for application to insure the packet on internet of being received intact, correct and reliable. If data is scathing or lost, TCP will retransmitted it, application layer don't know this. To implement this complex process, need a plenty of codes supporting. We designed main data structure, high-low-layer interfaces and function modules according to TCP theory, but it's still very hard to come true on coding. Accturlly there are many open-source TCP stack on internet, such as BSD TCP/IP stack, uC/IP, LwIP, uIP, TinyTcp stack, and so on. Then the idea of transplantation come to our brains.After much compare and analyse, we choose the TCP stack of Linux Kernel 2.4.20.48 for the reference. Because there are big differences between Linux system mechanism and Windows system, most of the sources cound't be transplanted directly. But we designed our own flow according to the implementing flow of the protocol stack. We conbined it with DDK, then found a next way to continue.Our TCP stack haply can divide to several parts following. TDI interface, NDIS interface, TCP high layer interface, TCP low layer interface, send module, recerve module, timer and memory management. Every part has its special function, commit different opetates. Thereinto, TDI interface is the interface which TCP interact with high layer, NDIS interface is the interface which TCP interact which bottom driver, send module accomplish the whole send process, receive module accomplish the whole receive process, timer control the wait time of related operate, memory management module make the use of the memory more effective. These parts cooperate, form the whole TCP stack.Out TCP stack is not perfect, and need more modification, but the harvest we gain today is not easy, deserve my prond of it. And I hope we can get larger harvest in future.
Keywords/Search Tags:TCP, NDIS, TDI, TRANSPORT LAYER, CONNECTION-ORIENTED, PROTOCOL DRIVER
PDF Full Text Request
Related items