计算机网络——应用层

目录

  • 一、应用层协议原理
    • 1、应用程序体系结构
    • 2、进程通信
    • 3、运输层服务
    • 4、因特网提供的运输服务
  • 二、WEB和HTTP
    • 1、Http概况
    • 2、非持续连接和持续连接
    • 3、Http报文格式
    • 4、Cookie
    • 5、web缓存(内容分发网络)
    • 6、条件GET方法
  • 三、因特网中的电子邮件
    • 1、SMTP
        • 使用SMTP发送邮件
    • 2、SMTP和HTTP对比
    • 3、邮件报文格式
    • 4、邮件访问协议
        • ①POP3
        • ②IMAP
        • ③基于web的电子邮件(HTTP)
  • 四、DNS:因特网的目录服务
    • 1、DNS提供的服务
    • 2、DNS工作机理
        • (1)DNS设计
        • (2)DNS缓存
    • 3、DNS记录和报文
        • ①DNS报文
  • 五、P2P文件分发
    • 1、分发速度(扩展性)
    • 2、BitTorrent
  • 六、视频流和内容分发网
    • 1、HTTP流和DASH
    • 2、内容分发网(Content Distribution Network,CDN)
        • (1)CDN操作
        • (2)集群选择策略

参考资料:
计算机网络自顶向下方法

一、应用层协议原理

1、应用程序体系结构

  • 客户-服务器体系结构
  • P2P体系结构
    P2P体系结构特点:
    1、对数据中心的专用服务器有最小的依赖。2、具有自扩展性,例如在文件共享应用中,每个对等方都由于请求文件产生工作量,但它们向其他对等方分发文件也为系统增加服务能力。

2、进程通信

  • 套接字:进程通过套接字的软件接口向网络发送报文和接受报文
  • 进程寻址:一台主机向另一台主机的某个进程发信息要知道主机的:1、地址(IP) 2、目的主机中指定接收进程的标识符(端口号port)

3、运输层服务

套接字是应用程序进程和运输层之间的接口,那么运输层协议的服务包括:

  • 可靠的数据传输:确保发送的数据完全正确的被接受
  • 吞吐量:可以用吞吐量就是发送进程能够向接收进程发送比特的速率。运输层协议可以保证吞吐量。
  • 定时
  • 安全性:加密

4、因特网提供的运输服务

  • TCP

    • 面向连接的服务:可以在两个进程之间建立一个TCP连接(全双工)
    • 可靠的数据传输服务
    • 拥塞控制机制:当发送方和接收方网络阻塞时,TCP会抑制发送进程,为网络带来整体好处
    • TCP和UDP都没有安全机制,可以在TCP协议之前添加一个SSL安全套接字层,通过SSL进行加密,之后通过TCP进行传输,接收方通过TCP套接字接收后,再通过SSL套接字进行解密。
  • UDP

    • 不可靠的数据传输:不保证报文到达,并且可能是乱序到达的。
    • UDP是无连接的,两进程通信前不握手
    • UDP不包括拥塞控制机制所以可以以任何速率向网络层注入数据
    • 因特网电话通常愿意将应用运行在UDP上以避免TCP的拥塞控制机制和分组开销,但因为许多防火墙被配置成阻挡大多数UDP流量,所以因特网电话设计成若UDP通信失败则使用TCP作为备份。

二、WEB和HTTP

1、Http概况

Web的应用层协议是超文本传输协议Http,HTTP定义了客户端和服务器进行报文交换的方式。

  • Http协议使用TCP作为支撑运输协议,不用担心数据丢失,因为TCP可以确保可靠的数据传输服务
  • HTTP不保存用户的任何信息,所以称为无状态协议

