应用层
Download
1 / 95

应用层 - PowerPoint PPT Presentation


  • 157 Views
  • Uploaded on

应用层. 非对等模式 文件服务器模式 客户 / 服务器模式 (C/S) 浏览器 / 服务器模式 (B/S) 对等模式 网上邻居 P2P. 常见的网络应用模型. 典型的网络应用分为 : 客户机 和 服务器 两部分. request. reply. application transport network data link physical. application transport network data link physical. Client-server 应用模式. 客户端 :

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' 应用层' - elvina


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

非对等模式

文件服务器模式

客户/服务器模式(C/S)

浏览器/服务器模式(B/S)

对等模式

网上邻居

P2P

常见的网络应用模型


Client server

典型的网络应用分为:

客户机和服务器两部分

request

reply

application

transport

network

data link

physical

application

transport

network

data link

physical

Client-server 应用模式

客户端:

  • 初始化与服务器的连接 (“speaks first”)

  • 典型的是从服务器端请求服务

  • Web由browser实现

  • E-mail由邮件阅读器实现

    服务器端:

  • 通过应答,给客户端提供请求的服务

  • 例如, Web服务器向客户发送被请求的Web页面

  • 邮件服务器则向客户端发送

    e-mail


常用应用层协议

  • web应用:HTTP

  • 文件传输:FTP(TCP);TFTP(UDP)

  • 电子邮件:SMTP,POP3,IMAP

  • 终端仿真(BBS):Telnet

  • 网络新闻:Usenet / NNTP

  • 目录服务:X.500,LDAP

  • 无盘工作站启动:BOOTP、DHCP

  • 域名服务:DNS


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

POP3(Post Office Protocol,邮局协议3) (接收)

IMAP(Internet Message Access Protocol,Internet 消息访问协议) (接收)

MIME(Multipurpose Internet Mail Extensions,多用途Internet 邮件扩展标准)不是邮件传输协议,它只定义了需要传输的消息、附件及其它类型数据的格式。

常见电子邮件协议


万维网 WWW (World Wide Web)并非某种特殊的计算机网络。

万维网是一个大规模的、联机式的信息储藏所。

万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。

这种访问方式称为“链接”。

万维网(WWW)概述


链接到

链接到

链接到

链接到

链接到

链接到

万维网提供分布式服务

万维网

站点 A

万维网

站点 C

万维网站点 B

万维网站点 E

万维网站点 D


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

一个超文本由多个信息源链接成。利用一个链接可使用户找到另一个文档。这些文档可以位于世界上任何一个接在因特网上的超文本系统中。超文本是万维网的基础。

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

超媒体与超文本


万维网以客户服务器方式工作。

浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器。

客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。

在一个客户程序主窗口上显示出的万维网文档称为页面(page)。

万维网的工作方式


(1)使用统一资源定位符URL (Uniform Resource Locator)来标志万维网上的各种文档;

(2)用超文本传送协议HTTP (HyperText Transfer Protocol)来实现万维网上各种超链的链接;

(3)由超文本标记语言HTML (HyperText Markup Language)来组织万维网页面内容;

(4)有浏览器来请求和显示页面内容;

(5) 通过搜索引擎来寻找所需的信息。

万维网的主要组成部分


http//home.netscape.com:80/home/white_paper.html#intro_1

端口号

协议

主机域名(IP地址)

统一资源定位符 (URL)

URL包括三部分:协议(也叫机制)名称、页面所在机器的DNS名字(主机名)、标识指定页面(经常是一个位于它所在机器上的文件)的唯一的本地名字,即文件名。

文件名

目录

HTML参考点

  • HTTP 默认端口号为80

  • 参考点( reference ):资源中的特定位置,用来标识一个文件中特定的偏移位置。通过参考点我们可以对一个 文件中感兴趣的部分创建URL对象。


URL支持的协议


Web http

http:超文本传输协议

Web应用层协议

客户机/服务器模式

客户机: 浏览器提出请求,接收并“显示”Web”对象”

服务器: Web服务器访问存储器中存放的一系列Web文档;并发送副本以响应(客户)请求

Web: http协议

http request

PC 运行IE浏览器

http response

http request

服务器

运行

NCSA Web

服务器

http response

Mac运行

Navigator浏览器


Web 体系结构

Web 服务器

Web 客户机

HTTP

HTTP

TCP

TCP

IP & 低层

IP & 低层

网络


HTTP 请求报文

HTTP 响应报文

建立 TCP 连接

① 请求文档

② 响应文档

释放 TCP 连接

万维网的工作过程

服务器

www.tsinghua.edu.cn

链接到URL的超链

客户

清华大学

院系设置

浏览器

程序

服务器

程序

HTTP

HTTP 使用此 TCP 连接

因特网


非持续

HTTP/1.0 (RFC 1945)

服务器解析请求,并作出响应然后关闭TCP连结

取得一个对象需要2 RTT

每个对象传输必须忍受重新建立连接时的慢启动

持续

HTTP/1.1 (RFC 2068)

在同一个TCP连结上,服务器解析请求,响应;解析新请求,响应新的请求,..

