81
Chapter 9 应应应 9.1 应应 / 应应应应应应应 9.2 应应应(DNS) 9.3 应应应应 (SMTP) 9.4 应应应 (HTTP) 9.5 应应应应 (FTP) 9.6 应应应应 (TELNET) 9.7 应应应应P2P

Chapter 9 应用层

  • Upload
    odeda

  • View
    101

  • Download
    6

Embed Size (px)

DESCRIPTION

Chapter 9 应用层. 9.1 客户 / 服务器通信模式 9.2 域名系统 (DNS) 9.3 电子邮件 (SMTP) 9.4 万维网 (HTTP) 9.5 文件服务 (FTP) 9.6 远程登录 (TELNET) 9.7 对等应用( P2P ). request. reply. application transport network data link physical. application transport network data link physical. 客户 / 服务器模式 ( Client/Server). - PowerPoint PPT Presentation

Citation preview

Chapter 9 应用层 9.1 客户 / 服务器通信模式 9.2 域名系统 (DNS) 9.3 电子邮件 (SMTP) 9.4 万维网 (HTTP) 9.5 文件服务 (FTP) 9.6 远程登录 (TELNET) 9.7 对等应用( P2P )

客户 / 服务器模式( Client/Server)

客户端 服务器端请求服务

服务结果

网络接口

操作系统

( TCP/IP )

服务应用核心服务驱动

网络接口

操作系统

( TCP/IP )

客户应用用户界面

application

transportnetworkdata linkphysical

application

transportnetworkdata linkphysical

request

reply

应用需要什么样的传输层来提供服务呢?

数据丢失 (data loss) 某些应用允许少量的包丢

失,如话音。 某些应用需要 100% 的

可靠传输,如 FTP 等。

实时性 (delay) 某些应用对延时、延时

抖动有严格要求。如实时多媒体业务。

某些则对延时要求比较宽松。如数据传输。

带宽 (Bandwidth) 某些 需要有一定量的带

宽保证(如音、视频) 某些则对带宽没有特定的

要求。

常用应用对传输的要求

应用

文件传输e-mailWeb 网页实时音频 / 视频

存储音频 /视频交互式游戏金融应用

数据丢失

不丢失不丢失不丢失允许丢失允许丢失允许丢失允许丢失不丢失

带宽

弹性弹性弹性音频 : 5Kb-1Mb视频 :10Kb-5Mb同上 几 Kb/s 以上弹性

实时性

无无无100’s msec

few secs100’s msecyes and no

Internet 传输层提供的服务TCP service: connection-oriented: setup

required between client, server reliable transport between

sending and receiving process flow control: sender won’t

overwhelm receiver congestion control: throttle

sender when network overloaded

does not providing: timing, minimum bandwidth guarantees

UDP service: unreliable data

transfer between sending and receiving process

does not provide: connection setup, reliability, flow control, congestion control, timing, or bandwidth guarantee

Q: why bother? Why is there a UDP?

Internet 应用对应的传输层协议

应用

e-mail远程登陆

万维网 (Web) 文件传输

流媒体

远程文件服务器IP 电话

应用层协议

smtp [RFC 821]telnet [RFC 854]http [RFC 2068]ftp [RFC 959]专有协议(e.g. RealNetworks)NSF专有协议(e.g., Vocaltec)

所依赖的传输层协议

TCPTCPTCPTCPTCP or UDP

TCP or UDPtypically UDP

9.2 域名系统 (DNS) 域名是用来标识网络上的主机,它与主机的 IP 地址

相对应,一台主机可以有多个域名。 便于记忆,实现主机名和主机 IP 地址分离 由字符和点号组成,如 if.ustc.edu.cn ,成员名最长不超

过 63 字符,全名不超过 255 字符 名字空间( name space )

所有可能的名字的集合, DNS 采用层次化的名字空间 DNS 实现

