当前位置:   article > 正文

计网复习笔记【附思维导图】——【2】应用层_应用层思维导图

应用层思维导图


计网 应用层

  网络应用是计算机存在的理由,应用层是我们最熟悉的领域。
应用层


2.1 应用层协议原理

位置

  • 应用运行在端系统中
  • 能够运行在不同的端系统和通过网络彼此通信的协议

应用层协议含义

  • 定义了运行在不同端系统上的应用程序进程如何相互传递消息
  • 应用层协议定义了
    • 1.交换的消息类型,如请求消息和响应消息
    • 2.各种消息类型的语法,如消息中的各个字段及其详细描述
    • 3.字段的语义,即包含在字段中的信息的含义
    • 4.进程何时、如何发送消息及对消息进行响应的规则

应用层协议类型

  • 公共的协议:RFC文档定义,例如HTTP等
  • 私有的协议:应用开发者定义,如QQ等

网络应用程序架构

1.C/S架构

  • 服务器(Server)
    • 具有固定的、周知的IP地址,并且总是处于打开状态,它服务于来自许多其他称为客户机的主机请求。
    • 常用主机群集创建虚拟服务器对客户机提供服务。
  • 客户机(Client)
    • 不需要一直打开,不需要有固定的地址,主动向服务器发起请求,客户机相互之间不直接通信。
  • C/S应用实例:Web应用程序、FTP、Telnet、电子邮件。
  • C/S特征
    • C/S应用服务通常是基础设施密集的。
    • 要求服务方购买、安装和维护服务器场,需要投入巨额费用。

2.P2P体系结构

  • 对等方(Peer)
    • 不需要一直处于打开状态的服务器,任意主机都是对等方,可直接相互通信。每个节点既可以从其他节点得到服务,也可以向其他节点提供服务。
  • P2P应用实例
    • 适合于大多数流量密集型应用程序:文件分发、文件搜索/共享、因特网电话。
    • 纯P2P结构
  • P2P特征
    • 自扩展性:比如在文件共享应用中,每个对等方都有请求文件产生负载,但每个对等方向其他对等方分发文件为系统增加了服务能力。
    • 成本有效:通常不需要庞大的服务器基础设施和服务器带宽。

3.混合结构(P2P+C/S)

  • 服务器用于追踪用户IP地址,用户之间直接通信。

进程通信

  • Socket接口
    • 进程通过套接字Socket软件接口在网络上发送和接收报文。
    • Socket是同一台主机内应用层与运输层之间的接口。
    • 进程寻址
      • 使用Socket时需要指定接收方的IP地址(标识主机)和目的端口号(标识应用程序)。
      • 格式:<目的IP地址,目的端口号>
    • 也将Socket称为应用程序和网络之间的应用程序编程接口API。
    • 类比:进程(房子)——套接字(门)
    • 应用开发者对于传输层的控制
      • 1.选择传输层协议(TCP/UDP)
      • 2.设定几个传输层参数,如最大缓存、最大报文段长度等
    • 应用层、套接字、运输层结构
  • 应用软件通信:进程通信
    • 相同端系统:进程间通信
    • 不同端系统:计算机网络交换报文实现通信
  • 客户机和服务器进程
    • 客户机进程:发起通信的进程
    • 服务器进程:接受请求的进程
  • P2P进程
    • 一个进程既可以是客户机进程,也可以是服务器进程。

网络应用需要的运输层服务

  • 1.可靠数据传输:无差错
  • 2.吞吐量
    • 带宽敏感
    • 发送进程能够向接收进程交付比特的速率
  • 3.时效性
    • 时延敏感
    • 定时交付
  • 4.安全性:机密性、数据完整性、端点鉴别