当客户收到基本的HTML后立即为所有参考对象发送请求

少量的RTT和较少的慢启动.

非持续和持续连接


Accessing a web page
Accessing a web page

GET: /watch?v=wQVEPFzkhaM

OK (text/html)

GET: /vi/fNaYQ4kM4FE/2.jpg

OK (img/jpeg)


Http 1 0
HTTP 1.0

Client Server

connect()

SYN

SYN, ACK

write()

ACK, GET www.cs.virginia.edu

从磁盘检索

数据

close()

connect()

SYN

SYN, ACK

write()

ACK, GET image.gif

从磁盘检索

图像

close()


Http 1 1
HTTP 1.1

客户机 服务器

connect()

SYN

SYN, ACK

write()

ACK, GET www.cs.virginia.edu

从磁盘检索

数据

write()

GET image.gif

从磁盘检索

图像

close()


HTTP 有两类报文:

请求报文——从客户向服务器发送请求报文。

响应报文——从服务器到客户的回答。

HTTP 的报文结构


开始行

HTTP 的报文结构(请求报文)

空格

回车换行

方 法

URL

版 本

CRLF

请求行

首部字段名

:

CRLF

首部行

首部字段名

:

CRLF

CRLF

:

实体主体

(通常不用)

报文由三个部分组成,即开始行、首部行和实体主体。

在请求报文中,开始行就是请求行。

“方法”就是对所请求的对象进行的操作(命令)。


方法(操作) 意义

OPTION 请求一些选项的信息

GET 请求读取由URL所标志的信息

HEAD 请求读取由URL所标志的信息的首部

POST 给服务器添加信息(例如,注释)

PUT 在指明的URL下存储一个文档

DELETE 删除指明的URL所标志的资源

TRACE 用来进行环回测试的请求报文

CONNECT 用于代理服务器

HTTP 请求报文的常用方法


Http请求报文:

ASCII (可读格式)

request line

(GET, POST,

HEAD commands)

header

lines

回车,换行

表示报文的结束

Http报文格式: 请求实例

GET /somedir/page.html HTTP/1.0

User-agent: Mozilla/4.0

Accept: text/html, image/gif,image/jpeg

Accept-language:fr

(extra carriage return, line feed)


开始行

HTTP 的报文结构(响应报文)

空格

回车换行

状态码

版 本

短 语

CRLF

状态行

首部字段名

:

CRLF

首部行

首部字段名

:

CRLF

CRLF

:

实体主体

(有些响应报文不用)

响应报文的开始行是状态行。

状态行包括三项内容,即 HTTP 的版本,状态码,以及解释状态码的简单短语。


1xx 表示通知信息的,如请求收到了或正在进行处理。

2xx 表示成功,如接受或知道了。

3xx 表示重定向,表示要完成请求还必须采取进一步的行动。

4xx 表示客户的差错,如请求中有错误的语法或不能完成。

5xx 表示服务器的差错,如服务器失效无法完成请求。

状态码都是三位数字


状态行

(协议状态码,

状态短语)

头部行

数据,例如,

请求的html文件

http 报文格式: 响应实例

HTTP/1.0 200 OK

Date: Thu, 06 Aug 1998 12:00:15 GMT

Server: Apache/1.3.0 (Unix)

Last-Modified: Mon, 22 Jun 1998 …...

Content-Length: 6821

Content-Type: text/html

data data data data data ...


Html hypertext markup language

超文本标记语言 HTML 中的 Markup 的意思就是“设置标记”。

HTML 定义了许多用于排版的命令(标签)。

HTML 把各种标签嵌入到万维网的页面中。这样就构成了所谓的 HTML 文档。HTML 文档是一种可以用任何文本编辑器创建的 ASCII 码文件。

超文本标记语言 HTML(HyperText Markup Language)


HTML基本结构

HTML超文本标记语言

标题标记

段落标记

<HTML>

<HEAD>

文件头

</HEAD>

<BODY>

文件体

</BODY>

</HTML>

超文本链接标记

<TITLE>文件标题</TITLE>

表格类标记

列表类标记

FORM类标记

格式类标记

……


XML(eXtensible Markup Language,可扩展标记语言)

同HTML一样, XML 是SGML (Standard Generalized Markup Language, 通用标识语言标准)的一个子集,它是描述网络上的数据内容和结构的标准

XML要素

Schema(模式)、XSL(eXtensible StyleSheet Language,可扩展样式语言)和XLL( eXtensible Link Language,可扩展 连接语言)

XML语言概述


静态页面: 存贮在文件中,无变化

动态页面:由服务器根据响应请求的需要而形成

由程序输出(例如. 公共网关接口(CGI) )

活动页面: 在客户机端执行!

可以同用户交互的电脑程序(并不仅仅是输出。例如Java applet)

静态、动态、活动Web页面


动态网页技术

(1) 传统动态技术:包括CGI、IDC、ISAPI等。

(2) 流行动态技术:包括ASP、JSP、PHP等。

CGI(Common Gateway Interface)

IDC(Internet Database Connector)


Cookies

服务器在响应报文中给客户机发送“cookie”