2、非持续连接和持续连接

  • 非持续连接:每个请求响应对是经一个单独的TCP连接发送

    • 每个TCP连接只传输一个请求报文和一个响应报文
    • 往返时间RTT:一个短分组从客户到服务器再返回客户的时间,包括:分组传播时延、分组在中间路由器和交换机上的排队时延、分组处理时延
    • 三次握手:当用户点击超链接,客户端向服务器发送一个小的TCP报文段,服务器用小的报文段进行响应,最后客户向服务器返回确认。其中前两次握手为一个RTT。客户结合第三次握手(确认)向服务器发送请求报文,一旦服务器接收到,便返回HTML文件,这一部分又用去了一个RTT。总的时间为:两次RTT+HTML文件的传输时间
      计算机网络——应用层_第1张图片
  • 持续连接:所有的请求响应经同一个TCP连接发送(HTTP默认持续联系,但也可以使用非持续联系)

    • 非持续连接的缺点:1、必须为每个请求的对象建立和维护一个全新的连接,对每个这样的连接,客户和服务器都要分配TCP的缓冲区和保持TCP变量,这给web服务器带来了严重的负担。 2、每个对象要经过两个RTT。
    • 一条连接经过一定时间未使用,HTTP服务就会关闭该连接。

3、Http报文格式

  • HTTP请求报文:
    计算机网络——应用层_第2张图片
  • HTTP响应报文:
    计算机网络——应用层_第3张图片

4、Cookie

cookie技术四个组件:

  • 在HTTP响应报文中的一个cookie首部行
  • 在HTTP请求报文中的一个cookie首部行
  • 在用户的端系统保留一个cookie文件,并由用户的浏览器进行管理
  • 位于web站点的一个后端数据库
    计算机网络——应用层_第4张图片

5、web缓存(内容分发网络)

web缓存也叫做代理服务器,有自己的磁盘存储空间,保存最近请求过的对象的副本。(命中率在0.2-0.7)

例如:当请求一个目标网站,首先客户端会和缓存服务器建立连接,并向其发送HTTP请求。web缓存进行检查看本地是否包含该对象的副本,如果有则直接返回该对象。如果没有,则向目标服务器建立一个TCP连接,并发送HTTP请求,服务器向代理服务器发送具有目标对象的HTTP响应。web缓存保留该对象的副本,并向客户浏览器用HTTP响应报文发送该副本。

6、条件GET方法

  • 问题:对于web缓存,可能存在缓存里的内容是旧的,在网站存里面之后就被修改了。
  • 解决方案:HTTP协议中的条件GET机制
  • 条件GET请求报文:①请求报文使用GET方法,并且②请求报文中包含一个“If-Modified-Since”首部行
  • 在缓存器将对象转发给客户端时,不仅在本地保存了对象,而且存储了最后的修改日期。假如一个星期后,用户通过缓存器请求同一个对象
#请求报文示例
GET /fruit/kiwi.gif HTTP/1.1
Host: www.exotiquecuisine.com
  • 服务器返回响应报文:
HTTP/1.1 200 OK
Date: Sat, 8 Oct 2011 15:39:29
Server: Apache/1.3.0 (Unix)
Last-Modified: Wed, 7 Sep 2011 09:23:24
Content-Type: image/gif

(data data data ...)
  • 由于该对象可能已经被修改了,该缓存器发送一个条件GET执行最新检查。 该报文告诉浏览器,仅当执行日期之后该对象被修改过才发送该对象:
GET /fruit/kiwi.gif HTTP/1.1
Host: www.exotiquecuisine.com
If-modified-since: Wed, 7 Sep 2011 09:23:24
  • 若没有被修改过,则不需要返回对象,如下:
HTTP/1.1 304 Not Modified 
Date: Sat, 15 Oct 2011 15:39:29 
Server: Apache/1.3.0 (Unix)

(empty entity body)

三、因特网中的电子邮件

3个组成部分:用户代理、邮件服务器、简单邮件传输协议(SMTP)

1、SMTP

计算机网络——应用层_第5张图片

  • SMTP不使用中间邮件服务器发送邮件。
  • 若接收方服务器未开机,则报文一直保留在发送端的邮件服务器上并等待进行新的尝试。

使用SMTP发送邮件

