第 7 章 应用层

150
Computer Networks v4 cs.sjtu 22/6/10 第 7 第 第第第 1 / 150 7 7 第第第 第第第 第第第第第第第第第第第第第第第第第第第第第 第第第第第第第第第第第第 CASE Common Application Service Element 第第第第第第第第 CASE 第第第第第第第第第第第第 第第第第第第第第第第第第第第 第第第第第第第第第第第第第 ,,、 第第第第第第第第 SASE Special Application Service Element 第第第 第第第 第第 第第第第第第 (体) SASE 第第第第第 第第第第第第第第 第第第第第 第第第 第第 :、

Upload: madeline-witt

Post on 03-Jan-2016

51 views

Category:

Documents


4 download

DESCRIPTION

第 7 章 应用层. 应用层主要提供应用进程与通信进程之间的接口 它提供两种不同的服务要素: CASE ( Common Application Service Element ) 公共应用服务要素 CASE 提供整个通信所要求的功能,如两个通信伙伴之间建立联系,向低层指示通信所用的参数、要求的服务质量等 SASE ( Special Application Service Element ) 专门的(或具体的)应用服务要素 SASE 包括专门的、但广泛应用的功能 如:虚拟终端、文件传输等. 本章将讨论:. SNMP – 简单网络管理协议 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 1 / 150

第第 77 章 应用层章 应用层 应用层主要提供应用进程与通信进程之间的接口 它提供两种不同的服务要素:

CASE ( Common Application Service Element )

公共应用服务要素CASE 提供整个通信所要求的功能,如两个通信伙伴之间建立联系,向低层指示通信所用的参数、要求的服务质量等

SASE ( Special Application Service Element )

专门的(或具体的)应用服务要素 SASE 包括专门的、但广泛应用的功能如:虚拟终端、文件传输等

Page 2: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 2 / 150

本章将讨论:本章将讨论:

SNMP – 简单网络管理协议 DNS – 域名系统 电子邮件 E - mail

WWW

多媒体 P2P 应用

Page 3: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 3 / 150

网络管理的基本出发点 网络管理的基本出发点 具有网络监视和控制两方面的能力

能够管理所有层次的协议

尽可能大的可管理范围(设备种类)

尽可能小的系统开销

可管理不同厂家的设备

Page 4: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 4 / 150

网络管理的五大功能 网络管理的五大功能 故障管理:

故障检测、故障定位、故障报告 配置管理:

识别网上的设备和用户,维护网上软硬件和电路的精确清单 性能管理:

资源利用率分析 计费管理:

对用户使用的各种资源进行跟踪,统计时间 安全管理:

用户授权,控制网上用户只能访问自己权限内的资源

Page 5: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 5 / 150

常用的术语 常用的术语 网络元素:

具体的通信设备和逻辑实体被管对象:

可用管理协议进行管理和控制的对象,如:网络接口、主机、路由表、某种协议

MIB :管理信息库,保存有关被管网络元素信息的数据结构

Page 6: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 6 / 150

SNMPSNMP 模型 模型

网管站

网管代理

委托代理

数据库

管理协议

MIB

MIB

Page 7: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 7 / 150

网络管理系统的组成 网络管理系统的组成 网管站:

运行网络管理软件的计算机 网管代理( agent ):

运行于被管设备 委托代理( proxy ):

无法安装 SNMP 的设备,通过委托代理管理 管理信息库( MIB ):

存放被管信息 管理协议:

网管站、网管代理、委托代理之间的通信协议

Page 8: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 8 / 150

网管站 网管站 运行特殊网络管理软件的普通计算机

在它上面运行一个或多个进程

它们在网络上与代理通信:发送命令,接收应答

网管工作站对所有被管设备的管理,通常采用定时的询问机制

MIB管理进程

SNMP

UDP

IP

与网络有关的协议

Page 9: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 9 / 150

网络管理系统的组成 网络管理系统的组成 网管站:

运行网络管理软件的计算机 网管代理( agent ):

运行于被管设备 委托代理( proxy ):

无法安装 SNMP 的设备,通过委托代理管理 管理信息库( MIB ):

存放被管信息 管理协议:

网管站、网管代理、委托代理之间的通信协议

Page 10: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 10 / 150

网管代理网管代理(( agentagent )) 运行于被管设备中,如路由器、交换机、网桥等

管理者 manager

SNMP 消息

被管设备管理进程 代理进程

SNMP SNMP

UDP UDP

IP IP

与网络有关的协议 与网络有关的协议通信网络

网络设备在完成主要职责的同时,运行一个网管代理软件,一般网管工作站定时轮询网管代理,网管代理则向网管工作站报告所询问的网络状态,或有紧急情况时网管代理向网管工作站提出紧急请求: Trap

Page 11: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 11 / 150

网络管理系统的组成 网络管理系统的组成 网管站:

运行网络管理软件的计算机 网管代理( agent ):

运行于被管设备 委托代理( proxy ):

无法安装 SNMP 的设备,通过委托代理管理 管理信息库( MIB ):

存放被管信息 管理协议:

网管站、网管代理、委托代理之间的通信协议

Page 12: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 12 / 150

委托代理委托代理(( proxyproxy ))

一个 SNMP 的委托代理负责对一个或多个被委托设备的管理功能,即把管理者的命令和请求转换为此类设备能识别的信息,同时把这些设备的信息转换为管理者所能识别的形式,进行间接管理

管理工作站

管理进程SNMP

UDP

IP

底层协议

委托代理协议转换功能

管理进程被委托设备的协议结构

SNMP

UDP

IP

底层协议 底层协议

被委托设备管理进程

被委托设备的协议

底层协议

通信网络 通信网络

SNMP 消息

Page 13: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 13 / 150

网络管理系统的组成 网络管理系统的组成 网管站:

运行网络管理软件的计算机 网管代理( agent ):

运行于被管设备 委托代理( proxy ):

无法安装 SNMP 的设备,通过委托代理管理 管理信息库( MIB ):

存放被管信息 管理协议:

网管站、网管代理、委托代理之间的通信协议

Page 14: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 14 / 150

对象的命名 对象的命名

管理信息库 MIB ( management informatio

n base )指明了网络元素所维持的变量(即能被管理进程查询和设置的信息)

MIB 给出了一个网络中所有被管对象的集合的数据结构, SNMP 的管理信息库采用树型结构,称为对象命名树

Page 15: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 15 / 150

对象命名树 对象命名树

Enterprises(1) 1.3.6.1.4.1mib-2(1) 1.3.6.1.2.1

directory(1) mgmt(2) experimental(3) private(4) security(5) snmpv2(6)

internet(1) 1.3.6.1

standard(0) registration authority(1) member body(2) identified organization(3)

ccitt(0) iso(1) joint-iso-ccitt(2)

dod(6)

system(1) interface(2) at(3) ip(4) icmp(5) tcp(6) udp(7) egp(8)

Page 16: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 16 / 150

网络管理系统的组成 网络管理系统的组成 网管站:

运行网络管理软件的计算机 网管代理( agent ):

运行于被管设备 委托代理( proxy ):

无法安装 SNMP 的设备,通过委托代理管理 管理信息库( MIB ):

存放被管信息 管理协议:

网管站、网管代理、委托代理之间的通信协议

Page 17: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 17 / 150

SNMPv1SNMPv1 协议只支持协议只支持 55 类消息 类消息 get :管理者读取代理信息

get-request

get-response

get-next-request

set :管理者设置代理对象中的值 set-request

trap :在紧急情况下,代理向管理者报告信息trap

Page 18: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 18 / 150

SNMPSNMP 采用采用 UDPUDP 协议协议

使用的端口号为 161 和 162

161 端口:接收来自管理者(网管工作站)

的全部协议数据单元

