[计算机 络]应用层协议,HTTP,SMTP,DNS

应用层

应用层协议原理

络应用程序体系结构

规定如何在各种端系统上组织应用程序,由研发者设计

客户机/服务器

服务器:对外提供服务的一系列硬件和软件

客户机:使用服务器提供的服务

服务器

  • 7*24小时提供服务
  • 永久性访问地址/域名
  • 利用大量服务器实现可扩展性

客户机

  • 与服务器通信,使用服务器提供的服务
  • 间歇性接入 络
  • 可能使用动态IP地址
  • 不会与其他客户机直接通信

  • 优点:高度可伸缩

  • 缺点:难于管理

混合结构

Napster

  • 文件传输使用P2P结构

  • 文件的搜索采用C/S结构——集中式

  • 每个节点向中央服务器登记自己的内容

  • 每个节点向中央服务器提交查询请求,

    查找感兴趣的内容

传输基础设施向进程提供API

  • 传输协议的选择
  • 参数的设置

进程寻址

根据进程识别信息找到对应进程

不同主机上的进程间通信,每个进程必须拥有标识符

  • 使用IP地址寻址主机

  • 使用端口 Port

    为每个主机上需要通信的进程分配一个端口

    HTTP Server:80

    Mail Server:25

  • 进程的标识符

    IP地址+端口 用于唯一标识一个 络上的进程

络应用的需求与传输层服务

要求

  1. 数据丢失(data loss)/可靠(relibility)
  • 某些 络应用能够容忍一定的数据丢失: 络电话

  • 某些 络应用要求100%可靠的数据传输:文件传输,telnet

  1. 时间(timing)/延迟(delay)
  • 有些应用只有在延迟足够低时才“有效”
  • 络电话/ 络游戏
  1. 带宽(bandwidth)
  • 某些应用只有在带宽达到最低要求时才“有效”: 络视频
  • 某些应用能够适应任何带宽——弹性应用:email
  1. 定时(数据传输的时间限制)
  2. 安全性

Web和HTTP

World Wide Web:Tim Berners – Lee

页且 页相互连接

Web Page 包含多个对象(objects)

  • 对象:HTML文件,JPEG图片,视频文件,动态脚本
  • 基本HTML文件:包含对其他对象引用的连接

对象的寻址(addressing)

  • URL(Uniform Resoure Locator):统一资源定位器

  • Scheme://host:port/path

    格式记牢

有状态协议更复杂:

  1. 需维护状态(历史信息)
  2. 如果客户或服务器失效,会产生状态的不一致,解决不一致的代价高

传输层协议

使用TCP传输服务

  • 服务器在80端口等待客户的请求
  • 浏览器发起到服务器的TCP连接(创建套接字Socket)
  • 服务器接受来自浏览器的TCP连接
  • 浏览器(HTTP客户端)与Web服务器(HTTP服务器)交换HTTP消息
  • 关闭TCP连接

HTTP连接

类型
  1. 非持久性连接(Nonpersisitent HTTP)
  • 每个TCP连接最多允许传输一个对象
  • HTTP 1.0版本使用非持久性连接
  1. 持久性连接(Persisitent HTTP)
  • 每个TCP连接允许传输多个对象
  • HTTP 1.1版本默认使用持久性连接
非持久性连接工作过程

非持久性连接问题
非持久性连接的问题 持久性连接 带有流水机制的持久性连接
*每一个对象的传输时延长:*每个对象需要2个RTT 发送响应后,服务器保持TCP连接的打开 HTTP 1.1的默认选项
*服务器负担重:*操作系统需要为每个TCP连接开销资源(overhead) 后续的HTTP消息可以通过这个连接发送 客户端只要遇到一个引用对象就尽快发出请求
理想情况下,收到所有的引用对象只需耗时约1个RTT
浏览器做法 无流水(pipelining)的持久性连接
打开多个并行的TCP连接以获取 页所需对象 客户端只有收到前一个响应后才发送新的请求
每个被引用的对象耗时1个RTT

HTTP消息格式

HTTP中的方法
HTTP/1.0 HTTP/1.1
GET 请求一个对象。实体主体为空。 GET,POST,HEAD
POST 将实体信息交给服务器,用于提交表单 PUT 向服务器URL指定的路径上载实体中的文件。
HEAD 请Server不要将所有请求的对象放入响应消息中 DELETE 删除服务器URL指定的文件。
请求消息(request)

ASCII:人直接可读

要考

  • 200 OK

  • 301 Moved Permanently

  • 400 Bad Request

  • 404 Not Found

  • 505 HTTP Version Not Supported

Cookie技术

HTTP协议无状态

很多应用需要服务器掌握客户端的状态

某些 站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。

Cookie组件
  • HTTP响应消息的cookie头部行
  • HTTP请求消息的cookie头部行
  • 保存在客户端主机的cookie文件,由浏览器管理
  • Web服务器的后台数据库
