文档详情

网络编程实用教程.ppt

发布:2017-11-15约8.24千字共75页下载文档
文本预览下载声明
网络编程;第一页 最后一页;第一页 最后一页;第1章 网络编程基础;1.1 网络编程相关的基本概念;1.1 网络编程相关的基本概念;一个进程可以包含若干个线程,同时执行进程地址空间中的代码。 当创建一个进程时,系统会自动创建它的第一个线程,称为主线程。 然后,该线程可以创建其他的线程,而这些线程又能创建更多的线程。 每个线程拥有自己的一组CPU寄存器和堆栈。 进程至少拥有一个线程,否则将被撤销。 Windows 2000能在有多个CPU的计算机上运行,每个CPU上运行不同的线程,达到多线程运行。 ;图1.1 单CPU分时地运行进程中的各个线程;2.网络应用进程在网络体系结构中的位置 从计算机网络体系结构的角度来看,网络应用进程处于网络层次结构的最上层。 从功能上,可以将网络应用程序分为两部分: 专门负责网络通信的模块,它们与网络协议栈相连接,借助网络协议栈提供的服务完成网络上数据信息的交换。 面向用户或者作其他处理的模块,它们接收用户的命令,或者对借助网络传输过来的数据进行加工。 两部分模块相互配合来实现网络应用程序功能。 ;图1.2 网络应用程序在网络体系结构中的位置;网络应用程序这两部分的关系: 通信模块,是网络分布式应用的基础; 其他模块,对网络交换的数据进行加工处理。 网络应用程序要实现网络资源的共享,共享的基础就是必须能够通过网络轻松地传递各种信息。 网络编程首先要解决网间进程通信的问题。然后才能在通信的基础上开发各种应用功能。;3.实现网间进程通信必须解决的问题 网间进程通信,是指网络中不同主机中的应用进程之间的相互通信问题,必须解决以下问题: 网间进程的标识问题(不能只用进程号标识); 如何与网络协议栈连接的问题(通过定义套接字网络编程接口来解决); 多重协议识别问题(不同协议工作方式不同); 不同的通信服务的问题(要求不同,如文件传输要求可靠、无差错、无乱序、无丢失,网络聊天要求不高,可选TCP和UDP服务)。;1.传输层在网络通信中的地位;传输层是计算机网络中,通信主机内部进行独立操作的第一层,是支持端到端的进程通信的关键的一层。;2.端口的概念 端口是TCP/IP协议族中,应用层进程与传输层协议实体间的通信接口。 在OSI七层协议描述中,将其称为应用层进程与传输层协议实体间的服务访问点(SAP)。 应用层进程通过系统调用与某个传输层端口进行绑定,然后通过该接口接收或发送数据。 类似于文件描述符,每个端口都拥有一个叫作端口号(port number)的16位整数型标识符。 可以用端口标识通信的网络应用程序。;传输层TCP和UDP两个协议是完全独立的软件模块,因此各自的端口号也独立。 如同所示都可以提供65535个端口。 端口是操作系统可分配的一种资源。;从实现的角度讲,端口是一种抽象的软件机制,包括一些数据结构和I/O缓冲区。 在TCP/IP实现中端口操作类似于一般的I/O操作。 进程获取一个端口,相当于获取本地唯一的I/O文件,可以用一般的读写原语访问。;3.端口号的分配机制 网络进程通信前必须获知对方的进程地址。 由于网络应用程序大多采用C/S模式开发,通信总是由客户机发起,因此事先只需让客户机知道服务器的进程地址即可。 Internet中为客户服务的众所周知的服务有限。 TCP/IP协议采用了全局分配(静态分配)和本地分配(动态分配)相结合的分配方法。 对于TCP或UDP,将它们的全部65535个端口号分为保留端口号和自由端口号两部分。;保留端口号,范围是0-1023,又称为众所周知的端口或熟知端口(well-known port),只占少数,采用全局分配或集中控制的方式,由一个公认的中央机构根据需要进行统一分配,静态地分配给因特网上著名的众所周知的服务器进程,并将结果公布于众。 ;自由端口号,范围是1024-65535,采用本地分配,又称为动态分配。 TCP或UDP端口的分配规则是: 端口0:不使用,或者作为特殊的使用; 端口1-255:保留给特定的服务,TCP和UDP均规定,小于256的端口号才能分配给网上著名的服务; 端口256-1023:保留给其他的服务,如路由; 端口1024-4999:可用作任意客户的端口; 端口5000-65535:可用作用户的服务器端口。 ;在这样的端口分配机制下,客户进程C与服务器进程S第一次通信的情景。;为确保服务器进程为多个客户机进程服务,服务器的保留端口是专门用来监听客户端的连接请求的。 当服务器从保留端口接收到一个客户机的请求后,立即创建另外一个线程,并为这个线程分配一个保留端口(在5000-65535选择分配),然后继续接收新的客户机请求。;4.进程的网络地址的概念 在因特网中,用一个三元组可以在全局中唯一地标识一个应用层进程: 应用层进程
显示全部
相似文档