当前位置:
文档之家› 计算机网络 客户服务器模式与套接字
计算机网络 客户服务器模式与套接字
主线程:负责接收请求并为请求创建一个服务线程来处理请求。并使 服务器保持活跃状态,主线程在创建处理请求的服务线程之后,会等 待另一个请求的到来。 服务线程:负责处理每个请求,然后终止。 如果N个客户同时请求一台计算机上的给定服务,则会有N+1个线程 提供服务。主线程等待额外的请求,N个服务线程与每个客户进行交 互 17
一计算机可以有多个应用进程,通过不同的端口号 (源不同/目的相同,源同/目的不同,均不同), 同时进行多任务处理,此时TCP/UDP、IP完成复用 与分用。
29
实际通过TCP通信,除端口外,为什么必须有IP地址?
实际通过TCP应用,除端口外,还必须有IP地址。 TCP连接的两个端点(端与端通信),是由端点地址 (IP地址,端口号)确定, (IP地址,端口号)也被 称为插口(Socket),或者端地址(Endpoint Address)。
• 网络中计算机进程间通信同样存在主叫和被 叫,但没有振铃机制。通信进程间收/发协调 怎么办?互联网采用最简单的约定方式— C/S模式
7
在客户-服务器模式中,每次通信均由客户进程发起, 服务器进程从开机起就处于等待状态。这可保证服务 器随时对客户请求做出响应
• 传统TCP/IP网络应用程序使用客户/服务器模 式,但C/S不是所有应用交互会话模式,如IP 电话、视频会议、多方游戏等。 • 2000年前后,SIP协议的发展类似信令系统的互 联网会话(呼叫)系统,可定义更丰富的会话 模式。
计算机A 应用层 客户1 运输层 网络层 计算机C 应用层 服务器 服务器 1 2 运输层 网络层 计算机B 应用层 客户2 运输层 网络层
数据链路层
物理层
数据链路层
物理层
数据链路பைடு நூலகம் 物理层
因特网
单计算机可安装多服务器软件来提供多重服务,在等 待的时候不占用资源,但同时响应需要系统较多资源 支持
16
14
一台计算机上可以运行多种服务器:
1. 充分利用硬件资源。硬件可以被多种服务所共享。 2. 减少系统管理负载。因为这种情况可以减少被管理 的计算机系统的数量。 3. 如果对服务的需求比较低,那么把服务器合并到一台 计算机上能够显著地减少开销,而且并不会明显地降 低性能。
15
2 服务器多重服务:
解决方法:
传输协议为每种服务分配一个惟一的标识符,服务器和
客户必须使用这一标识符。 服务器开始运行时,它向本地协议软件注册它使用的服务标识 符。客户访问远程服务器时,需要指定对应的服务标识符。 客户计算机上的传输协议软件在发送请求时,向服务器计算机 发送这一标识符,服务器计算机上的传输协议软件使用这一标 识符决定处理这一请求的服务器程序。
32
作业
1、客户软件和服务器软件主要特点。 2、一个服务器软件通常需要包括哪些主要的功能部分。 3、为什么通常服务器端口号是唯一定义的,而客户端 的端口号可以临时指定?
网络层
数据链路层
物理层
因特网
请求、应答、数据交互,TCP/IP系统支持。
13
C/S模式的传输机制
• 面向连接传输:使用面向连接的传输协议时,两个应用 必须首先建立一个连接,然后在该连接上发送数据。 • 无连接传输:应用可以利用无连接接口在任何时间向任 何目的发送消息。 • 客户和服务器在通信时,既可以使用面向连接传输协议, 又可以使用无连接传输协议。当使用面向连接传输时, 客户需要首先形成一个到特定服务器的连接,该连接在 客户发送请求和接收响应的过程中保持不变。当客户完 成对服务的使用时,必须关闭这一连接。
30
TCP/UDP协议插口
其它字段 32bit源地址 32bit目的地址 IP头部 TCP/UDP头部 TCP/UDP头部 0 4 10 源端口 16 数据 数据 31
目的端口
其它字段
31 从IP包结构看,网络应用进程通信需要端地址(IP地址,端口号)
总结 1、什么是C/S工作模式?
2、网络应用为什么需要C/S模式? 3、 为什么通常服务器软件复杂? 4、应用进程通信端口地址,为什么还要IP地 址?是否需要物理网地址?
25
两类端口
• 一类是熟知端口,其数值一般为 0~1023。 当一种新的应用程序出现时,必须为它指派 一个熟知端口。 • 另一类则是一般端口,用来随时分配给请求 通信的客户进程。
26
协议端口号定义 TCP/IP定义的应用程序熟知端口: FTP: 21, Telnet: 23, SMTP: 25,DNS: 53, TFTP:69, HTTP : 80, SNMP: 161, 而一般端口,是可以由系统开发人员随时定 义分配的。
F T P
21
T E L N E T23
S M T P
D N S
T F T P
S N M P
25
53
69
UDP
161
传输层
TCP
23
TELNET B
目的端口号=23把包发 送到我的TELNET应 用中
A
B
源端口目的端口 1028 23 …..
24
端口
• 端口用一个 16 bit 端口号进行标志。 • 端口号只具有本地意义,即端口号只是 为了标志本计算机应用层中的各进程。 在因特网中不同计算机的相同端口号是 没有联系的。
互联网 服务器 客户
•进程(Process)就是运行中的程序。解决具体应用问题的逻辑处 理和通信进程总称为“应用进程”。
4
为什么选择客户-服务器模式
第一个原因:互联网中资源、运算能力和信息不均等的现实。 资源、运算能力不均:小到一个物理网络,往往是某些主机拥 有大容量的外存,某些主机只有很少外存或没有外存,有 些主机拥有打印机,有些主机没有;大到整个互联网,少 数网点拥有超速运算能力,而大量网点由PC机构成……. 信息分布不均:比如名字信息、地址信息等。这些信息往往以 数据库形式存在于少数特权主机当中,供局部或全局访问。 这些信息一般具有公用性,为了节约整个网络的资源,没 有必要在每一台机器上都维持一个拷贝。 不均等现象不可避免,而客户-服务器模式体现了这种现象并很 好地适应了这种现象。
当客户发一个数据报时,服务器发送一连续字符流, 直至客户中断连接;UDP发一随机长度的数据报 从服务器返回一个32bit数,表示UTC时间1900 .1.1午 夜至今的秒数
28
为什么服务器端口号一定是唯一定义的,而客户端的 端口号可以是按定义的,也可以临时自指定的,只具 有本地意义? 协议端口号解决是C/S交互过程中服务器定 位问题,使所有客户都能正确找到需要的服 务,所以服务器端口一定唯一确定的,而客 户源端口号只对客户自己有效。
在互联网中,客户发起请求完全是随机 并发性 的,很有可能出现多个请求同时到达服 务器的情况。 —客户-服务器交互模型的基础 • 并发服务器可以同时为多个客户提供服务,并不需要每个 客户等待前一个客户的请求完成 • 大多数并发服务器都是动态操作的。即只有当请求到达时, 服务器才会动态地为到来的请求创建一个新的线程。 • 服务器程序由两部分组成:主线程和服务线程。
1、熟知的协议端口号与使用
2、互联网C/S工作模式与TCP/IP的关系 3、服务器并发处理
3
相互作用的客户-服务器(
Client/Server)模型
在TCP/IP互联网中,进程间相互访问的模式主要是客 户—服务器交互模式
客户和服务器分别是两个应用程序(进程)。客户向服 务器发出服务请求,服务器做出响应。
27
通常TCP/IP的主要端口号:1—225之间, 端口号256—1023由Unix系统占用, 端口号1024—5000作为临时端口分配, 5000以上(作为其他服务器)不常出现。 标准简单服务端口号
名称 Echo Discard Daytime Chargen Time TCP 端口号 7 9 13 19 37 TCP 端口号 7 9 13 19 37 描述 服务器返回客户发送的所有内容 服务器丢弃客户发送的所有内容 服务器以可读形式返回日期与时间
8
• 互联网将网络软件分为客户(client) 、服务器 (server) ,客户和服务器都指通信中所涉及的 两个应用进程。即本质是计算机软件。
• C/S模式是约定客户请求(发起)通信、服务 器响应通信(提供特定的服务),基本可以理 解为请求/应答的分布计算(会话)模式。
9
客户软件的特点
• 在进行通信时临时成为客户,但它也可在本地 进行其他的计算,提供用户端基本应用功能框 架。 • 被用户调用,在用户本地计算机上运行,在需 要时主动向远地服务器发起通信。 • 可与多个服务器进行通信。 • 通常不需要特殊的硬件和很复杂的操作系统。
硬件厂商把具有高速CPU、大容量存储器、功能强大的操作系统的计算机 称为服务器,其实应该称为服务器级计算机。
12
C/S 工作过程和并发
1 C/S 工作建立过程
计算机A
应用层
计算机B
① 发起连接建立请求 ② 接受连接接受请求
应用层
服务器
客户
运输层 网络层 数据链路层 物理层
运输层
C/S都需要TCP/IP系统支持
21
端口
• 端口就是运输层服务访问点 TSAP • 端口的作用就是让应用层的各种应用进程都能将 其数据通过端口向下交付给运输层,以及让运输 层知道应当将其报文段中的数据向上通过端口交 付给应用层相应的进程。 • 从这个意义上讲,端口是用来标志应用层的进程。 服务器通过它明确所提供的服务
22
应用层 端口层
3、可能发生服务器的循环依懒,在两个服务器间,或 多服务器之间的依懒环。
19
协议端口号
计算机A
N个客户
C与S之间怎样准确 识别特定服务?
计算机B
N个服务器
运输层 网络层 数据链路层 物理层 因特网