计算机网络——应用层_第6张图片
计算机网络——应用层_第7张图片
在这里插入图片描述
之后输入邮箱名在@前面的内容的base64编码,如[email protected]只要前面的2470290795转为base64编码。(转化工具)

回车后输入邮箱授权码的base64编码(邮箱授权码获取步骤)

计算机网络——应用层_第8张图片

登陆成功后就可以发送邮件
计算机网络——应用层_第9张图片
计算机网络——应用层_第10张图片
计算机网络——应用层_第11张图片

2、SMTP和HTTP对比

  • HTTP是拉协议,是由接收方主动连接。而SMTP是推协议,被动接收,(垃圾邮件)
  • SMTP要求每个报文采用7比特ASCII码格式
  • HTTP把每个对象封装到自己的HTTP响应报文中,而SMTP则把所有报文对象放在一个报文中

3、邮件报文格式

上面发的邮件没邮件头,可以在FROM TO之后加上一个Subject:题目

4、邮件访问协议

对于邮件的传输,我们已经知道SMTP是推协议,是由发出端推到接收端的邮件服务器上,而并没到接收端的代理服务器 ,接收方不可以使用SMTP得到报文,因为这是一个拉操作,这就有了邮件访问协议。

①POP3

三个阶段:

  • 特许:用户代理发送用户名和口令以鉴别用户
  • 事务处理阶段:用户代理取回报文,对报文做删除标记及取消,获取邮件统计信息
  • 更新阶段:结束POP3会话,删除被标记删除的报文

②IMAP

  • IMAP服务器把每个报文和一个文件夹相连,
  • 可以允许用户代理只获取报文的某些部分,例如当低带宽连接时,用户可能并不想获取大的文件的所有部分。

③基于web的电子邮件(HTTP)

用浏览器和邮件服务器进行收发邮件,这就要用HTTP协议。这里浏览器就是用户代理。

四、DNS:因特网的目录服务

识别主机的方式:主机名、IP地址

1、DNS提供的服务

DNS:域名系统,提供由主机名到IP地址转换的目录服务。

DNS是:
①一个由分布式DNS服务器实现的分布式数据库
②一个使得主机能够查询分布式数据库的应用层协议。
DNS服务器通常是运行BIND软件的UNIX机器
DNS协议运行在UDP上,使用53号端口。
属于应用层协议

使用DNS的过程:
同一台主机上运行着DNS应用的客户端,浏览器从URL中获取主机名,然后通过DNS客户端,发送到服务器,最后DNS客户端会收到DNS服务器的包含IP的响应,浏览器收到IP后,就会向HTTP服务器发送请求建立连接。

其他服务:

  • 主机别名
  • 邮件服务器别名
  • 负载分配:对于一个繁忙的站点,它可能有多个服务器,因此对应多个IP地址,DNS会返回一个这些地址的集合,,而客户通常是向这些集合中IP地址最靠前的发送请求,所以,DNS将这些IP地址循环分配,(每次一个IP被访问后,就放在集合的后面)。

2、DNS工作机理

(1)DNS设计

① 最简单的DNS设计:只用一个DNS服务器
问题有:

  • 单点故障:一个崩溃,全部完蛋
  • 通信容量:必须处理所有的DNS查询
  • 远距离集中式数据库
  • 维护:困难

② 分布式、层次数据库
DNS服务器三种类型:根DNS服务器、顶级域(TLD Top-Level Domain)DNS服务器、权威DNS服务器

计算机网络——应用层_第12张图片

例如要访问www.amazon.com网站,首先客户和根服务器之一联系,它返回顶级域名com的TLD服务器的IP地址,,客户端和TLD之一联系,将为amazon.com返回权威服务器的IP地址。最后客户和amazon.com权威服务器之一联系,为www.amazon.com返回IP地址。

  • 本地DNS服务器:代理作用,将请求转发到层次DNS服务器中
    计算机网络——应用层_第13张图片

(2)DNS缓存

当某个DNS服务器接收到一个DNS回答,他将会映射缓存在本地存储器中。在一段时间后(一般两天)会丢弃缓存信息。

