欢迎来到天天文库
浏览记录
ID:43776804
大小:2.09 MB
页数:62页
时间:2019-10-14
《网络编程实用教程 叶树华 高志红 网络编程实用教程_第1章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、网络编程实用教程第1章网络编程基础本章介绍网络编程相关的基本概念,包括进程通信的概念因特网中网间进程的标识方法网络协议的特征TCP/IP中用户数据报协议UDP和传输控制协议TCP的特点目前的网络编程现状网络应用程序的客户/服务器交互模式1.1网络编程相关的基本概念1.1.1网络编程与进程通信1.进程与线程的基本概念进程是处于运行过程中的程序实例,是操作系统调度和分配资源的基本单位。一个进程实体由程序代码、数据和进程控制块三部分构成。各种计算机应用程序在运行时,都以进程的形式存在。网络应用程序也不例外。Windows系统不但支持多
2、进程,还支持多线程。当创建一个进程时,系统会自动创建它的第一个线程,称为主线程。然后,该线程可以创建其他的线程,而这些线程又能创建更多的线程。图1.1单CPU分时地运行进程中的各个线程2.网络应用进程在网络体系结构中的位置从计算机网络体系结构的角度来看,网络应用进程处于网络层次结构的最上层。从功能上,可以将网络应用程序分为两部分,一部分是专门负责网络通信的模块,它们与网络协议栈相连接,借助网络协议栈提供的服务完成网络上数据信息的交换。另一部分是面向用户或者作其他处理的模块,它们接收用户的命令,或者对借助网络传输过来的数据进行加工
3、,这两部分模块相互配合,来实现网络应用程序的功能。图1.2网络应用程序在网络体系结构中的位置网络应用程序最终要实现网络资源的共享,共享的基础就是必须能够通过网络轻松地传递各种信息。网络编程首先要解决网间进程通信的问题。然后才能在通信的基础上开发各种应用功能。3.实现网间进程通信必须解决的问题网间进程通信是指网络中不同主机中的应用进程之间的相互通信问题,网间进程通信必须解决以下问题:(1)网间进程的标识问题(2)如何与网络协议栈连接的问题(3)多重协议的识别问题(4)不同的通信服务的问题1.传输层在网络通信中的地位图1.3说明了基
4、于TCP/IP协议栈的进程之间的通信的情况。图1.3网络应用程序在网络体系结构中的位置1.1.2因特网中网间进程的标识按照OSI七层协议的描述,传输层与网络层在功能上的最大区别是传输层提供进程通信的能力。TCP/IP协议提出了传输层协议端口(protocolport,简称端口)的概念,成功地解决了通信进程的标识问题。传输层是计算机网络中,通信主机内部进行独立操作的第一层,是支持端到端的进程通信的关键的一层。2.端口的概念端口是TCP/IP协议族中,应用层进程与传输层协议实体间的通信接口类似于文件描述符,每个端口都拥有一个叫作端口
5、号(portnumber)的整数型标识符从实现的角度讲,端口是一种抽象的软件机制,包括一些数据结构和I/O缓冲区。图1.4UDP与TCP的报文格式3.端口号的分配机制TCP/IP协议采用了全局分配(静态分配)和本地分配(动态分配)相结合的分配方法。对于TCP,或者UDP,将它们的全部65535个端口号分为保留端口号和自由端口号两部分。保留端口的范围是0—1023,又称为众所周知的端口或熟知端口(well-knownport),只占少数,采用全局分配或集中控制的方式,由一个公认的中央机构根据需要进行统一分配,静态地分配给因特网上著
6、名的众所周知的服务器进程,并将结果公布于众。表1.1一些典型的应用层协议分配到的保留端口TCP的保留端口UDP的保留端口FTP21DNS53HTTP80TFTP69SMTP25SNMP161POP3110……其余的端口号,1024-65535,称为自由端口号,采用本地分配,又称为动态分配的方法。总之,TCP或UDP端口的分配规则是:端口0:不使用,或者作为特殊的使用;端口1-255:保留给特定的服务,TCP和UDP均规定,小于256的端口号才能分配给网上著名的服务;端口256-1023:保留给其他的服务,如路由;端口1024-4
7、999:可以用作任意客户的端口;端口5000-65535:可以用作用户的服务器端口。我们可以描述一下,在这样的端口分配机制下,客户进程C与服务器进程S第一次通信的情景。图1.5表示了客户与服务器第一次通信的情况。图1.5客户与服务器的第一次通信4.进程的网络地址的概念在因特网络中,用一个三元组可以在全局中唯一地标识一个应用层进程:应用层进程地址=(传输层协议,主机的IP地址,传输层的端口号)这样一个三元组,叫做一个半相关(half-association),它标识了因特网中,进程间通信的一个端点,也把它称为进程的网络地址。5.网
8、络中进程通信的标识一个完整的网间通信需要一个五元组在全局中唯一地来标识:(传输层协议,本地机IP地址,本地机传输层端口,远地机IP地址,远地机传输层端口)这个五元组称为一个全相关(association)。即两个协议相同的半相关才能组合成一个合适的全相关,或完全
此文档下载收益归作者所有