Cookie原理

优缺点
  1. 减少客户机请求的响应时间:

文件传输过程

  1. 建立TCP连接:用户提供远程主机的主机名或者IP地址。在FTP客户机进程与FTP服务器进程之间建立。

  2. 身份认证:输入用户名和口令。向FTP服务器传送。

  3. 服务器验证成功:进行文件传送(双向)

    将本地文件系统中的文件传送到远程文件系统(上传)

    或从远程文件系统中得到文件(下载)

控制连接与数据连接

控制连接

作用:用于在两主机间传输控制信息。如用户名、口令;上载或下载文件命令等。

控制连接由客户先发起,建立后一直保持:

  1. FTP会话开始前,FTP的客户机与服务器在21 端口上建立。

  2. FTP的客户机通过该连接发送用户名和口令,或改变远程目录命令、上载或下载文件命令。

用户代理(user agent)

邮件阅读器。允许用户阅读、回复、发送、保存和撰写 文。

  • 发邮件:邮件代理向其邮件服务器发送邮件,并存放在发送队列中。
  • 收邮件:邮件代理从其邮件服务器的邮箱中获取该 文。

邮件服务器(mail server)

邮箱:发送给用户的 文。

文队列:用户要发出的邮件 文。

邮件发送主要过程:

  1. 邮件保存到发送方输出 文队列

  2. 通过SMTP协议转发到接收方邮件服务器,保存到相应邮箱中

    若投递失败仍保存,以后每30分钟发送一次,若几天后仍未成功,将该 文删除,并通知发送方。

    用户访问自己邮箱时,邮件服务器对其身份进行验证(用户名和口令)

SMTP

简单邮件传送协议

从发送方的邮件服务器向接收方的邮件服务器发送邮件。

每个邮件服务器上都有SMTP的客户机端和服务器端。

应用层协议。

使用TCP可靠数据传输服务。
包括两部分:

客户机端:在发送方邮件服务器上运行;

服务器端:在接收方邮件服务器上运行。

SMTP

SMTP过程

MIME

多用途因特 邮件扩展

用于非ASCII数据传输

STMP:

  1. 传送7位的ASCII码文件
  2. 不能直接传送可执行文件或其他的二进制对象

MIME:

  1. 定义了传送非ASCII文件(如声音,图片)的编码规则,将非ASCII文件作为附件发送。
  2. 将非ASCII数据编码后传输,接收方再解码还原
    附加MIME邮件首部
    说明采用何种编码

MIME是SMTP的一个扩展,不能替代SMTP

MIME首部

Content-Transfer-Encoding:告诉接收用户代理,该 文主体采用了ASCII码及相应编码类型,并以此还原成非ASCII码。

常用编码:

  • base64编码:将二进制文件转换为ASCII码格式。
  • 可打印内容转换编码:将一个8位ASCII 文转换为7位ASCII码格式。

Content-Type:告诉接收用户代理 文类型及应采取的动作。

如jpeg:要对jpeg文件解压缩。

POP3

第三版邮局协议

简单,功能有限

读取邮件过程:

  • 建立TCP连接:服务器通过110端口侦听TCP请求,与客户机建立TCP连接。

  • 开始POP3会话读取邮件,分为3个步骤。

    *特许阶段:*用户代理发送用户名和口令获得下载邮件的特许。(身份认证)

    *事务处理阶段:*用户代理取回 文,可对邮件进行某些操作。

    ? 如:下载并保留,下载并删除等。

    更新阶段:邮件服务器删除带有删除标记的 文,结束POP会话。

IMAP

因特 邮件访问协议

功能强

  • 在用户机上运行IMAP客户程序,并与邮件服务器上的IMAP服务器程序建立TCP连接。

  • 用户在自己的PC机上就可以操作邮件服务器的邮箱,就如同本地操纵一样,是一个联机协议

    如:建立文件夹,查询,移动邮件等。

  • 未发出删除命令前,一直保存在邮件服务器。

  • 实现复杂

基于Web的电子邮件

用户使用浏览器收发电子邮件。

1995年12月Hotmail 引入该技术。

  • 用户代理是普通的浏览器,用户和其远程邮箱之间的通信通过HTTP进行:

    发件人使用HTTP 将电子邮件 文从其浏览器发送到其邮件服务器上。

    收件人使用HTTP从其邮箱中取一个 文到浏览器。

  • 邮件服务之间发送和接收邮件时,使用SMTP

  • 用户可以再远程服务器上以层次目录方式组织 文。

DNS

域名系统(Domain Name System):进程主机名到IP地址的转换。

DNS

  • 一个分层的DNS服务器实现的分布式数据库
  • 允许主机查询分布式数据库的应用层协议
  • 采用C/S方式

名词

