2.1.应用层

应用层

一、应用层协议原理
  • 网络应用程序体系结构

    • 客户-服务器(CS)体系结构
    • 对等(P2P)体系结构
  • 进程通信

    了解运行在多个端系统上的程序是如何互相通信的——不同端系统上的进程,通过跨越计算机网络交换报文而相互通信

    1. 客户和服务器进程

    2. 进程与计算机网络之间的接口

      进程通过称为套接字(socket)的软件接口向网络发送报文和从网络接收报文;

      应用程序开发者可以控制套接字在应用层端的一切,但是对套接字的运输层端几乎没有控制权,仅限于选择运输层协议、设置某些运输层参数等。

    3. 进程寻址

      • IP地址唯一地标识主机
      • 端口号指定接收主机上的接收进程
  • 可供应用程序使用的运输服务

    1. 可靠数据传输
    2. 吞吐量
    3. 定时
    4. 安全性

    选择一个最能为你的应用需求提供恰当服务的运输层协议

  • 因特网提供的运输服务

    1. TCP服务

      • 面向连接的服务

        握手过程——提示客户和服务器,使它们为大量分组的到来做好准备。握手阶段后,一个TCP连接(TCP connection)就在两个进程的套接字之间建立了。

      • 可靠的数据传送服务:无差错、按序交付

      还具有拥塞控制机制

      安全套接字层(SSL)—— TCP的加强版本

    2. UDP服务

      一种不提供不必要服务的轻量级运输协议,它仅提供最小服务。UDP是无连接的,因此在两个进程通信前没有握手过程。

      不可靠数据传送服务、数据可能乱序到达、不包含拥塞控制机制

    3. 因特网运输协议所不提供的服务

      ​ 对吞吐量或定时保证的讨论,目前的因特网运输协议并没有提供。

      ​ 但能够通过设计来为时间敏感应用提供满意的服务,只是不能提供任何定时或带宽保证。

  • 应用层协议

    定义了:

    • 交换的报文类型
    • 各种报文类型的语法
    • 字段的语义,即这些字段中包含的信息的含义
    • 一个进程何时以及如何发送报文,对报文进行相应的规则
二、Web和HTTP
  • HTTP概况

    Web的应用层协议是超文本传输协议(HTTP)

    Web页面(Web page)是由对象组成的,一个对象表示一个文件,如HTML文件,JPEG图形等等。

    多数Web页面含有一个HTML基本文件以及几个引用对象,HTML基本文件通过对象的URL地址引用页面中的其他对象。

    • Web浏览器——实现HTTP的客户端
    • Web服务器——实现HTTP的服务器端

    HTTP基于TCP,是一个无状态协议(HTTP服务器并不保存关于客户的任何信息)

  • 非持续连接和持续连接

    1. 采用非持续连接的HTTP

      每个TCP连接在服务器发送一个对象后关闭,即该连接并不为其他的对象而持续下来。

      往返时间(RTT):一个短分组从客户到服务器然后再返回客户所花费的时间。

      image-20220611210710633

      用户点击超链接的总响应时间是两个RTT加上服务器传输HTML文件的时间。

    2. 采用持续连接的HTTP

      服务器在发送响应后保持该TCP连接打开,HTTP的默认模式是使用带流水线的持续连接。

  • HTTP报文格式

    1. HTTP请求报文

      例:

      GET /somedir/page.html HTTP/1.1
      # 请求行是第一行,有3个字段:方法字段、URL字段和HTTP版本字段 后面的四行是首部行
      Host: www.someschool.edu  
      # 指明了对象所在的主机,该信息是Web代理高速缓存所要求的
      Connection: close
      # 告诉服务器使用非持续连接
      Use-agent: Mozilla/5.0
      # 指明用户代理,这里的浏览器类型是火狐浏览器
      Accept-language: fr  # 语言是法语
      
    2. HTTP响应报文

      HTTP/1.1 200 OK
      # 初始状态行,有3个字段:协议版本字段、状态码和相关状态信息
      Connection: close
      Date: True, 09 Aug 2011 15:44:04 GMT
      Server: Apache/2.2.3 (CentOS)
      Last-Modified: True, 09 Aug 2011 15:11:03 GMT
      Content-Length: 6821
      Content-Type: text/html
      
      (data data data...)
       实体(entity body)
      

      常见的状态码和相关短语:

      • 200 OK:请求成功
      • 301 Moved Permanently:请求的对象已经被永久转移了,新的URL定义在响应报文的Location:首部行中。客户软件将自动获取新的URL。
      • 400 Bad Request:一个通用差错代码,指示该请求不能被服务器理解。
      • 404 Not Found
      • 505 HTTP Version Not Supported
  • 用户与服务器的交互:cookie

    ​ cookie技术的四个组件:

    • 在HTTP响应报文中的一个cookie首部行

    • 在HTTP请求报文中的一个cookie首部行

  • 在用户端系统中保留有个cookie文件,并由用户的浏览器进行管理

    • 位于Web站点的一个后端数据库:保存为用户创建的ID

      cookie的作用:

      使用cookie可以在无状态的HTTP之上建立一个用户会话层。

  • Web缓存

    ​ Web缓存器通常由ISP安装,又称代理服务器,是能够代表初始Web服务器来满足HTTP请求的网络实体。它有自己的磁盘存储空间,并在存储空间中保存最近请求过的对象的副本

    ​ 简单来说,就是ISP为机构提供了Web代理服务器,浏览器请求某个对象时,首先与代理服务器建立TCP连接,并向其发送HTTP请求,如果代理服务器保存了请求的对象则直接返回给浏览器,否则再替我们去向初始服务器发起请求,访问到的对象自己保存一份。

    为什么需要Web缓存器:

    ​ 1、大大减少对客户请求的响应时间,特别是客户与初始Web服务器之间的瓶颈带宽远低于客户与Web缓存器之间的瓶颈带宽时;

    ​ 2、大大减少一个机构的接入链路到因特网的通信量。

