基于vc++开放可编程网络控制件和转发件之间通信
正 文 目 录
摘要 3
Abstract 4
第一章 绪论 5
1.1 背景介绍 5
1.2 要解决的问题 6
1.3目的意义 6
1.4 论文结构 7
第二章 关键技术 7
2.1 VC++ 7
2.2 Socket 编程原理 9
2.2.1 进程通信 9
2.2.2 服务方式 11
2.2.3 客户/服务器模式 12
2.2.4 套接字类型 13
2.2.5 基本套接字系统调用 14
第三章 程序实现和演示 18
3.1 在VC++ 6.0 中新建工程 18
3.2 菜单栏的实现 19
3.3 FE与CE之间通信的实现 22
3.4 即时信息框的实现 28
第四章 经验总结与体会 30
参考文献 31
摘要:本次毕业设计的主要内容是用VC++编程及Socket 编程实现开放可编程网络中控制件和转发件的通信及即时信息框。围绕这个目标,本文首先介绍支持转发和控制件分离(ForCES)的IP QoS路由器技术研究,然后介绍Socket 编程和VC++ 6.0 开发工具及其主框架的实现,接着具体描述开放可编程网络中控制件和转发件的通信和即时信息框的实现,最后是本人在这次毕业设计过程中的一些经验总结和体会。
关键词:转发和控制件分离 套接字编程 通信 即时信息框
Abstract: The main content of this diploma project is to realize the communication between control elements and forwarding elements and instant information box in open programmable networks. In this thesis, the basic technology of IP QoS routers supporting Forwarding and Control Separation (ForCES) is introduced firstly. Secondly, I introduce the VC ++6.0 development tool, socket programming, and the implementation of the main frame. Thirdly, I present the implementation of communication between control elements and forwarding elements and the instant information box. Finally, I summarize the work in this graduation project.
Keyword: ForCES, socket programming, communication,the instant information box
第一章 绪论
1.1 背景介绍
转发和控制分离(Forwarding and Control Separation,ForCES)[2] 是IETF 路由领域(Routing Area)的一个工作组,它专门研究开放编程的IP路由器的体系结构和协议问题,是当前开放可编程网络研究最受关注的研究组织。ForCES基本思想是把IP路由器分成转发件(Forwarding Elements,FE)[2]和控制件(Control Elements,CE), 认为IP路由器可由多个(可达几百个)FE、多个CE和连接他们的ForCES协议构成。当前IETF ForCES工作组已经完成了ForCES需求(ForCES Requirements, RFC3654)[4]和基本完成了ForCES框架。通用路由器管理协议(General Router Management Protocol (GRMP))是我们所提交给IETF ForCES工作组的互联网草案(Internet-Draft) 。它作为三个ForCES的候选协议之一,已和另外两个候选协议(FACT and Netlink2)一起初步合并成正式的ForCES协议。
ForCES体系结构和模型主要在ForCES Requirements (RFC3654)和 ForCES Framework中定义。一个满足ForCES标准的网络组件(Network Element,NE) 其核心具有如下图所示结构。
图中,一个ForCES NE内有至少一个或多个冗余用的控制件CE、有可多达几百个的转发件FE,它们间的联系通过ForCES协议完成,这个连接面称为Fp参考点。Fi/f为各个FE的网络接口参考点; Fr为冗余CE连接参考点,当前ForCES暂不考虑该点的技术问题。
FE内的体系结构主要由FE模型定义,FE基本结构如下图所示 。
图2. ForCES FE基本结构
其中FE内QoS资源模块的描述统一标称为ForCES FE 逻辑功能块LFB,LFB及它的属性都是可以由CE通过ForCES协议进行控制的,各个LFB之间通过数据通道(Datapath)相互连接,该连接关系也是由CE经过ForCES协议定义,以形成不同的LFB拓扑结构、进而实现动态资源配置以完成各种不同的IP类型服务。典型的LFB如分类器(Classifier)、调度器(Scheduler)、IPv4 或 IPv6 转发件(Forwarder)等。
1.2 要解决的问题
开放编程路由器软件分成转发件和控制件两部分,分别在不同的计算机上执行。顾名思义,转发件用来转发从网络上收到的数据报,控制件用来控制转发件的功能和查询转发件的信息。本次毕业设计主要是实现开放可编程网络中控制件和转发件的通信。首先要实现主框架的开发,重点在菜单栏的设计上,然后编程实现CE和FE之间的通信过程,用Socket编程来实现,接着是即时信息框的开发,这方面内容网上有很详细的文档资料,所以只要做些细节上的编程即可,最后就是消息在即时框中的显示。
1.3目的意义
支持转发和控制件分离的路由器是下一代路由器发展的一个重要方向,它通过使控制件和转发件分离,实现网络功能的快速配置和重组,从而方便网络升级及服务层新业务的展开,并降低运营成本和风险。通过此次毕业设计,学习了VC++和Socket编程知识,能够熟练使用VC++ 6.0软件开发工具。
1.4 论文结构
本课题第二章主要介绍了这次毕业设计的关键技术:VC++,Socket 编程;第三章具体讲解程序的实现和演示;第四章总结了个人在这次毕业设计中的经验体会。
第二章 关键技术
本次毕业设计主要使用到VC++ 6.0实现程序的编写和调试运行,Socket编程实现开放可编程网络中控制件和转发件的通信。下面就这两方面把相关知识介绍一下。
2.1 VC++
WINDOWS应用程序一定要有WinMain函数,该函数用来完成一些特殊的任务,像创建程序的主窗口,主窗口用来处理消息的代码。MFC[3]将WinMain隐藏在框架中,不像写SDK程序时可以很容易的找到它。
WINDOWS采用的消息处理机制也交给了程序框架,所以不必担心如何使这些消息和代码联系起来。并且WINDOWS定义好了一些消息,当窗口被创建时系统就会发送WM_CREATE消息,当点击鼠标左键时系统便会发送WM_LBUTTONDOWN消息,当用户按下键盘时系统会发送WM_CHAR消息,当用户关闭窗口时系统会发送WM_CLOSE消息,当用户进行菜单项选择或单击按钮时系统回发送WM_COMMAND消息,什么都不做系统还会发送WM_TIMER消息。先不说别的,先搞清出这几个消息再说。从MSDN中可以很方便的找到关于这几个消息的帮助文档。
WINDOWS提供通用的图形设备接口(GUI)[1],通过调用(GDI)函数和硬件打交道,不必理会设备环境,WINDOWS会自动将设备环境结构映射到相应的物理设备,这就是设备无关性。
动态连接库(DLL)[3]应该是代码重用的典型例子(不知道可不可这样说),把一些模块、自己新编的类单独调试并编译成DLL,既增加代码的可读性也提高了程序模块的灵活性。
VC++的源程序浏览器[3]能够使我们从类或函数的角度来了解或编辑程序,而不是直接从文件入手。在看别人的源代码时如果能熟练的使用源代码浏览器将会事倍功半。源程序浏览器主要的查看状态有以下几种:
1)Definitions and References--选择任何函数、变量、类型、宏定义可以看到它在项目中的定义,并且在何处和什么地方用到它。
2)Call Graph/Caller Graph--对于所选择的函数,给出它的调用与被调用函数的图示。
3)Derived Class Graph/Base Class Graph--给出类层次关系的图形表示,可以看到所选择的类的派生类
上一篇:
创投公司创业投资论文(2003doc)
下一篇:
试题库管理系统毕业论文