计算机网络:应用层

Posted cpaulyz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络:应用层相关的知识,希望对你有一定的参考价值。

网络应用体系结构

  • 客户-服务端体系结构
  • P2P体系结构

进程通信

进行通信的实际上是进程

在两个端系统上的进程,通过跨越计算机网络交换报文message而相互通信

进程通过套接字(socket)的软件接口向网络发送和接收报文

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

可靠数据传输

电子邮件、文件传输、金融业等使用可靠数据传输

多媒体、视频等是容忍丢失的应用

吞吐量

具有吞吐量要求的应用被称为带宽敏感的应用

弹性应用可以根据情况或多或少地利用吞吐量,如电子邮件

定时

安全性

技术图片

TCP

  • 面向连接的服务
  • 可靠数据传输
  • 拥塞控制机制

UDP

仅提供最小服务

TCP和UDP都没有提供加密机制

可以通过在应用层上加强TCP,成为安全套接字层(Secure Sockets Layer,SSL),是对TCP的加强

应用层协议

网络层协议定义了运行在不同端系统上的应用进程如何相互传递报文

  • 交换的报文类型,如请求/响应报文
  • 各种报文类型的语法
  • 字段的语义
  • 一个进程何时以及如何发送报文,对报文进行响应的规则

HTTP

超文本传输协议

无状态的

HTTP定义了Web客户向Web服务器请求web页面的方式,以及服务器向客户传送web页面的方式

HTTP使用TCP作为它的支撑传输协议

非持续连接和持续连接

  • 非持续连接:每个请求/响应经一个单独的TCP连接发送

    • 必须为每一个请求的对象建立和维护一个全新的连接
    • 每一个对象经受两倍RTT的交付时延

    技术图片

  • 持续连接:所有的请求及其响应经相同的TCP连接发送

报文

技术图片

  • 请求报文:GET方法时实体体为空,POST方法时才使用实体体。
  • 响应报文

Cookie技术有四个组件

  1. HTTP响应报文中的首部行
  2. HTTP请求报文中的首部行
  3. 在用户端系统中保留的文件,由浏览器管理
  4. 位于web站点的一个后端数据库

第一次请求某个网站时,web站点产生一个唯一标识码,并且在后端数据量建一个表项。

接下来用一个包含Set-cookie的HTTP响应进行响应

之后浏览器会存下来,以后每次请求都会在首部带上cookie

技术图片

Web缓存和条件GET

如果请求报文使用get方法,且包含一个“If-Modified-Since:"首部行,就是一个条件GET请求报文

判断web缓存中的内容是不是最新

FTP文件传输协议

使用两个TCP连接,一个是控制连接,一个是数据连接,称为带外(out-of-band)传送的

HTTP控制信息在头部,称为带内(in-band)传送的

技术图片

用户主机开始一个FTP会话时:

  1. 在服务器的21号端口发起用于控制的TCP连接
  2. 服务器收到文件传输命令(收/发)时,发起一个到客户端的TCP连接,传送完关闭
  3. 如果同一个会话期间,还需要传输另一个文件,则会打开另一个数据连接

电子邮件

异步通信媒介

三个组成部分

  • 用户代理
  • 邮件服务器 -- 电子邮件体系核心
  • 简单邮件传输协议(simple mail transfer protocol SMTP) -- 因特网电子邮件应用核心

技术图片

e.g. A发给B

发送方用户代理→发送方邮件服务器→接收方邮件服务器→接收方邮箱

B要在邮箱中读取时,要通过用户名和口令验证

A邮箱必须能处理B邮件服务器的故障,如果A的服务器不能交付给B,要在A邮件服务器的一个报文队列中保存报文,在以后尝试再次发送,通常每30分钟尝试一次;如果几天后仍不成功,则删除报文并通知A。

SMTP

SMTP一般不用中间邮件服务器发送邮件,即使两个邮件服务器位于地球两端也是这样。A->B,如果B的邮件服务器没开机,报文会保留在A的邮件服务器上

技术图片

一个例子

技术图片

SMTP是持续连接:如果发送邮件服务器有几个报文发往同一个接收邮件服务器,它可以通过一个TCP连接发送这些所有报文。对每一个报文,客户端以MAIL FROM开头,用.结束。

SMTP vs HTTP

  • 相同点:
    1. 都用于一台主机向另一台主机传送文件
    2. 进行文件传送时,持续的HTTP和SMTP都使用持续连接
  • 不同点:
    1. HTTP是拉协议,SMTP是推协议
    2. SMTP要求每个报文使用7比特ASCII码格式。如果报文含有非7比特ASCII码字符,必须按照7比特ASCII码编码。HTTP无限制。
    3. 处理即包含文本又包含图形的文档,HTTP把每个对象封装到响应报文种,SMTP把所有报文对象放在一个报文种。

MIME

邮件访问协议

不能直接在接收方PC上放置邮件服务器,因为接收方PC为了能够及时接受任何时候到达的邮件必须一直开机,这不现实。所以通过是PC上运行用户代理,访问存储在总是保持开机的共享邮件服务器上的邮箱。

这直接需要邮件访问协议

技术图片

  1. POP3:下载并删除、下载并保留
  2. IMAP:收件人能够把邮件移到新文件夹,阅读邮件,删除邮件等
  3. 基于Web的电子邮件:HTTP,用户代理就是浏览器

域名系统DNS

domain name system,进行主机名到IP地址转换的目录服务

DNS是

  1. 一个由分层的DNS服务器实现的分布式数据库
  2. 一个使得主机能够查询分布式数据库的应用层协议

DNS协议运行在UDP之上,53号端口

技术图片

因此会带来一些额外时延

此外还有一些服务

  • 主机别名

  • 邮件服务器别名

  • 负载分配

    技术图片

工作原理

集中式DNS有以下缺点:

  • 单点故障
  • 通信容量有限
  • 远距离的集中式数据库
  • 难以维护

所以采用分布式,层次结构如下:

技术图片

  • 根DNS服务器:有13个,冗余服务器网的网络,提供安全性和可靠性
  • 顶级域DNS服务器:如com,org,net,edu,gov和所有国家顶级域名uk,ca,jp等
  • 权威DNS服务器:因特网上具有公共可访问主机的每个组织机构必须提供可访问的DNS记录,一个组织机构的权威DNS收藏了这些记录。自实现or买的
  • 本地DNS服务器:不属于层次结构

递归查询、迭代查询

技术图片

1、8是递归查询,其他是迭代查询

技术图片

递归查询

P2P

技术图片

使用传统的客户-服务器下

技术图片

使用P2P下

技术图片

以上是关于计算机网络:应用层的主要内容,如果未能解决你的问题,请参考以下文章

计算机网络学习—应用层的概述

计算机网络-网络应用(上)

计算机网络 —— 应用层

计算机网络入门基础篇——应用层

计算机网络--应用层

计算机网络——应用层