摘要 | 第1-6页 |
ABSTRACT | 第6-8页 |
目录 | 第8-11页 |
第一章 引言 | 第11-15页 |
·课题背景 | 第11页 |
·Windows下TCP协议栈的开发之路 | 第11-14页 |
·如何开发Windows下的TCP协议栈 | 第11-13页 |
·主要技术及原理 | 第13-14页 |
·论文各个部分的主要内容 | 第14-15页 |
第二章 Windows下的的网络协议驱动开发 | 第15-25页 |
·网络驱动程序 | 第15-16页 |
·NDIS协议驱动程序 | 第16-25页 |
·协议DriverEntry及其初始化 | 第17-18页 |
·下边界面向无连接的协议驱动程序的ProtocolXxx函数 | 第18-20页 |
·协议驱动程序查询和设置操作 | 第20页 |
·协议驱动程序数据包管理 | 第20-22页 |
·下边界面向无连接的中间层驱动程序接收数据 | 第22-23页 |
·从面向无连接协议驱动程序发送数据包 | 第23-25页 |
第三章 传输驱动接口(TDI) | 第25-32页 |
·传输驱动接口(TDI) | 第25-26页 |
·TDI文件对象 | 第26-28页 |
·代表传输地址的文件对象 | 第26-28页 |
·代表连接端点的文件对象 | 第28页 |
·代表控制信道的文件对象 | 第28页 |
·TDI传输驱动程序例程 | 第28-29页 |
·核心模式客户交互 | 第29-31页 |
·TDI请求及事件 | 第31-32页 |
第四章 TCP协议 | 第32-42页 |
·前言 | 第32页 |
·TCP协议 | 第32-35页 |
·TCP通过以下方式提供可靠性 | 第32-33页 |
·TCP首部 | 第33-35页 |
·TCP连接的建立和终止 | 第35-38页 |
·建立连接协议 | 第35页 |
·连接终止协议 | 第35-36页 |
·连接建立的超时 | 第36页 |
·最大报文段长度MSS | 第36页 |
·TCP的半关闭 | 第36页 |
·2MSL连接 | 第36页 |
·平静时间 | 第36-37页 |
·FIN WAIT 2状态 | 第37页 |
·复位报文段 | 第37页 |
·同时打开 | 第37页 |
·同时关闭 | 第37页 |
·TCP选项 | 第37-38页 |
·TCP的超时和重传 | 第38-39页 |
·往返时间测量 | 第38页 |
·拥塞避免算法 | 第38-39页 |
·快速重传和快速恢复算法 | 第39页 |
·ICMP差错 | 第39页 |
·重新分组 | 第39页 |
·TCP的坚持定时器 | 第39-40页 |
·TCP的保活定时器 | 第40页 |
·TCP的一些性能 | 第40-42页 |
·路径MTU发现 | 第40页 |
·长肥管道 | 第40页 |
·窗口扩大选项 | 第40-41页 |
·时间戳选项 | 第41-42页 |
第五章 Windows下的TCP协议开发 | 第42-61页 |
·前言 | 第42页 |
·NDIS接口实现 | 第42-46页 |
·注册协议驱动 | 第43-44页 |
·ProtocolXxx函数实现 | 第44-46页 |
·TDI接口 | 第46-53页 |
·注册TDI传输驱动程序 | 第47页 |
·TdiDispatchXxx函数 | 第47-50页 |
·核心模式请求与TdiDispatchInternelDeviceControl | 第50-53页 |
·TCP协议流程设计 | 第53-59页 |
·主要数据结构设计 | 第53-55页 |
·接口设计 | 第55-57页 |
·功能设计 | 第57-59页 |
·测试工具 | 第59-61页 |
·TDI客户端 | 第59-60页 |
·测试用应用程序 | 第60-61页 |
第六章 从Linux下的TCP协议栈到Windows下的TCP协议栈 | 第61-75页 |
·前言 | 第61页 |
·数据结构设计 | 第61-63页 |
·当前连接状态结构 | 第61-62页 |
·请求状态信息结构 | 第62页 |
·缓存管理结构 | 第62页 |
·连接管理结构 | 第62-63页 |
·其它数据结构 | 第63页 |
·接口实现 | 第63-68页 |
·建立连接接口 | 第63-65页 |
·断开连接接口 | 第65页 |
·设置监听接口 | 第65-66页 |
·接受外部连接接口 | 第66页 |
·发送数据接口 | 第66-67页 |
·接收数据接口 | 第67-68页 |
·下层接收数据接口 | 第68页 |
·发送模块实现 | 第68-70页 |
·判断是否发送一个数据包 | 第68-69页 |
·添加TCP首部 | 第69页 |
·处理TCP选项 | 第69页 |
·发送一个数据包 | 第69-70页 |
·重传 | 第70页 |
·其它发送相关操作 | 第70页 |
·接收模块实现 | 第70页 |
·定时器实现 | 第70-72页 |
·定时器初始化 | 第71页 |
·定时器设置 | 第71页 |
·取消定时器 | 第71-72页 |
·管理定时器 | 第72页 |
·缓存管理 | 第72-75页 |
·分配内存 | 第73页 |
·释放内存 | 第73-74页 |
·内存拷贝 | 第74页 |
·管理内存 | 第74-75页 |
第七章 总结和期望 | 第75-78页 |
·发送/接收数据测试 | 第76页 |
·存在问题与期望 | 第76-78页 |
参考文献 | 第78-79页 |
致谢 | 第79页 |