宁波大红鹰学院
网络协议与编程课程论文
题目: TCP/IP网络协议及其应用编程
学院:信息工程学院   
专业:计算机科学与技术
班级:               
学号:               
姓名:               
TCP/IP网络协议及其应用编程
林婉君+
(宁波大红鹰学院 信息工程学院, 浙江 宁波315175)
TCP/IP network protocol and its application programming
LinWan-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 netwo
rk 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/IPINTERNET的基础协议,也是一种电脑数据打包和寻址的标准方法。它也是一种网络通信协议,规范了网络上的所有通信设备,特别是一个主机与另一个主机之间的数据传送方式以及往来格式。
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/IPINTERNET中几乎可以无差错地传送数据[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在不断发展和完善过程中。但IPv4v6过渡的过程中,必须遵循以下的原则:
(1) 保证IPv4IPv6主机之间的互通;
tcp ip协议规定
(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)服务类型的选择
从通信角度来说,分为两类:面向连接符和无连接服务。
对于面向连接的通信,因为两个对等的实体要建立连接,进行数据的通信。面向连服务的要求是,在数据交换之前,就必须先建立连接。在数据交换后,再终止这个连接。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。