应用层协议的内容
o 消息类型
n 例如:请求、应答
o 语法(Syntax)
n 消息中包含哪些字段,每个字段的长度
o 语义 (Semantics)
n 每个字段信息的含义
o 时序:消息的顺序
应用层协议的特点
面向用户,支持特定的网络应用
n 没有通用的协议,每个应用有专门的协议!
n 相比其他层,协议数量最多、最复杂
C/S 体系结构
o 服务器:
n 提供服务,同时处理多个客户请求
n 一直在线
n 地址(域名)公开,一般不变
n 可能有多个服务器(server farms)
n 一般需要高性能硬件支持
o 客户:
n 与服务器通信,使用服务
n 临时连接到网络
n IP地址可能是动态的
n 客户之间不直接通信
P2P体系结构
o Peer –to-Peer
o 没有严格的服务器-客户机之分,Peer
o 没有一直在线的服务器,Peer在必要时充当服务器
o Peer之间直接通信
o Peer临时连接到网络,且IP地址可能动态变化
可扩展、成本低,但难于管理、有安全隐患
P2P: 如何查找资源?
集中式:从索引服务器(Index Server)中查找资源,eg. Napster
分布式:洪泛查询(Query Flooding),eg.Gnutella
分层叠加网,超级节点ᨀ 供索引服务,eg.KaZaA, freenet,chord
进程通信
进程(Process): 主机内程序的一次执行
❒ 在主机内部,进程使用进程间通信机制 (由OS决定)
❒ 不同主机之间,通过交换消息进行通信
不同主机间通信的接口:Sockets
套接字
应用进程使用socket来发送/接收消息
应用编程接口(API)
n 位于应用层和传输层 之间
n 帮助应用访问系统内核(TCP/IP协议软件)
n 设置相关参数(如最大报文段长度MSS等
网络应用对传输服务的要求:衡量指标
可靠性:数据丢失率
o 可容忍差错,如话音
o 不能容忍差错,如Email
实时性
o 端到端的时延
吞吐量 (Throughput)
o 端到端的带宽
o 音频数据: 5kbps-1Mbps
o 视频数据:10kbps-5Mbps
安全性
o 是否加密、是否验证用户身份、能否保证数据一致性
因特网的传输层服务
TCP 服务
o 面向连接: 传输数据之前需要建立连接
o 可靠传输:无差错、按序交付
o 流量控制:可以限制发送速度,不会淹没接收方
o 拥塞控制:在网络过载时可以限制发送速度
o 不保证: 实时性、最低吞吐量和安全性
UDP 服务
o 不可靠传输
n 无连接
n 数据可能传错、丢失、重复
n 可能接收顺序与发送顺序不同
n 无流量控制
n 无拥塞控制
n 不保证实时性、最低吞吐量和安全性
DNS(域名系统):基本功能
IP地址的优点和缺点
n IP地址更适合计算机处理,包含足够的路由信息。
n IP地址不适合人们记忆
n 无法通过IP地址猜测主机的用途
如何取长补短——域名系统
n 优点:
o 使用方便,易于记忆。
o 一致性好,不会随IP地址的改变而改变。
n 采用分层结构的分布式数据库,提供主机名和IP地址映射的目录服务
n 允许主机查询分布式DNS数据库的应用层协议
DNS协议要点
采用C/S模型,Client请求,Server响应
客户端程序:resolver(解析器)
传输层采用UDP
DNS服务器的访问端口号是53
DNS是其他应用层协议的支撑协议
主机域名的构成
主机名是由一系列由“.”分开的标签组成:
n 标签由英文字母和数字组成;
n 每个标签不能超过63个字符;
n 全部的标签不能超过255个字符;
n 书写顺序是从主机开始直到域名树的根域为止。例如:scss.bupt.edu.cn
域名是一个组织在域名空间中的名字
n 例如,北京邮电大学的域名为bupt.edu.cn。
n 该组织中已注册的主机都以组织的域名为后缀
区域是域名空间中的一部分(子树),从域名管理的角度来划分的,即DNS服务器的管辖范围是“区”
v 每一个区设置相应的权威服务器,用来保存该区中所有主机的域名到ip地址的映射
DNS服务器
根据DNS服务器的作用,可分为四类:
n 根域名服务器(Root Name Server)
o 为下级域名服务器ᨀ 供域名解析服务;
n 它需要知道全部顶级域名服务器的地址。
o 数量很少,由于历史原因,主要分布在北美地区。
n 顶级域名服务器(Top level Name Server)
o 负责管理该顶级域名服务器注册的所有二级域名。
n 权威域名服务器(Authoritative Name Server)
o 每台因特网中的主机都应该在所在域的域名服务器中注册,提供注册的域名服务器就是该主机的认证域名服务器。
n 本地域名服务器(Local Name Server)
o 当一个主机发出 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器。
DNS解析
要获得www.mit.edu的IP地址:
o 首先请求某个根服务器以找到.edu域的DNS 服务器
o 然后请求.edu域的DNS 服务器(TLD名字服务器)以找到.mit.edu域的DNS 服务器
o 请求mit.edu的DNS 服务器(权威服务器)以获得www.mit.edu的IP地址
DNS名字解析:迭代查询
目前因特网采用的方式
迭代查询过程:
p 在无法完成域名解析时,本地DNS服务器询问根DNS 服务器
p 根DNS 服务器返回.edu域DNS 服务器的地址
p 本地DNS 服务器询问.edu域DNS 服务器
p 以此类推,最终请求权威DNS服务
DNS名字解析:递归查询
递归查询
p 由被请求的名字服务器代理进行DNS查询
p 因特网中可选采用
DNS协议消息
DNS协议包含请求(query)和应答(reply)两个消息,其消息格式相同
标识(ID): 16位,一对请求和应答消息使用同样的标识
标志(Flag):
v 消息是请求或应答
v 是否使用递归查询
v 递归查询是否可行
v 应答是否是权威的