Internet提供的运输服务

  • TCP传输控制协议
    • 面向连接(“打电话”)、可靠数据传输(重传,按序交付)、拥塞控制(网络信道繁忙)、流量控制(两端速度不匹配)
    • 安全套接字层SSL:为TCP提供安全性服务
  • UDP用户数据报协议
    • 无连接(“写信”)、不可靠、没有拥塞控制和流量控制
    • 可能丢失、乱序到达
  • Internet不提供吞吐量和时效性保证的服务。

2.2 Web应用和HTTP协议

Web

  • web万维网
    • web将因特网从只是很多数据网之一的地位提升为仅有的一个数据网。
    • Web的应用层协议是超文本传输协议HTTP。
  • web页面
    • web页面由对象object组成
      • 对象就是文件,如HTML文件、JEPG图形文件、Java小程序或视频片段。
    • 多数web页面含有一个基本HTML文件以及几个引用对象
      • 在基本HTML文件中通过对象的URL地址对对象进行引用
      • URL地址:存放对象的服务器主机名和对象的路径名
        • URL 地址格式 <主机>:<端口>/<路径>
        • 采用默认端口(80)时可省略

HTTP协议

  • HTTP工作过程
    • C/S架构
      • 一个客户机程序:Web浏览器实现了HTTP的客户端。
      • 一个服务器程序:Web服务器存储Web对象。
    • 80端口,使用运输层TCP协议
    • HTTP通信过程
      • 1.建立TCP连接
      • 2.web客户机发送HTTP请求报文
      • 3.web浏览器返回HTTP响应报文
      • 4.释放TCP连接
  • HTTP协议特点
    • 无状态协议:服务器不存储任何关于该客户机的状态信息

非持续和持续连接

  • HTTP0.9:非持久连接
    • 每个请求/响应对是经过一个单独的TCP连接发送。
      • 即一个TCP 连接只请求一个Web 页面对象。
    • 非持久HTTP响应时间= 2RTT +文件传输时间。
  • HTTP1.0/1.1:持久连接
    • 所有的请求/响应经相同的TCP连接发送。
      • 即使用一个TCP 连接向服务器请求多个Web 页面对象。
    • HTTP1.1默认持久连接
  • 往返时间RTT
    • 一个小分组从客户机到服务器再回到客户机所花费时间。
    • RTT包含分组传播时延、分组在中间路由器和交换机上的排队时延、分组处理时延。
    • 一个RTT等于TCP三次握手前两个部分耗费的时间。
  • 并行TCP连接
    • 浏览器可以同时打开多个TCP连接并行地请求对象,从而提高效率。
  • 流水线
    • 在单个持久连接中,客户端可以连续发送多个对象请求,而不需要等待上一个对象响应完成。

HTTP报文分类

  • 请求报文
    • 1.请求行
      • <方法字段,URL字段,HTTP协议版本字段>
      • 方法字段:GET、POST、HEAD、PUT、DELETE
    • 2.首部行
  • 响应报文
    • 初始状态行
      • <协议版本,状态码,相应状态信息>
      • 状态码
        • 200 OK:请求成功
        • 301:请求对象被永久转移,重定向
        • 400:客户差错代码
        • 404 NOT Found:被请求文档不在服务器上
        • 505:服务器不支持请求报文使用的HTTP协议版本
    • 6个首部行
    • 实体主体

Cookie

  • HTTP无状态:服务器无法维护用户的状态
  • Cookie作用:网站服务器为用户产生一个唯一的识别码Cookie,利用此识别码,网站就能够跟踪该用户在该网站的活动
  • Cookie组成部分
    • 1.在 HTTP 响应消息中有一个 set-cookie 首部行(首次访问产生)
      • set-cookie首部行含有标识码
        • 如:set-cookie :1567
      • 服务器在后端数据库中增加该条记录。
    • 2.在 HTTP 请求消息中有一个 cookie 首部行
      • web浏览器在自己的Cookie文件中添加一行,包含服务器主机名和set-cookie:首部行含有标识码。
      • 此后用户浏览网站时,web浏览器查本地Cookie表,将对应网站的识别码放到HTTP请求报文中。
    • 3.在用户端系统中保留有一个 cookie 文件,由用户的浏览器管理
    • 4.在 Web 站点有一个后端数据库

