计网复习——应用层

计网复习——应用层

1. 应用层协议特点

  • 应用层协议是为了解决某一类应用问题
    • 由于网络应用的多样性,应用层的协议也种类繁多
  • 应用层的许多协议都是基于客户/服务器方式
    • 客户(client)和服务器(server)都是指通信中涉及的两个应用进程
    • 客户/服务器方式所描述的是进程之间服务和被服务的关系
    • 客户是服务请求方,服务器是服务提供方

2. 套接字编程接口

  • 网络子系统作为操作系统的一部分,以应用编程接口(API)的形式向应用程序提供调用接口
  • 套接字(socket)是最常用的应用层编程接口
  • 经典的socket编程接口采用同步调用方式(又称为阻塞式)
    • 例:调用recv()时,调用进程将被阻塞,直到收到数据为止
  • Windows这种基于事件驱动的系统中,程序的执行由事件驱动,需要异步事件驱动方式的套接字编程接口
    • Microsoft退出WinSock编程接口,在阻塞式调用基础上,增加了异步调用方式
    • 在阻塞式调用模式下,WinSock与经典的socket兼容

计网复习——应用层_第1张图片

计网复习——应用层_第2张图片

计网复习——应用层_第3张图片

计网复习——应用层_第4张图片

计网复习——应用层_第5张图片

3. 域名系统DNS

3.1 域名系统概述

  • 域名系统DNS(Domain Name System) 是Internet使用的命名系统
  • Internet采用层次结构的命名树作为主机的名字,并使用分布式的域名系统DNS
  • 多个域名服务器上运行专门的域名服务器程序,完成域名 → \rightarrow IP地址的解析
  • DNS基于UDP协议实现
    • 应用进程需要进行域名解析时,就调用域名解析程序,它成为DNS的一个客户
    • 向本地域名服务器发送域名解析请求(UDP报文),其中包含待解析的域名
    • 本地域名服务器在查找域名后,返回应答报文,其中包含对应的IP地址

3.2 Internet的域名结构

  • Internet采用层次树状结构的命名方法:…….三级域名.二级域名.顶级域名

  • 顶级域名TLD

    • 国家顶级域名:如.cn表示中国、.us表示美国、.uk表示英国等等

    • 通用顶级域名:

计网复习——应用层_第6张图片

计网复习——应用层_第7张图片

  • 注意:

    • 域名不区分大小写
    • 域名长度不超过255字符

计网复习——应用层_第8张图片

3.3 域名服务器

  • 域名服务器分为四类

    • 根域名服务器
      • 根域名服务器知道所有顶级域名服务器的域名和IP地址
      • 当本地域名服务器无法解析域名时,就求助于根域名服务器
    • 顶级域名服务器
      • 负责管理在该顶级域名服务器注册所有二级域名
    • 权限域名服务器
      • 负责一个区(zone)的域名服务器
    • 本地域名服务器
      • 有时也称为默认域名服务器
  • 域名服务器定期把数据复制到几个域名服务器来保存,其中的一个是主域名服务器,其他的是辅助域名服务器

  • 树状结构的DNS域名服务器

计网复习——应用层_第9张图片

  • 主机向本地域名服务器的查询一般采用递归查询

    • 如果本地域名服务器不知道被查询域名的IP地址,那么它就以DNS客户的身份,向根域名服务器继续发出查询请求报文
  • 本地域名服务器向根域名服务器的查询通常是采用迭代查询

    • 当根域名服务器收到本地域名服务器的迭代查询请求报文时
      • 要么给出所要查询的IP地址
      • 要么告诉本地域名服务器下一步应向哪一个域名服务器查询
    • 本地域名服务器进行后续的查询

计网复习——应用层_第10张图片

计网复习——应用层_第11张图片

4. 文件传送协议

  • FTP使用客户/服务器方式
    • 一个FTP服务器进程可同时为多个客户进程提供服务
    • FTP的服务器进程由两大部分组成
      • 一个主进程,负责接受新的请求
      • 若干个从属进程,负责处理单个请求
  • 主进程的工作步骤
    • 打开熟知端口(端口号为21),使客户进程能够连接上
    • 等待客户进程发出连接请求
    • 启动从属进程处理客户进程发来的请求
      • 从属进程对客户进程的请求处理完毕后即终止
      • 从属进程在运行期间根据需要还可能创建其他一些子进程
    • 回到等待状态,继续接受其他客户进程发来的请求
    • 主进程与从属进程的处理是并发地进行
  • FTP使用2个TCP连接控制连接数据连接
  • 控制连接
    • 在整个会话期间一直保持打开
    • FTP客户发出的传送请求通过控制连接发送给服务器端的控制进程,但控制连接不用来传送文件
  • 数据连接
    • 收到FTP客户发送来的文件传输请求后,服务器端的控制进程创建“数据传送进程”和“数据连接”
    • 数据传送进程实际完成文件的传送,传送完毕后关闭“数据传送连接”并结束运行

计网复习——应用层_第12张图片

5. 万维网WWW

5.1 万维网概述

  • 万维网是分布式超媒体系统,它是超文本系统的扩充
  • 要解决的几个问题
    • 怎样标识分布在Internet上的万维网文档?——URL
    • 用什么协议实现万维网上各种超链的链接?——HTTP
    • 如何存储和表示万维网文档?——HTML
  • 搜索引擎即根据网页中的链接在网络中获取信息

5.2 统一资源定位符URL

  • URL是对Internet上资源位置和访问方法的一种简洁表示

  • URL的一般形式

计网复习——应用层_第13张图片

  • <主机>为存放资源的主机在Internet中的域名

  • <端口>和<路径>有时可省略。使用http协议时,如省略<端口>,则使用熟知端口号80;如省略<路径>,则值主页

  • URL不区分大小写