Set-cookie: 1678453

客户机在后面的请求中提供cookie

cookie: 1678453

服务器将提供的cookie与服务器存贮的信息相匹配

鉴定

记住用户的喜好和前面的选择

usual http request msg

cookie: #

usual http request msg

cookie: #

usual http response msg

usual http response msg

用户-服务器交互: cookies

服务器

客户机

usual http request msg

usual http response +

Set-cookie: #

cookie-

说明

cookie-

说明


Email
电子邮件(Email)

概述

电子邮件是人们在Internet上使用最多的服务之一。

电子邮件系统的特点:

  • 方便性

  • 快捷性

  • 廉价性

    邮件传送与其他一些网络应用有一定的区别。邮件发送方不应等待远程目的主机有效时才能发送邮件,也不应因为与远程主机通信的网络暂时失效而停止传送。邮件传送是可以有较大延时的。


E mail

电子邮件E-mail是一种利用网络交换信息的非交互式服务。

电子邮件的格式

RFC 822

MIME

电子邮件的传输协议

发送:简单邮件传输协议SMTP

接收:POP3/IMAP

电子邮件的工作流程

邮件的发送

邮件的接收

电子邮件E-mail


Addressing

routing

envelope

(address)

message

collecting

发信方

邮件服务器

Mail Server

邮件传输代理

MDA/MTA

编辑

封装

Internet

邮件传输代理

用户代理(UA)

邮件服务器

Mail Server

邮件传输代理

MDA/MTA

显示

拆封

收信方

电子邮件系统的构成

SMTP

Edora

FoxMail

Outlook

SMTP

POP3


Ua user agent

用户代理 UA 就是用户与电子邮件系统的接口。

用户代理的功能是:撰写、显示和处理。

邮件服务器的功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等)。

邮件传输代理MDA/MTA负责邮件的传送。

邮件服务器按照客户服务器方式工作,通过不同的协议来分别实现邮件的发送和接收。

SMTP 协议用于发送邮件。

邮局协议 POP (Post Office Protocol) 或IMAP(Internet Massage Access Protocol)用于接收邮件。

用户代理 UA (User Agent)


(发送邮件)

SMTP

(TCP 连接)

(发送邮件)

SMTP

电子邮件的发送和接收过程

邮件

服务器

邮件

服务器

接收方

发送方

因特网

用户代理

用户代理

邮件缓存

发送端

邮件服务器

接收端

邮件服务器

(1) 发信人调用用户代理来编辑要发送的邮件。

用户代理用 SMTP 把邮件传送给发送端邮件服务器。


邮件缓存

电子邮件的发送和接收过程

(发送邮件)

SMTP

邮件

服务器

邮件

服务器

(TCP 连接)

接收方

发送方

(发送邮件)

SMTP

因特网

用户代理

用户代理

发送端

邮件服务器

接收端

邮件服务器

(2) 发送端邮件服务器将邮件放入

邮件缓存队列中,等待发送。


(发送邮件)

SMTP

(TCP 连接)

(发送邮件)

SMTP

电子邮件的发送和接收过程

(发送邮件)

SMTP

邮件

服务器

邮件

服务器

(TCP 连接)

接收方

发送方

(发送邮件)

SMTP

因特网

用户代理

用户代理

邮件缓存

发送端

邮件服务器

接收端

邮件服务器

(3) 运行在发送端邮件服务器的 SMTP 客户进程,发现

在邮件缓存中有待发送的邮件,就向运行在接收端邮件

服务器的 SMTP 服务器进程发起 TCP 连接的建立。


(发送邮件)

SMTP

(TCP 连接)

(发送邮件)

用户邮箱

SMTP

电子邮件的发送和接收过程

(发送邮件)

SMTP

邮件

服务器

邮件

服务器

(TCP 连接)

接收方

发送方

(发送邮件)

SMTP

因特网

用户代理

用户代理

邮件缓存

发送端

邮件服务器

接收端

邮件服务器

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


(发送邮件)

SMTP

(TCP 连接)

(发送邮件)

用户邮箱

SMTP

电子邮件的发送和接收过程

(发送邮件)

SMTP

邮件

服务器

邮件

服务器

(TCP 连接)

接收方

发送方

(发送邮件)

SMTP

因特网

用户代理

用户代理

邮件缓存

发送端

邮件服务器

接收端

邮件服务器

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


(读取邮件)

(发送邮件)

SMTP

POP3

(TCP 连接)

(TCP 连接)

(发送邮件)

用户邮箱

SMTP

(读取邮件)

POP3

电子邮件的发送和接收过程

(发送邮件)

SMTP

邮件

服务器

邮件

服务器

(TCP 连接)

接收方

发送方

(发送邮件)

SMTP

因特网

用户代理

用户代理

邮件缓存

发送端

邮件服务器

接收端

邮件服务器

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


C/S模式,基于TCP协议(端口25),从客户向服务器,或在服务器之间可靠地传输邮件报文

传输的三种状态

握手 (问侯):建立TCP连接

报文传输

关闭TCP连接

命令和应答交互

命令: ASCII文本

应答:状态码和短语

