本文介绍: SMTP、DNS、P2P应用、CDN视频流服务。以上就是应用层SMTP、DNS、CDN等讲解


前言

SMTP、DNS、P2P应用、CDN视频流服务


一 、电子邮件(Email)

在这里插入图片描述

1.邮件服务

2.SMTP[RFC 2821]

例子
在这里插入图片描述

简单SMTP交互
在这里插入图片描述

总结

  • SMTP使用持久连接
  • SMTP要求报文(首部和主体)为7位ASCII编码
  • SMTP服务器使用CRLF.CRLF决定报文的尾部

HTTP比较:

3.邮件报文格式

报文格式多媒体扩展

在这里插入图片描述

4.邮件访问协议

在这里插入图片描述

POP3协议

在这里插入图片描述

IMAP

二、DNS(域名系统

DNS的必要性

DNS系统需要解决问题

1.DNS的历史

2.DNS总体思路和目标

负载均衡load distribution):DNS也用于在冗余的服务器(如冗余的Web服务器等)之间进行负载分配。繁忙的站点(如cnn. com)被冗余分布在多台服务器上,每台服务器均运行在不同的端系统上,每个都有着不同的P地址。由于这些冗余的Web服务器,一个P地址集合因此与同一个规范主机名相联系。DNS数据库存储着这些IP地址集合。当客户映射到某地址集合的名字发出一个 DNS请求时,该服务器用IP地址的整个集合进行响应,但在每个回答中循环这些地址次序。因为客户通常总是向IP地址排在最前面的服务器发送HTTP请求报文,所以DNS就在所有这些冗余的Web服务器之间循环分配了负载。DNS的循环同样可以用于邮件服务器,因此,多个邮件服务器可以具有相同的别名。一些内容分发

(1)问题1:DNS名字空间

在这里插入图片描述

(2)问题2:解析问题-名字服务器

在这里插入图片描述

TLD服务器

区域名字服务器维护:

DNS记录:
在这里插入图片描述

DNS大致工作过程

在这里插入图片描述

本地名字服务器

名字服务器

当与本地名字服务器不能解析名字时,联系根名字服务器顺着根-TLD一直找到权威名字服务器

在这里插入图片描述

查找权威名字服务器有两种查询方式

递归查询:

  • 顺着根服务器到子服务器找
  • 递归查询:名字解析负担都放在当前联络的名字服务器上
  • 问题:根服务器的负担太重
  • 解决:迭代查询(iteratedqueries)

在这里插入图片描述

迭代查询:

  • 主机cis.poly.edu想知道主机 gaia.cs.umass.edu的IP地址
  • 根(及各级域名)服务器返回的不是查询结果,而是根的下一层名字服务器的地址,然后本地服务器去这个名字服务器找,这个个名字服务器不知道返回一个线索(它的下一层名字服务器的地址),然后本地服务请器再去告知的服务器…
  • 直到找到权威服务器,最后由权威名字服务器给出解析结果
  • 当前联络的服务器给出可以联系的服务器的名字
  • “我不知道这个名字,但可以向这个服务器请求
  • 找到后还会缓存地址,方便一定失效时期内再次访问

在这里插入图片描述

DNS协议、报文
在这里插入图片描述

高性能缓存

(3)问题3:维护问题-新增一个域

  • 在上级域的名字服务器中增加两条记录,指向这个新增的子域的域名和域名服务器的地址
  • 新增子域的名字服务器上运行名字服务器,负责本域的名字解析:名字->IP地址

例子:在com域中建立一个“Network Utopia”

攻击DNS

三、P2P应用

1. 纯P2P架构

例子:

2.文件分发

在这里插入图片描述

C/S模式
在这里插入图片描述

P2P模式
在这里插入图片描述

比较
在这里插入图片描述

P2P文件共享

结构化P2P

P2P:集中式目录
最初的“Napster”设计

在这里插入图片描述

存在的问题:

P2P:完全分布式
Gnutella:协议:

  • 在已有的TCP连接上发送查询报文
  • 对等方转发查询报文以反方向返回查询命中报文
  • 以反方向返回查询命中报文

在这里插入图片描述
在这里插入图片描述

P2P:混合体
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

P2P文件分发:BitTorrent

  • BitTorrent是一种用于文件分发的流行P2P协议
  • 文件被分为一个个块256KB
  • 网络中的这些peers发送接收文件块,相互服务

在这里插入图片描述