DNS服务器 是运行BIND软件的UNIX机器
DNS协议 运行在UDP之上,使用53 端口
DNS 直接由其他的应用层协议 (包括HTTP、SMTP 和FTP)使用,以将用户提供的主机名解析为IP地址。
用户只是间接使用

标识主机方式

标识主机的两种方式:

文在 络中传输,使用IP地址。

主机名 IP地址
不定长的字母和数字组成。 4个字节组成,有严格的层次结构
便于记忆。路由器处理困难。 路由器容易处理。

域名解析过程

  1. 用户主机上运行DNS客户机端。

  2. 浏览器从URL中解析出主机地址,传给DNS客户机端

  3. DNS客户机向DNS服务器发送一个包含主机名的请求

  4. DNS客户机收到含有对应主机名的IP地址的回答 文

  5. 浏览器向该IP地址指定的HTTP服务器发起一个TCP连接。

    1234称为域名解析

增加一定时延

DNS服务

  1. 主机名到IP地址的转换

  2. 主机别名和规范名的转换:通过DNS可以得到主机别名对应的规范主机名和IP地址

    规范名:主机真正的名字。如host1.njust.edu.cn
    别名:主机上运行的某种应用服务。如 www.njust.edu.cn 表示Web服务器

  3. 同一台主机可运行多个应用,多个别名与一台主机联系。如 ftp.njust.edu.cn 表示FTP服务器

  4. 邮件服务器别名和规范名转换

  5. 负载均衡:Web服务器

DNS查询方式

迭代查询

被查询服务器返回域名解析服务器的名字,逐个查找。

请求主机向本地DNS服务器发送请求,向连接的DNS服务器查找所需要的IP地址,没有则返回本地域名服务器,再向其他DNS服务器发出请求

P2P应用

位于 络边缘的PC机(对等方peer)互相之间可以直接获取对象

P2P文件分发

从单个源向大量对等方分发文件

C/S与P2P对比

Client-Server P2P文件分发
服务器向每个对等方发送该文件的副本,负担重。 每个对等方都能够重新分发其所有文件的任何部分,协助服务器分发。
当一个对等方收到文件数据时,用其上载能力重新将数据分发给其他对等方。下载同时上载

BT协议

BitTorrent协议

Torrent:洪流。参与一个特定文件分发的所有对等方的集合。

  • 一个洪流中,对等方彼此下载等长度的文件块。
  • 一个对等方最初加入到洪流时,没有文件块,之后累积越来越多。
  • 下载文件块同时,也为其他Torrent上载文件块。
  • 对等方可以在获得整个文件后离开,也可以留下,继续提供上载。
  • 对等方可以任何时候加入到洪流或离开。

tracker追踪器

跟踪洪流中的对等方

  1. 每个洪流有一个追踪器
  2. 一个对等方加入洪流时,在追踪器中注册,并周期性地通知洪流,其仍在洪流中。
交换原理
  • 一个新对等方加入洪流时,追踪器从中随机选择一些对等方,并发送含有IP地址的对等方列表给新加入的对等方。

  • 新对等方依次与列表中的对等方建立TCP连接,连接成功即获取相关文件块;

  • 可以从多个对等方获取文件的各个块;

  • 下载完成后,组装还原为一个完整的文件。

P2P文件共享

对等方之间共享文件

每个参与的对等方既是内容的消费者也是内容的发布者(下载同时也向其他用户上载)

集中式目录(索引)

源于Napster公司(第一家世界范围内从事MP3对等应用程序)设计。

目录服务器(大型服务器或服务器场):提供目录服务。

收集可共享的对象,建立集中式的动态数据库(对象名称到IP地址的映射)。

属于客户机/服务器与P2P的混合结构

工作
  • 通知:对等方启动时,将其IP地址及可共享内容通知目录服务器。
  • 查询内容:用户查询需要共享的对象,获得列表。
    如 Alice 查询某首歌。
  • 获取内容:来自Bob。
  • 更新:当对等方获得新对象或删除对象时,通知目录服务器更新。

实现

对等方先形成一个抽象的逻辑 络(覆盖 络)

通过洪泛查询,找到所需对象:
如,某个对等方Alice想得到一个对象。

特点
  • 设计简单。
  • 扩展性差。
  • “查询 文”在 络中产生很大的流量。

限范围的洪泛查询:

  • 在“查询 文”中设置一个对等方计数字段,并给定一个特定值。

  • 可能减少对等方数量。

层次覆盖

与Gnutella类似,*无专用服务器,但对等方地位不平等。*如KaZaA。

实现
  • 对等方先形成一个层次的覆盖 络
  • 通过查询,找到所需对象。

对等方根据通信关系划分若干组,组成层次结构。

文章知识点与官方知识档案匹配,可进一步学习相关知识 络技能树支撑应用程序的协议DNS协议22516 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月4日
下一篇 2021年1月4日

相关推荐