162 端口:用于代理向管理者传送事件 /陷阱

Page 19: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 19 / 150

SNMPSNMP 报文的典型操作过程 报文的典型操作过程

UDP 端口 162

UDP 端口 161

UDP 端口 161

UDP 端口 161

get-request

get-next-request

set-request

get-response

get- response

get- response

trap

SNMP 管理进程 SNMP 代理进程

Page 20: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 20 / 150

本章将讨论:本章将讨论:

SNMP – 简单网络管理协议 DNS – 域名系统 电子邮件 E - mail

WWW

多媒体 P2P 应用

Page 21: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 21 / 150

域名系统域名系统 DNSDNS

DNS 的主要功能

DNS 的名字空间

名字服务器

资源记录

域名解析过程

DNS : Domain Name System

Page 22: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 22 / 150

DNSDNS 的主要功能的主要功能功能:映射域名与 IP地址之间的对应关系

特点:分级的、基于域的命名机制和分布式的数据库系统

域名

IP地址

MAC地址

DNS

ARP

Page 23: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 23 / 150

域名系统域名系统 DNSDNS

DNS 的主要功能

DNS 的名字空间

名字服务器

资源记录

域名解析过程

DNS : Domain Name System

Page 24: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 24 / 150

DNSDNS 的名字空间 的名字空间 DNS 的分层结构

通用的 国家的

sun yale acm ieee edu sh occ vu

eng cs eng jack jill sjtu online cs

a inda cs orin flits fluit

robit network

int com edu gov mil org net cn jp nl ...

Tnbm P581 Fig. 7-1 部分 Internet 域名空间

Page 25: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 25 / 150

DNSDNS 的名字空间的名字空间(续)(续) 其中: int - 特定组织机构, net - 网络提供者 命名:域名是从叶到根的路径,用点分开

例: network.cs.sjtu.edu.cn

注:

1997年 Internet 公布了新的顶级域名.firm 企业或公司 .rfo 娱乐活动.now 个体或个人 .info 提供信息服务的单位.store 售货单位 .arts 文化娱乐单位.web 与 WWW活动有关的单位

大小写不敏感 新建一个域,必须征得所属域的同意 命名遵循组织界限,而非物理网络

Page 26: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 26 / 150

域名系统域名系统 DNSDNS

DNS 的主要功能

DNS 的名字空间

名字服务器

资源记录

域名解析过程

DNS : Domain Name System

Page 27: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 27 / 150

域名服务器 域名服务器 提供域名解析 域名的解析是通过分布式数据库系统,由区域管理员划分区域边界,每个区域有自己的 DNS 服务器

int com edu gov mil org net cn jp nl ...

sun yale acm ieee edu sh occ vu

eng cs eng jack jill sjtu online cs

a inda cs orin flits fluit

robit network

根服务器

Page 28: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 28 / 150

域名服务器 域名服务器 续续

根服务器提供可用的顶级域名服务器的IP地址

一台域名服务器必须负责自己直接管辖的所有主机的域名解析以及下属子域的域名服务器的地址

Page 29: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 29 / 150

域名系统域名系统 DNSDNS

DNS 的主要功能

DNS 的名字空间

名字服务器

资源记录

域名解析过程

DNS : Domain Name System

Page 30: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 30 / 150

资源记录资源记录

每一个域都有一组资源记录,对任意一台主机来说,最常见的资源记录是它的 IP地址

域名服务器的主要功能是将域名映射成一组资源记录

Page 31: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 31 / 150

资源记录的组成资源记录的组成

Domain name :该资源记录对应的域 Time to live :该资源记录的生存期(秒) Class :常量“ IN” ,即 Internet 类 Type :记录类型 Value :取决于记录类型

Domain name Time to live class type value

Page 32: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 32 / 150

记录类型 记录类型 TypeType类型 意义 值

SOA 提供有关域名服务器区域、管理者的 Email地址等信息

有关该区域的一组参数

A 主机的 IP地址 32 位整型数MX 邮件服务器 邮件服务器名NS 域名服务器 该域的域名服务器名CNAME 别名 域名PTR 指针 某一 IP地址的别名,用

于反向解析HINFO 主机描述 ASCII 方式表示的 CPU

或 OSTXT 文本 任意字符串

Tnbm P583 Fig. 7-2 主要的 DNS 资源记录类型

Page 33: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 33 / 150

资源记录实例资源记录实例荷兰Vrije 大学计算机系 DNS数据库可能的权威记录信息

域名 生存期 类 类型 说明cs.vu.nl 86400 IN SOA star boss (9527,7200)

cs.vu.nl 86400 IN TXT “Vrije Universiteit Amsterdam”

cs.vu.nl 86400 IN MX 1 zephyr.cs.vu.nl

cs.vu.nl 86400 IN MX 2 top.cs.vu.nl

flits.cs.vu.nl 86400 IN HINFO Sun Unix

flits.cs.vu.nl 86400 IN A 130.37.16.112

flits.cs.vu.nl 86400 IN MX 1 flits.cs.vu.nl

ftp.cs.vu.nl 86400 IN CNAME 2 zephyr.cs.vu.nl

Rowboat IN A 130.37.62.23

Page 34: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 34 / 150

域名系统域名系统 DNSDNS

DNS 的主要功能

DNS 的名字空间

名字服务器

资源记录

域名解析过程

DNS : Domain Name System

Page 35: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 35 / 150

域名解析过程域名解析过程

通过 UDP 包传输请求和应答,使用的端口号是 53

解析过程有两种 迭代查询 递归查询

Page 36: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 36 / 150

迭代查询迭代查询 cs.sjtu.edu.cn 要查询 www.cs.tsinghua.edu.cn 的 IP地址

主机向本地的 DNS 服务器发出查询请求 本地 DNS 服务器向根服务器发查询 根服务器返回 edu 的 DNS 服务器地址 本地服务器向 edu 的 DNS 发解析请求 Edu 的 DNS 服务器返回 tsinghua 的 DNS地址 本地 DNS再向 tsinghua 的 DNS 发解析请求 Tsinghua 的 DNS返回它的 cs 的 DNS地址 本地 DNS 向 cs 的 DNS地址发解析请求 cs 的 DNS返回www.cs.tsinghua.edu.cn 的 IP地址 本地 DNS将www.cs.tsinghua.edu.cn 的 IP地址返回给主机

Page 37: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 37 / 150

递归查询 递归查询

cs.sjtu.edu.cn sjtu.edu.cn edu.cn tsinghua.edu.cn

⑧ ⑦

起始服务器sjtu

DNS 服务器cernet

DNS 服务器tsinghua

DNS 服务器

cs.tsinghua.

edu.cn

tsinghua CSDNS 服务器

Page 38: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 38 / 150

DNSDNS 性能的优化 性能的优化 解决根服务器太忙的问题

复制:每个根服务器被复制许多份,存于整个世界,实际使用时,找物理上最近的服务器

缓存:每个服务器都有一个域名缓存,当查找到一个新的记录时, DNS将它的副本存于缓存中,此后如有域名解析请求,服务器优先查找缓存,但此信息不是权威(最原始)的,所以生存期是必须的

Page 39: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 39 / 150

本章将讨论:本章将讨论:

SNMP – 简单网络管理协议 DNS – 域名系统 电子邮件 E - mail

WWW

多媒体 P2P 应用

Page 40: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 40 / 150

电子邮件电子邮件

电子邮件是使用方便、传递迅速、价格低廉的通信手段

电子邮件标准

SMTP – Internet 的标准

X.400 – CCITT 的标准

Page 41: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 41 / 150

电子邮件电子邮件 E-mailE-mail

E-mail 服务基于客户 / 服务器模式,逻辑上分成用户代理和消息传输代理两个子系统