SMTP


SMTP 规定了 14 条命令和 21 种应答信息。每条命令用 4 个字母组成,而每一种应答信息一般只有一行信息,由一个 3 位数字的代码开始,后面附上(也可不附上)很简单的文字说明。

SMTP


命令格式

功能

HELO <domain>

<CRLF>

识别发送器到接收器SMTP的一个hello命令

MAIL FROM:

<reverse-path><CRLF>

<reverse-path>包含邮件发送用户的源信箱,这个命令告诉接收方一个新邮件发送的开始,初始化所有的状态和缓冲区。开始一个邮递处理,最终把邮件数据送到一个或多个邮箱里

RECPTO:

<forward-path> <CRLF>

<forward-path>指示一个邮件接收者,用于识别邮件数据的各个接收者

DATA <CRLF>

接收SMTP将DATA命令后面的行为作为邮件数据来处理,对SMTP来说两个CRLF间的英文句号(点号)标识邮件数据的结尾

RSET <CRLF>

退出(或复位)当前的邮递处理

NOOP <CRLF>

要求接收器SMTP除了返回一个OK应答外,不作任何处理(用于客户服务器测试)

QUIT <CRLF>

要求接收器SMTP返回一个OK应答并关闭传输通道

SMTP协议的最小命令集


应答码

描述

应答码

描述

211

系统状态或系统帮助应答

500

语法错误,命令不能识别。

214

帮助报文

501

在参量和参数中有语法错误。

220

<域>服务准备好

502

命令没有实现

221

<域>服务关闭传输

503

命令中有坏串

250

请求的邮递活动OK,已完成

504

命令参量没有实现

251

用户不在本地;将向前到<前向路径>

550

请求的活动没有发生;邮箱不能得到

354

开始邮件输入;以<CRLF>.<CRLF>结束

551

用户不在本地,请试<前向路径>

421

<域>服务不能得到,关闭传输通道

552

请求的邮递活动失败:过多的存储器分配

450

请求的邮递活动没发生;邮箱不能得到

553

请求的活动没发生:邮箱名不许

451

请求的活动失败;处理中有本地错误

554

处理失败

SMTP应答


SMTP交互实例

Mail Sender:

mail.swjtu.edu.cn

Mail Receiver:

mail.pku.edu.cn

220 SMTP

service ready

HELO

250 OK

MAIL FROM:

mail.swjtu.edu.cn

250 mail accepted

RCPT TO:

mail.pku.eud.cn

250

Receipient accepted

DATA

354 start mail

input,end with .

250 OK

QUIT

221 services closing channel


  • 头部行, e.g.,

    • To:

    • From:

    • CC:

    • Subject:

      不同于 SMTP命令!

  • 主体

    • 邮件,ASCII字符

SMTP 数据

邮件头部

空行

邮件体(body)

邮件报文格式

  • 电子邮件是由信封和消息两个部分构成的。

    • 信封:“用户名@主机名”

    • 消息:由信头(一些控制信息)和信体(由发信人自由撰写的内容)构成。


字 段 名 称

描 述

字 段 名 称

描 述

From

信件写信人

Date

信件创建的日期

Sender

信件发信人

Received

MTA轨迹

Reply-to

发送回复的地址

Return-Path

发信人地址

To

信件的主收信人

Subject

信件主题

Cc

信件的辅收信人(抄送人)

Comments

关于该信件的其他说明

Bcc

信件的密件抄送收信人

Keywords

与该信件有关的主题关键字

Message-ID

信件的唯一标识符

Encrypted

加密信息(过时)

In-Reply-To

信件正被回复到

Resent-*

重新分发时创建的字段

References

所有信件源

X-*

扩展字段

标准信头字段


SMTP 有以下缺点:

SMTP 不能传送可执行文件或其他的二进制对象。

SMTP 限于传送 7 位的 ASCII 码。许多其他非英语国家的文字(如中文、俄文,甚至带重音符号的法文或德文)就无法传送。

SMTP 服务器会拒绝超过一定长度的邮件。

某些 SMTP 的实现并没有完全按照[RFC 821]的 SMTP 标准。

→ MIME:继续使用目前的[RFC 822]格式,但增加了邮件主体的结构,并定义了传送非 ASCII 码的编码规则。

通用因特网邮件扩充 MIME


Mime smtp
MIME 和 SMTP 的关系

用户

用户

非 ASCII 码

非 ASCII 码

MIME

MIME

7 位 ASCII 码

7 位 ASCII 码

7 位 ASCII 码

SMTP

SMTP


5个新的邮件首部字段,它们可包含在[RFC 822]首部中。这些字段提供了有关邮件主体的信息。

定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。

定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变。

MIME 主要包括三个部分


Mime 5

MIME-Version: 标志 MIME 的版本。现在的版本号是 1.0。若无此行,则为英文文本。

Content-Description: 这是可读字符串,说明此邮件是什么。和邮件的主题差不多。

Content-Id: 邮件的惟一标识符。

Content-Transfer-Encoding: 在传送时邮件的主体是如何编码的。

Content-Type: 说明邮件的性质。