Unix/Linux 系统通过 BIND ( Berkeley Internet Name Domain )提供 DNS 服务

报文传输层可采用 TCP 或 UDP 协议,端口号均为 53 号

Internt 的名字空间

cn

edu

ustc

命名机制遵循的是组织边界,而不是物理网络的边界

DNS 域名信息维护 DNS 本质是一个建立在低层传输协议之上的一

个分布式的数据库 采用客户 / 服务器通信模式,客户端执行域名查询

功能的程序或者函数调用叫做解析器( resolver )

为什么不采用集中式域名管理? 早期的 Internet ( ARPANET ),每台主机只需

查找指定的文件( UNIX的 hosts ),就找出主机名字与 IP 地址的对应关系

没有服务器能够保存所有的域名到 IP 地址的映射 无法及时反映网络域名变化,维护开销大

名字服务器

根域

顶级域

二级域

DNS 名字空间被划分为一些不重叠的区域,每个区域的信息保存在该区域对应的名字服务器上,该服务器也被称为所在区域的授权名字服务器

edu

cs

yale

wv

eng

a

根名字服务器域 yale.edu

区域 cs.yale.edu的授权名字服务器

区域yale.edu

区域cs.yale.edu区域 yale.edu

的授权名字服务器

ai

Internet 允许各个组织根据具体情况将本组织内的域划分为若干个区域 (zone) ,并在各区域中设置相应的授权名字服务器。

授权名字服务器

根名字服务保存了所有顶级域名字服务器的 IP 地址

b USC-ISI Marina del Rey, CAl ICANN Marina del Rey, CA

e NASA Mt View, CAf Internet Software C. Palo Alto, CA

i NORDUnet Stockholm

k RIPE London

m WIDE Tokyo

a NSI Herndon, VAc PSInet Herndon, VAd U Maryland College Park, MDg DISA Vienna, VAh ARL Aberdeen, MDj NSI (TBD) Herndon, VA

遍布世界各地的 13个根名字服务器

根名字服务器

资源记录( Resource Record)

名字服务器以资源记录的形式来维护本区域内的域名相关信息

当解析器给名字服务器一个域名,取回的是一个与该域名相对应的资源记录。所以 DNS 系统的实际功能就是把域名映射到一条记录上。

一条资源记录共有 5 个字段: Domain_name , Time_to_live , Type , Class , Val

ue Time_to_live: 生存时间,例如,时间较长的有一天( 8640

0秒),短的有一分钟( 60秒) Type:指出记录的类型(下一页详细解释) Class:对 Internet ,它总是 IN Value:可以是数字、域名或 ASCII 字符,其语义基于记录类型

权威记录(Authoritative Record) 权威记录

来自管理该记录的权威名字服务器,因此总是正确的

例如 eeis.ustc.edu.cn 在 ustc.edu.cn 域所对应的名字服务器所管辖的范围内,因此该名字服务器返回的关于 eeis.ustc.edu.cn 的记录为权威记录

缓存记录 名字服务器缓存来自其它名字服务器的记录,这些

有效期由 TTL 域指定,当 TTL 过期时,该纪录被删除

域名解析

名字服务器域名解释器

当用户要访问 web 服务实,可以在浏览器中键入 web 服务器的域名,主机上的域名解析器先查询本机上的 cache ,如果没有对应表项,则向名字服务器请求域名服务。

域名查询类型 递归查询( recursive query): 被请求的名

字服务器如果没有域名所对应的记录,它就会向其它域名服务器查询,并沿着查询的路径逐个返回记录。

迭代查询( iterative query): 本地名字服务器如果没有域名对应的记录,就向更高层次的名字服务器请求,被请求的名字服务器如果也没有该域名对应的记录就会返回一个可供查询的名字服务器地址

递归查询

例:查询 robot.cs.yale.edu 的 IP 地址

迭代查询

flits.cs.vu.nl cs.vu.nl

VU CS name server

edu-server.net

Edu name server

