1、C/S 客户/服务器模式
1.1、服务器
- 要一直运行;
- 有固定的IP和周知(约定)的端口号;
存在的问题:
- 性能问题:随着访问用户的增加,性能在到达阈值之后急剧下降;
- 扩展性:可扩展性差,用户多了之后服务器容量、服务器本身、网络的带宽等都要优化;
- 可靠性:一旦服务器宕机,所有的用户都无法访问;
1.2、客户端
- 以间歇的方式,主动和服务器通信;
- IP可能是动态的;
- 不与其他客户端建立连接;
2、对等体系结构
- (几乎)没有一直运行着的服务器;
- 任意端系统之间可以通信;
- 每个节点既是客户端又是服务器;
- 参与的主机间歇性连接且可以改变IP;
3、分布式应用进程通信要解决的问题
互联网提供了远程的进程间通信,连接了世界各地;
3.1、进程标识和寻址问题(谁跟谁通讯?)
要知道是主机上的哪一个进程,如何找到地址来进行通信;
- 主机IP;
- TCP进程还是UDP进程;
- TCP进程的端口号或UDP进程的端口号;
3.2、利用传输层向应用层提供的何种服务?(用什么方式来通讯?)
位置:层间界面的SAP(TCP/IP:Socket);形式:应用程序接口API(TCP/IP:Socket API)
- 通讯要能传输报文数据SDU、源IP、目标IP信息;
- 传输层传输时要根据上面的信息,进行封装;
Q:如何减少层间传输的信息量?
A:利用本地的Socket,将源/目标IP和(或)源/目标port标识为一个整数来管理;
3.3、应用层面如何实现?(通信的具体内容是什么?)
定义应用层协议:报文格式、说明、时序;
编写应用程序:利用操作系统提供的API,调用网络基础设施实现报文传输;
4、SSL(Secure Sockets Layer 安全套接字协议)
属于应用层,在APP应用和TCP/UDP之间,用于保证数据传输的安全性;