5.3 超文本传送协议HTTP

  • 基于TCP协议,是万维网上可靠地交换文件的重要基础
  • HTTP是面向事务的客户/服务器协议
  • HTTP是无状态的
    • 服务器不记录客户端的访问状态
  • 基本工作原理
    • Web的熟知端口号是80,服务器通常在该端口上监听
    • 客户端需要请求某个页面时,与服务器建立TCP连接,之后请求传送文件,并进行文件的传送,传送完毕后释放TCP连接

计网复习——应用层_第14张图片

计网复习——应用层_第15张图片

计网复习——应用层_第16张图片

  • HTTP/1.1协议使用持续连接
    • 服务器发送响应后,在一段时间内保持连接,使客户与服务器可以继续传送后续的HTTP请求报文和相应报文
    • 这并不局限于传送同一个页面上链接的文档,而是只要这些文档都在同一个服务器上就行
    • 目前主流的浏览器都默认支持HTTP/1.1
  • HTTP的报文类型:两类报文
    • 请求报文——从客户向服务器发送请求报文
    • 响应报文——从服务器到客户的回答
    • HTTP是面向正文的,报文中的字段都是ASCII码串,因而每个字段的长度都是不确定的
  • 报文由三个部分组成,即开始行、首部行和实体主体
  • 在请求报文中,开始行就是请求行

计网复习——应用层_第17张图片

计网复习——应用层_第18张图片

  • HTTP应答报文的开始行是状态行
  • 状态行包括三项内容:HTTP的版本、状态码、解释状态码的简单短语

计网复习——应用层_第19张图片

5.4 万维网的文档

  • HTML定义了许多用于排版的命令,即标签
  • HTML把各种标签嵌入到万维网的页面中,构成HTML文档
    • HTML文档为文本格式
  • 浏览器从服务器读取HTML文档后,按照其中嵌入的各种标签,根据显示器尺寸和分辨率显示页面
    • 仅当HTML文档是以.html或.htm为后缀时,浏览器才对此文档的各种标签进行解释

5.5 安全的HTTP协议:HTTPS

  • HTTPS:安全的HTTP协议,建立在SSL基础上

  • SSL/TLS已被浏览器广泛支持,很多Web应用利用HTTPS协议实现安全传输

  • HTTPS的熟知端口号为443,而不是80

  • SSL简介

    • Secure Socket Layer,为TCP协议提供信息加密和完整性

计网复习——应用层_第20张图片

6. 电子邮件

6.1 概述

  • 发送邮件的协议:SMTP
  • 早期邮件只支持7bit ASCII编码,1993年提出了MIME标准
    • 在邮件首部中说明了数据类型(如文本、声音、图像、视像等),可在邮件中多种类型的数据
  • 读取邮件的协议:POP3和IMAP

计网复习——应用层_第21张图片

  • 电子邮件系统的两种实体:
    • 用户代理UA(User Agent)
      • 是用户与电子邮件系统的接口,即电子邮件客户端软件
      • 用户代理的功能:撰写、显示、处理和通信
    • 邮件服务器
      • 用于发送和接收邮件,并向发信人报告传送结果(已交付、被拒绝、丢失等)
      • 邮件服务器按照客户/服务器方式工作
      • 使用发送和读取两个不同的协议,即发送邮件的SMTP协议和客户端读取邮件的POP3协议
      • 一个邮件服务器既可以作为客户,也可以作为服务器

6.2 简单邮件传送协议SMTP

  • 简介
    • SMTP规定了两个互相通信的SMTP进程之间应如何交换信息
    • SMTP使用客户/服务器方式
      • 负责发送邮件的SMTP进程就是SMTP客户
      • 负责接收邮件的SMTP进程就是SMTP服务器
    • SMTP定义了14条命令和21种应答信息
      • 每条命令用4个字母组成
      • 每一种应答信息一般只有一行信息,由一个3位数字的代码开始,后面附上(也可不附上)简单的文字说明
  • SMTP通信的三个阶段
    1. 连接建立:连接在发送主机的SMTP客户和接收主机的SMTP服务器之间建立,不使用中间邮件服务器
    2. 邮件传送
    3. 连接释放:邮件发送完毕后,SMTP释放TCP连接

6.3 电子邮件的信息格式

  • 一个电子邮件分为信封和内容两大部分
  • RFC 822只规定了邮件内容中的首部(header)格式,而对邮件的主体(body)部分则由用户自由撰写
  • 首部中主要字段
    • To:后面填入一个或多个收件人的e-mail地址
    • Subject:邮件的主题,反映了邮件的主要内容
    • Cc:抄送,表示给某人发送一个邮件副本
    • From:发信人的电子邮件地址
    • Date:发信日期
    • Reply-to:对方回信地址

6.4 MIME

  • SMTP的问题

    • 只能传送7位ASCII码
    • 不能传送二进制数据:程序、图片、音乐、东方语言、……
  • MIME的思路

    • 继续使用目前的[RFC 822]格式
    • 对二进制数据进行编码,将其转换为7位ASCII码
    • 邮件首部中增加字段,定义数据类型和编码规则
  • MIME新增了5种头部字段

计网复习——应用层_第22张图片

  • 传输编码规则

    • base64:又称为Radix-64(基数64转换),原始二进制数据中的每6bit被映射为8bit(ASCII字符)
    • quoted-printable:原始二进制数据的8bit表示为2个16进制数,前加"="

以上部分内容引自课件和《计算机网络(第7版)》,如有侵权,请及时联系我删除!

你可能感兴趣的:(Network,http)