《计网》应用层

应用层

  • 应用层对应用程序的通信提供服务。应用层协议具体应定义为
    • 应用进程交换的报文类型,如请求报文和响应报文
    • 各种报文类型的语法,如报文中的各个字段及其详细描述
    • 字段的语义,即包含在字段中信息的含义
    • 进程何时发送报文,以及对报文的响应的规则

网络应用模型

客户/服务器模型

  • 主要特点
    • 客户是服务请求方,服务器是服务提供方
    • 服务器特点
      • 提供永久服务
      • 服务器IP地址固定不变
    • 客户端特点
      • 与服务器通信,使用服务器提供的服务
      • 间歇性接入网络
      • 可能使用动态的IP地址
      • 不与其他客户端直接通信
  • 常见应用
    • Web
    • 文件传输协议FTP
    • 远程登录
    • 电子邮件

P2P模型

  • 主要特点
    • 显著特点:对等节点之间有直接通信能力
    • P2P是指在互联网中由对等节点组成的一种覆盖网络
    • P2P是一种动态的逻辑网络,不是一种物理网络
    • 不存在永远在线的服务器
    • 每个主机既可以提供服务,也可以请求服务
    • 节点间歇性接入网络,并且可能改变IP地址
    • 自扩展性好,网络健壮性强

域名系统DNS

  • DNS作用:把域名转换为IP地址
  • DNS采用C/S模型
  • DNS协议运行在UDP上,使用53端口

DNS组成部分

  • 层次域名空间
    • 顶级域名
    • 二级域名
    • 三级域名
    • 多个标号组成的完整域名总共不超过255个字符
  • 域名服务器
    • 种类
      • 根域名服务器(.)
      • 顶级域名服务器
      • 授权/权限域名服务器
      • 一定能在授权服务器找到对应的IP号
      • 本地域名服务器
    • 域名服务器被设计为一种联机的分布式数据库系统,采用C/S模型
  • 域名解析过程
    • 递归查询
      • 本机向本地域名服务器的查询是递归查询
    • 递归迭代查询
      • 本地域名服务器向根域名服务器的查询是迭代查询
      • 流程
        • 主机m.xyz.com先向其本地域名服务器dns.xyz.com进行递归查询
        • 本地域名服务器采用迭代查询。它向一个根域名服务器查询
        • 根域名服务器告诉本地域名服务器,下一次应查询的顶级域名服务器dns.com的IP地址
        • 本地域名服务器向顶级域名其dns.com进行查询
        • 顶级域名服务器dns.com告诉本地域名服务器,下一次查询的权限域名服务器的dns.baidu.com的IP地址
        • 本地域名服务器向权限域名服务器dns.baidu.com进行查询
        • 权限域名服务器dns.baidu.com告诉本地域名服务器所查询的主机的IP地址
        • 本地域名服务器dns.xyz.com最后把查询结果告知主机m.xyz.com
      • 8个步骤共要使用8个UDP用户数据报(使用UDP是为了减少开销)的报文
      • 本地域名服务器经过三次迭代查询后,从权限域名服务器dns.baidu.com得到了主机www.baidu.com的IP地址
  • 高速缓存(DNS缓存)
    • 在域名服务器中使用DNS的目的
      • 为了提高DNS查询效率
      • 减轻根域名服务器的负荷和减少互联网上的DNS查询报文数量
    • DNS服务器将在一段时间后丢弃高速缓存中的信息

文件传输协议FTP

  • FTP使用TCP可靠的传输服务
  • FTP必须在整个会话期间保留用户的状态信息
  • 服务器必须追踪用户在远程目录树上的当前位置
  • FTP特点
    • 提供交互式访问
    • 运行客户指明文件的类型与格式,运行文件具有存取权限
    • 适合在异构网络中的任意计算机之间传送文件
  • FTP功能
    • 提供不同种类主机系统(软硬件都可)之间的文件传输能力
    • 以用户权限管理的方式提供用户对远程FTP服务器的文件管理能力
    • 以匿名FTP的方式提供公用文件共享的能力,使用anonymous作为用户名
  • FTP组成
    • 一个主进程,负责接收新的请求
    • 若干个从属进程,负责处理单个请求
  • 主进程步骤
    • 服务端打开21端口,使客户进程能够连接上
    • 等待客户进程发出连接请求
    • 启动从属进程处理客户进程发来的请求。主进程与从属进程并发执行,从属进程对客户进程的请求处理完毕后即终止。
    • 回到等待状态,继续接受其他客户进程发来的请求