yale.edu

Yale name server

cs.yale.edu

Yale CS name server

1

8

4

5

6

7

2

3originator

例:查询 robot.cs.yale.edu 的 IP 地址

9.3 电子邮件( Email ) 消息交换的协议

发送 email:简单邮件传输协议 SMTP ( Simple Mail Transfer Protocol )

接收 email:邮局协议第 3版 POP3 ( Post Office Protocol version 3 ) , Internet消息访问协议 IMAP ( Internet Message Access Protocol )

消息格式的协议 RFC 822:基本的 ASCII 的文本邮件 多用途 Internet 邮件扩展 MIME ( Multipurpos

e Internet Mail Extensions ): RFC 822 的多媒体扩展

电子邮件地址格式用户名@邮件服务器的域名

符号“@”读作“ at”,表示“在”的意思。

例如,电子邮件地址 [email protected]

用户名在该域的范围内是惟一

邮箱所在邮件服务器的域

电子邮件的组成

发送方

邮件缓存 接收邮件服务器

用户代理

SMTP

SMTPPOP3

发送邮件服务器

用户代理

用户邮箱接收方

用户代理

用户代理

邮件服务器

邮件服务器

SMTP SMTP POP3(发送邮件 )

(发送邮件 )

(发送邮件)

(发送邮件 ) (读取邮件 )

(读取邮件 )

(TCP 连接 ) (TCP 连接 ) (TCP 连接 )

因特网

用户代理 ( UA: User Agent ):负责邮件的生成与处理,实质上就是一个程序用来阅读、编写、发送邮件,例如 Outlook Express , Foxmail 等。

邮件服务器 /消息传输代理( MTA:Message Transfer Agent ):发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等)

注意:一个邮件服务器既可以作为客户端,也可以作为服务器。 例如,当邮件服务器 A 向另一个邮件服务器 B 发送邮件时,邮件服务器 A 就作为 SMTP 客户,而 B 是 SMTP 服务器。

发送方

邮件缓存 接收方邮件服务器mail.xyz.com

用户代理

发送邮件服务器email.ustc.edu.cn

用户代理

接收方

用户代理

用户代理

邮件服务器

邮件服务器

Internet

(1) 发信人调用用户代理来编辑要发送到 [email protected] 的邮件。用户代理用 SMTP 把邮件传送给预先设置的发送邮件服务器

(发送邮件 )

SMTP

SMTP

(发送邮件 )

(TCP 连接 )

电子邮件发送和接收

[email protected]

[email protected]

发送方

邮件缓存

用户代理用户代理

接收方

用户代理

用户代理

邮件服务器

邮件服务器

Internet

(2) 发送邮件服务器将邮件放入邮件缓存队列中,等待发送。

(发送邮件 )

SMTP

SMTP

(发送邮件 )

(TCP 连接 )

电子邮件发送和接收

接收方邮件服务器mail.xyz.com

发送邮件服务器email.ustc.edu.cn

[email protected] [email protected]

发送方

邮件缓存

用户代理用户代理

接收方

用户代理

用户代理

邮件服务器

邮件服务器

Internet

(3) 发送邮件服务器的 SMTP 客户进程,发现在有待发送的邮件,向接收方邮件服务器的 SMTP 服务器进程发起 TCP 连接

(发送邮件 )

SMTP

SMTP

(发送邮件 )

(TCP 连接 )

SMTP

SMTP(发送邮件)

(发送邮件 )

(TCP 连接 )

电子邮件发送和接收

接收方邮件服务器mail.xyz.com

发送邮件服务器email.ustc.edu.cn

[email protected] [email protected]

发送方

邮件缓存 接收端邮件服务器

用户代理 发送端邮件服务器

用户代理

接收方

用户代理

用户代理

邮件服务器

邮件服务器

Internet

(4) TCP 连接建立后, SMTP 客户进程开始向远程的 SMTP 服务器进程发送邮件。当待发送邮件发送完, SMTP 就关闭建立的连接。