MIME 增加 5 个新的邮件首部


Content transfer encoding

最简单的编码就是 7 位 ASCII 码,而每行不能超过 1000 个字符。MIME 对这种由 ASCII 码构成的邮件主体不进行任何转换。

另一种编码称为 quoted-printable,这种编码方法适用于当所传送的数据中只有少量的非 ASCII 码。

对于任意的二进制文件,可用 base64 编码。

内容传送编码Content-Transfer-Encoding


MIME标准规定 Content-Type 说明必须含有两个标识符,即内容类型(type)和子类型(subtype),中间用“/”分开。

MIME 标准定义了 7 个基本内容类型和 15 种子类型。

内容类型


文本

子类:plain,html

图象

子类: jpeg, gif

音频

子类: basic (8位u律编码), 32kadpcm (32 kbps 编码)

视频

子类: mpeg,quicktime

应用程序

只有通过浏览器处理才“可见的”其它数据

子类: msword, octet-stream ,

postscript

MIME类型:可扩展性

内容类型:数据类型/子类型/参数声明


Multipart
Multipart类型

From: [email protected]

To: [email protected]

Subject: Picture of yummy crepe.

MIME-Version: 1.0

Content-Type: multipart/mixed; boundary=98766789

--98766789

Content-Transfer-Encoding: quoted-printable

Content-Type: text/plain

Dear Bob,

Please find a picture of a crepe.

--98766789

Content-Transfer-Encoding: base64

Content-Type: image/jpeg

base64 encoded data .....

.........................

......base64 encoded data

--98766789--


SMTP: 发送/存贮邮件到接收服务器

邮件访问协议POP: 从服务器取回邮件

Push or pull

用户

代理

用户

代理

邮件发送服务器

SMTP

接收邮件--邮件访问协议

SMTP

POP3 or

IMAP

邮件接收服务器


认证阶段

  • 用户命令:

    • user:用户名

    • pass:密码

  • 服务器响应

    • +OK

    • -ERR

事务阶段,客户:

  • list:列出邮件目录

  • retr:根据编号索取邮件

  • dele:删除邮件

  • Quit:退出

POP3协议

S: +OK POP3 server ready

C: user alice

S: +OK

C: pass hungry

S: +OK user successfully logged on

C: list

S: 1 498

S: 2 912

S: .

C: retr 1

S: <message 1 contents>

S: .

C: dele 1

C: retr 2

S: <message 1 contents>

S: .

C: dele 2

C: quit

S: +OK POP3 server signing off


命令

描述

USER

要求标识用户的名字

PASS

用户/服务器所要求的口令

QUIT

退出,关闭TCP连接

STAT

服务器返回邮箱的邮件数和这些邮件的总的大小

LIST

返回邮件Ids和大小

RETR

从邮箱取出邮件

DELE

标记删除的邮件

NOOP

服务器返回一个有效的响应,但不产生任何动作

LAST

服务器返回访问的最大邮件数

RSET

去除具有删除标记的所有邮件的标记

POP3的最小命令集


允许用户设置和维护远程服务器上的多重文件夹

不下载邮件就能获取邮件头部和操作邮件

不用将邮件留在不安全的电脑上

不用在缓慢的链路上下载邮件而付费

必须通过会话存贮每一个用户的信息= 状态协议

文件夹信息, 实际邮件

每个邮件的已读、删除、回复标志

IMAP


Imap4

命令

描述

capability

列出服务器的功能

noop

空操作

logout

从服务器注销

login

登录到服务器

authenticate

验证服务器

list

列出信箱

create

创建信箱

delete

删除信箱

rename

重命名信箱

status

取信箱的状态

select

打开信箱

examine

打开信箱只读

close

关闭当前信箱

subscribe

预订信箱

unsubscribe

取消信箱的预订

lsub

列出预订的信箱

copy

把一组信箱复制到信箱

append

把一个信件追加到信箱

check

检查当前信箱

search

搜索当前信箱

fetch

从一组信件中取出数据

store

设置信箱的标志

expunge

清空当前信箱

uid

基于UID复制、提取、存储和搜索

IMAP4命令集


Pop imap

相同点

邮件发送给一个共享的,持续连接的服务器

新邮件可以在网络中多种平台上的任何地方访问

只能用来访问邮件, 要发送邮件需要SMTP

不同点

POP更简单,更既成事实 (有更多的服务器和客户支持)

IMAP 是一种有更多特征的状态协议

Pop和IMAP


文件传输: FTP

Software

Program

Anonymous FTP Server

ftp.neu.edu.cn

README

ftp ftp.neu.edu.cn

Username:anonymous


Ftp tcp
FTP 使用的两个 TCP 连接

用户界面

控制连接(21)

控制进程

控制进程

因特网

数据传送

进程

数据传送

进程

客户端

服务器端

数据连接(20)


FTP 命令

  • FTP命令:

  • 用户命令

  • 内部命令


以下命令均在 ftp>提示符下输入:

!执行外部命令 ?显示帮助信息 append 追加文件

ascii 传送文本文件方式 bell每传送一个文件报警 binary 进入二进制方式