Web缓存

  • 概念
    • Web缓存也叫代理服务器(proxy server),可以配置用户的浏览器,使得用户的所有HTTP 请求首先指向Web 缓存。
    • Web缓存器有自己的磁盘存储空间,并在该存储空间中保存最近请求过的对象的拷贝。
    • Web缓存器既是服务器又是客户机。
  • 优点
    • 可以加快对客户机请求的响应时间;
    • 可以大大减少一个单位内部网与因特网接入链路(瓶颈链路)上的通信量。

条件Get

  • 作用:保证缓存器的对象是最新的
  • 缓存的对象很可能已过期(目标网页修改)
  • 条件Get请求报文
    • 1.请求报文使用GET方法
    • 2.请求报文中包含一个If-modified-since:首部行
  • 利用Get请求中If-modified-since字段:告诉服务器,如果当自指定日期之后修改过该对象那么重新发送该对象,反之不需要发送。

2.3 文件传输协议FTP

  FTP使用两个并行的TCP连接来传输文件。
  1.控制连接:FTP控制信息是带外传送的;HTTP是带内发送控制信息的。
  2.数据连接:控制连接贯穿了整个用户会话,但是每一次文件传输都需要建立一个新的数据连接。

FTP工作流程

主动模式(默认)
1.服务器主动发起对客户端的数据连接;
2.客户端使用端口N连接FTP服务器的命令端口21,建立控制连接并告诉服务器我这边开启了数据端口N+1;
3.在控制连接建立成功后,服务器会使用数据端口20,主动连接客户端的N+1端口以建立数据连接。

被动模式
1.客户端发起对服务器的数据连接;
2.客户端使用端口N主动连接服务器命令端口21,并发送PASV命令(采用被动模式),控制连接建立成功后,服务器开启一个数据端口P,通过PORT命令将P端口告诉客户端;
3.客户端使用端口N+1去连接服务器的数据端口P,建立数据连接。


2.4 因特网中的电子邮件

电子邮件系统组成

  • 1.用户代理:允许用户阅读、回复、转发、保存和撰写报文。
  • 2.邮件服务器:用户在用户代理完成邮件撰写后,将邮件发送到邮件服务器。
    • 邮箱:邮件服务器是电子邮件体系结构的核心,每个接收方在其中的某个服务器上有一个邮箱。
    • 报文队列:用于保存未成功发送报文并尝试再次发送。
  • 3.邮件发送和读取协议:SMTP,POP3/IMAP

简单邮件传输协议SMTP

  • 端口号25,TCP持久连接
  • SMTP两个部分
    • 1.运行在发送方邮件服务器的客户机端
    • 2.运行在接收方邮件服务器的服务器端
  • 邮件报文格式
    • SMTP限制所有邮件消息的主体部分(不仅是其首部)只能采用简单的7位ASCll 码表示(扩展:MIME)。
  • SMTP作用
    • 1.将邮件从发送方的用户代理传送到发送方的邮件服务器。
    • 2.将邮件从发送方的邮件服务器传输到接收方的邮件服务器。
  • HTTP与SMTP
    • 相同点:都用于从一台主机向另一台主机传送文件
    • HTTP是拉协议:在方便的时候装载web服务器信息。
    • SMTP是推协议:发送邮件服务器把文件推向接收邮件服务器。

从邮件服务器获取报文的三种方式

第三版的邮局协议POP3

  • 端口号110,使用运输层的TCP协议
  • 作用:将邮件从接收方的邮件服务器传送到接收方的用户代理。
  • 工作过程
    • 1.特许:用户代理以明文发送用户名和口令来鉴别用户。
    • 2.事务处理
      • 用户代理取回报文
      • 用户可以对报文做出删除标记,取消报文删除标记,获取邮件的统计信息
      • 两种方式:下载并删除;下载并保留。
    • 3.更新:在客户机发出quit命令之后,结束该POP3通话;邮件服务器删除那些被标记为删除的报文。

