文档详情

跨平台协议无关网络类库的设计与实现.docx

发布:2018-04-23约9.64千字共4页下载文档
文本预览下载声明
跨平台协议无关网络类库的设计与实现蒋锦鹏1,包丛笑2,李星1(1.清华大学电子工程系,北京 10084; 2. 清华大学网络中心,北京 10084)摘要:虽然socketAPI是目前网络编程接口的事实标准,但它也存在一些的不足:接口复杂;使用不方便;协议无关性差;跨平台能力不强。针对这些问题,研究了跨平台和协议无关网络编程技术,并使用C++实现了一个跨平台协议无关网络类库。它可以同时支持Windows和Linux操作系统,支持以协议无关的方式进行网络编程,支持单播和ASM/SSM组播,支持UDP和TCP,支持基于TCP通信的标准输入输出流。通过在一个实际网络测量系统中的应用,验证了本类库达到了跨平台性和协议无关性的设计目标。 关键词:跨平台;协议无关;网络编程接口;输入输出流;类库中图分类号:TP393文献标识码:ADesign and Implementation of a Cross-platformProtocol-independent Network ClassLibraryJIANG Jin-peng1, BAO Cong-xiao2, LiXing1(1. Department of Electronics Engineering, Tsinghua Univ., Beijing 100084,China; 2.Network Center, Tsinghua Univ., Beijing 100084,China)Abstract:AlthoughthesocketAPIisthedefactstandardofnetworkprogramminginterfacenowadays,itsuffersfromsomeshortagesashigh complexity of interface, poor support for protocol-independent programming, and low cross-platform capability. Concerning theseproblems,cross-platformandprotocol-independentnetworkprogrammingtechniquesarestudied.Furthermore,across-platformprotocol-independent network class library is implemented with C++, which supports both Windows and Linux,protocol-independentnetworkprogramming,unicast,ASMandSSMmulticast,supportsbothUDPandTCPtransmission,andstandardI/OstreambasedonTCPcommunication.Itvalidatedthatthisclasslibraryhasaccomplishedthecross-platformandprotocol-independentdesigngoalthrough application in a practical network measurementsystem.Keywords: cross-platform; protocol-independent; network API; iostream; classlibrary1引言1983年socketAPI随着BSD4.2[1]系统一起发布,发展到现在已经成为网络编程事实上的标准。在几乎所有主要操作系统上,网络编程的底层接口都源自socketAPI。许多高级编程语言(如Java或C#)都在自己的标准库中加入了对网络编程的支持,但这些支持通常仅仅是对底层socketAPI的简单封装,并没有引入革命性的变化。在二十几年的发展历程中,socketAPI经历了互联网的迅猛发展,各种新技术、新协议、新应用层出不穷。由于 socketAPI接口设计的前瞻性和灵活性,在一次次变革的浪潮中,socketAPI仅仅通过引入一些小的修改就可以适应新技术。例如仅仅通过增加IPv6地址结构和一些socket选项就适应了IPv6[2]和组播编程,而没有修改任何一个socketAPI接口定义。虽然现在socketAPI取得了巨大的成功,但它也逐渐暴露出一些不足:(1)接口多而复杂,不方便记忆和使用。由于socketAPI需要保持向前兼容,一些不推荐使用的结构与函数仍然在被大量使用。setsockopt和getsockopt接口虽然带来了很强的通用性和可扩展性,但使用起来非常不方便不直观。图1 UML类图(2)协议无关性差。编写同时支
显示全部
相似文档