0. 应用层概述

应用层对应用程序的通信提供服务

应用层协议定义

  • 应用进程交换的报文类型,请求还是响应?
  • 各种报文类型的语法,如报文中的各个字段及其详细描述。
  • 字段的语义,即包含在字段中的信息的含义。
  • 进程何时、如何发送报文,以及对报文进行响应的规则。

    应用层的功能:

  • 文件传输、访问和管理

  • 电子邮件
  • 虚拟终端
  • 查询服务和远程作业登录

    应用层的重要协议:

  • FTP

  • SMTP、POP3
  • HTTP
  • DNS

    1. 网络应用模型

    C/S : 客户/服务器模型(Client / Server)

  • 服务器

    • 定义:提供计算服务的设备。
    • 特点
      • 永久提供服务
      • 永久性访问地址/域名
  • 客户机
    • 定义:请求计算服务的主机。
    • 特点
      • 与服务器通信,使用服务器提供的服务
      • 间歇性接入网络
      • 可能使用动态IP地址
      • 不与其他客户机直接通信
  • 应用

    • Web
    • 文件传输FTP
    • 远程登录
    • 电子邮件

      P2P : P2P模型(Peer-to-peer)

      特点:
  • 不存在水远在线的服务器

  • 每个主机既可以提供服务,也可以请求服务
  • 任意端系统/节点之间可以直接通讯
  • 节点间歇性接入网络
  • 节点可能改变IP地址
  • 可扩展性好
  • 网络健壮性强

2. 应用程序相关

DNS

  • DNS服务的作用:将域名解析成P地址
  • 域名
    • 顶级域名
      • 通用顶级域名com, net, org, gov, int, aero, museum, travel
      • 国家顶级域名cn, us, uk
      • 基础结构域名/反向域名 arpa
    • 二级域名
      • 类別域名 ac, com, edu, gov, mil, net, org
      • 行政区域名用于我国各省、自治区、直辖市bi, js
      • 自己注册的域名
    • 三级域名
    • 四级域名
  • 域名服务器
    • 根域名服务器
    • 顶级域名服务器(管理该顶级域名服务器注册的所有二级域名)
    • 权限域名服务器(负责一个区的域名服务器)
    • 本地域名服务器:当一个主机发出DNS查询请求时,这个查询请求报文就发给本地域名服务器。
  • 域名解析过程
    • 递归查询
    • 迭代查询
    • 高速缓存

image.png

FTP

文件传送协议分类

  • 文件传送协议FTP(File Transfer Protocol)
    • 提供不同种类主机系统 (硬、软件体系等都可以不同) 之间的文件传输能力
  • 简单文件传送协议TFTP(Trivial File Transfer Protocol)

FTP服务器和用户端

  • FTP是基于客户/服务器(C/S)的协议。
    • 用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。
    • 依照FTP协议提供服务,进行文件传送的计算机就是FTP服务器
    • 连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端

FTP工作原理

  • 登陆
    • ftp 地址 & 用户名&密码
    • 匿名登录
      • 互连网中有很大一部分FTP服务器被称为匿名( Anonymous)FTP服务器。这类服务器的目的是向公众提供文件拷贝服务,不要求用户事先在该服务器进行登记注册,也不用取得FTP服务器的授权。
      • Anonymous(匿名文件传输)能够使用户与远程主机建立连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户。用户使用特殊的用户名“ anonymous’”登陆FTP服务,就可访问远程主机上公开的文件。
  • FTP 使用 TCP 实现可靠传输

    • 控制连接:请求,始终保持连接
    • 数据连接:文件,仅在传文件时连接
    • 主动方式使用TCP20端口
    • 被动方式由服务器和客户端自行协商决定(端口>1024)

      FTP传输模式

      文本模式:ASCII 模式,以文本序列传输数据;
      二进制模式: Binary 模式,以二进制序列传输数据。

      电子邮件

      组成结构

      image.png

      简单邮件传送协议 SMTP

  • SMTP规定了在两个相互通信的 SMTP进程 之间应如何交换信息

  • 负责发送邮件的SMTP进程就是 SMTP客户,负责接收邮件的进程就是 SMTP服务器
  • SMTP规定了 14 条命令(几个字母)和 21 种应答信息(三位数字代码+简单文字说明)。
  • SMTP通信三个阶段
    • 连接建立
      • SMTP服务器若有能力接收邮件,回答“2500K”
      • 否则,回答“4215 ervice not available”
    • 邮件传送
    • 连接释放
      • 邮件发完,SMTP客户发送QUT命令,SMTP服务器返回“221”,表示同意释放TCP连接。
  • SMTP的缺点:

    • SMTP不能传送可执行文件或者其他二进制对象
    • SMTP仅限于传送7位ASCI码,不能传送其他非英语国家的文字。
    • SMTP服务器会拒绝超过一定长度的邮件。

      MIME

      通用因特网邮件扩充MIME
  • 使电子邮件系统可以支持声音、图像、视频多种国家语言等等

  • 使得传输内容丰富多彩

