网络程序设计-复习.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《网络程序设计-复习.ppt》由会员分享,可在线阅读,更多相关《网络程序设计-复习.ppt(292页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1第第1 1章章 网络编程基础网络编程基础网络编程相关的基本概念网络编程相关的基本概念1.1三类网络编程三类网络编程1.2客户机客户机/服务器交互模式服务器交互模式1.3P2PP2P模式模式 1.421.1.1 1.1.1 网络编程与进程通信网络编程与进程通信1 1进程与线程的基本概念进程与线程的基本概念n进程是处于运行过程中的程序实例,是操作系统调度和分配资源的基本单位。n 一个进程实体由三部分构成。l程序代码:规定进程所做的计算。l数据:计算的对象。l进程控制块:是操作系统为了控制进程建立的数据结构,用来管理进程的内核对象,系统用来存放关于进程的统计信息。1.1网络编程相关的基本概念网络编
2、程相关的基本概念3n操作系统给进程分配内存空间:l静态分配空间:用来装入进程所有的可执行模块或动态链接库模块的代码及数据。l动态分配空间:栈区空间和堆区空间。n各种计算机应用程序在运行时,都以进程的形式存在,网络应用程序也不例外。nWindows系统不但支持多进程,还支持多线程。l进程是分配资源的单位;l线程是执行和调度的单位n由线程负责执行包含在进程的地址空间中的代码.1 1进程与线程的基本概念进程与线程的基本概念4n一个进程可以包含若干个线程,同时执行进程地一个进程可以包含若干个线程,同时执行进程地址空间中的代码。址空间中的代码。l当创建一个进程时,系统会自动创建它的第一当创建一个进程时,
3、系统会自动创建它的第一个线程,称为主线程。个线程,称为主线程。l然后,该线程可以创建其他的线程,而这些线然后,该线程可以创建其他的线程,而这些线程又能创建更多的线程。程又能创建更多的线程。l每个线程拥有自己的一组每个线程拥有自己的一组CPU寄存器和堆栈。寄存器和堆栈。l进程至少拥有一个线程,否则将被撤销。进程至少拥有一个线程,否则将被撤销。nWindows2000能在有多个能在有多个CPU的计算机上运行,的计算机上运行,每个每个CPU上运行不同的线程,达到多线程同时运上运行不同的线程,达到多线程同时运行。行。1 1进程与线程的基本概念进程与线程的基本概念51 1进程与线程的基本概念进程与线程的
4、基本概念图图1.1 1.1 单单CPUCPU分时地运行进程中的各个线程分时地运行进程中的各个线程6n从从计计算算机机网网络络体体系系结结构构的的角角度度来来看看,网网络络应应用用进程处于网络层次结构的最上层。进程处于网络层次结构的最上层。n从功能上,可以将网络应用程序分为两部分:从功能上,可以将网络应用程序分为两部分:l一一部部分分是是专专门门负负责责网网络络通通信信的的模模块块,它它们们与与网网络络协协议议栈栈相相连连接接,借借助助网网络络协协议议栈栈提提供供的的服服务务完成网络上数据信息的交换。完成网络上数据信息的交换。l另另一一部部分分是是面面向向用用户户或或者者作作其其他他处处理理的的
5、模模块块,它它们们接接收收用用户户的的命命令令,或或者者对对借借助助网网络络传传输输过过来的数据进行加工。来的数据进行加工。n这这两两部部分分模模块块相相互互配配合合,来来实实现现网网络络应应用用程程序序的功能。的功能。2网络应用进程在网络体系结构中的位置网络应用进程在网络体系结构中的位置7图图1.2 网络应用程序在网络体系结构中的位置网络应用程序在网络体系结构中的位置2网络应用进程在网络体系结构中的位置网络应用进程在网络体系结构中的位置8n网络应用程序这两部分的关系:l通信模块,是网络分布式应用的基础;l其他模块,对网络交换的数据进行加工处理。l网网络络应应用用程程序序要要实实现现网网络络资
6、资源源的的共共享享,共共享享的的基基础就是必须能够通过网络轻松地传递各种信息。础就是必须能够通过网络轻松地传递各种信息。l网络编程首先要解决网间进程通信的问题,然后才能在通信的基础上开发各种应用功能。2网络应用进程在网络体系结构中的位置网络应用进程在网络体系结构中的位置93实现网间进程通信必须解决的问题实现网间进程通信必须解决的问题 网网间间进进程程通通信信是是指指网网络络中中不不同同主主机机中中的的应应用用进进程程之间的相互通信问题,必须解决以下问题:之间的相互通信问题,必须解决以下问题:l网间进程的标识问题网间进程的标识问题(不能只用进程号标识);l如如何何与与网网络络协协议议栈栈连连接接
7、的的问问题题(通过定义套接字网络编程接口来解决);l多重协议的识别问题多重协议的识别问题(不同协议工作方式不同);l不不同同通通信信服服务务的的问问题题(要求不同,如文件传输要求可靠、无差错、无乱序、无丢失,网络聊天要求不高,可选TCP和UDP服务)。101.1.2 1.1.2 因特网中网间进程的标识因特网中网间进程的标识1传输层在网络通信中的地位传输层在网络通信中的地位nTCP/IP协议栈的特点是协议栈的特点是“两头大、中间小两头大、中间小”l应用层有多个应用进程,使用不同应用层协议;l网络接口层,有多种数据链路层协议,支持不同的物理网络连接;l网络层有IP协议,传输层有TCP和UDP协议。
8、n按按照照OSI七七层层协协议议的的描描述述,传传输输层层与与网网络络层层在在功功能上的最大区别,是传输层提供进程通信的能力。能上的最大区别,是传输层提供进程通信的能力。nTCP/IP协协议议提提出出了了传传输输层层协协议议端端口口(简简称称端端口口)的概念,成功地解决了通信进程的标识问题。的概念,成功地解决了通信进程的标识问题。111.1.2 1.1.2 因特网中网间进程的标识因特网中网间进程的标识1传输层在网络通信中的地位传输层在网络通信中的地位 传输层是计算机网络中,通信主机内部进行独立传输层是计算机网络中,通信主机内部进行独立操作的第一层,是支持端到端的进程通信的关键的一操作的第一层,
9、是支持端到端的进程通信的关键的一层。层。图图1.3基于基于TCP/IP协议栈的进程间的通信协议栈的进程间的通信122 2端口的概念端口的概念n端口是TCP/IP协议族中,应用层进程与传输层协议实体间的通信接口n在OSI七层协议描述中,将其称为应用层进程与传输层协议实体间的服务访问点(SAP)。l应用层进程通过系统调用与某个传输层端口进行绑定,然后通过该端口接收或发送数据。l类似于文件描述符,每个端口都拥有一个叫作端口号(port number)的16位整数型标识符。l可以用端口标识通信的网络应用程序。132 2端口的概念端口的概念图1.4UDP与TCP的报文格式n传输层TCP和UDP两个协议是
10、完全独立的软件模块,因此各自的端口号也独立。l使用时必须说明是UDP端口还是TCP端口,两种协议的端口间没有任何联系。lTCP 和UDP都可以提供65536个端口。l端口是操作系统可分配的一种资源。14n 从从实实现现的的角角度度讲讲,端端口口是是一一种种抽抽象象的的软软件件机机 制,包括一些数据结构和制,包括一些数据结构和I/OI/O缓冲区。缓冲区。l进程通过系统调用与某端口建立绑定关系后,传输层传给该端口的数据都被相应进程接收,相应进程发给传输层的数据都通过该端口输出。n在在TCP/IP实现中端口操作类似于一般的实现中端口操作类似于一般的I/O操作。操作。l进程获取一个端口,相当于获取本地
11、唯一的I/O文件,可以用一般的读写原语访问。2 2端口的概念端口的概念153端口号的分配机制端口号的分配机制n网络进程通信前必须获知对方的进程地址。网络进程通信前必须获知对方的进程地址。l由于网络应用程序大多采用C/S模式开发,通信总是由客户机发起,因此事先只需让客户机知道服务器进程的端口号即可。lInternet中众所周知的服务是有限的。nTCP/IPTCP/IP协协议议采采用用了了全全局局分分配配(静静态态分分配配)和和本本地分配(动态分配)地分配(动态分配)相结合的分配方法。相结合的分配方法。n对对于于TCPTCP,或或者者UDPUDP,将将它它们们的的全全部部6553665536个个端
12、端口口号分为号分为保留端口号保留端口号和和自由端口号自由端口号两部分。两部分。16n保留端口号保留端口号:范围是:范围是0-10230-1023,又称为,又称为众所周知的众所周知的端口端口或或熟知端口熟知端口(well-known portwell-known port),只占少),只占少数,采用全局分配或集中控制的方式,由一个公数,采用全局分配或集中控制的方式,由一个公认的中央机构根据需要进行统一分配,静态地分认的中央机构根据需要进行统一分配,静态地分配给因特网上著名的众所周知的服务器进程,并配给因特网上著名的众所周知的服务器进程,并将结果公布于众。将结果公布于众。3端口号的分配机制端口号的
13、分配机制TCP的保留端口UDP的保留端口FTP21DNS53HTTP80TFTP69SMTP25SNMP161POP3110表1.1 一些典型的应用层协议分配到的保留端口 17n自由端口号自由端口号:范围是范围是1024-655351024-65535,采用本地分配,又,采用本地分配,又称为动态分配的方法。称为动态分配的方法。nTCPTCP或或UDPUDP端口的分配规则是:端口的分配规则是:l端口端口0 0:不使用,或者作为特殊的用途;:不使用,或者作为特殊的用途;l端端口口1-2551-255:保保留留给给特特定定的的服服务务,TCPTCP和和UDPUDP均均规规定定,小于小于256256的
14、端口号才能分配给网上著名的服务;的端口号才能分配给网上著名的服务;l端口端口256-1023256-1023:保留给其他的服务,如路由;:保留给其他的服务,如路由;l端口端口1024-49991024-4999:可以用作任意客户机的端口;:可以用作任意客户机的端口;l端口端口5000-655355000-65535:可以用作用户的服务器端口。:可以用作用户的服务器端口。3端口号的分配机制端口号的分配机制183端口号的分配机制端口号的分配机制我们可以描述一下,在这样的端口分配机制下,客户机进程C与服务器进程S第一次通信的情景。图1.5 客户机与服务器的第一次通信19n为为确确保保服服务务器器进进
15、程程为为多多个个客客户户机机进进程程服服务务,服服务务器器的的保保留留端端口口是是专专门门用用来来监监听听客客户户端端的的连连接接请求的。请求的。n当当服服务务器器从从保保留留端端口口接接收收到到一一个个客客户户机机的的请请求求后后,立立即即创创建建另另外外一一个个线线程程,并并为为这这个个线线程程分分配配一一个个自自由由端端口口(在在500050006553565535选选择择分分配配),然后继续接收新的客户机请求。然后继续接收新的客户机请求。3端口号的分配机制端口号的分配机制204 4进程的网络地址的概念进程的网络地址的概念n 在在因因特特网网中中,用用一一个个三三元元组组可可以以在在全全
16、局局中中唯唯一一地地标标识一个应用层进程:识一个应用层进程:应应用用层层进进程程地地址址=(传传输输层层协协议议,主主机机的的IPIP地地址址,传输层的端口号)传输层的端口号)n这样一个三元组,叫做一个这样一个三元组,叫做一个半相关半相关(half-half-associationassociation),它标识了因特网中进程间通信的一),它标识了因特网中进程间通信的一个端点,也把它称为个端点,也把它称为进程的网络地址进程的网络地址。215 5网络中进程通信的标识网络中进程通信的标识n 一一个个完完整整的的网网间间通通信信需需要要一一个个五五元元组组在在全全局局中中唯唯一地来标识:一地来标识:
17、(传传输输层层协协议议,本本地地机机IPIP地地址址,本本地地机机传传输输层层端端口口,远地机远地机IPIP地址,远地机传输层端口地址,远地机传输层端口)n这个五元组称为一个这个五元组称为一个全相关全相关(associationassociation),即),即两个协议相同的半相关才能组合成一个合适的全两个协议相同的半相关才能组合成一个合适的全相关,或完全指定一对网间通信的进程。相关,或完全指定一对网间通信的进程。221.1.3 1.1.3 网络协议的特征网络协议的特征1面向连接的服务和无连接的服务面向连接的服务和无连接的服务n协协议议可可以以提提供供面面向向连连接接的的服服务务,或或者者提提
18、供供无无连连接的服务。接的服务。n面面向向连连接接服服务务是是电电话话系系统统服服务务模模式式的的抽抽象象,即即每每一一次次完完整整的的数数据据传传输输都都要要经经过过建建立立连连接接,使用连接,终止连接的过程。使用连接,终止连接的过程。l传输过程中数据分组不携带目的地址;lTCP提供面向连接的虚电路服务,建立连接时确定通信路径,并经过协商做好通信准备。l连接需要很多开销,如差错控制和流量控制。23n无无连连接接服服务务,是是邮邮政政系系统统服服务务的的抽抽象象,每每个个分分组组都都携携带带完完整整的的目目的的地地址址,各各分分组组在在系系统统中中独独立立传传送。送。l不能保证分组按序到达,不
19、能进行分组出错的恢复与重传,不能保证传输的可靠性。l通信前不需建立连接,不管接收端是否做好准备接收数据。lUDP是无连接协议。1面向连接的服务和无连接的服务面向连接的服务和无连接的服务242 2面向消息的协议与基于流的协议面向消息的协议与基于流的协议(1 1)面向消息的协议)面向消息的协议n 面向消息的协议以消息为单位在网上传送数据,在面向消息的协议以消息为单位在网上传送数据,在发送端,消息一条一条地发送,在接收端,也只能发送端,消息一条一条地发送,在接收端,也只能一条一条地接收,每一条消息是独立的,消息之间一条一条地接收,每一条消息是独立的,消息之间存在着边界。存在着边界。n保护消息边界保护
20、消息边界:是指传输协议把数据当作一条独立:是指传输协议把数据当作一条独立的消息在网上传输,接收端只能接收独立的消息,的消息在网上传输,接收端只能接收独立的消息,即接收端一次只能接收发送端发出的一个数据包。即接收端一次只能接收发送端发出的一个数据包。25图1.6 保护消息边界的数据报传输服务 nUDP就是面向消息的,适合于交换结构化数据。就是面向消息的,适合于交换结构化数据。(1 1)面向消息的协议)面向消息的协议26(2 2)基于流的协议)基于流的协议n基基于于流流的的协协议议不不保保护护消消息息边边界界,将将数数据据当当作作字字节节流连续地传输,不管实际消息边界是否存在。流连续地传输,不管实
21、际消息边界是否存在。l发送端允许系统将原始消息分解成几条小消息分别发送,或把几条消息积累在一起形成大数据包发送,多次发送的数据统一编号。l如果发送端连续发送数据,接收端有可能在一次接收动作中接收两个或更多的数据包。l只要数据一到达,网络堆栈就开始读取并将其缓存,等待进程处理。27(2 2)基于流的协议)基于流的协议 图1.7 无消息边界的流传输服务nTCP是基于流的协议。是基于流的协议。n流传输,把数据当作一串数据流,不认为数据是一个一个的消息,编程时不要忽略这一点。28l1.1.4 1.1.4 高效的用户数据报协议高效的用户数据报协议UDPUDPn用户数据报协议用户数据报协议(UserDat
22、agramProtocol,UDP),是一种尽力传送的、无连接的、不保障),是一种尽力传送的、无连接的、不保障可靠的传输服务,是一种保护消息边界的数据传可靠的传输服务,是一种保护消息边界的数据传输。输。l基于UDP的应用程序在高可靠性、低延迟的网络中运行良好;l在网络层的基础上只增加了端口号的支持;l传输效率高,适用于交易型的应用程序,如TFTP、SNMP、DNS等应用进程。291.1.5 可靠的传输控制协议TCP1可靠性是很多应用的基础 2TCP为应用层提供的服务 传输控制协议传输控制协议TCPTCP (Transmission Control(Transmission Control Pr
23、otocolProtocol,TCP)TCP)为应用层进程提供一个面向连为应用层进程提供一个面向连接的、端到端的、完全可靠的(无差错、无丢接的、端到端的、完全可靠的(无差错、无丢失、无重复或失序)全双工的流传输服务。失、无重复或失序)全双工的流传输服务。nIP为TCP提供的是无连接的、尽力传送的、不可靠的传输服务,TCP为了向应用层进程提供可靠的传输服务,采取了一系列保障机制。nTCP提供流传输服务,对传输数据的内部结构一无所知,只负责将字节流原封不动的传送到对方的应用进程。303 3TCPTCP利用利用IPIP数据报实现了端对端的传输服务数据报实现了端对端的传输服务nTCPTCP被称作一种端
24、对端(被称作一种端对端(end to endend to end)协议,因为它)协议,因为它提供一个直接从一台计算机上的应用进程到另一远程计提供一个直接从一台计算机上的应用进程到另一远程计算机上的应用进程的连接。算机上的应用进程的连接。l应用进程能请求应用进程能请求TCPTCP构造一个连接,通过这个连构造一个连接,通过这个连 接发接发送和接收数据,以及关闭连接。送和接收数据,以及关闭连接。l由由TCPTCP提供的连接叫做虚连接,虚连接是由软件实现提供的连接叫做虚连接,虚连接是由软件实现的。事实上,底层的因特网系统并不对连接提供硬件或的。事实上,底层的因特网系统并不对连接提供硬件或软件支持,只是
25、两台机器上的软件支持,只是两台机器上的TCPTCP软件模块通过交换消软件模块通过交换消息来实现连接的虚拟。息来实现连接的虚拟。31图1.8 TCP是一个端到端的传输协议 3 3TCPTCP利用利用IPIP数据报实现了端对端的传输服务数据报实现了端对端的传输服务n从从TCP角度来看,整个角度来看,整个Internet是一个通信系统,是一个通信系统,能够接收和传递消息,而不会改变和干预消息的能够接收和传递消息,而不会改变和干预消息的内容。内容。324 4三次握手三次握手n为确保连接的建立和终止都是可靠的,为确保连接的建立和终止都是可靠的,TCPTCP使用三使用三次握手(次握手(3-way hand
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络程序设计 复习
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内