电子邮件系统具有五个基本功能:撰写、传输、报告、显示、处理

Page 42: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 42 / 150

电子邮件的组成及其传输电子邮件的组成及其传输

E-mail 系统的组成 用户代理 消息格式 消息传输 最终递交

Page 43: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 43 / 150

E-mailE-mail 系统的组成图例 系统的组成图例

发送邮件缓冲区

用户信箱

报文传输代理MTA

用户接口

用户代理UA

客户(发送邮件)

服务器(接收邮件)

发送邮件的TCP连接目的端口号 2

5

接收邮件的TCP连接25

25

电子邮件系统

Page 44: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 44 / 150

电子邮件的组成及其传输电子邮件的组成及其传输

E-mail 系统的组成 用户代理 消息格式 消息传输 最终递交

Page 45: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 45 / 150

用户代理用户代理(( user agentuser agent )) 用户代理是一个本地程序,提供行命令

方式、菜单方式或图形方式的界面,用于收发和管理电子邮件

具有撰写、显示和处理功能,在常用的浏览工具中都带有电子邮件收发器,早期也流行过专用的收发器

常用的有: sendmail 、 Netscape 、 IE 、 foxmail 等

Page 46: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 46 / 150

电子邮件的组成及其传输电子邮件的组成及其传输

E-mail 系统的组成 用户代理 消息格式 消息传输 最终递交

Page 47: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 47 / 150

消息格式消息格式

RFC822

MIME

与传统的信件一样,电子邮件也由信封、信头和内容组成

Page 48: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 48 / 150

RFC 822RFC 822

RFC 822 没有明显地区分信封和头部字段,因此邮件就由头部和消息体组成

通常用户代理创建一条消息交给传输代理,由它去构建一个信封

Page 49: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 49 / 150

与消息传输相关的头部字段与消息传输相关的头部字段头字段 意义

To : 接收者的地址Cc : 第二接收者的地址Bcc : 秘密拷贝者的地址From : 发送者名字Sender : 发送者的地址Received : 沿途每一个转发者增加的信息行Return-Path : 标识返回发送者的路径

Tnbm P595 Fig. 7-9 与消息有关的 RFC 822头部字段

Page 50: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 50 / 150

用户代理或接收者使用用户代理或接收者使用的头部字段的头部字段

头字段 含义Date : 发送消息的日期和时间Reply-To : 回信应送达的电子邮件地址Message-ID :

以后引用此消息的唯一标识号

In-Reply-To :

回信消息的标识号

References:

其它相关消息的标识号(一个或多个)

Keywords : 用户选择的关键字Subject : 用于一行显示的本消息的简短摘要Tnbm P596 Fig. 7-10 RFC 822 消息头中使用的一些字段

Page 51: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 51 / 150

消息格式消息格式

RFC822

MIME

与传统的信件一样,电子邮件也有信封、信头和内容组成

Page 52: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 52 / 150

早期早期 E-mailE-mail 的缺陷 的缺陷

RFC822仅限于 7 位 ASCII码,许多非英语国家的文字无法传送

不能传送可执行文件等二进制文件,包括音频、视频文 件

早期的电子邮件只能传送以 ASCII 代码保存的文本信息(适合于美国等英语国家) 当 Internet 成为一个全球网络的时候,出现以下问题:

Page 53: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 53 / 150

MIMEMIME 定义的定义的 55 种新头部种新头部 MIME ( Multipurpose Internet Mail Extension )

在 RFC822 的基础上,增加了消息主体的内容( RFC 2045 2049 )以及 5 个新的头部

Tnbm P597 Fig. 7-11 MIME 添加的由 RFC822 定义的头部

字段名 含义

MIME-Version :MIME版本为 1.0 ,表示服从 RFC 文档

Content-Description : 人能阅读的串,说明消息中的内容

Content-ID : 唯一的标识符

Content-Transfer-Encoding : 说明传送时如何包装消息主体

Content-Type : 说明内容的类型和格式

Page 54: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 54 / 150

内容描述和内容标识符内容描述和内容标识符

内容描述

主体对象的简单文本描述 内容标识符

用于在多个内容中唯一地标识每个 MI

ME 报文实体

Page 55: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 55 / 150

MIMEMIME 定义的定义的 55 种新头部种新头部 MIME ( Multipurpose Internet Mail Extension )

在 RFC822 的基础上,增加了消息主体的内容( RFC 2045 2049 )以及 5 个新的头部

Tnbm P597 Fig. 7-11 MIME 添加的由 RFC822 定义的头部

字段名 含义

MIME-Version :MIME版本为 1.0 ,表示服从 RFC 文档

Content-Description : 人能阅读的串,说明消息中的内容

Content-ID : 唯一的标识符

Content-Transfer-Encoding : 说明传送时如何包装消息主体

Content-Type : 说明内容的类型和格式

Page 56: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 56 / 150

内容传送编码 内容传送编码

表示报文主体的转换类型,以某种方式将报文主体

表示成邮件传送时可接受的格式

最简单的编码 ( 7 bit 或 8 bit 的 ASCII ,但不能传输二进制数)

Base 64 传送编码( ASCII armor ,可传输二进制数) P598

引用的可打印编码 ( quoted-printable encoding ,

可传输二进制数)

Page 57: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 57 / 150

MIMEMIME 定义的定义的 55 种新头部种新头部 MIME ( Multipurpose Internet Mail Extension )

在 RFC822 的基础上,增加了消息主体的内容( RFC 2045 2049 )以及 5 个新的头部

Tnbm P597 Fig. 7-11 MIME 添加的由 RFC822 定义的头部

字段名 含义

MIME-Version :MIME版本为 1.0 ,表示服从 RFC 文档

Content-Description : 人能阅读的串,说明消息中的内容

Content-ID : 唯一的标识符

Content-Transfer-Encoding : 说明传送时如何包装消息主体

Content-Type : 说明内容的类型和格式

Page 58: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 58 / 150

内容类型 内容类型

内容类型

详细地描述了报文主体所包含的数据,接收方用户代理可挑选适当的代理或机制向

用户提交数据,或以适当的方式处理数据

Page 59: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 59 / 150

内容类型详述内容类型详述定义了 7 个基本类型和 17 种子类型,类型与子类型之间用“ / ” 分开 ,例: Content-Type : Video/Mpeg

类型 子类型 描 述

Text

Plain 末格式化的文本Richtext 文本中含有简单的格式化命令Html web页面Xml Xml 文档

ImageGif GIF格式的静态图象Jpeg JPEG格式的静态图象

Audio Basic 声音Video Mpeg MPEG格式的电影

ApplicationOctet-Steam 一个末解释的字节序列Postscript 一个以 Postscript格式组织的可打印文档

MessageRft822 一条MIME RFC 822 消息Partial 消息已被分割用于传输External-Body 消息本身必须通过网络来获取

Multipart

Mixed 按指定顺序的各个无关部分Alternative 不同格式的同一消息Parallel 各部分必须同时浏览Digest 每一部分都是一条完整的 RFC 822 消息

Tnbm P599 Fig. 7-12 RFC 1521 中定义的 MIME 类型和子类型

Page 60: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 60 / 150

TextText 类型类型

Text 类型意味着普通文本 Text/Plain组合是能按接收样式直接显示的普

通消息,无须进行编码和其他的处理

这个选项允许普通消息只添加很少的头部就能以MIME 传输

Page 61: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 61 / 150

TextText 类型类型(续)(续)

Text/Richtext 子类型允许文本中包含一个简单的标记语言

这种语言提供了一种独立于系统的方法来描述粗体、斜体、大小、缩进、对齐、上下标以及简单的页面设置,标记语言基

于标准通用标记语言 SGML ,也是万维网 HTML 的基础

