- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
7.1 有关网络程序设计的一些概念 7.1.1 什么是网络应用软件? 人们常将应用软件分为单机版的和网络版,单机版应用软件就是一般程序设计语言教科书重点讲述的,在单机环境下使用的软件,这种软件的特点是结构简单,易于学习与设计。另一种应用软件是需要安装在网络环境中使用的,网络中不同主机上安装的软件需要进行相互通信才能完成其功能,这就是网络应用软件,这种软件的特点是结构较为复杂,软件设计者不但要掌握程序设计的一般知识,还要掌握网络系统的有关知识与理解网络通信协议。由于计算机网络的广泛应用,目前软件开发的主流是设计这类网络环境下的应用软件。 7.1 有关网络程序设计的一些概念 7.1.2 网络中两个通信程序如何相互识别对方 在操作系统中我们知道,同一个系统中不同的两个进程间进行通信时,通过系统分配的进程号(process ID)就可以惟一标识一个进程,也就是说两个相互通信的进程,只要知道知识对方的进程号就可以进行通信。而网络情况下进程间的通信问题,就要复杂得多,不能只简单的用进程号来标识不同的进程。首先要解决如何识别网络中不同的主机问题,其次因为各个主机系统中都独立地进行进程号分配,并且不同系统中进程号的产生与分配策略也不同,所以在网络环境中不能再通过进程号来简单的识别两个相互通信的进程了。 那么,在网络环境中,两个相互通信的进程,如何识别对方呢? 7.1 有关网络程序设计的一些概念 7.1.2 网络中两个通信程序如何相互识别对方 在网络中为了标识通信的进程,首先要标识网络中进程所在的主机,其次要标识主机上不同的进程。关于网络环境下不同主机的识别问题,在讲传输层协议时,我们知道为了完成端到端进程之间的通信,在互联网中使用IP地址来标识不同的主机。关于主机上不同的进程问题,在前面讲端口号时已经说明过,在网络协议中使用端口号来标识主机上的不同进程。还有一个问题,就是前面我们讨论的都是在TCP/IP协议下,端到端进程的标识问题,其实网络应用程序由于不同的主机可能使用不同的网络协议,其工作方式不同,地址的表示格式也不同,因此,网络中进程的通信还要解决多种协议的识别问题。这样为了惟一的标识网络中通信的一个进程(即通信的某一方)就要使用一个如下的三元组: (本地协议,本地IP地址,本地端口号) 7.1 有关网络程序设计的一些概念 7.1.2 网络中两个通信程序如何相互识别对方 这样一个三元组由于它只指定了通信时一条连接的半个部分,即通信的一方,所以叫一个半相关(half-association)。如果要完整的表示网络中进行通信的两个进程,那么就要使用一个如下结构的六元组: (本地协议,本地地址,本地端口号,远地协议,远地地址,远地端口号) 7.1 有关网络程序设计的一些概念 7.1.2 网络中两个通信程序如何相互识别对方 下面我们仔细分析一下这样一个六元组,在互联网中通信的两台主机在网络层都只能使用IP协议,但在网络层之上可以选择使用TCP协议或UDP协议。这样就可能得到以下四种类型的相关六元组: ? (本地TCP协议,本地IP地址,本地端口号,远程TCP协议,远程IP地址,远程端口号) ? (本地UDP协议,本地IP地址,本地端口号,远程UDP协议,远程IP地址,远程端口号) ? (本地TCP协议,本地IP地址,本地端口号,远程UDP协议,远程IP地址,远程端口号) ? (本地UDP协议,本地IP地址,本地端口号,远程TCP协议,远程IP地址,远程端口号) 7.1 有关网络程序设计的一些概念 7.1.2 网络中两个通信程序如何相互识别对方 如果通信的两端使用不同的协议,即上面第3和第4种情况,根据前面我们所学的知识,由于TCP协议和UDP协议使用的协议格式大不相同,因此通信时双方在传输层不能相互识别对方送来的数据,也就不可能进行正常的通信,因此上面说的后两种情况是不存在的。换句话说,通信的两个进程在端到端的传输层只能使用相同的协议,因此一个完整的主机间的通信,可以简单的用一个五元组来标识通信的两个进程: (协议,本地IP地址,本地端口号,远程IP地址,远程端口号) 综上所述,这样一个五元组可以惟一标识网络中两个通信的进程或一条连接,因此叫做一个相关(association)。为了在进程间进行正确的通信,只有两个协议相同的半相关才能组合成一个可用的相关。 7.1 有关网络程序设计的一些概念 7.1.3 Windows Sockets介绍 1. Windows Sockets的概念 Windows Sockets顾名思义,它就是在Windows环境下使用的一套网络编程机制(或规范),常常简称为Winsock。该规范是在上个世纪90年代初制定的。这套规范是在Windows操作系统下得到广泛应用的、开放的、支持多种协议的网络编程接口。该规范从1991
文档评论(0)