FTP工作时用到的TCP连接

  • FTP使用两个独立的连接的好处
    • 使协议更加简单和容易实现
    • 在传输文件的时候可以利用控制连接对文件的传输进行控制(如用户可以在文件传输过程中发生请求中止服务)

  • 控制连接
    • 作用
      • 用于将命令从客户传给服务器并传回服务器的应答
    • 端口
      • 21端口
    • 特点
      • 控制信息都以7位ASCII格式传送
      • 控制连接在整个会话期间一直保持打开
      • FTP的控制信息是带外传送的
  • 数据连接
    • 作用
      • 用于传输文件
    • 端口
      • 20端口
    • 特点
      • PORT模式
        • 主动模式
        • 传送数据是服务器连接到客户端端口
      • PASV模式
        • 被动模式
        • 传送数据是客户端连接服务器端口

电子邮件系统

  • 电子邮件系统是一种异步通信方式
  • 基于WWW的电子邮件
    • 用户浏览器与Gmail的邮件服务器用HTTP发送或接收邮件
    • 不同邮件服务器之间传送用SMTP
  • 三个组成部分
    • 用户代理,用户与电子邮件系统的接口,如Outlook,Foxmail
    • 邮件服务器,用来发送和接收邮件
    • 邮件发送协议SMTP【类似Push】和读取协议pop3【类似Pull】
  • 发送接收过程

电子邮件格式

  • 电子邮件 = 信封 + 内容
  • 内容 = 首部【RFC822规定】 + 主体【用户自用撰写】
  • 首部的关键字
    • From:abc@cskaoyan.com【必须要】,由邮件系统自动填入
    • To:x123@cskaoyan1.com【必须要】,abc是收件人邮箱号,后者是邮箱所在主机的域名
    • Subject:xxxxxxx【可选】,是邮件的主题
  • 多用途网络邮件扩充(MIME)
    • 因为SMTP/pop3只能传送一定长度的ASCII码邮件,且无法传送可执行文件及其他二进制对象,所以提出MIME
    • MIME继续使用SMTP的格式,增加了邮件主题的结构,定义了传送非ASCII码的编码规则

发送协议和读取协议

SMTP POP3 IMAP
定义 一种提供可靠且有效的电子邮件传输协议 一种非常简单但功能有限的邮件读取协议 因特网报文存取协议
特点 使用C/S方式
使用TCP连接
端口号25
只支持传输7比特ASCII码内容
使用C/S方式
使用TCP连接
端口号为110
POP3协议是用明文传输密码的,不对密码加密
为用户提供了联机命令
创建文件夹
在不同文件夹之间移动邮件
在远程文件夹中查询邮件
IMAP服务器维护了会话用户的状态信息
允许用户代理只获取报文的某些部分
适合低带宽
工作过程 连接建立
邮件传送
链接释放
下载并保留
下载并删除

万维网

  • WWW是一个分布式,联机式的信息存储空间
  • 组成部分
    • 统一资源定位符URL
      • 标志分布在整个互联网上的万维网文档
    • 超文本传送协议HTTP
      • 实现WWW上的各种连接的协议
    • 超文本标记语言HTML
      • 使不同风格的文档在互联网上的主机显示
  • URL的形式
    • <协议>://<主机>:<端口>/<路径>

HTTP协议

  • 定义了浏览器向服务器请求web页面的方式,以及服务器向浏览器传送页面的方式
  • HTTP特点
    • HTTP使用面向连接的TCP作为传输层协议,保证了数据的可靠传输
    • HTTP协议本身是无连接的
    • HTTP协议是无状态的
    • 不需要保存客户的状态信息,可以减少服务器的CPU及内存的消耗

  • Cookie是网站为了辨别用户身份,进行会话跟踪而存储在客户端上的数据
  • Cookie的组成
    • 在HTTP响应报文中的一个cookie首部行
    • 在HTTP请求报文中的一个cookie首部行
    • 在用户端系统中保留一个cookie文件,由用户的浏览器进行管理
    • 位于web站点的一个后端数据库

HTTP操作过程

  • 浏览器分析链接指向页面的URL
  • 浏览器向DNS请求解析网址的IP地址
  • 域名系统DNS解析出IP地址
  • 浏览器与该服务器建立TPC链接【默认端口80】
  • 浏览器发送HTTP请求
  • 服务器通过HTTP响应把文件发送给浏览器
  • 释放TCP连接
  • 浏览器解释文件,把web页面显示给用户

持久连接和非持久连接

  • 非持久连接
    • 传输时间
      • 文档传输时间 + 两倍的往返时间RTT
    • connection状态
      • 标志为close,说明是非持久连接
  • 持久连接
    • 传输时间
      • 共经历1个RTT延迟
    • connection状态
      • 标志为keep-alive,说明是持久连接
      • HTTP/1.1的默认方式是持久连接

HTTP的报文结构

  • 两类HTTP报文
    • 请求报文
    • 响应报文
  • 报文的组成
    • 开始行【请求报文为请求行】【响应报文为状态行】
    • 首部行
    • 实体主体
  • 请求报文采用的方法
    • GET【请求】
    • HEAD【读取URL表示的信息的首部,无response】
    • POST【上传信息】
    • CONNECT【代理服务器】
  • 实例