bye关闭连接并退出 cd 改变远端当前路径 close关闭ftp连接

delete删除指定文件 debug 调试 dir列远端目录清单

disconnect关闭ftp连接 get获取远程主机的文件 glob元字符开关

hash传输1k字节打印# help求助 lcd 改变本地工作目录

literal任意发送ftp命令 ls列目录清单 mdelete删除多个文件

mdir列多个远端目录清单 mget获取多个远端文件 mkdir建立远端目录

mls列多个远端目录清单mput发送多个文件 open 建立tftp连接

prompt多重传输的提示开关put 上传文件给ftp服务器pwd显示远程当前目录

quit退出 quote发送任意ftp命令 recv从远程主机取文件

remotehelp远程帮助 rename文件更名 rmdir删除远端子目录

send发送文件 status显示ftp状态 trace 包追踪开关

type文件传送方式 user重新登录 verbose方式开关

FTP 用户命令


ascii

进入ASCII方式,传输文本文件

binary

进入二进制方式,传输二进制文件

delete filename

删掉远程系统中所指定的文件

cd directory

改变远程计算机的工作目录

close

结束FTP与远程计算机的会话,返回到FTP的命令状态

文件传输FTP命令集


help command

显示出关于此命令的一段帮助文字

dir file destination

在远程计算机上,列出全部目录,file和destination都是任选的

hash

当每次用get和put命令传送一个数据块时,让FTP显示一个#

lcd directory

在本地计算机上将缺省目录改变为指定的目录

ls file destination

在远程计算机上列出一短的目录

文件传输FTP命令集


pwd

显示远程计算机当前目录

lwd

显示本地计算机当前目录

open

连接到指定名的计算机上,如果你从某个系统上传输完文件后,想连接到一个新系统上,则可用此命令

quit

关闭当前打开的所有连接,并退出FTP

!command

执行本地命令

文件传输FTP命令集


1)UNIX中FTP交互工作

下例左边编号[01]~[15] 是我们加的。用户的输入部分用加红色斜体有下画线表示。

[01] ftp ftp.pku.edu.cn

[02] Connected to vineyard.pku.edu.cn.