BitTorrent:请求,发送文件块

  • 请求块:
    • 在任何给定时间,不同peer节点拥有一个文件块的子集
    • 周期性的,Alice节点向邻居询问他们拥有哪些块的信息
    • 获得四个文件块
    • Alice再向peer节点请求它希望的块,稀缺的块,在这期间,其他peer可以向他请求块(先随机获取四块,是因为如果获取稀缺块,等待时间过长,而且此时获取时还可以向其他peer发送块,再获取稀缺块是因为稀缺块少,防止持有稀缺块的peer下线,获取后,稀缺块又多了peer,能更好的提供服务)
    • 获取其他块
    • 有一个文件全部的peer,他就是种子,啥都没有,就是吸血鬼了。
  • 发送块:一报还一报tit-for-tat
    • Alice向4个peer发送块,这些块以后就会向它自己提供最大带宽的服务
      • 其他peer被Alice阻塞(将不会从Alice处获得服务)
      • 每10秒重新评估一次:前4位
    • 每个30秒:随机选择其他peer节点,向这个节点发送块

在这里插入图片描述

结构化:DHT

在这里插入图片描述
在这里插入图片描述

  • 按照ID号大小围成一圈,当前对等方的IP地址,标识符等信息,其紧挨着后面的一个对等方知道(8知道5)
  • 假设使用该环形覆盖网络,初始对等方(对等方3)生成一个报文,问“谁负责键11?”并绕环顺时针发送该报文。无论何时某对等方接收到该报文,因为它知道其后继和前任的标识符,它能够确定是否由它负责(即最邻近)查询中的键。如果某对等方不负责该键,它只需将该报文发送给它的后继。因此,例如当对等方4接收到询问键11的报文,它确定自己不负责该键(因为其后继更邻近该键),故它只需将该报文传递给对等方5。这个过程直到该报文到达对等方12才终止,对等方12确定自己是最邻近键11的对等方。此时,对等方12能够向查询的对等方即对等方3回送一个报文,指出自己负责键11。
  • 为减少每个对等方必须管理覆盖信息的数量,环形 DHT 提供了一种非常精确有效的解决方案。特别是,每个对等方只需要知道两个对等方,即它的直接后继和直接前任。但该解决方案引入了一个新问题。尽管每个对等方仅知道两个邻居对等方,但为了找到负责的键(在最差的情况下),DHT中的所有N个结点将必须绕环转发该报文;平均发送N/2条报文。
  • 细化方案设置一个捷径的DHT(上图b)
    • 环形覆盖网络为基础,但增加“捷径”,使每个对等方不仅联系它的直接后继和直接前任,而且联系分布在环上的数量相对少的捷径对等方。使用捷径来加速查询报文的路由选择。具体来说,当某对等方接收一条查询一个键的报文时,它向最接近该键的邻居(后继邻居或捷径邻居之一)转发该报文。所以,当对等方4接收到请求键11的报文,它确定(在它的邻居中)对该键最邻近的对等方是它的捷径邻居10,并且直接向对等方10转发该报文。显然,捷径能够大大减少用于处理查询的报文数量。

三、CDN(Content Distribution Network

1.多媒体视频

2.多媒体流化服务

  • DASH: Dynamic,Adaptive Streaming over HTTP
  • 服务器:
  • 客户端:
    • 先获取告示文件
    • 周期性地测量服务器到客户端的带宽
    • 查询告示文件,在一个时刻请求一个块,HTTP头部指定字节范围
  • 智能”客户端:客户端自适应决定
    • 什么时候去请求块(不至于缓存挨饿,或者溢出)
    • 请求什么编码速率的视频块(当带宽够用时,请求高质量的视频块)
    • 哪里去请求块(可以向离自己近的服务器发送URL,或者向高可用带宽的服务器请求)

3.CDN(内容分发网络)

  • 挑战:服务器如何通过网络向上百万用户同时流化视频内容(上百万视频内容)?
  • 选择1:单个的、大的超级服务中心“mega-server
    • 服务器到客户端路径上跳数较多,瓶颈链路的带宽小导致停顿
    • “二八规律”决定了网络同时充斥着同一个视频的多个拷贝,效率低(付费高、带宽浪费、效果差)
    • 单点故障点,性能瓶颈
    • 周边网络的拥塞

评述:相当简单,但是这个方法不可扩展


总结

以上就是应用层SMTP、DNS、CDN等讲解

原文地址:https://blog.csdn.net/weixin_62951900/article/details/134712926

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_21606.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注