Text/Html允许在 E-mail 中发送 web页面 Text/Xml允许发送 xml 的文档

Page 62: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 62 / 150

内容类型详述内容类型详述定义了 7 个基本类型和 17 种子类型,类型与子类型之间用“ / ” 分开 ,例: Content-Type : Video/Mpeg

类型 子类型 描 述

Text

Plain 末格式化的文本Richtext 文本中含有简单的格式化命令Html web页面Xml Xml 文档

ImageGif GIF格式的静态图象Jpeg JPEG格式的静态图象

Audio Basic 声音Video Mpeg MPEG格式的电影

ApplicationOctet-Steam 一个末解释的字节序列Postscript 一个以 Postscript格式组织的可打印文档

MessageRft822 一条MIME RFC 822 消息Partial 消息已被分割用于传输External-Body 消息本身必须通过网络来获取

Multipart

Mixed 按指定顺序的各个无关部分Alternative 不同格式的同一消息Parallel 各部分必须同时浏览Digest 每一部分都是一条完整的 RFC 822 消息

Tnbm P599 Fig. 7-12 RFC 1521 中定义的 MIME 类型和子类型

Page 63: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 63 / 150

ImageImage 类型 类型

Image 用来传输静态图片

目前有多种格式用来存储和转换图象,有些

支持压缩有些不支持压缩,其中的两种: Ima

ge/Gif 和 Image/Jpeg是已定义的标准子类型,

但以后会增加其他类型

Page 64: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 64 / 150

内容类型详述内容类型详述定义了 7 个基本类型和 17 种子类型,类型与子类型之间用“ / ” 分开 ,例: Content-Type : Video/Mpeg

类型 子类型 描 述

Text

Plain 末格式化的文本Richtext 文本中含有简单的格式化命令Html web页面Xml Xml 文档

ImageGif GIF格式的静态图象Jpeg JPEG格式的静态图象

Audio Basic 声音Video Mpeg MPEG格式的电影

ApplicationOctet-Steam 一个末解释的字节序列Postscript 一个以 Postscript格式组织的可打印文档

MessageRft822 一条MIME RFC 822 消息Partial 消息已被分割用于传输External-Body 消息本身必须通过网络来获取

Multipart

Mixed 按指定顺序的各个无关部分Alternative 不同格式的同一消息Parallel 各部分必须同时浏览Digest 每一部分都是一条完整的 RFC 822 消息

Tnbm P599 Fig. 7-12 RFC 1521 中定义的 MIME 类型和子类型

Page 65: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 65 / 150

AudioAudio 和和 VideoVideo 类型类型 Audio 和 Video 类型分别用于声音和运

动的图象 注: Video 只包括视频信息,没有音频信息,如果要传

输一部有声电影, Video 和 Audio部分可能会被分

别传输,这依赖于所用的编码系统,到目前为止唯一

定义的图象格式是Mpeg

Page 66: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 66 / 150

内容类型详述内容类型详述定义了 7 个基本类型和 17 种子类型,类型与子类型之间用“ / ” 分开 ,例: Content-Type : Video/Mpeg

类型 子类型 描 述

Text

Plain 末格式化的文本Richtext 文本中含有简单的格式化命令Html web页面Xml Xml 文档

ImageGif GIF格式的静态图象Jpeg JPEG格式的静态图象

Audio Basic 声音Video Mpeg MPEG格式的电影

ApplicationOctet-Steam 一个末解释的字节序列Postscript 一个以 Postscript格式组织的可打印文档

MessageRft822 一条MIME RFC 822 消息Partial 消息已被分割用于传输External-Body 消息本身必须通过网络来获取

Multipart

Mixed 按指定顺序的各个无关部分Alternative 不同格式的同一消息Parallel 各部分必须同时浏览Digest 每一部分都是一条完整的 RFC 822 消息

Tnbm P599 Fig. 7-12 RFC 1521 中定义的 MIME 类型和子类型

Page 67: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 67 / 150

ApplicationApplication 类型类型 Application 类型是要求额外处理的格式的总称,它不

与其他类型交叉 Application/Octet-Stream 子类型是不间断字节的序列 当收到这种数据流时,用户代理可能会告诉用户它应当被拷贝到文件中并提示用户输入文件名,随后处理由用户负责

Application/Postscript 子类型即 Adobe System 公司开发的 Postscript语言 Postscript语言被广泛用于描述打印页上

Page 68: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 68 / 150

内容类型详述内容类型详述定义了 7 个基本类型和 17 种子类型,类型与子类型之间用“ / ” 分开 ,例: Content-Type : Video/Mpeg

类型 子类型 描 述

Text

Plain 末格式化的文本Richtext 文本中含有简单的格式化命令Html web页面Xml Xml 文档

ImageGif GIF格式的静态图象Jpeg JPEG格式的静态图象

Audio Basic 声音Video Mpeg MPEG格式的电影

ApplicationOctet-Steam 一个末解释的字节序列Postscript 一个以 Postscript格式组织的可打印文档

MessageRft822 一条MIME RFC 822 消息Partial 消息已被分割用于传输External-Body 消息本身必须通过网络来获取

Multipart

Mixed 按指定顺序的各个无关部分Alternative 不同格式的同一消息Parallel 各部分必须同时浏览Digest 每一部分都是一条完整的 RFC 822 消息

Tnbm P599 Fig. 7-12 RFC 1521 中定义的 MIME 类型和子类型

Page 69: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 69 / 150

MessageMessage 类型类型 Message 类型允许一条消息封装在另一条之中 当一条完整的 RFC 822 消息被封装在一条发送消息中时,应当使用 M

essage/RFC 822 子类型 Message/Partial 子类型允许将一条封装好的消息拆散成几块,并将它

们分别发送 当原封装好的消息太长,则可进行分拆,然后利用参数把所有部分以正确的顺序重新组装

Message/External-Body 子类型适用于很长的消息(例如图象文件) 除了在消息中包含Mpeg 文件,还给出 FTP地址,接收者的用户代理就能在需要时从网上将它取来,当发送一部电影给许多人时,这个特性特别有用,因为只有一部分人想要看它(假设垃圾电子邮件包含广告电影)

Page 70: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 70 / 150

内容类型详述内容类型详述定义了 7 个基本类型和 17 种子类型,类型与子类型之间用“ / ” 分开 ,例: Content-Type : Video/Mpeg

类型 子类型 描 述

Text

Plain 末格式化的文本Richtext 文本中含有简单的格式化命令Html web页面Xml Xml 文档

ImageGif GIF格式的静态图象Jpeg JPEG格式的静态图象

Audio Basic 声音Video Mpeg MPEG格式的电影

ApplicationOctet-Steam 一个末解释的字节序列Postscript 一个以 Postscript格式组织的可打印文档

MessageRft822 一条MIME RFC 822 消息Partial 消息已被分割用于传输External-Body 消息本身必须通过网络来获取

Multipart

Mixed 按指定顺序的各个无关部分Alternative 不同格式的同一消息Parallel 各部分必须同时浏览Digest 每一部分都是一条完整的 RFC 822 消息

Tnbm P599 Fig. 7-12 RFC 1521 中定义的 MIME 类型和子类型

Page 71: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 71 / 150

MultipartMultipart 类型类型 Multipart 类型允许消息包括不止一部分内容,每部分的开始和结束有明确界限

Multipart/Mixed 子类型允许每部分各不相同,而且无需添加附加结构

Multipart/Alternative 子类型允许每部分包含同样的消息,但以不同的媒介或编码来表达

Page 72: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 72 / 150

MultipartMultipart 类型类型(续)(续)

Multipart/Parallel 子类型允许多个部分的同时

播放( Viewed ),如电影的播放包括视频部分

和音频部分的同时播放