[03] 220 vineyard.pku.edu.cn FTP server (Version wu-2.6.0(1) Tue Jul 13 10:20:43 CDT.

[04] Name (ftp.pku.edu.cn:teng): anonymous

[05] 331 Guest login ok, send your complete e-mail address as password.

[06] Password: [email protected]

[07] 230 Guest login ok, access restrictions apply.

[08] ftp> cd /pub/rfc

[09] 250 CWD command successful.

[10] ftp> get rfc959.txt ftpinfo

[11] 200 PORT command successful.

[12] 150 Opening ASCII mode data connection for rfc959.txt (147316 bytes).

[13] 226 Transfer complete.

local: ftpinfo remote: rfc959.txt

151249 bytes received in 2.1 seconds (71.27 Kbytes/s)

[14] ftp> quit

[15] 221-You have transferred 151249 bytes in 1 files.

221-Total traffic for this session was 152964 bytes in 1 transfers.

221-Thank you for using the FTP service on vineyard.pku.edu.cn.

221 Goodbye.

FTP使用例举


图中的各行信息的解释如下:

[01] 用户输入FTP命令启动本地FTP客户程序和远地主机北京大学匿名FTP服务器(ftp.pku.edu.cn)建立连接。

[02] 本地FTP客户程序显示的连接成功的信息。

[03] 远地服务器返回的信息,“220”表示“服务就绪”。

[04] 本地FTP提示用户输入用户名。输入“anonymous”表示请求匿名FTP服务。

[05] 远地服务器提示“用户名正确”,需要口令。

[06] 本地FTP提示用户输入口令。用户可以输入自己的邮件地址,比如“[email protected]”。

[07] 服务器返回“230”提示信息,表示用户注册成功。

[08]“ftp>”是FTP的命令提示符。用户可以输入相应的命令,如“help”,“dir”等。这里是改变目录“cd”到RFC文件所在的目录。

[09] 远地服务器返回信息,表示改变目录命令已经成功。“CWD”代表“Change Working Directory”。

[10] 用户要求获得名为“rfc959.txt”的文件,并改名为“ftpinfo”。

[11] 远地服务器提示“PORT”信息,表示要建立数据连接。“200”表示命令正确。

[12] 数字“150”表示“文件状态正确,正在建立数据连接,并进行文件传输”。

[13] 数字“226”表示“数据传输完毕,释放数据连接”。

[14] 用户输入退出命令。

[15] 远地服务器表示FTP工作结束。




What is usenet

概念上 :一个半组织的公共论坛(新闻组)

技术上:一个发布诸如email之类的系统

What is Usenet ?


Usenet

Usenet 是建立在其它网络之上的逻辑网络,它依赖于物理网络,这些物理网络可以是UUCP,Internet等等.在Usenet中,不同的讨论主题都有详细的分类,这些分类以新闻组来描述.新闻组命名机制与计算机域名很相似,是有层次的分类专题.首先是主要的专题,然后是子专题,子专题还可以再细分为子专题,它们之间用“.”间隔.

Usenet


Usenet message

格式 :RFC1036说明了新闻文章的格式。其格式类似与EMAIL,但有更多的限制,对每个信息都有一些附加要求。标准的Usenet新闻格式是:头行、空行和信息体。每个头行由一个关键字、冒号、一个空格和一些附加信息组成。有的新闻头行是必要的,它提供了新闻的来源、发送时间及所属新闻组等信息;而另一些头行是可选的,它提供了一条新闻的详细信息。

报文ID:不同于email,每个消息都需要唯一的识别标志

路径:参见后面的介绍

Usenet Message


Path: news.litech.org!lnsnews.lns.cornell.edu!paradoxa.ogoense.net!not-for-meow

From: [email protected] (A Meowbot)

Newsgroups: alt.dev.null

Subject: Why?

Date: Sun, 27 Jan 2002 23:25:52 +0000 (UTC)

Organization: a tyranny of meowing fascist censor cabalists

Lines: 4

Approved: nope.

Message-ID: <[email protected]>

X-Trace: paradoxa.ogoense.net 1012173952 6565 141.154.205.147 (27 Jan

2002 23:25:52 GMT)

X-Complaints-To: [email protected]

X-Meow: Wouf

Mail-Copies-To: nobody

X-No-Repost: yes

Xref: news.litech.org alt.dev.null:492

Because we like you.

--

Meow


用户连接到一个本地新闻 news.litech.org!lnsnews.lns.cornell.edu!paradoxa.ogoense.net!not-for-meow

为了有更好的吞吐量,每个新闻服务器都连接有几个新闻服务器

站点通过(手工请求和配置)对等连接到其他新闻服务器

主要站点拥有几百个对等服务器

网络拓扑


服务器的 news.litech.org!lnsnews.lns.cornell.edu!paradoxa.ogoense.net!not-for-meow“名”被加到路径头上

服务器将文章存储起来以便用户能够阅读

对等网的每一个服务器,判断是否已经看到了文章(首先检测路径头中服务器的名,然后查询服务器的消息ID)

试图将文章发送给其他的服务器

文章到达…

这要么是用户发送的一个新邮件,要么是从一个对等服务器发来的文章


我们来跟踪一篇文章。路径头的初始组成部分(在最后)标记最初的发送者,服务器把名加上去:我们来跟踪一篇文章。路径头的初始组成部分(在最后)标记最初的发送者,服务器把名加上去:

Path: paradoxa.ogoense.net!not-for-meow

然后,文章到达Cornell server,添加该服务器名:

Path: lnsnews.lns.cornell.edu!paradoxa.ogoense.net!not-for-meow

最后我们(litech.org)看到这篇文章:

Path:news.litech.org!lnsnews.lns.cornell.edu!paradoxa.ogoense.net!not-for-meow

路径头和消息ID


NNTP我们来跟踪一篇文章。路径头的初始组成部分(在最后)标记最初的发送者,服务器把名加上去:协议

Usenet新闻系统建立在网络新闻传输协议NNTP

(Network News Transfer Protocol)之上。NNTP协议定义了在Internet上使用客户/服务器模式,在一个基于流的可靠的传输机制(TCP)上,怎样发布、查寻、检索和发送新闻文章;定义了新闻服务器与新闻阅读器之间交互应答的命令和响应代码。RFC977详细定义了NNTP协议


主要的我们来跟踪一篇文章。路径头的初始组成部分(在最后)标记最初的发送者,服务器把名加上去:NNTP命令

ARTICLE <message-id> selection by message-id

ARTICLE <number> selection by number

GROUP ggg

IHAVE <message id> 客户机告知服务器它有一个新闻

LAST set to the previous article

LIST

NEWGROUPS date time [GMT] [<distributions>]

NEWNEWS newsgroups date time [GMT] [<distribution>]

NEXT


主要的我们来跟踪一篇文章。路径头的初始组成部分(在最后)标记最初的发送者,服务器把名加上去:NNTP命令

POST 上传网络新闻

HEAD 阅读网络新闻头部

BODY 阅读网络新闻文章体

STAT 网络新闻状态

SLAVE客户机连接到从服务器

HELP 再线帮助

QUIT 退出,关闭TCP连接


Example 1 relative access
Example 1 - relative access我们来跟踪一篇文章。路径头的初始组成部分(在最后)标记最初的发送者,服务器把名加上去:

S: (listens at TCP port 119)

C: (requests connection on TCP port 119)

S: 200 wombatvax news server ready - posting ok

(client asks for a current newsgroup list)

C: LIST

S: 215 list of newsgroups follows

S: net.wombats 00543 00501 y

S: net.unix-wizards 10125 10011 y

(more information here)

S: net.idiots 00100 00001 n

S: .

(client selects a newsgroup)

C: GROUP net.unix-wizards


Example 1 relative access1
Example 1 - relative access我们来跟踪一篇文章。路径头的初始组成部分(在最后)标记最初的发送者,服务器把名加上去:

S: 211 104 10011 10125 net.unix-wizards group selected

(there are 104 articles on file, from 10011 to 10125)

(client selects an article to read)

C: STAT 10110

S: 223 10110 <[email protected]> article retrieved - statistics

only (article 10110 selected, its message-id is

<[email protected]>)

(client examines the header)

C: HEAD

S: 221 10110 <[email protected]> article retrieved - head

follows (text of the header appears here)


Example 1 relative access2
Example 1 - relative access我们来跟踪一篇文章。路径头的初始组成部分(在最后)标记最初的发送者,服务器把名加上去:

S: .

(client wants to see the text body of the article)

C: BODY

S: 222 10110 <[email protected]> article retrieved - body

follows (body text here)

S: .

(client selects next article in group)

C: NEXT

S: 223 10113 <[email protected]> article retrieved - statistics

only (article 10113 was next in group)

(client finishes session)

C: QUIT

S: 205 goodbye.


Example 2 absolute article access with article
Example 2 - absolute article 我们来跟踪一篇文章。路径头的初始组成部分(在最后)标记最初的发送者,服务器把名加上去:access with ARTICLE

S: (listens at TCP port 119)

C: (requests connection on TCP port 119)

S: 201 UCB-VAX netnews server ready -- no posting allowed

C: GROUP msgs

S: 211 103 402 504 msgs Your new group is msgs

(there are 103 articles, from 402 to 504)

C: ARTICLE 401

S: 423 No such article in this newsgroup

C: ARTICLE 402

S: 220 402 <[email protected]> Article retrieved, text follows


Example 2 absolute article access with article1
Example 2 - absolute article 我们来跟踪一篇文章。路径头的初始组成部分(在最后)标记最初的发送者,服务器把名加上去:access with ARTICLE

S: (article header and body follow)

S: .

C: HEAD 403

S: 221 403 <[email protected]> Article retrieved, header follows

S: (article header follows)

S: .

C: QUIT

S: 205 UCB-VAX news server closing connection. Goodbye.


Example 3 newgroups command
Example 3 - NEWGROUPS command我们来跟踪一篇文章。路径头的初始组成部分(在最后)标记最初的发送者,服务器把名加上去:

S: (listens at TCP port 119)

C: (requests connection on TCP port 119)

S: 200 Imaginary Institute News Server ready (posting ok)

(client asks for new newsgroups since April 3, 1985)

C: NEWGROUPS 850403 020000

S: 231 New newsgroups since 03/04/85 02:00:00 follow

S: net.music.gdead

S: net.games.sources

S: .

C: GROUP net.music.gdead

S: 211 0 1 1 net.music.gdead Newsgroup selected

(there are no articles in that newsgroup, and

the first and last article numbers should be ignored)

C: QUIT

S: 205 Imaginary Institute news server ceasing service. Bye!


Example 4 posting a news article
Example 4 - posting a news article我们来跟踪一篇文章。路径头的初始组成部分(在最后)标记最初的发送者,服务器把名加上去:

S: (listens at TCP port 119)

C: (requests connection on TCP port 119)

S: 200 BANZAIVAX news server ready, posting allowed.

C: POST

S: 340 Continue posting; Period on a line by itself to end

C: (transmits news article in RFC850 format)

C: .

S: 240 Article posted successfully.

C: QUIT

S: 205 BANZAIVAX closing connection. Goodbye.


Telnet我们来跟踪一篇文章。路径头的初始组成部分(在最后)标记最初的发送者,服务器把名加上去:

加州大学

北京大学

Internet

Username:

Password:

Telnet Server


我们来跟踪一篇文章。路径头的初始组成部分(在最后)标记最初的发送者,服务器把名加上去:1)Telenet采用了Client/Server结构

