一级标题
网络应用的体系结构
客户机/服务器结构(C/S)
服务器
- 对外提供服务的硬件或软件
- 7*24小时提供服务
- 永久性访问地址/域名
- 利用大量服务器实现可扩展性
例如百度的服务器
客户机
- 与服务器通信,使用服务器提供的服务
- 间歇性接入网络
- 可能使用动态IP地址
- 不会与其他客户机直接通信
例如:万维网web
点对点结构(P2P)
- 没有永远在线的服务器
- 任意端系统/节点之间可以直接通讯
- 节点间歇性接入网络
- 节点可能改变ip地址
- 优点:高度可伸缩
- 缺点:难于管理
问:能否将两种结构混合在一起使用?
混合能够利用两者的优点同时规避两者的缺点?
混合结构
- 文件传输使用P2P结构
- 文件的搜索采用C/S结构—集中式
1.每个节点向服务器顶级自己的内容
2.每个节点向中央服务器提交查询指令,查找感兴趣的内容
思考:为每种体系结构找出5种以上的网络应用
从多个方面对比它们的优缺点
网络应用进程通信
- 进程:主机上运行的程序
- 同一主机上运行的进程直接如何通信?
1.进程间通信机制
2.操作系统提供 - 不同主机上运行的进程间如何通信?
1.消息交换/报文交换
注:客户机进程:发起通信的进程
服务器进程:等待通信请求的进程
P2P之间也有这种进程
套接字socket
- 进程间通信利用socket发送/接收消息实现
- 类似于寄信
1.发送方将消息送到门外邮箱
2.发送方依赖(门外的)传输基础设施将消息传到接收方所在的主机,并送到接收方的门外
3.接收方从门外获取消息 - 传输基础设施向进程提供API
1.传输协议的选择
2.参数的设置
如何让寻址的进程
- 不同主机上的进程间通信,那么每个进程必须拥有标志符
- 如何寻址主机?—IP地址
1.主机有了IP地址后,是否足以定位进程?
否。同一主机上可能同时存在多个进程需要通信 - 端口号/PORT NUMBER
1.为主机上每个需要通信的进程分配一个端口号
2.HTTP server 80
3.MAIL server 25 - 进程的标识符
IP地址+端口号
应用层协议
网络应用需遵循应用层协议
- 公开协议
1.由RFC定义
2.允许互操作
例如:HTTP SMTP - 私有协议
多数P2P文件共享应用
注:原则上开发时须遵循某种公开的协议,但现有的没有一个合适的协议,则可以自己创作一个
应用层协议的内容
- 消息的类型
1.请求消息
2.响应消息 - 消息的语义格式
1.消息种有哪些字段
2.每个字段如何描述 - 字段的语义
1.字段中消息的含义 - 规则
1.进程何时发送/响应消息
2.进程如何发送/响应消息
网络应用的需求与传输层服务
网络应用对传输服务的需求
-
数据丢失/可靠性
1.某些网络应用能够容忍一定的数据丢失:网络电话
2.某些网络应用要求100%可靠性的数据传输:文件传输 -
时间/延迟
1.有些应用只有在延迟足够低时才有效
2.网络电话/网络游戏 -
带宽
1.某些应用只有在带宽达到最低要求时才有效:网络视频
2.某些应用能够适用任何带宽:弹性应用:email
注:不仅以上三点:如安全方面的要求
Internet提供的传输服务
提供两类传输服务
思考:盘点计算机上的所有网络应用
制作一个清单,包括网络应用的名字,功能,协议
分析这些网络应用对传输服务的需求
分析这些网络应用所使用的传输服务协议是TCP还是UDP
Web
world wide web:tim berners-lee
-
web由什么构成的?网页
-
网页互相链接
-
网页包含多个对象
1.对象:HTML文件、JPEG图片、视频文件、动态脚本等
2.基本HTML文件:包含对其它对象引用的链接 -
对象的寻址
1.URL:同一资源定位器
-
万维网应用遵循什么协议?
-
超文本传输协议
-
C/S结构
1.客户:请求、接收、展示Web对象
2.服务器:响应客户的请求,发送对象 -
使用TCP传输服务
1.服务器在80端口等待客户的请求
2.浏览器发起到服务器的tcp连接
3.服务器接受来自浏览器的TCP连接
浏览器与web服务器交换http消息
关闭tcp消息 -
无状态
-
服务器不维护任何有关客户端发送过去所发请求的消息