Multipart/Digest 子类型用于多个消息打包、

封装,并压缩成一个消息

Page 73: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 73 / 150

电子邮件的组成及其传输电子邮件的组成及其传输

E-mail 系统的组成 用户代理 消息格式 消息传输 最终递交

Page 74: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 74 / 150

简单邮件传输协议简单邮件传输协议 SMTPSMTP 描述电子邮件的信息格式及传递方式,以保证被

传输的电子邮件能正确寻址和可靠传输 当邮件传输程序需向远程服务器发送邮件时,将

建立一个 TCP连接(端口号为 25 )并通过该连接传输电子邮件信息

SMTP是两个报文传输代理之间的通信协议,它有 14条命令和 21条应答信息,每条命令用四个字母组成,一般情况下一条命令只有一行,由三位数字的代码开始,后面附上简单的文字说明

Page 75: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 75 / 150

连接建立 连接建立 发信人先将准备发送的邮件送到邮件缓冲区,

SMTP client 每隔一定时间(例如 30 分钟)对邮件缓冲区扫描一次,如发现有邮件,就以 client 的身份与目的主机( SMTP ser

ver )的 Well-known 的端口号( 25 )建立TCP连接并发送

Page 76: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 76 / 150

连接建立过程连接建立过程在连接建立后, SMTP server 要发出:

“ 220 service Ready ”

然后 SMTP client 向 SMTP server 发送: “ HELO ” 命令,附上发送方的主机名

SMTP server 若有能力接收邮件,则回答: “ 250 OK ”

表示已准备好接收,若 SMTP server 不可用,则回答: “ 421 Service not available ”

如在一定时间内(例如两天)发送不了邮件,则将邮件退还发信人

Page 77: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 77 / 150

邮件传送—邮件传送—询问服务器是否准备好询问服务器是否准备好 邮件的传送从MAIL 命令开始,在 MAIL 命令后

面有发信人的地址,如: MAIL FROM :< [email protected]> 若 SMTP server 已准备好接收邮件,则回

“ 250 OK ”

否则,返回一个代码,指出原因如:451 (处理时出错)

452 (存储空间不够) 500 (命令无法识别)

Page 78: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 78 / 150

邮件传送—邮件传送—验证收信人地址验证收信人地址

RCPT TO :<收信人地址>

每发送一个命令,都应当有相应的信息从

SMTP server 返回,如:

“ 250 OK ” :指明的邮箱在接收端的系统中

“ 550 No such user here ” :不存在此邮箱

Page 79: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 79 / 150

邮件传送—邮件传送—传送正文传送正文

DATA 命令,表示将开始传送邮件的内容 SMTP server 返回的信息是:

“ 354 Start mail input; end with< CRLF> ·< CRLF>”若不能接收邮件,则返回 421 : server 不可用;

500 :命令无法识别;等 SMTP client 就发送邮件的内容

发送完毕后,再发送< CRLF> ·< CRLF>

若邮件收到,则 SMTP server 返回信息“ 250 OK ”;或返回差错代码

Page 80: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 80 / 150

连接释放 连接释放 邮件发送完毕后, SMTP client 应发送 QUIT 命令

SMTP server 返回的信息是:“ 250 OK ”

SMTP client 再发出释放 TCP连接的命令,待 SMT

P server 回答后,邮件传送的全部过程即结束

完整的过程见 Tnbm P604 Fig. 7-14

Page 81: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 81 / 150

电子邮件的组成及其传输电子邮件的组成及其传输

E-mail 系统的组成 用户代理 消息格式 消息传输 最终递交

Page 82: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 82 / 150

最后递交最后递交 上述 E-mail 传递过程是传统的 ARPANET 的工作模

型,所有的用户都是永远在线的,而在如今的 Intern

et 上,用户可能是通过拨号连接到它的 ISP ,即他可能并非永远在线

当有人给你发 E-mail 时你不在线怎么办 ? 如何建立TCP连接 ? 与谁建立 TCP连接 ?

可以在 ISP 的机器上设置一个消息传输代理(邮局)来替代 client 接收邮件,并把它存入他们的邮箱中,当用户在线并有请求时再发给用户

Page 83: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 83 / 150

邮件服务器 邮件服务器 邮件服务器即 “ 邮局 ”,通常邮件服

务器是不会关机的 邮件服务器应为每个注册用户提供用户信箱( mailbox )并设定 E-mail地址 交大计算机系的 Mail Server 的域名为 cs.sjtu.edu.cn

E-mail地址格式: mailbox@computer

[email protected]

[email protected]

Page 84: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 84 / 150

POP3POP3(Post Office Protocol version 3)(Post Office Protocol version 3)

允许用户代理与传输代理联系,将 E-mail从 ISP复制到用户端的协议

POP3执行过程 当用户开始读取 E-mail 时, POP3 开始执行 用户与 ISP 上的传输代理的 110 端口建立一个 TCP连接 用户认证:用户发送用户名和密码 用户发送 RETR (Return) 命令读取 E-mail 用户发送 QUIT 命令请求结束该过程 服务器删除所有消息 服务器发送一个应答,并终止 TCP连接

Page 85: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 85 / 150

邮件传输的完整过程 邮件传输的完整过程

用户 A

用户接口

用户接口

Intern

et

用户 B

发送邮件缓冲区

用户信箱

SMTP-C

(发送邮件)

SMTP-S

(接收邮件)

用户 A 邮局

发送邮件缓冲区

用户信箱

SMTP-S

(接收邮件)

SMTP-C

(发送邮件)

用户 B 邮局

邮局间收发邮件使用 SMTP 协议

用户 A 邮局为发送邮件向用户B 邮局的 25# 端口请求 TCP连

接SMTP

POP POP

SMTP

POP-SPOP-C

POP-S

POP-C110 110

25 25

25

25

用户 - 邮局、邮局 - 用户的邮件传输模型

Page 86: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 86 / 150

IMAPIMAP(Internet Message Access Protocol)(Internet Message Access Protocol)

与 POP3 对应的另一个邮件读取协议,所用的 TCP 端口为 143

IMAP假设 E-mail永久保存在多个信箱中的某一个上 邮件不下载到用户的机器上,邮件服务器的资源占用

量较大 IMAP 提供了一套在用户机器上对多个 E-mail 信箱进

行操作的手段

Page 87: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 87 / 150

Web MailWeb Mail

通过 Web 站点提供 E-mail 服务 服务器上有正常的信息传输代理来监听端口 2

5 ,以及时应答 SMTP 用户的连接请求 在连接建立后,通过用户名和口令的输入,验证身份

由服务器读取用户信箱,并组装成 HTML 的

网页发给用户

Page 88: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 88 / 150

本章将讨论:本章将讨论:

SNMP – 简单网络管理协议 DNS – 域名系统 电子邮件 E - mail

WWW

多媒体 P2P 应用

Page 89: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 89 / 150

WWWWWW

超文本:由多个文本信息源连接而成,通过链接,用户可以找到其他文档

超媒体: 与超文本的区别是文档内容不同,超媒体信息可包括声音、图象、活动图象等

万维网的结构:基于客户 / 服务器结构,客户端称为浏览器,用 TCP 作为传输层协议,服务器方用固定端口 80侦听连接请求

万维网是分布式的超媒体信息系统,是超文本的扩展

Page 90: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 90 / 150

浏览器浏览器(( BrowserBrowser )) 客户端软件即浏览器,主要用于:

连接 Web server

解释执行由 HTML语言编写的文档 将执行结果显示在屏幕上

较有影响的几个浏览器:Microsoft ( IE Internet Explorer ) Netscape ( Navigator ) Mosaic

Navigator 和 IE 等浏览器,除了支持访问 Web server