(发送邮件 )

SMTP

SMTP

(发送邮件 )

(TCP 连接 )

SMTP

SMTP(发送邮件)

(发送邮件 )

(TCP 连接 )

电子邮件发送和接收

接收方邮件服务器mail.xyz.com

发送邮件服务器email.ustc.edu.cn

[email protected] [email protected]

发送方

邮件缓存

用户代理用户代理

接收方

用户代理

用户代理

邮件服务器

邮件服务器

Internet

(5) 运行在接收方邮件服务器中的 SMTP 服务器进程收到邮件后,将邮件放入接收方的用户邮箱中,等待接收方在方便时进行读取。

(发送邮件 )

SMTP

SMTP

(发送邮件 )

(TCP 连接 )

SMTP

SMTP(发送邮件)

(发送邮件 )

(TCP 连接 )

电子邮件发送和接收

接收方邮件服务器mail.xyz.com

发送邮件服务器email.ustc.edu.cn

[email protected] [email protected]

发送方

邮件缓存

用户代理用户代理

接收方

用户代理

用户代理

邮件服务器

邮件服务器

Internet

(6) 接收方在打算收信时,调用用户代理,使用 POP3 (或 IMAP )协议将自己的邮件从接收方邮件服务器的用户邮箱中的取回。

(发送邮件 )

SMTP

SMTP

(发送邮件 )

(TCP 连接 )

SMTP

SMTP(发送邮件)

(发送邮件 )

(TCP 连接 )

POP3

POP3

(读取邮件 )

(读取邮件 )

(TCP 连接 )

电子邮件发送和接收

接收方邮件服务器mail.xyz.com

发送邮件服务器email.ustc.edu.cn

[email protected] [email protected]

SMTP 通信过程实例

S: 220 hamburger.edu SMTP service ready C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: <[email protected]> S: 250 [email protected]... Sender ok C: RCPT TO: <[email protected]> S: 250 [email protected] ... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Do you like ketchup? C: How about pickles? C: . S: 250 Message accepted for delivery C: QUIT S: 221 hamburger.edu closing connection

telnet servername 25 see 220 reply from server enter HELO, MAIL, RCPT, DATA, QUIT commands above lets you send email without using email client (reade

r)

telnet servername 25 see 220 reply from server enter HELO, MAIL, RCPT, DATA, QUIT commands above lets you send email without using email client (reade

r)

POP3 邮局协议 POP 是一个非常简单、但功能有限

的邮件读取协议,现在使用的是它的第三个版本 POP3 。

POP 也使用客户 / 服务器的工作方式。 在接收邮件的用户主机中必须运行 POP 客

户端进程,而在用户所连接的邮件服务器中则运行 POP 服务器进程。

POP3 协议一般假设用户从服务器上把邮件存储到本地主机上,同时删除保存在邮件服务器上的邮件。

POP3 通信过程示例

IMAP IMAP 也是按客户 / 服务器模式工作,现在较新的版本是 IMAP4 。

用户在自己的主机上就可以操纵邮件服务器的邮箱,就像在本地操纵一样。

因此 IMAP 是一个联机协议。当用户主机上的 IMAP 客户程序打开 IMAP 服务器的邮箱时,用户就可看到邮件的头部。若用户需要打开某个邮件,则该邮件才传到用户的计算机上

IMAP 的特点 IMAP 最大的好处就是用户可以在不同的地方使用不同

的计算机随时上网阅读和处理自己的邮件。 IMAP 还允许收信人只读取邮件中的某一个部分。例

如,收到了一个带有视频附件(此文件可能很大)的邮件。为了节省时间,可以先下载邮件的正文部分,待以后有时间再读取或下载这个很长的附件。

IMAP 的缺点是如果用户没有将邮件复制到自己的 PC 机上,则邮件一直是存放在 IMAP 服务器上。因此用户需要经常与 IMAP 服务器建立连接