因特网邮件访问协议IMAP

  • 端口号143,TCP连接
  • 连接后只下载邮件首部(部分下载)
  • 用户直接在IMAP服务器上创建和管理文件夹
  • 用户可以搜索邮件内容
  • 用户可以在不同的地方使用不同的计算机随时上网阅读和处理自己的邮件,并且允许收信人只读取邮件中的某一个部分。

基于web的电子邮件:HTTP

  • 浏览器取代了用户代理
  • 浏览器和发送方邮件服务器之间:HTTP协议
  • 发送方邮件服务器和接收方邮件服务器:SMTP协议
  • 浏览器和接收方邮件服务器:HTTP协议
  • 采用telnet远程登录邮件服务器时,使用的是telnet协议。

2.5 域名系统DNS

DNS概述

  • 端口号53,使用运输层的UDP协议
  • 一个由分层的DNS 服务器实现的分布式数据库
  • 一个允许主机查询分布式数据库的应用层协议
  • 应用层协议:C/S模式,采用UDP,使用53号端口

DNS报文

  • DNS只有查询和回答报文,并具有相同的格式
  • 首部12字节

DNS服务

  • 1.主机名与IP地址的转换。
  • 2.主机别名:规范主机名的主机别名。
  • 3.邮件服务器别名。
  • 4.负载均衡:用于在冗余的服务器之间进行负载分配。

DNS工作过程

  • ① 用户运行某些应用程序,例如在浏览器中输入主机名www.seu.edu.cn;
  • ② 浏览器调用gethostbyname( )函数,触发存根解析器(也叫做DNS Client)进行解析;
  • ③ 存根解析器向网络中发送一个DNS 查询消息,接收返回的DNS回答消息,并将查询结果传递给浏览器。

DNS架构

集中式DNS

  • 在因特网中只使用一个DNS服务器,该服务器包含所有的映射
  • 存在问题
    • 1.单点故障
    • 2.通信容量:单个DNS服务器不得不处理所有的DNS查询。
    • 3.时延:远距离的集中式数据库。
    • 4.维护

分布式DNS

  • 4种DNS域名服务器
    • 1.根DNS服务器:因特网有13个根DNS服务器
    • 2.顶级域DNS服务器(TLD):负责顶级域名(如com、org、net、edu和gov)和所有国家的顶级域名。
    • 3.权威DNS服务器
    • 4.本地DNS服务器
      • 不属于DNS层次结构
      • 靠近主机
      • 当主机发出DNS 请求时,该请求被发往本地DNS 服务器,它起着代理的作用,将请求转发到DNS 服务器层次结构中。

实例场景:客户机查询主机名为www.amazon.com的IP地址
1.客户机与根服务器之一联系,获取顶级域名com的TLD服务器的IP地址;
2.客户机与顶级域名服务器之一联系,为amazon.com返回权威服务器的IP地址;
3.客户机联系权威服务器,返回主机名www.amazon.com的IP地址。

DNS两种查询

  • 1.DNS迭代查询
  • 2.DNS递归查询
  • 查询模式
    • 从请求主机到本地DNS服务器的查询是递归的
    • 其余的查询是迭代的

DNS缓存

  • 改善时延性能并减少在因特网上传输的DNS 消息数量

DNS记录和报文

  • 资源记录RR
    • 实现DNS 分布式数据库的所有DNS 服务器共同存储着资源记录(Resource Record,RR)
    • RR的格式:四元组(Name,Value,Type,TTL)
    • RR 提供了主机名到IP 地址的映射
    • RR通常以文本的形式保存在DNS 服务器的配置文件中
    • 每个DNS 回答消息包含了一条或多条资源记录