的 HTTP 协议外,还包含了 E-mail 、 Telnet 、 FTP 等功能

Page 91: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 91 / 150

WebWeb server server

在 server 上,信息以网页形式来发布多媒体信息

网页采用超文本标记语言 HTML

来编写 资源使用统一的资源定位器 URL

来唯一标识

Page 92: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 92 / 150

有关万维网的几个问题 有关万维网的几个问题 怎样表示分布在整个 Internet 上的万维网文档 ?

URL 用什么样的协议来实现万维网上各种超链的链接 ?

HTTP 怎样使不同作者创作的不同风格的万维网文档都

能在 Internet 上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在链接 ? 网页制作

怎样使用户能方便地找到所需的信息 ? Search Engine

万维网性能的提高

Page 93: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 93 / 150

统一资源定位符统一资源定位符 URLURL

URL ( Uniform Resource Locator ) 一般格式: protocol://computer_name:port/do

cument_name

(其中 port 通常不用 ) 举例:

http://www.cs.sjtu.edu.cn/welcome.html

ftp://ftp.cs.sjtu.edu.cn

Page 94: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 94 / 150

有关万维网的几个问题 有关万维网的几个问题 怎样表示分布在整个 Internet 上的万维网文档 ?

URL 用什么样的协议来实现万维网上各种超链的链接 ?

HTTP 怎样使不同作者创作的不同风格的万维网文档都

能在 Internet 上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在链接 ? 网页制作

怎样使用户能方便地找到所需的信息 ? Search Engine

万维网性能的提高

Page 95: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 95 / 150

超文本传输协议超文本传输协议 HTTPHTTP 工作过程

XXXXXXXXX

浏览器程序

客户计算机

Internet

服务器程序

XXXXXXXXXxxxxxxxxxxxx

服务器计算机www.cs.sjtu.edu.cn

HTTP 使用此 TCP连接

HTTP

链接到 URL 的超链

Tnbm P614 Fig. 7-19 万维网模型局部

Page 96: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 96 / 150

一次成功的一次成功的 WebWeb 访问访问 当点击了

http:// www.cs.sjtu.edu.cn/welcome.html

1. 浏览器分析超链指向页面的 URL

2. 浏览器向 DNS 请求解析 www.cs.sjtu.edu.cn 的 IP地址 3. DNS解析出服务器的 IP地址为 202.120.1.154

4. 浏览器与服务器建立 TCP连接( 202.120.1.154 使用端口 80 ) 5. 浏览器发出取文件命令: get/welcome.html

6. www.cs.sjtu.edu.cn 服务器响应,将文件 welcome.html 发给浏览器

7. TCP连接释放 8. 浏览器显示文件 welcome.html 中的所有文本 9. 浏览器显示文件 welcome.html 中的所有图象

Page 97: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 97 / 150

HTTPHTTP 报文的通用结构 报文的通用结构 HTTP ( Hypertext Transfer Protocol )

Request Line

请求行Response Line

状态行General Header

通用首部General Header

通用首部Request Header

请求首部Response Header

响应首部Entity Header

实体首部Entity Header

实体首部Entity Body

实体主体Entity Body

实体主体

实体

请求报文 响应报文

Page 98: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 98 / 150

HTTPHTTP 请求方法 请求方法 请求命令(大小写敏感)

方法 描述

GET 请求读一网页

HEAD 请求读一网页的头

PUT 请求存储一网页

POST 附加一个命名的资源(例如,一个网页)

DELETE 删除一网页

LINK 链接两个已有的资源

UNLINK 切断两个已有资源的连接

Page 99: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 99 / 150

有关万维网的几个问题 有关万维网的几个问题 怎样表示分布在整个 Internet 上的万维网文档 ?

URL 用什么样的协议来实现万维网上各种超链的链接 ?

HTTP 怎样使不同作者创作的不同风格的万维网文档都

能在 Internet 上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在链接 ? 网页制作

怎样使用户能方便地找到所需的信息 ? Search Engine

万维网性能的提高

Page 100: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 100 / 150

网页的制作网页的制作

静态网页 某个服务器上等待用户访问的文件

动态网页 按用户的需求在服务器上动态组织

一个网页

Page 101: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 101 / 150

静态网页静态网页

HTML ( HyperText Markup Language )允许用户创建包含文本、图像及指向其它 Web页面的指针

XML ( eXtensible Markup Language )允许定义结构化的数据

XHTML ( eXtended HyperText Markup Language )是一种新的 Web标准,为了达到最大的平台移植性

Page 102: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 102 / 150

网页的制作网页的制作

静态网页 某个服务器上的文件

动态网页 按用户的需求在服务器上动态组织一个网页

Page 103: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 103 / 150

动态网页动态网页

服务器端的动态网页的生成,比如根据用户的需求从数据库中读取数据并组织成网页

客户端的动态网页的生成,如在客户端利用一段 SCRIPT 程序生成一些预定格式的网页

Page 104: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 104 / 150

有关万维网的几个问题 有关万维网的几个问题 怎样表示分布在整个 Internet 上的万维网文档 ?

URL 用什么样的协议来实现万维网上各种超链的链接 ?

HTTP 怎样使不同作者创作的不同风格的万维网文档都

能在 Internet 上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在链接 ? 网页制作

怎样使用户能方便地找到所需的信息 ? Search Engine

万维网性能的提高

Page 105: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 105 / 150

搜索引擎搜索引擎 Search EngineSearch Engine 搜索万维网的程序万维网是一无向图,页面即为节点,超链接为边

数据量十分庞大,且经常更新

使用递归的搜索算法,根据关键字到 URL列表

(可能有几百万个表项)中指向的主机进行搜索

问题:数据结构的定义、搜索策略与搜索时间和存储空间的问题、搜索准确率等等

Page 106: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 106 / 150

有关万维网的几个问题 有关万维网的几个问题 怎样表示分布在整个 Internet 上的万维网文档 ?

URL 用什么样的协议来实现万维网上各种超链的链接 ?

HTTP 怎样使不同作者创作的不同风格的万维网文档都

能在 Internet 上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在链接 ? 网页制作

怎样使用户能方便地找到所需的信息 ? Search Engine

万维网性能的提高

Page 107: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 107 / 150

万维网性能的提高万维网性能的提高 缓存

是客户端采用的技术,它利用代理( proxy )技术,将网页保存在代理的缓冲区中,此代理可以是本地的个人 PC 、可以是公司 LAN 上的服务器,也可以是 I

SP 的服务器

服务器的复制镜像服务器

内容分发网络

Page 108: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 108 / 150

本章将讨论:本章将讨论:

SNMP – 简单网络管理协议 DNS – 域名系统 电子邮件 E - mail

WWW

多媒体 P2P 应用

Page 109: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 109 / 150

多媒体多媒体

音频

视频

Page 110: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 110 / 150

数字音频数字音频 音频是一维的声波 音频数字化

PCM调制每秒 8000 次采样,每个采样被量化为 8 bit

音频 CD

每秒 44100 次采样,每个采样被量化为16 bit ,因此非立体声需要 705.6K bps ,立体声需要 1.4112M bps

Page 111: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 111 / 150

音频压缩音频压缩

GSM : 13kbps

G.729 : 8kbps

G.723.3 : 6.4k 和 5.3k

MP3 : 96k 、 128K 、 160k用于立体声音乐

用于电话

Page 112: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 112 / 150

数字音频的应用数字音频的应用

存储媒体:事先录制好并存放在服务器上

流式音频:类似与广播,只不过用因特网作为传输媒体

交互式音频: IP 电话及一些实时通信软件

Page 113: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 113 / 150

IPIP 电话电话 传统的电话网传递的大部分是话音,少部分是数据,