3、DNS记录和报文

共同实现分布式数据库的所有DNS服务器存储了资源记录(Resource Record,RR),RR提供了主机名到IP地址的映射。资源记录:(Name,Value,Type,TTL)

  • TTL是生存时间,决定资源应当从缓存删除的时间。
  • if Type==A, name=主机名,Value=该主机名对应的IP地址
  • if Type==NS,Name=个域,Value是知道如何获取该域中主机IP地址的权威DNS服务器的主机名
  • if Type==CNAME,Value是别名为name的主机对应的规范主机名
  • if Type==MX,Value是别名为name的邮件服务器的规范主机名

①DNS报文

查询和回答报文,格式相同:

五、P2P文件分发

1、分发速度(扩展性)

  • 传统C/S结构:
  1. 假设文件包含F个比特,服务器向N个对等方发送文件,服务器上载速度为u_s。则分发时间至少为NF/u_s
  2. d_min表示最小下载速度的对等方的下载速率,即d_min={d1,d2,…,dN},最小分发时间至少为F/d_min

综上c/s的最短时间

  • P2P结构:
  1. 服务器至少发送每个比特一次,其他的对等方直接发送,最少F/u
  2. 最低下载速度的对等方时间至少为F/d_min
  3. 系统总上载能力 u_total = u_s+u1+u2+…+uN,文件总大小NF,最小时间:NF/u_total
    综上:计算机网络——应用层_第14张图片

2、BitTorrent

参与一个特定文件分发的所有对等方的集合称为一个洪流,一个洪流的所有对等方彼此下载等长度的块,典型的长度为256kb。当一个对等方首次加入洪流,没有块,随时间流失,它积累更多的块,在它下载块时也上载块。当对等方获得了文件,它可以继续大公无私的上载块,也可以自私离开。同时,任何对等方在任何时候只有块的子集就离开洪流,之后再加入洪流。
每个洪流都有一个追踪器,当一个对等方加入洪流,就会向追踪器注册自己,并周期性通知追踪器仍在该洪流中。
两个问题:1、向邻居请求哪些块? 2、向哪些向她请求块的邻居发送块?

  • 请求哪些块?**最稀缺优先:**针对没有的块,在邻居中副本数量最少的块。(目的:均衡每个块在洪流中的数量)
  • 向谁发送块?当前能够以最高速率向她提供数据的邻居,给出优先权。并且它要确定出最高速率的四个邻居,每十秒,重新计算速率,修改四个对等方的集合。每过30秒,要随机选择另一个邻居向他发送块。

六、视频流和内容分发网

1、HTTP流和DASH

  • HTTP流
    视频存储在HTTP服务器中作为一个普通文件,用户看视频就建立TCP连接,服务器以尽快速度发送数据。客户端将字节收集在客户应用缓存中,一旦超过预定的门限就开始播放。流式视频一接收到视频就开始播放,同时缓存后面的帧。

  • DASH
    HTTP流的缺陷:客户带宽大小不一。改进后:经HTTP的动态适应性流(DASH),每个版本有不同的比特率,对应 不同的质量水平

2、内容分发网(Content Distribution Network,CDN)

视频数据放哪?

  • 1、建立单一的大规模数据中心
    缺点:
    • 若客户远离中心,时延
    • 流行的视频可能沿着相同路径发送多次
  • 2、CDN
    • 两种不同的服务器安置原则:
    • ①深入:通过在编辑全球的接入ISP中部署服务器集群来深入到ISP的接入网中。目标是靠近端用户,减少通过链路和路由器数量,减少延迟。
    • ②邀请做客:在少量关键位置建造大集群邀请ISP做客,通常放在今特网交换点IXP

(1)CDN操作

当用户主机中的浏览器检索一个特定视频时:

  • 确定此时适合用于该用户的CDN服务器集群
  • 将客户的请求重定向到该集群的某台服务器。

(2)集群选择策略

动态的将客户定向到CDN中某个服务器集群或数据中心的机制

你可能感兴趣的:(计算机网络)