计算机网络——第二章:应用层

参考书目《计算机网络:自顶向下方法(第七版)》

应用层协议原理

  • 网络核心设备并不在应用层上起作用,而仅在较低层起作用,特别是在网络层及下面层次起作用

  • 网络应用程序体系结构:

    • 客户-服务器体系结构
    • P2P体系结构(优秀的特点自扩展性
  • 可供应用程序使用的传输服务

    • 可靠数据传输
    • 吞吐量
    • 定时(能在给定时间内完成通信)
    • 安全性
  • TCP服务:

    • 面向连接的服务
    • 可靠的数据传输服务
    • 流量控制
    • 拥塞控制
    • 不提供:定时、最小吞吐量保证、安全性
  • UDP服务

    • 仅提供最小服务
    • 不可靠数据传输服务
    • 到达接受进程的报文可能是乱序到达
  • 应用层协议定义了运行在不同端系统上的应用进程如何相互传递报文,特别是其定义了:

    • 交换的报文类型,例如请求报文和响应报文
    • 各种报文类型的语法,如报文中的各个字段及这些字段是如何描述的。
    • 字段的语义,即这些字段中的信息的含义
    • 确定一个进程何时以及如何发送报文,对报文进行响应的规则

Web和HTTP

  • Web的应用层协议是超文本传输协议(HyperText Transfer Protocol, HTTP),定义在[RFC 1945]和[RFC 2616]
  • 每个URL地址由两部分组成:存放对象的服务器主机名和对象的路径名
  • Web浏览器——>HTTP的客户端,Web服务器———>HTTP的服务器端。Web服务器用于存储Web对象,每个对象由URL寻址
  • HTTP定义了Web客户与Web服务器间间的Web页面的交互方式
  • 因为HTTP服务器不保存关于客户的任何信息,所以HTTP是一个无状态协议

  • HTTP连接方式:持续连接和非持续连接

    • 对于持续连接:
      • 每次总的响应时间为2个RTT加上服务器传输HTML文件的时间(三次握手+文件传输)
      • 缺点:
        1. 必须为每个请求的对象建立和维护一个全新的连接
        2. 每个对象经受两倍RTT的交付时延
    • HTTP默认模式是使用带流水线的持续连接
  • HTTP报文有两种:请求报文和响应报文

  • 请求报文结构:请求行、首部行、实体
    • 请求行:方法(GET,POST,HEAD,PUT,DELETE)、URL、HTTP版本
  • 响应报文结构:状态行、首部行、实体
    • 状态行包括协议(HTTP)版本、状态码、状态信息
    • 常见状态码和相关短语:
      • 200 OK:请求成功,信息在返回的响应报文中
      • 301 Moved Permanently:请求的对象已被永久转移,新的URL定义在响应报文中
      • 400 Bad Request:该请求不能被服务器理解
      • 404 Not Found:被请求的文档不在服务器上
      • 505 HTTP Version Not Supported:服务器不支持请求报文使用的HTTP版本协议
  • 由于HTTP服务器是无状态的,然而有些时候Web站点希望能够识别用户,为此HTTP使用了cookie,它允许站点对用户进行跟踪

  • Web缓存器也叫代理服务器,它是能够代表初始Web服务器来满足HTTP请求的网络实体

  • 部署Web缓存器的两个理由:

    1. 可以大大减少对客户请求的响应时间,特别是当客户与目标服务器之间的瓶颈带宽远低于客户与Web缓存器之间的瓶颈带宽时
    2. 可以大大减少一个机构的接入链路到因特网的通信量,使其不必急于增加带宽,从而降低费用
  • 条件GET方法:用于判断缓存在代理服务器上的内容是否是最新的


因特网中的电子邮件

  • 因特网电子邮件系统有三个主要组成部分:

    • 用户代理(user agent)
    • 邮件服务器(mail server)
    • 简单邮件传输协议(Simple Mail Transfer Protocol, SMTP)
  • SMTP用于从发送方的邮件服务器发送报文到接收方的邮件服务器

  • SMTP限制所有邮件报文的体部分(不只是其首部)只能采用简单的7比特ASCII表示
  • SMTP一般不使用中间邮件服务器发送邮件,即使这两个邮件服务器位于地球的两端

  • SMTP与HTTP的对比:

    • HTTP主要是一个拉协议(pull protocol),用户使用HTTP从服务器上拉取信息;SMTP基本上是一个推协议(push protocol),发送邮件服务器把文件推到接收邮件服务器
    • SMTP要求每个报文采用7比特ASCII码格式;HTTP则不受这种限制
    • HTTP把每个对象封装到它自己的HTTP响应报文中;SMTP则把所有报文对象放在一个报文中

DNS:因特网的目录服务

  • 主机可以用主机名(hostname)标识,如www.google.com;也可以通过IP地址进行标志
  • 域名系统(Domain Name System, DNS)的主要任务是提供一种能进行主机名到IP地址转换的目录服务

  • DNS是:

    1. 一个由分层的DNS服务器实现的分布式、层次数据库
    2. 一个使得主机能够查询分布式数据库的应用层协议
  • DNS运行在UDP之上,使用53号端口

  • DNS还提供一些别的重要服务:

    • 主机别名
    • 邮件服务器别名(像google邮箱可以使用很多的别名)
    • 负载均衡(使用冗余服务器)
  • DNS层次结构

    • 根DNS服务器:提供TLD服务器的IP地址
    • 顶级域(Top-Level Domain, TLD)DNS服务器:提供权威服务器的IP地址
    • 权威DNS服务器:提供公共可访问主机的IP地址
  • DNS查询有迭代递归两种方式
  • 为了改善时延性能并减少在因特网上到处传输的DNS报文数量,DNS广泛使用了缓存技术
  • 由于DNS缓存,除少数DNS查询以外,根服务器都被绕过了

P2P文件分发

  • 在P2P文件分发中,每个对等方能够向任何其他对等方重新分发他已经收到的文件的任何一部分
  • 优点:自扩展性

视频流和内容分发网

CDN
&&&