网络应用程序体系结构
客户-服务器体系结构(client-server architecture)
服务器
- 7*24小时提供服务
- 永久性访问地址/域名
- 利用大量服务器的集群实现可扩展性
客户机
- 与服务器通信,使用服务器提供的服务
- 间歇性接入网络
- 可能使用动态IP地址
- 不会与其他客户机直接通信
如:Web,FTP,Telnet,电子邮件
对等体系结构(P2P architecture)
不依赖或极少地依赖中心服务器。
应用程序在间断连接的主机对间直接通信。
对等方 P2P体系下直接通信的主机。
流量密集型应用常用P2P结构。
如:BitTorrent,P2P下载加速器,因特网电话,IPTV
优点:高度可伸缩
缺点:难于管理
混合体系结构(Hybrid)
结合了C/S,P2P结构。
如许多即时通讯应用中,服务器用于跟踪用户IP,用户到用户报文直接在用户主机间传输。
进程通信
进程是通信中会话双方的实体。
套接字
同一主机内,应用层与运输层间的接口,是操作系统提供的对因特网服务的抽象。
开发者可通过套接字控制应用层的一切行为,但对运输层的控制非常有限。
进程寻址
标识进程
- 主机地址: IP地址
- 主机中的进程标识符: 端口号
可供进程使用的运输层服务
可靠数据传输
运输层协议确保进程到进程的可靠数据传输:数据正确,完全地交付
丢包:结点缓存溢出,数据比特损坏。
吞吐量(速率,带宽)保证
运输层协议提供确保可用的吞吐量。
即协议确保可用吞吐量总大于r 比特每秒。
定时(延时)保证
运输层协议确保延时低于一定值。
安全性保证
运输层协议保证数据机密性,完整性等。
因特网运输服务
TCP服务 面向链接的可靠数据传输服务
UDP服务 无连接的不可靠数据传输服务
安全套接字层(Secure Sockets Layer,SSL)
应用层协议,提供进程到进程的安全性服务。
依赖运输层的TCP服务。
有自己的套接字API,需要在通信应用程序的双方部署相应SSL代码(SSL库,类)
应用层协议
定义应用程序进程如何传递报文,具体地,定义:
- 报文类型
- 报文语法 报文字段及格式
- 字段语义
- 进程何时,如何发送报文,如何响应报文
公有域应用层协议 常由RFC 文档定义
私有应用层协议
应用层协议是网络应用的重要组成部分。