但数据流量在不断增长,在 1999年已与话音量持平,2002年数据流量已比语音流量多一个数量级

由于话音通过 PCM调制也变成了数字,因此也可以在数据网络上传输,在 Internet 上传输电话称为 Interne

t 电话,也称为 Voice over IP

ITU 的 H.323

IETF 的 SIP

Page 114: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 114 / 150

H.323H.323

H.323 的全名为: Visual Telephone S

ystem and Equipment for Local Area

Network Which Provide a Non-Guara

nteed Quality of Service

H.323 提出了 Internet 电话的总体结构

Page 115: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 115 / 150

IP phoneIP phone 的结构的结构

Tnbm P686 Fig. 7-64 IP 电话的结构模型

Internet

网关

网守

zone

PSTN

Page 116: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 116 / 150

IP phoneIP phone 要解决的问题要解决的问题

主要问题:因特网的端系统如何与电话之间通信

网守:网络端的注册器 网关:因特网协议与 PSTN 网协议的转

Page 117: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 117 / 150

具体问题具体问题 端点之间如何协商音频的编码规范:每

个端点至少要支持 G.711语音压缩标准 音频 / 视频如何封装在网络上发送:用

RTP

端点如何与网守通信 因特网电话如何通过网关与普通电话通

Page 118: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 118 / 150

IP phoneIP phone 的工作原理的工作原理 IP phone 用到的协议 连接建立

PC 与 gatekeeper 建立连接 建立电话连接

通话 连接释放

Page 119: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 119 / 150

IP phoneIP phone 用到的协议用到的协议 声音的编码解码

G.711(PCM) :每秒 8000 采样 每样本 8bit64K bps

G.723 :用知觉编码,将每 30 ms 的声音信息用 24

或 20 个字节来表示, 6.4K 或 5.3

K bps

H.245 :双方协商压缩方法 Q.931 :处理诸如连接建立与断开、提供拨号音

和振铃声等 H.225 : PC 与 gatekeeper 之间的对话协议,

如 注册、准入等工作

Page 120: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 120 / 150

IP phoneIP phone 的工作原理的工作原理 IP phone 用到的协议 连接建立

PC 与 gatekeeper 建立连接 建立电话连接

通话 连接释放

Page 121: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 121 / 150

PCPC 与与 gatekeepergatekeeper 建立连接建立连接

PC寻找自己的 gatekeeper

向 gatekeeper注册 得到确认后, PC 向 gatekeeper申请

所需的带宽 得到承诺后开始连接建立过程, PC 与

gatekeeper 之间建立一个 TCP连接

Page 122: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 122 / 150

IP phoneIP phone 的工作原理的工作原理 IP phone 用到的协议 连接建立

PC 与 gatekeeper 建立连接 建立电话连接

通话 连接释放

Page 123: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 123 / 150

建立电话连接建立电话连接 PC 发送 Q.931 的连接消息,指出与哪个电话通话,通过 gatekeeper 送到 gateway

Gateway 发出一个普通的电话呼叫 PSTN本地局向被叫电话发出振铃信号,并

用 Q.931 ALERT 消息告诉 PC振铃开始 当被叫电话摘机时,局端发回一个 Q.931 的

CONNECT 消息,通知 PC连接已建立

Page 124: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 124 / 150

IP phoneIP phone 的工作原理的工作原理 IP phone 用到的协议 连接建立

PC 与 gatekeeper 建立连接 建立电话连接

通话 连接释放

Page 125: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 125 / 150

PCPC 与电话用户的通话和连接释放与电话用户的通话和连接释放

通话

双方以G.711 或其他的压缩协议通话

与 gatekeeper释放连接

PC 通知 gatekeeper释放相应的带宽

Page 126: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 126 / 150

Voice over IPVoice over IP 传统的电话网传递的大部分是话音,少部分是数据,

但数据流量在不断增长,到 99年已与话音量持平, 2

002年数据流量已比语音流量多一个数量级 由于话音通过 PCM调制也变成了数字,因此也可以在

数据网络上传输,在 Internet 上传输电话称为 Interne

t 电话,也称为 Voice over IP

ITU 的 H.323

IETF 的 SIP

Page 127: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 127 / 150

SIPSIP 会话发起协议会话发起协议Session Initiation ProtocolSession Initiation Protocol

SIP是一种更加简单的建立 Internet 电话、电视会议和其他多媒体连接的方法,使用户不再需要电话交换网

特点 可以建立一对一、一对多和多对多的会话 每个会话可以包含声音、图像和数据 电话号码表示为 URL

可以跟踪到使用者当前正在使用的设备

Page 128: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 128 / 150

SIPSIP 的功能的功能

提供了在呼叫者和被呼叫者之间经 IP 网络建立连接,允许开始呼叫、约定媒体编码、结束呼叫

确定被叫者目前使用的 IP地址

Page 129: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 129 / 150

SIPSIP 的信令的信令 SIP 共规定了六种信令: INVITE 、 ACK 、 CAN

CEL 、 OPTIONS 、 BYE 、 REGISTER。 INVITE 和 ACK 用于建立呼叫,完成三次握手,

或者用于建立以后改变会话属性 BYE 用以结束会话; OPTIONS 用于查询服务器能力; CANCEL 用于取消已经发出但未最终结束的请求; REGISTER 用于客户向注册服务器注册用户位置

等消息。

Page 130: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 130 / 150

已知地址的呼叫167.180.112.24/38060

193.64.210.89/48753

220 OKC=IN IP4 193.64.210.89M=audio 48753 RTP/AVP3

Alice Bob

Port:5060

Port:5060

INVITE [email protected]=IN IP4 167.180.112.24M=audio 38060 RTP/AVP0

Port:5060ack

Port:38060

AVP0 编码的音频 Port:48753

AVP3 编码的音频

Page 131: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 131 / 150

会话建立过程会话建立过程

Alice 发送一个 INVITE 消息,用 TCP 或 UDP 发送到 Bob 的 5060号端口( SIP 的熟知端口),请求建立一个会话。在此消息中还包括了 Alice 的地址和端口号、希望接收的音频编码及传输协议

如果 Bob 接纳呼叫,发回一个应答报文到 Alice 的 5

060 端口。包含一个 200 OK以及自己的 IP地址和端口号。本例中 Bob希望接收的编码是 AVP3

Alice 发送一个 ACK到 Bob 的 5060 端口

会话的建立利用三次握手

Page 132: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 132 / 150

回话过程回话过程

Bob 可以发送 AVP0编码的音频到 Alic

e 的 38060 端口

Alice 可以发送编码为 AVP3 的音频到

Bob 的 48753 端口

Page 133: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 133 / 150

会话断开会话断开

一方发送 BYE 消息

另一方发回一个应答

任意一方都允许请求会话断开

Page 134: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 134 / 150

SIPSIP 地址地址

SIP地址类似于电子邮件地址或普通的电话号

码或其他形式。

获得对方的 IP地址需要两个设备

SIP 代理

SIP注册器

Page 135: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 135 / 150

SIPSIP 代理和代理和 SIPSIP 注册器注册器 SIP 代理

每个 SIP 用户有一个关联的 SIP 代理,实现名字到 IP 的转换

当发起者不知道目的地址时,可先发 INVITE到他自己的代理询问

代理获得对方的 IP地址需要有注册器的支持

SIP注册器 每个 SIP 用户有一个关联 SIP注册器,当启动 SI

P 应用时,会向自己的注册器报告当前的 IP地址

Page 136: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 136 / 150

多媒体多媒体

音频

视频

Page 137: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 137 / 150

数字视频数字视频 由一系列帧组成,每个帧由一个矩形图像元素,称为像素( p

ixel )组成,每个像素可以是一个 bit ,表示黑的还是白的 可以用 8 bit 表示一个像素,即分为 256级灰度 彩色图像每个像素用 3 个部分来表示,如用 3 个 8 bit 分别表