注意 :用户代理向发送邮件服务器发送邮件,以及发送邮件服务器向接收邮件服务器发送邮件,都是使用 SMTP 协议。 而 POP 协议或 IMAP 协议则是接收方从接收方邮件服务器上读取邮件所使用的协议

消息格式 : RFC 822 消息由信封( RFC 821 中描述)、一些头域、一个空行和消息体组成

RFC 822只规定了头域格式,而对消息体部分则让用户自由撰写。

用户代理将消息传输到邮件服务器后,邮件服务器利用某些头域来构造出实际的信封

头域包括一些关键字,后面加上冒号

常用的邮件消息头域 “To:”后面填入一个或多个收信人的电子邮

件地址 “Subject:”是邮件的主题。它反映了邮件

的主要内容,便于用户查找邮件 抄送“ Cc:” 表示应给某某人发送一个邮件副

本 “From:”和“ Date:” 表示发信人的电

子邮件地址和发信日期。 “Reply-To:”是对方回信所用的地址。

9.4 万维网 万维网 (World Wide Web,也称为WWW)起源于 1989年欧洲粒子物理研究所,由庞大的、分布在世界各地的 web页面的集合组成, web页面的编写采用 HTML(HyperText Markup Language) 语言,它采用 HTTP ( HyperText Transfer Protocol )协议, 页面通过浏览器( browser )来观看

万维网可以看作是分布式超媒体 (hypermedia) 系统,它是超文本 (hypertext) 系统的扩充

一个超文本由多个文本页面链接( link )成。利用一个链接可使用户找到另一个文本页面。超文本是万维网的基础。

超媒体与超文本的区别是页面内容不同。超文本页面仅包含文本信息,而超媒体页面还包含其他表示方式的信息,如图形、图像、声音、动画、视频等。

使用超链接( hyperlink )技术,用户可以访问一个又一个页面

超链接( Hyperlink )

Web 服务器 A

Web 服务器 C

Web 服务器 EWeb 服务器 D

Web 服务器 B

链接到

链接到链接到 链接

到链接到

链接到

①② ④

超链接是链接到其它页面的文本字符串,通过超链接,用户可以访问一个又一个的页面

如何命名分布在整个 Internet上的 web页面? 使用统一资源定位符 URL (Uniform Re

source Locator) 来命名万维网上的各种 web页面

每个页面在整个 Internet 的范围内具有惟一的标识符 URL

统一资源定位符 URL URL 是对可以从 Internet 上得到的资源的位置和访问方法的一种简洁的表示

URL 给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。只要能够对资源定位,系统就可以对资源进行各种操作,如存取、更新、替换和查找其属性等

URL 相当于一个文件名在网络范围的扩展。因此 URL 是与 Internet 相连的主机上的任何可访问对象的一个指针

URL 的一般形式由协议、主机域名、路径及文件名三部分组成,并且在 UR

L 中的字符对大写或小写没有要求。URL 的一般形式是:

< 协议 >://< 主机域名 >:< 端口 >/<路径及文件名 >

ftp —— 文件传输协议 FTP

http —— 超文本传送协议 HTTP

mailto —— 发送电子邮件

FTP 的 URL• FTP 的 URL 举例

ftp://rtfm.mit.edu/pub/abc.txt

这表示使用 FTP 协议

FTP 的 URL• FTP 的 URL 举例

ftp://rtfm.mit.edu/pub/abc.txt

冒号和两个斜线是规定的格式

FTP 的 URL• FTP 的 URL 举例

ftp://rtfm.mit.edu/pub/abc.txt

这是 FTP 服务器的域名

FTP 的 URL• FTP 的 URL 举例

ftp://rtfm.mit.edu/pub/abc.txt

这是路径及文件名

HTTP 的 URL• HTTP 的 URL 的一般形式

http://abc.com:8080/tech/index.htm

