这种架构比较差,当用户变多后,服务器要扩容,扩展性差
可靠性也差,服务器宕机就不能用了
- 对等模式(P2P)
文件共享系统
- C/S和P2P体系结构的混合体
Napster
- 文件搜索:集中
- 文件传输:P2P
即时通信
- 在线检测:集中
- 用户上线时,向中心服务器注册IP地址
- 用户与中心服务器联系,找到其它好友的位置
-
进程通信
进程通信需要解决的问题
问题一:进程标示和寻址问题 发给谁,每个人要有唯一的标示(服务用户)
- 问题二:传输层-应用层提供服务是如何(服务) 层间接口 主机IP 、TCP 还是UDP(端口号)
- 位置:层间界面的SAP(TCP/IP:socket)
- 形式:层间程序接口API(TCP/IP:socket API)
问题三:如何使用传输层提供的服务,实现应用进程之间的应用报文,实现应用(应用层,只关注应用层怎么使用传输层提供的服务)
传输层提供的服务
需要穿过层间的信息
层间接口必须携带的信息:
- 发的什么,要传输的报文(对本层来说:SDU)
- 谁发的:IP+TCP(UDP)端口
- 发给谁:对方的IP+TCP(UDP)端口号
-
层间信息的代表
TCP Socket:
- TCP Socket 一个整数,代表我的IP、端口号,对方的IP、端口号的四元组,便于本地操作系统的管理和使用。是一个指明会话关系的本地标识。
层间信息代码
UDP Socket:
- UDP服务:两个进程的通信需要之前无需建立连接
- 每个报文到时独立传输的
- 前后报文可能给不同的分布式进程
- 只能用一个整数表示本应用实体的进程
- 穿过层间接口的信息大小最小
- UDP socket : 本地IP,本端口
- 但是传输报文时: 必须要提供对方的IP,port
- 接受的时候,根据目标IP、port,找到对应socket,然后找到对应进程
如何使用传输层的服务实现应用
- 定义应用层协议
-
应用层协议
define:运行在不同端系统上的应用进程如何相互交换报文
- 交换的报文类型
- 各种报文类型的语法
- 字段的语义
- 进程合适、如何发送报文及对报文进行相应的规则
- 应用协议只是应用组成的一部分
应用需要传输层提供什么样的服务 可靠性 延时 吞吐量 安全性
Internet提供的服务
TCP服务
- 可靠的传输服务
- 拥塞控制 能感受到路径上拥塞的程度
- 流量控制
- 不能提供的服务:时间保证、最小吞吐保证、安全
- 面向连接:要求客户端进程和服务器进程之间建立连接
UDP服务
- 不可靠数据传输
- 没有流量、拥塞控制
- 不做可靠的服务
- 不建立连接、速度快
SSL加密 安全TCP ->https