TCPIP 套接字编程的分析与实现
无需注册登录,支付后按照提示操作即可获取该资料.
TCP/IP参考模型是目前最为成熟的网络参考模型。它为今天网络技术的迅速发展立下了汗马功劳。20世纪80年代早期,远程规划局(ARPA)资助加利福尼亚大学的一个研究组,将TCP/IP第一次实现在UNIX系统上,这就是广为人知的套接字socket接口。网络编程的基石是套接字,一个套接字是通信的一端。在这一端上你可以找到与其对应的一个名字,一个正在被使用的套接字都有它的类型和与其相关的任务。
关键字
TCP/IP 套接字 客户端/服务器 防火墙
Abstract
TCP/IP model is the most mature refernced model in these days. It make the great contribution to the nettech today. In the eatly days of 20 Cen. 80 days, with the satke of ARPA, a workgroup in California University realize the TCP/IP on UNIX system the first time, which is the famous Socket interface. Socket is the headstone of the networkware programme, and a socket is a side of the communication. A opposite name could be found at the side, and a socket which is used has its style and its opposite mission.
Keywords
TCP/IP Socket Client/Server Firewall
前言
VoIP是指利用IP网络传送话音的技术,也称网络电话或IP电话。而VoIP网关是整个VoIP系统中的关键设备,它负责在传统的电话交换网络和Internet之间架起一坐桥梁,它可提供包括NO1信令、SS7信令、H.323、ISDN、CO环路等多种接入方式。
本文主要介绍VoIP网关软件系统中的低层socket模块的设计过程,并对VoIP网关进行了详尽的描述,由于本文的意图是讨论在H323协议下的通过代理功能来实现打ip电话,所以H.323协议栈也是本文介绍的重点。本文的第一章是对VoIP技术和VoIP网关进行相应的描述和介绍;第二章是对sock的基础理论知识和具体的信令流程进行描述。第三章是对代理底层socket的详细设计(系统的实现是依赖于其它的模块支持的基础上的,所以在这也对其它相关的模块进行了简单的描述,阐述了本模块在系统中的地位和与其它模块的关系);第四章是在调试过程中所遇到的具体问题和整个系统设计后的一些个人心得。所有的代码都包含在附录中,整个模块的代码在KVP6033的硬件系统基础上运行得以通过。
本文所编写的代码均采用C语言描述,因为经过编译后的代码是运行在vxworks操作系统下的,所以它其中调用了vxworks操作系统里的一些库函数,vxworks操作系统是一种多任务的实时嵌入式系统,而采用的编译环境是在Tornado下进行编译的,有关vxworks操作系统和Tornado编译环境在这很少提到,读者想了解其详细细节,可以查阅其它的一些相关资料。
由于时间和精力有限,本文主要只涉及到上层软件部分,有关一些芯片的底层驱动只是略有涉及。也由于作者的知识和阅历非常有限,所以文章中肯定有不少错误和遗漏之处,肯请读者批评指正。
第一章NAT/防火墙网络环境下的VoIP应用
1.1 概述
随着H.323、SIP、MGCP等相关协议体系的不断发展和逐渐完善,VoIP以其固有的多方讨好的姿态,正在获得越来越多的用户、服务供应商、以及设备制造商的青睐。
VoIP是在无QoS保证的IP网络上传输语音信息、以实现端到端语音通信的一系列技术、协议及应用的统称。这里所说的IP网络可以是LAN、MAN,也可以是基于多项复杂技术由多个LAN、MAN互联而形成的WAN,甚至可以是Internet。任意两个端点之间只要可以通过IP协议进行互联,就应该可以实现VoIP的应用。
下面主要描述在带有NAT或防火墙的IP网络环境下实现VoIP应用的相关问题及技术细节,并提出相关建议和解决方法。
1.2 技术背景
近年来,出于安全性和IPv4地址空间缺乏的考虑,大多数服务供应商和企业都在自己的网络边缘部署了防火墙并使用了NAT技术。在这样的网络环境下实现VoIP应用,需要考虑很多方面的问题。下面简单介绍VoIP、防火墙以及NAT的技术原理,并指出在这样的环境下VoIP面临的难题。
1.2.1 H.323 VoIP
Voice over IP,即在IP网络上的语音系统。通俗的讲,就是通过IP网络打电话
目前,在IP网络上实现语音通信主要有以下几个协议体系:H.323、SIP、MGCP。其中SIP和MGCP的体系结构还不够完善,所以在VoIP中的应用还不是很广泛。但是SIP的开放、简单、易实现等特性使得该体系有着强大的生命力,并有取代H.323的趋势。
H.323体系由ITU-T提出,并发表了一系列建议。H.323系列建议定义了在无业务质量保证的Internet或其它分组网络上实现多媒体通信的协议及规程。H.323体系的完善以及ITU-T浓厚的传统语音通信的技术背景使得该体系成为目前最为广泛部署的VoIP技术体系。本文档主要讨论H.323体系。在带有NAT或防火墙的IP网络环境下实现VoIP应用的讨论上,SIP、MGCP与H.323面临同样的问题。
1)H.323系统组件
H.323系统的组件主要包括终端Terminals、网关Gateways、网守Gatekeepers、多点控制器Multipoint Controllers、多点处理器Multipoint Processors、以及多点控制单元Multipoint Control Units。
H.323终端提供了在点到点或多点会议中进行语音和可选视频和数据通信的能力,与其它H系列终端、GSTN或ISDN 语音终端、GSTN或ISDN数据终端的通信通过网关来实现。网守主要完成许可控制和地址翻译功能。多点控制器、多点处理器以及多点控制单元提供多点会议支持。
目 录
摘要 2
Keywords 2
前言 4
第一章NAT/防火墙网络环境下的VoIP应用 4
1.1 概述 4
1.2 技术背景 4
1.2.1 H.323 VoIP 5
1.2.2 防火墙简介 11
1.2.3 NAT简介 12
1.2.4 如何在H323中穿越防火墙和NAT 13
第二章 socket编程 15
1.1 Socket基础 15
1.2 TCP/IP协议族 15
1.3 Socket常用的数据结构 15
1.4 客户机/服务器模型 17
1.5 Socket 编程接口的系统调用 19
第三章 为实现代理功能--底层socket编程的详细设计 26
第四章 程序调试及心得 40
4.1 程序调试 40
4.2 个人心得 42
致 谢 42
参考书目 42