这表示使用 HTTP 协议

HTTP 的 URL• HTTP 的 URL 的一般形式

http://abc.com:8080/tech/index.htm

冒号和两个斜线是规定的格式

HTTP 的 URL• HTTP 的 URL 的一般形式

http://abc.com:8080/tech/index.htm

web服务器的域名

HTTP 的 URL• HTTP 的 URL 的一般形式

http://abc.com:8080/tech/index.htm

HTTP 的端口号是 8080 ,默认为 80

HTTP 的 URL• HTTP 的 URL 的一般形式

http://abc.com:8080/tech/index.htm

路径及文件名,若省略,则 URL 指向某个名为 index.html 的缺省页面

例如: http://www.ustc.edu.cn/index.html

= http://www.ustc.edu.cn/

超文本传输协议 HTTP

• 采用 TCP 协议, 80 端口• HTTP 是万维网上能够可靠地交换文件

(包括文本、声音、图像等各种多媒体文件)的重要基础

• 工作在客户 / 服务器模式,指定客户可以向服务器发送什么样的消息,并且得到什么样的响应消息

HTTP消息传输过程

Internet

web 服务器链接到 URL 的超链接

HTTP 使用此 TCP 连接

浏览器 程序

服务器 程序HTTP

客户

建立 TCP 连接

释放 TCP 连接

HTTP 响应消息② 响应页面

HTTP 请求消息① 请求页面

Trying out http (client side) for yourself

1. Telnet to your favorite Web server:Opens TCP connection to port 80(default http server port) at www.ustc.edu.cn

telnet www.ustc.edu.cn 80

2. Type in a GET http request:

GET /ch/index.php By typing this, you sendthis minimal (but complete) GET request to http server

3. Look at response message sent by http server!

万维网工作过程 用户在浏览器的地址栏键入 URL ,或者点击某

个超链接所对应的 URL 浏览器分析 URL 的主机域名,通过 DNS 系统找到资源所在的主机即 web服务器的 IP 地址

浏览器与 web服务器的 80 端口建立 TCP连接 向web服务器发出 HTTP请求消息,要求获得

某个页面 服务器服务器通过 HTTP 响应消息传送页面 TCP连接被释放 浏览器在本机上显示页面。

HTTP消息格式 HTTP 有两类消息:请求消息——客户端发向web服务器响应消息——从web服务器发往客户端

HTTP请求消息

方 法 URL 版 本头部字段名

头部行: 值

头部字段名 值

:

消息主体

请求行

空格 回车换行

:

CRLF

CRLF

CRLF

CRLF

消息由三个部分组成,即开始行、头部行和消息主体。在请求消息中,开始行就是请求行。

开始行

HTTP请求消息

方 法 URL 版 本头部字段名

头部行: 值

头部字段名 值

:

消息主体(通常不用)

请求行

空格 回车换行

:

CRLF

CRLF

CRLF

CRLF

“方法”就是对所请求的对象进行的操作,方法实际上也就是一些命令。因此,请求消息的类型是由它所采用的方法决定的。

开始行

请求消息的方法方法(操作) 意义

OPTION 查询特定选项GET 请求读取一个 web 页面HEAD 请求读取由一个 web 页面的头部POST 给服务器添加信息(例如,注释)PUT 请求存储一个 web 页面DELETE 删除 web 页面TRACE 送回收到的请求

HTTP请求消息

方 法 URL 版 本头部字段名

头部行: 值

头部字段名 值

:

消息主体(通常不用)

请求行

空格 回车换行

:

CRLF

CRLF

CRLF

CRLF

“URL”是所请求的页面的 URL 。“版本”是 HTTP 的版本。

开始行

HTTP 响应消息

版 本 状态码 短 语头部字段名

头部行: 值

头部字段名 值

:

消息主体

状态行

空格 回车换行

:

CRLF

CRLF

CRLF

CRLF