三、文件传输协议:FTP

FTP和HTTP都运行在TCP上,但有一些重要的区别:FTP使用了两个并行的TCP连接来传输文件,一个是控制连接,一个是数据连接

  • 控制连接用于两主机之间传输控制信息,如用户标识、口令、改变远程目录的命令以及“存放”和“获取”文件的命令。

  • 数据连接用于实际发送一个文件。

四、因特网中的电子邮件

3个主要组成部分:

  • 用户代理

    ​ 例:微软的Outlook和Apple Mail

  • 邮件服务器

  • 简单邮件传输协议(SMTP)——”推协议“

    ​ 基于TCP,从发送方的邮件服务器向接收方的邮件服务器发送邮件;

    ​ 实例应用:基于telnet与SMTP服务器进行一次直接对话(QQ邮箱)

    ​ 与HTTP的对比:

    • HTTP——pull protocol;SMTP——push protocol
    • HTTP:每个对象被封装到它自己的响应报文中;SMTP:把所有报文对象放在一个报文中。

    邮件报文格式

    ​ RFC822:文本报文格式的标准

    • 首部行

      • To:
      • From:
      • Subject:

      不同于上面实例中使用的一些SMTP握手协议中的命令,这里的from和to是邮件报文的一部分

    • 报文体

      只能是ASCII格式

  • 邮件访问协议——“取协议”

    image-20220611213811931
    1. POP3

      三个阶段:

      • 特许(authorization)

        ​ 用户输入用户名和密码

      • 事务处理

        ​ 用户代理取回报文;

        ​ 对报文做删除标记;

        ​ 取消报文删除标记;

        ​ 获取邮件的统计信息

      • 更新

        ​ 客户发出quit命令,邮件服务器删除那些被标记为删除的报文

    2. IMAP

      所有的报文都在服务器端,允许用户在文件夹中组织报文

    3. 基于Web的电子邮件

      HTTP

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

我们使用主机名或IP地址来标识一台主机

  • DNS提供的服务

    ​ DNS通常是由其它应用层协议所使用的,包括HTTP、SMTP和FTP,将用户提供的主机名解析为IP地址

    其他服务:

    • 解析主机别名(host aliasing)为规范主机名
    • 解析邮件服务器别名为规范主机名
    • 负载分配:一个IP地址集合与同一个规范主机名相联系,DNS服务器用整个IP地址集合进行响应,为了实现负载分配,每次响应时集合中地址顺序是循环改变的。
  • DNS工作机理概述

    DNS协议运行在UDP之上,使用53端口

    1. 分布式、层次数据库

      image-20220611215130764
      • 根DNS服务器

      • 顶级域(TLD)服务器

      • 权威DNS服务器

      还有一类本地DNS服务器,起代理的作用,将请求转发到DNS服务器层次结构中

      image-20230226201842588

      ​ 域名解析的两种形式:

      ​ 1. 迭代的方法

      ​ 2. 递归的方法

    2. DNS缓存

      本地DNS服务器将DNS回答中的信息缓存在本地存储器中,改善时延性能并减少在因特网上到处传输的DNS报文数量

    3. DNS记录和报文

      资源记录(RR)格式:(name, value, type, ttl)

      资源记录的四种类型,以name和value映射作为区分:

      • A:主机名—>IP地址
      • NS:域名—>权威DNS服务器主机名,用于沿着查询链来路由DNS查询
      • CNAME:别名—>规范主机名
      • MX:邮件服务器别名—>规范主机名

      ”取数据“:DNS报文:DNS只有查询和回答报文,且有相同的格式

      image-20230227171107544

      “插入数据”:在DNS数据库中插入记录——注册登记机构

六、P2P应用
  • P2P文件分发

    • P2P体系结构的拓展性

      分发时间是所有N个对等方得到该文件的副本所需要的时间

      对于P2P体系结构,最小分发时间不仅总是小于客户-服务器体系结构的分发时间,并且对于任意的对等方数量N,总是小于1小时——自拓展的。

    • BitTorrent

      用于文件分发的流行P2P协议

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

      在一个洪流中的对等方彼此下载等长度的文件块(chunk)

      每个洪流具有一个基础设施结点,称为追踪器(tracker)。当一个对等方加入某洪流时,它向追踪器注册自己,并周期性的通知追踪器它仍在该洪流中。

      请求块:最稀缺技术,先请求那些最稀缺的快

      发送块:tit-for-tat “一报还一报”

    P2P网络实际上是因特网逻辑上的重叠

  • 分布式散列表DHT

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值