使用了 TCP/IP协议族。

(2)客户端运行Telnet

建立与服务器端的TCP连接 ;

接收用户的输入命令及其他信息;

将命令及信息处理;

将相关信息通过TCP 发送给服务器端;

接收服务器端返回的信息并做相应处理如显示。

(3)服务器端不间断地运行服务程序Telnetd

通知正在准备接受连接的网络软件,服务作业已进入就续状态

网络软件建立与客户机的TCP连接;

等候以标准格式出现的服务请求;

对到来的服务请求命令给予执行;

把服务结果按标准格式回送给客户机;

继续等待服务。

Telnet是如何工作的


Telnet我们来跟踪一篇文章。路径头的初始组成部分(在最后)标记最初的发送者,服务器把名加上去:的应用及例

  • 远程访问,共享远程系统的资源。

  • 使用远程计算机上的 Internet 信息服务工具,

  • 访问其他Internet信息服务。

  • 借助匿名Telnet,使用户直接连接到Gopher、Archie、

  • WWW、News等信息服务程序上,访问这些服务。

  • 指定TCP/UDP端口号的远程登录,使用户直接进入一个

  • 相应的应用进程,访问该信息服务。

  • 例1、telnet bbs.ncic.ac.cn

  • login:bbs

  • 例2、telnet gopher.internic.net

  • login:gopher


Thank you
Thank You!我们来跟踪一篇文章。路径头的初始组成部分(在最后)标记最初的发送者,服务器把名加上去:


ad