image.png

邮局协议POP3

  • POP3工作方式
    • 下载并保留(在服务器)
    • 下载并删除

image.png

网际报文存取协议IMAP

  • IMAP协议比POP协议复杂。当用户Pc上的MAP客户程序打开MAP服务器的邮箱时,用户可以看到邮箱的首部,若用户需要打开某个邮件,该邮件才上传到用户的计算机上。
  • IMAP可以让用户在不同的地方使用不同的计算机随时上网阅读处理邮件,还允许只读取邮件中的某一个部分(先看正文,有WiFi的时候再下载附件)。

image.png

基于万维网的电子邮件

方便
image.png

万维网

概述

万维网WWW (World Wide Web) 是一个大规模的、联机式的信息储藏所/资料空间,是无数个网络站点和网页的集合。

URL

  • 统一资源定位符URL →唯一标识→ 资源 (文字、视频、音频)
  • URL一般形式:(不区分大小写

  • 用户通过点击超链接 (http://www.baidu.com) 获取资源,这些资源通过超文本传输协议(HTTP)传送给使用者。

  • 万维网以 客户/服务器 方式工作,用户使用的浏览器就是万维网客户程序,万维网文档所驻留的主机运行服务器程序。
  • 万维网使用超文本标记语言 (HTML) 使得万维网页面设计者可以限方便地从一个界面的链接转到另一个界面,并能够在自己的屏幕上显示出来

    HTTP(Hypertext Transfer Protocol)

    一种无状态的、应用层的、以请求/应答方式运行的协议,它使用可扩展的语义和自描述消息格式,与基于网络的超文本信息系统灵活的互动

    协议流程

    HTTP 协议定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。

  • 用户浏览页面方法

    • 输入URL
    • 点击超链接
  • 一个服务器进程监听TCP的端口80
  • 具体过程:
  1. 浏览器分析URL
  2. 浏览器向DNS请求解析IP地址
  3. DNS解析出IP地址
  4. 浏览器与服务器建立TCP连接
  5. 浏览器发出取文件命令
  6. 服务器响应
  7. 释放TCP连接
  8. 浏览器显示

image.png

HTTP协议的特点

  • HTTP 协议是无状态的。但是在实际工作中,一些万维网站点常常希望能够识别用户。
  • Cookie 是存储在用户主机中的文本文件,记录一段时间内某用户的访问记录。
    • 提供个性化服务
  • HTTP 采用 TCP 作为运输层协议,但 HTTP协议本身是无连接 的 (通信双方在交换HTTP报文之前不需要先建立HTTP连接)

  • HTP的连接方式

    • 持久连接 : Keep-alive
      • 非流水线
      • 流水线
      • image.png
    • 非持久连接 : Close
      • image.png

        报文结构

  • 状态码

    • 1xx 表示通知信息的,如请求收到了或正在处理。
    • 2xx 表示成功,如接受或知道了。202 Accepted
    • 3xx 表示重定向,如要完成请求还必须采取进一步的行动。 301 Moved Permanently
    • 4xx 表示客户的差错,如请求中有错误的语法或不能完成。404 Not Found
    • 5xx 表示服务器的差错,如服务器失效无法完成请求

image.png