资源描述
宁波大红鹰学院网络协议与编程课程论文题目: TCP/IP网络协议及其应用编程学院:信息工程学院 专业:计算机科学与技术班级: 学号: 姓名: TCP/IP网络协议及其应用编程林婉君+(宁波大红鹰学院 信息工程学院, 浙江 宁波315175)TCP/IP network protocol and its application programmingLinWan-Jun(Ningbo DaHongYing college information engineering institute, zhejiang ningbo 315175)Abstract:Network protocol is a set which for computer network exchange data and establish standards, rules or agreed .Different computers must use the same network between agreement communication can proceed. The most common network protocol: TCP/IP protocol, IPX/SPX agreement, NetBEUI agreement. And the TCP/IP protocol is the most basic agreement on the Internet, the Internet is the foundation of the Internet. TCP/IP protocol includes the transport layer of the TCP protocol and the network layer of the IP protocol.And it defines how the electronic devices connected to the Internet, and the defines standards.how the data transmission between them. The network application programming which based on TCP/IP also is widely used. But the network program of work patterns of different, communication between the source and purpose of the difference of mutual recognition, network programming has its particularity. Windows Sockets is a network programming mechanism used in Windows environment .It supports a variety of agreement network programming interface, so it used widely.key words: Network protocol; TCP/IP protocol; Network programming摘要:网络协议是为了计算机网络进行数据交换而建立的标准、规则或约定的集合,不同的计算机之间必须使用相同的网络协议才能进行通信。目前常见的网络协议有:TCP/IP协议、IPX/SPX协议、NetBEUI协议等。而TCP/IP协议是Internet上最基本的协议,是Internet国际互联网络的基础。TCP/IP协议由传输层的TCP协议和网络层的IP协议组成,并定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。而基于TCP/IP协议的网络编程的应用也十分广泛。但是网络程序的工作模式的不同,通信的源端和目的端之间的相互识别的差异,网络编程具有其特殊性。Windows Sockets 就是在windows环境下使用的一套网络编程机制。它支持多种协议的网络编程接口,因此被广泛的应用。 关键字:网络协议;TCP/IP协议;网络编程1 引言1.1 国内外现状随着Internet的普及,作为因特网工作基础的TCP/IP协议及其应用编程已成为IT从业人员的基本知识和技能。TCP/IP协议属于网络协议的一种,它定义了电子设备如何接入互联网,以及数据如何进行传输。它可以准确的定位传输的电子设备的地点,等同于我们现实生活中的邮差。此协议是互联网中的基本协议,但是在私网中,它也被用来作为通信协议。显而易见在如今网络如此发达的今天,这个协议显的非常重要,而且影响非常广泛。这种用TCP/IP协议在互联网络中的规模迅速扩大,逐渐成为了全球性的国际网络协议。2TCP/IP协议2.1 TCP/IP协议简介TCP/IP协议1是“transmission Control Protocol/Internet Protocol”的简写,中文译名为传输控制协议或互联网络协议。TCP/IP是INTERNET的基础协议,也是一种电脑数据打包和寻址的标准方法。它也是一种网络通信协议,规范了网络上的所有通信设备,特别是一个主机与另一个主机之间的数据传送方式以及往来格式。2.2 TCP/IP协议层次概述从协议的分层模型来讲,TCP/IP由四个层次组成:应用层、传输层、网络层、网络接口层。 TCP/IP协议采用了4层的层级结构,并不完全符合OSI的七层参考模型,每一层都呼叫它的下一层所提供的网络,来完成自己。ARPNET的设计者注重网络互联,允许通信子网采用已有的或是将来有的各种协议,因此这个层次中没有提供专门的协议。实际上,TCP/IP协议可以通过网络接口层连接到任何网络上。图 1 TCP/IP结构对应OS结构2.3 TCP/IP协议的工作原理在数据传送的过程中,可以形象地理解为有两个信封,TCP信封和IP信封。而要传递的信息被划分成若干段,将每一段塞入一个TCP信封,并在该信封面上记录分段号的信息,再将TCP信封塞入IP大信封,发送上网。在接受的那一端,会有一个TCP软件包,收集信封,抽出数据,按发送前的顺序还原,并加以校验。若发现差错,TCP将会要求重发。因此,TCP/IP在INTERNET中几乎可以无差错地传送数据2。 对于普通用户来说,并不需要了解网络协议的整个结构,仅需了解IP的地址格式,便可以与世界各地进行网络通信。24 TCP/IP协议的优点(1) 协议相对独立,它独立于特定的网络硬件,可以运行在局域网,广域网,互联网中。(2) 它是开放的协议标准,可以免费使用,并且独立于特定的计算机硬件与操作系统。(3) 它是标准化的高层协议,还可以提供更多可靠的用户服务。(4) 协议易于设计和实现,具有统一的网络地址分配方案,使得整个TCP/IP设备在网中都具有唯一的地址。2.5 TCP/IP协议的缺点在互联网长期发展的过程中,TCP/IP也在跟随着互联网一起发展。但是TCP/IP协议具有一个致命缺点,地址空间的局限性。此协议虽然尽最大努力来传输信息包,但其各层间不能保证,安全可靠的给上层提供服务。它对于互联网上涌现的有些新业务类型缺乏有效的支持。2.6 TCP/IP协议的未来发展趋向由于TCP/IP协议存在着致命的缺点,对其进行改良和发展已经变得刻不容缓,首先要解决的就是地址空间不足的问题。在互联网业界对这问题有两种解决方案,一种是非兼容方面的升位,这就是采用全新的地址协议;另一种就是采用兼容方面的路径,如超级协议,网络地址转换等。其次要需要解决的就是安全和服务方面的问题。在安全方面的问题则主要是对TCP/IP各层协议之间的分析,从而防止黑客利用漏洞进行网络攻击,窃取用户的资料或者恶意破坏网络的结构。目前我们互联网上广泛使用的TCP/IPv4,就是TCP/IP协议的第四个版本。为了解决现有网络协议的弊端,TCP/IPv6在不断发展和完善过程中。但在IPv4向v6过渡的过程中,必须遵循以下的原则: (1) 保证IPv4和IPv6主机之间的互通; (2) 在更新过程中避免设备之间的依赖性,即某个设备的更新不依赖于其它设备的更新; (3) 对于终端用户和网络管理者来说,过渡的过程是易于理解和实现的;(4) 过渡可以逐个进行,运营商、用户可以自己决定何时过渡和如何过渡。只要遵循了上面的原则,相信在不久将来,就将会代替原有的TCP/IP协议。3 Windows Sockets网络编程3.1 WindowsSockets 简介Windows sockets简称Winsock,是在Windows环境下使用的一套网络编程3机制,是微软窗口系统结构(WOSA)的一部分。它是起源于UNIX上的Berkeley Software Distribution(BSD)版本的套接字、并为Windows 进行了专门地扩展。它不是一种网络协议,而是一套开放的、支持多种协议的Windows环境下的网络编程接口。现在的Windows Sockets已经基本上实现了与协议无关,你可以使用Winsock来调用多种协议的功能,当下较常使用的是TCP/IP协议。Windows sockets在 Windows 下得到了广泛的应用,支持多种协议的网络编程接口。它定义并记录了如何使用API 与Internet 协议族的连接,还要特别指出的所有的Windows sockets 实现都支持流套接字和数据报套接字。当我们为Client/Server开发一个特殊的应用程序时,我们可以通过套接字来交换我们的数据结构和数据报,以完成应用程序之间的通信。应用程序调用Winsock 的API实现相互之间的通讯。Winsock 又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。它们之间的关系如图2 所示:图 2应用程序与Winsock 关系图3.2 套接字的两种主要形式在Windows 套接字3中,它主要有流式套接字(Stream socket)和数据报套接字(Datagram socket)两种形式 。流式也称为面向连接方式套接字,采用的是TCP 协议,它提供了有序的,双向的,无重复并且无记录边界的数据流服务。在这种方式下的两个通讯的应用程序之间,会建立一种虚拟的连接。流方式的特点是:通讯可靠,对数据有校验和重发的机制,通常用来作数据文件的传输,如ftp ,telnet等,适合大量数据的传输。数据报套接字采用的是UDP 协议,建立在IP 协议上,提供的是无连接数据报传输,支持双向的数据流,但并不保证是有序、可靠、无重复的。3.3 Windows Sockets网络编程 331网络程序要考虑的几个问题(1)并发环境下的网络编程在多线程应用中,对系统的调用或函数的使用有很多限制,因此在编程时应该注意的那些不可重入的调用或函数。(2)异构环境下的网络编程网络中,通信往往在异构环境下进行。因此要考虑不同平台之间的异构性。(3)阻塞与非阻塞通信网络编程中可以将通信分为:阻塞和非阻塞两种模式。对于不同的协议,阻塞通信和非阻塞通信的表现是不同的,所以在进行网络编程的时候,选择通信模式是一件很重要的事情。以套接口编程为例,在阻塞模式下,调用recv()函数读取网络缓冲区中的数据,如果没有数据到达,将一直挂在recv()这个函数调用上,直到读到一些数据,此函数调用才返回;而非阻塞套接字不管是否执行成功,都立即返回。在实际Windows网络通信软件开发中,异步非阻塞套接字的应用是最多的。平常所说的Client/Server(客户端/服务器)结构的软件就是异步非阻塞模式的。(4)服务类型的选择从通信角度来说,分为两类:面向连接符和无连接服务。对于面向连接的通信,因为两个对等的实体要建立连接,进行数据的通信。面向连服务的要求是,在数据交换之前,就必须先建立连接。在数据交换后,再终止这个连接。对于无连接的两个实体,有服务通信时,不需要建立连接,其所需的资源在数据进行传输时就动态的进行分配。无连接的优点是方便、高效、灵活。但是它不能预防报文的丢失、重复和失序。3.3.2 Winsock的主要函数及其应用在使用Winsock设计网络程序,最为关键的问题是要了解与掌握Winsock API中的各种功能函数。(1)数据格式转换函数不同的计算机系统在存储由多个字节组成的信息时,有些是将高序列字节放在低地址处,有些相反,拔高序列字节放在高地址处。发送端在传输数据之前要将“主机字节”转化为“网络字节”。在Winsock API中就有这一类函数专门进行转换工作。(2)IP地址转换函数及其应用在进行网络程序设计时,常常需要从键盘上输入,用点分十进制记法表示的主机IP地址。这种IP地址在程序中,一般是用ASCII字符串的形式存储的。在网络程序中,要把这种用点分十进制字符串表示的IP地址转换为用网络字节顺序表示的IP地址。在Winsock API中提供了这样的函数,这种函数以inet开头。点分十进制表示的IP地址转换为网络字节顺序的IP地址-inet_addr()Inet_addr()函数的格式如下:unsigned long inet_addr( _in const char *cp /一个以“.”间隔的字符串,即一个点分十进制数表示的IP地址);网络字节顺序的IP地址转换为点分十进制数表示的IP地址-inet_ntoa()inet_ntoa()函数的格式如下:char* FAR inet_ntoa(_in struct in_addr in /表示一个结构型的IP主机地址);函数调用成功后,返回一个指向字符的指针,该指针指向一个文本型的缓冲区,缓冲区中存有点分十进制表示的IP地址;如果网络调用失败,则返回一个空指针NULL。(3)网络信息获取函数及其应用网络中的主机需要安装TCP/IP4协议或其他协议才能进行通信,网络应用程序有时候要获取主机上与网络有关的信息,这信息一般存放在数据文件中。(4)套接口选项函数及其应用(5)套接口I/O处理函数及其应用(6)事件对象I/O管理及其应用(7)错误处理函数4. 总结与展望随着TCP/IP的发展,从IPv4到IPv6,该协议在地址空间,数据的完整性和保密性,语音和视频数据传输方面都有了很大的改进。Internet在全球的应用非常广泛,Internet的快速发展得益于TCP/IP协议的提出,反过来,Internet又促进了TCP/IP的普及和应用。它已经顺理成章的成为了Internet中的“世界语”。References:1 The TCP/IP network programming M RenTaiMing peoples post and press. 20092 http:/B3 Windows Sockets network programming J LiGongJun ZhaoYu charming zhao the 2000 12 4 The TCP/IP network and agreement M LanShaoHua, Yang YuWang, LvJianYong tsinghua university press. 2006参考文献:1 TCP/IP网络编程M 任泰明 人民邮电出版社 20092 http:/B3 Windows Sockets 网络编程J 李红军 赵玉娇 赵伟2000 124 TCP/IP 网络与协议M 兰少华,杨余旺,吕建勇 清华大学出版社 2006
展开阅读全文