示三基色RGB 的强度,则共有 224 (16M) 种颜色 连续的视频至少用每秒 25帧表示 传输 video 所需的带宽 =每秒传输的帧数 *每帧的 bit 数 最小的带宽 = 25帧 * 1024 * 768 * 24 bit = 472M bps

Page 138: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 138 / 150

视频压缩视频压缩

JPEG

通过对单个图像的压缩,减少连续图像所需的带宽

MPEG

通过记录与前一帧的不同之处达到压缩的目的。MPEG-1 所需的平均带宽 1.5M

Page 139: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 139 / 150

本章将讨论:本章将讨论:

SNMP – 简单网络管理协议 DNS – 域名系统 电子邮件 E - mail

WWW

多媒体 P2P 应用

Page 140: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 140 / 150

Peer-to-PeerPeer-to-Peer 应用 应用 对等网:每个站点既是客户器又是服务器 对等网种类:

中心化拓扑:用中心化的目录系统 全分布非结构化的 P2P :采用随机洪泛发现 半分布结构:采用层次性的结构,用一些超级节点记录其他结点的信息

全分布结构化的 P2P

Page 141: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 141 / 150

结构化的结构化的 P2P-- ChordP2P-- Chord 算法算法假设: 系统中有 n 个用户 每个用户都有可提供的信息资源,并且都已作了索引供其他用户使用

每个用户都有一个 IP地址,并可被散列成 m 位的一个数字,称为节点标识符( Chord 用 SHA-1算法来散列),节点标识符为 0 ~ 2m-1

所有 2m个标识符按递增次序链接成一个环,而不管节点是否存在

定义函数 successor(k) :找出节点 k后面的第一个存在节点

Page 142: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 142 / 150

ChordChord 算法算法(续)(续) 信息资源名称 (name) 同样被散列为一个 m 位的

数字,称为键值 key ( key=hash(name) ) 信息索引的存储:信息的索引在所有节点上是随

机分布的,当一个节点要提供信息 name 时,它首先构造一个二元组( name, IP地址),然后调用 successor(hash(name))去存储该二元组,不同节点上的同名信息,其索引将被存在同一节点

信息的查找:当某个用户需要查找名称为 name

的信息时,向 successor(key) 发一个请求,要求返回拥有信息 name 的节点的 IP地址

Page 143: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 143 / 150

ChordChord 算法优化算法优化

每个节点保存其直接前趋和直接后继,那么请求可以顺时针传递,也可以逆时针传递,可以在两者之间选择一条较短的路径

每个节点保存一张表,称为 finger table ,该表有 m 个表项,编号从 0到m-1

Page 144: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 144 / 150

ChordChord 算法优化算法优化(续(续 11 ))

finger table 表的内容每个表项指向一个实际存在的节点,每个表项有两个字段: start 和 successor(start) 的 IP

地址,节点 k 中第 i 个表项的值为:Start [ i ] = [ k + 2i ] mod ( 2m ) [i=0…m-

1]

Successor (start [ i ] ) 的 IP地址

Page 145: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 145 / 150

ChordChord 算法实例算法实例2 4

3 4

5 7

9 12

17 20

节点 1

Tnbm P382 Fig. 5-24 Chord 算法实例

0 1

7

1220

27

4

109

8

65

32

11

16 15 1413

1918 17

2122

23

24

26

25

3029

28

31

i=4

4

4

2

0,1

2,3

2,3

0,1

0,1

3

当前在线的节点i = 0

1

2

3

4

5 7

6 7

8 12

12 12

20 20

节点 4

8 12

9 12

11 12

15 15

23 27

节点 7

13 15

14 15

16 20

20 20

28 1

节点 12

16 20

17 20

19 20

23 27

31 1

节点 15

i = 0

1

2

3

4

21 27

22 27

24 27

28 1

4 4

节点 20

28 1

29 1

31 1

3 4

11 12

节点 27

Page 146: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 146 / 150

ChordChord 算法优化算法优化(续(续 22 ))

在节点 k 上查找键值 key 的过程: 如果 key = k ,那么包含 key 信息的节点是 k ,查找结束。

如果 k < key < successor (k) 之间,那么包含 key

信息的节点是 successor (k) ,查找结束

否则,查找 finger 表,找出小于 key 但最接近 key

的 start值,并直接发一请求给 successor(start)

的 IP地址,请求它继续查找

Page 147: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 147 / 150

ChordChord 算法实例 算法实例 (续)(续)2 4

3 4

5 7

9 12

17 20

节点 1

i = 0

1

2

3

4

5 7

6 7

8 12

12 12

20 20

节点 4

8 12

9 12

11 12

15 15

23 27

节点 7

13 15

14 15

16 20

20 20

28 1

节点 12

16 20

17 20

19 20

23 27

31 1

节点 15

21 27

22 27

24 27

28 1

4 4

节点 20

28 1

29 1

31 1

3 4

11 12

节点 27

例 1 :在节点 1 上查找 key=3 ( key=hash(name)=3 )对于节点 1 , successor(1)=4 , key 在 (1,4) 中,返回 4 ,即资源名为 name 的索引在节点 4 上

例 2 :在节点 1 上查找 key=14由于 key 不在 (1,4) 中,于是查节点 1 的 finger table ,小于 14并最接近 14的节点是 9 , successor(9)=12;于是到节点 12 查找, successor(12)=15 ,key 在 (12,15) 中,于是返回 15

例 3 :在节点 1 上查找 key=16key 不在 (1,4) 中,于是查节点 1 的 finger table ,小于 16并最接近 16 的节点是 9 , successor(9)=12 ,于是到节点 12 查找, successor(12)=15 , key 不在 (12,15) 中,于是查节点 12 的 finger table ,小于 16并最接近 16 的节点是 14 , successor(14)=15 ,于是到节点 15 查找, successor(15)=20 ,key 在 (15,20) 中, 于是返回 20 ,即所查找的资源的索引在节点 20 上

Page 148: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 148 / 150

节点的动态添加和删除节点的动态添加和删除 初始化:假设开始时节点很少,因此通过节点之间直

接交换信息建立初始的环和 finger 表 添加节点 r :

向任一节点询问 successor(r) 的地址 s 向 s 询问它的直接前趋 p 向 s 和 p申请加入环 节点 s将 p+1到 r 的信息转储到 r 上,添加即告结束 其他 finger 表中的问题由定时执行一个后台进程完成

删除节点 r 将 r 的信息转储到后继 s 通知前趋 p ,它的后继变为 s

Page 149: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 149 / 150

节点的动态添加举例节点的动态添加举例2 4

3 4

5 7

9 12

17 20

节点 1

Chord 算法实例中添加节点 24

0 1

7

1220

27

4

109

8

65

32

11

16 15 1413

1918 17

2122

23

24

26

25

3029

28

31

i=4

4

4

2

0,1

2,3

2,3

0,1

0,1

3

当前在线的节点i = 0

1

2

3

4

5 7

6 7

8 12

12 12

20 20

节点 4

8 12

9 12

11 12

15 15

23 24

节点 7

13 15

14 15

16 20

20 20

28 1

节点 12

16 20

17 20

19 20

23 24

31 1

节点 15

i = 0

1

2

3

4

21 24

22 24

24 24

28 1

4 4

节点 20

25 27

26 27

28 1

0 1

8 12

节点 24

28 1

29 1

31 1

3 4

11 12

节点 27

Page 150: 第 7 章    应用层

《 Computer Networks v4 》 cs.sjtu 23/4/20

第 7 章 应用层 150 / 150

第第 77 章 习题章 习题

Tnbm P715

#7 、 #8 、 #51