响应消息的开始行是状态行。状态行包括三项内容,即 HTTP 的版本,状态码,以及解释状态码的简单短语。

开始行

响应消息的状态码 1xx 表示通知信息,如服务器同意处理客户请

求( 100 ) 2xx 表示成功,如请求成功( 200 )或没有内容存在( 204 )

3xx 表示重定向,如页面移动( 301 )或者缓存的页面仍然有效( 304 )

4xx 表示客户错误,例如禁止页面( 403 )或者页面没有找到( 404 )

5xx 表示服务器错误,如服务器内部错误( 500 )或者以后再试( 503 )

超文本标记语言 HTML HTML 允许在页面中包含文本、图像和指向其它 web页面的超链接等

HTML 中的 Markup 的意思就是“设置标记”,定义了许多用于格式化的显示命令(标记或者标签)

浏览器按照 HTML 页面中的各种标签,以及浏览器所使用的显示器的尺寸和分辨率,对页面重新格式化显示出来

HTML 页面实例<HTML>

<HEAD>

<TITLE> 一个 HTML 的例子 </TITLE>

</HEAD>

<BODY>

<H1>HTML 很容易掌握 </H1>

<P>这是第一个段落。 </P>

</BODY>

</HTML>

页面开始头部开始

标题

头部结束

主体开始

主体结束

页面结束

1 级标题

段落

页面中插入图像

<IMG SRC=portrait.gif HEIGHT=100 WIDTH=65>

结束标签开始标签

插入图像

插入的图像文件名是 portrait.gif

高度是 100 像素

宽度是 65 像素

页面中插入超链接

<A HREF=“http://www.ustc.edu.cn”> 中国科学技术大学 </A>

文本字符串链接页面

9.5 文件服务 (FTP) FTP: File Transfer Protocol , RFC959 目的:文件传送(上载或下载)

file transfer FTPserver

FTPuser

interface

FTPclient

local filesystem

remote filesystem

user at host

FTP Model

Server PIServer PI

FileFileSystemSystem

User InterfaceUser Interface

User PIUser PI

UserUser

User DTPUser DTPServer DTPServer DTPFileFileSystemSystem

DataData

ControlControl

PI: Protocol InterpreterPI: Protocol InterpreterDTP: Data Transfer ProtocolDTP: Data Transfer Protocol

PI: Protocol InterpreterPI: Protocol InterpreterDTP: Data Transfer ProtocolDTP: Data Transfer Protocol

TCP 20

TCP 21

控制连接和数据连接 FTP 客户端和服务器建立连接后,控制连接一直保持,而数据连接根据文件传输需要建立,传输结束后就关闭

使用两个连接的好处 协议简单而且实现更加容易 ----来自文件的数据和

FTP 命令不会混淆 控制连接能够在传输过程中使用 ---- 例如用户可以发送一个命令请求取消传输

文件结束条件能够用来通知另一方所有数据传输完毕

ftp commands, responsesSample commands: sent as ASCII text over

control channel ftp 202.38.75.79 USER username

anonymous PASS password LS return list of file in

current directory get filename put filename help

Sample return codes status code and phase

(as in http) 331 Username OK,

password required 125 data connection

already open; transfer starting

425 Can’t open data connection

452 Error writing file

LS 命令的执行结果通过数据连接返回客户端

NVTNVT NVTNVT

ServerServerProcessProcess

TCPTCP TCPTCP

TCP连接, 23 端口NVT: Network Vi

rtual Terminal

语言不通

翻译

9.6 远程登录 (TELNET) 提供本地用户访问远程资源

RFC 854 由于不同厂商的计算机终端系统存在不同的字符标记系统,

TELNET 提供了一种专门的键盘定义,称为网络虚拟终端(NVT) 。

网络虚拟终端格式 客户端把用户的键盘输入和命令转换成 NVT

格式,并送交服务器 服务器把收到的数据和命令,从 NVT 格式转换成远地系统所需的格式

