Skip to content

应用层

应用层

1
关键的应用层概念:应用程序所需要的网络服务、客户机和服务器、进程和运输层接口。

应用层协议原理

  1. 应用程序的体系结构

    主流体系结构: 客户机/服务器体系结构 对等(P2P)体系结构

  2. 进程通信

    1. 在操作系统术语中,进行通信的实际上是 进程(process) 而不是程序。
    2. 不同端系统上的进程通过跨越计算机网络交换 报文(message) 而相互通信。
    3. 发送进程创建并向网络中发送报文,接收进程接收这些报文并可能负责回送报文。

      发起通信的进程被标示为客户机,在回话开始时等待联系的进程是服务器。

    4. 从一个进程向另一个进程发送的报文必须通过下面的网络。

    5. 进程通过一个称为 套接字(socket) 的软件接口在网络上发送和接受报文。
    6. 套接字是同一套主机内应用层与运输层之间的接口。由于套接字是在网络上建立网络应用程序的可编程接口,因此也将套接字称为应用程序和网络之间的应用程序编程接口(Application Programming Inteface,API)。

      ``` 应用程序开发者可以控制套接字在应用层端的所有东西,但是对该套接字的运输层端几乎没有控制。 应用程序开发者对运输层的控制仅限于: 1 选择运输层协议 2 也许能设定几个运输层参数,如最大缓存,最大报文段长度。 一旦应用程序开发者选择了一个运输层协议,则应用程序就建立在由该协议提供的运输层服务之上。

      ``` 1. 可供应用程序使用的运输服务

    运输层协议能为调用它的应用程序提供什么样的服务呢?大体从四个方面对应用程序服务要求进行分类:可靠数据传输、吞吐量、定时和安全性。

    1. 可靠数据传输
      提供可靠数据传输 或者 不提供可靠数据传输。 当一个运输层协议提供这种服务时,发送进程只要将其数据传递到套接字,就可以相信该数据将能无差错地到达接收进程。

    2. 吞吐量
      宽带敏感的应用需要提供一定的吞吐量,而弹性应用能够根据需要充分利用可供使用的吞吐量。

    3. 定时

    4. 安全性
      在发送主机中,运输层协议能够加密由发送进程传输的所有数据;在接收主机中,运输层协议能够在将数据交付给接收进程之前解密这些数据。

  3. 因特网提供的运输服务

    1. TCP服务:面向连接服务 和可靠数据传输服务

      称之为面向连接的服务 而不是连接服务,是因为两个进程间是以一种非常松散的方式进行连接的。 安全TCP称为 安全套接字层(Secure Socket Layer,SSL).SSL不是独立于TCP和UDP的第三种因特网运输层协议,而只是对TCP的加强,这种加强实在应用层上实现的。

    2. UDP服务:仅提供最小服务,是无连接的,不可靠数据传输服务。

    3. 进程寻址

      ``` 为了识别接收进程,需要定义两种信息: 1. 该主机的名称或地址 2. 用来指定目的主机上接收进程的标识

      主机是用IP地址进行标识的。 除了知道报文去往的目的主机的IP地址外,发送程序也必须识别运行在主机上的接收进程)(一台主机上能够运行许多网络应用程序)(通过端口号识别接收进程)。 ```

  4. 应用层协议

    1. 应用层协议定义了运行在不同端系统上的应用程序如何相互传递报文。

      特别是应用层协议定义了: 1. 交换的报文类型, 如请求报文和响应报文。 2. 各种报文类型的语法,如报文中的各个字段及其详细描述。 3. 字段的语义,即包含在字段中的信息的含义。 4. 进程何时、如何发送报文及对报文响应的规则。

Web应用和HTTP协议

  1. 概述

    1. Web的应用层协议是 超文本传输协议(HyperText Transfer Protocol,HTTP),它是Web的核心。
    2. HTTP定义了Web客户机(Web浏览器)是如何向Web服务器请求Web页面,以及服务器如何将Web页面传送给客户机的。
    3. HTTP使用TCP作为他的支撑运输层协议。
    4. HTTP服务器并不保存关于客户机的任何信息,所以说HTTP是一个无状态协议。
  2. 非持久连接和持久连接

  3. HTTP报文格式

    1. HTTP请求报文

      HTTP请求报文的第一行叫做 请求行(request line)。(三个字段:方法字段,URL字段 和 HTTP协议版本) 后继的行叫做 首部行(header line)。 首部行和附加的回车换行后有一个 实体主体(entity body)。(GET方法为空,POST才使用)

    2. HTTP响应报文 分为三个部分: 1 初始状态行(status line) (3个字段:协议版本、状态码和响应状态信息) 2 首部行 (header line) 3 实体主体(entity body)

    3. cookie
    4. Web缓存
    5. Web缓存器也叫 代理服务器

文件传输协议:FTP

1
2
HTTP和FTP都是文件传输协议,并且有很多共同的特点。例如,他们都运行在TCP上。然而,这两个应用层协议也有一些重要的区别。
最显著的就是FTP使用 两个 并行的TCP连接传输文件,一个是 控制连接,一个是 数据连接。

电子邮件

  1. 主要组成部分: 用户代理(user agent)或者邮件阅读器、邮件服务器(mail server)和简单右键传输协议(Simple Transfer Protocol, SMTP)
  2. HTTP主要是拉协议,SMTP基本上是一个推协议。

DNS:因特网的目录服务

  1. 域名系统(Domain Name System,DNS):主要任务:进行主机名到IP地址转换的目录服务。(端口53)
  2. 分类:根DNS服务器 顶级域(TLD)服务器 权威DNS服务器 本地DNS服务器
  3. DNS记录和报文:资源记录包含下列字段的4元组(Name,Value,Type,TTL)

    TTL是该记录的生存时间 Name和Value的值 取决于Type 1. Type = A 则 Name=主机名 Value=主机的IP地址(类型为A的资源记录提供了标准的主机名到IP地址的映射) 2. Type = NS 则 Name=域(如xxx.com) Value=获得该域中主机IP地址的权威DNS服务器的主机名。(这个记录用于沿着查询链路进一步由DNS查询) 3. Type=CNAME Value=别名为Name的主机对应的规范主机名(该记录能够向请求主机提供一个主机名对应的规范主机名) 4. Type=MX Value=别名为Name的右键服务器的规范主机名 (MX记录允许邮件服务器的主机名具有简单的别名)

    报文: DNS查询和回答报文有着相同的格式。 前12个字节是首部区域。 问题区域包含着正在进行的查询信息 回答区域包含了对最初请求的名字的资源记录 权威区域包含了其他权威DNS服务器的记录 附加区域包含了其他一些有帮助的记录

P2P文件分发