2.6 P2P文件分发

BitTorrent协议:C/S+P2P的混合结构

  • 概念
    • 一种用于文件分发的P2P 协议。
    • 洪流(torrent):参与某特定文件分发的所有peer节点的集合。
    • 文件被分割为一个个大小为256Kb的块(chunk) ;网络中的peer节点以文件块为单位进行数据的发送和接收。
    • 追踪器(tracker):每个洪流中用于节点追踪的服务器。

工作过程
1.当Alice开始加入一个torrent时,它没有文件块,随着时间的推移,它将累积越来越多的文件块。
2.Alice向追踪器进行注册,追踪器随机发送一些peer节点(邻居)的IP地址。
3.Alice持有这些peer节点的列表,试着与该列表上的多个peer节点创建并行的TCP连接(成功地创建TCP连接的peer节点为“邻近对等方”,会随时间而改变)。
4.任意时刻,一个torrent内不同的peer节点拥有不同的文件块,Alice周期性地(TCP连接)询问每个邻近对等方所具有的块列表。
5.Alice将对它当前还没有的块发出请求(TCP连接)。

  • Alice的文件块请求顺序:最稀罕优先的策略
    • 根据Alice没有的块从邻居中确定最稀罕的块(邻居中拷贝数量最少的那些块),并优先请求那些最稀罕的块。按照此方式,最稀罕的块更迅速地重新分发,其目标(大致)是均衡每个块在torrent中的拷贝数量。
  • Alice响应哪些请求:对换算法
    • 当前能够以最高的速率供给Alice数据的邻居具 有较高的优先权。Alice对于她的每个邻居都持续地测量连接的速率,确定以最高速率流入的4 个邻居。然后将数据块发给这4 个邻居。每过10秒,重新计算速率并可能修改这4 个peer节点。更重要的是,每过30秒,会随机地选择一个另外的邻居并向它发送块。
    • 消除免费搭车问题
      • Alice为了能在一段较长时间内以较快的速率从Bob下载比特,就必须同时以一种较快的速率向Bob上载比特。

P2P资源搜索

  • 1.集中式索引
  • 2.查询洪范
  • 3.DHTs
    • Chord协议,利用哈希把资源名K及其存放的结点IP地址N分别映射为资源名标识符KID和结点标识符NID(相同范围内),并构建DHT环。
    • 每个资源由DHT环上与其标识符值最接近的下一个结点提供服务。
    • 加速查找:为了加速查找,在DHT环上可以增加一些指针表。

2.7 视频流和内容分发网络

视频流

  • 以恒定速率显示的图像序列
  • 需要进行压缩(编码):空间和时间
    • 时间冗余压缩:仅发送与第i帧的差异
    • 空间冗余压缩: 仅发送两个值:颜色值(紫色)和重复值的数量(N),而不是发送N个相同颜色的值(全紫色)
    • CBR:固定码率编码
    • VBR:可变码率编码
  • DASH标准:基于HTTP的动态自适应流
    • 服务器端:将视频文件分成多个块,以不同的速率编码;包含manifest索引文件和媒体分片文件。
    • 客户端:首先请求服务器下载解析manifest文件,获取码率等信息,然后根据实际带宽情况去请求某种码率的媒体分片文件以实现自适应切换。

内容分发网络CDN

  在多个地理位置分散的节点中存储多个视频副本:使用户就近获取所需内容,降低网络拥塞,提高访问响应速度。


【思维导图】

0 概览

2-0

1 应用层协议原理

2-1

2 Web应用和HTTP协议

2-2

3 文件传输协议FTP

2-3

4 因特网中的电子邮件

2-4

5 域名系统DNS

2-5

6 P2P文件分发

2-6

7 视频流和内容分发网络

2-7



参考资料

《计算机网络自顶向下方法》(第4版)James F.Kurose,Keith W.Ross

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/145420
推荐阅读
相关标签
  

闽ICP备14008679号