向客户端返回数据时,服务器把远地系统的格式转换为 NVT 格式,客户端再从 NVT 格式转换到本地系统所需的格式。

在 NVT 上传输的数据采用 8bit 字节数据,其中最高位为 0 的字节是一般数据,最高位为 1的字节,是用于 NVT 命令。

9.7 对等应用( P2P: Peer-to-Peer ) 引入背景

客户 / 服务器模式中服务器容易成为瓶颈

利用网络边缘的计算、存储、带宽等资源

Client

Client

Server

对等模式( P2P )通信 P2P 通信模式消除了客户 / 服务器模式

中网络节点功能的不对称性,每个网络节点同时具有客户和服务器的功能

Peer

Peer

P2P 应用实例— BitTorrent BitTorrent (BT) 是一个用于文件共享的 P2P

通信协议,最初在 2001年 4 月提出,第一个实现在 2001年 7 月发表

有许多兼容 BT 协议的客户端软件,例如 BitComet 、 KTorrent 等

BT 协议的基本原理是初始发布者将文件划分为数据块分散到各个接收端,各个接收端可以从其它接收端下载自己想要的数据块,而不仅仅是初始发布者,因此减少了任何给定数据源的负担和开销,并且提供了一定的冗余度

BitTorrent 元素 BT 客户端为实现 BT 协议的任何程序,任何客户端都能够在

网络上准备、请求和传输任何类型文件 Peer 为运行 BT 客户端程序的主机,为了共享一个文件, pe

er将文件看作相同大小的数据块,通常为 64kB到 1MB ,并且使用 hash算法每个数据块计算校验和,然后将这些信息包含在一个 torrent 文件中。提供完整文件的 peer被称为 seeder ,而提供初始文件拷贝的 peer称为初始 seeder

torrent 文件的后缀为 .torrent ,具体信息依赖于 BT 协议的版本,该文件包含了一个“ announce”分区,指定 Tracker 的 URL ,和一个“ info”分区,包含了文件的名字、长度、数据块使用的长度,以及每个数据块的校验和,完整的 Torrent 文件通常发布在 web网站上,并且向 Tracker注册

Tracker 是协助文件散发的主机, Tracker 维护了一个当前参与文件下载的 peer列表,以及每个 peer 所拥有的文件数据块信息

BitTorrent 文件下载 Peer访问web获取感兴趣的 Torrent 文件,并且用 BT 客

户端打开 BT 客户端连接到 Torrent 文件中指定的 Tracker ,从 Trac

ker处获取正在传输 Torrent 文件中所指定数据块的 peer列表,客户端连接到这些 peer 来获取不同的数据块

相互连接来共享一个文件的 peer 组称为 swarm ,如果 swarm 中只包含初始 seeder ,那么客户端直接连接到该 seeder ,并且请求数据块。随着 peer加入 swarm ,它们之间开始交换数据块,而不是直接从 seeder下载

数据交换的效率依赖于客户端发送数据的策略。客户端使用Tit for Tat 策略,即趋向于往自己发送数据的 peer发送数据。为了避免出现两个没有交换过数据块的 peer 之间出现死锁,引入“ optimistic unlocking”机制,即客户端保留一部分可用带宽向随机选择的 peer发送数据

BiTorrent 文件下载实例

说明:不同颜色的块代表不同的文件块。在初始 seeder将文件块发送到其它 peer 以后, peer 之间交换各自所没有的文件块,从而获取整个文件拷贝。因此初始 seeder只需发送一份文件的拷贝

初始 seeder

小结 客户 / 服务器模式与 P2P 模式 DNS 系统中域名、域、区域及资源记录的概念,迭代查询和递归查询

应用程序、应用层协议的概念 电子邮件应用中发送和接收邮件 URL 的概念 FTP 应用中的控制连接和数据连接 TELENET 应用中的 NVT 概念 了解 BitTorrent 的工作原理