计算机网络---应用层

网络应用模型

网络边缘的端系统中运行的程序之间通信方式通常可分为两大类:C/S方式P2P方式

客户/服务器模型

客户/服务器(Client/Server, C/S)模型中,有一个总是打开的主机称为服务器,它服务于许多来自其他称为客户机的主机请求。

  • 工作流程:
    1. 服务器处于接收请求的状态
    2. 客户机发出服务请求,并等待接收结果
    3. 服务器收到请求后,分析请求,进行必要的处理,得到结果并发送给客户机。
  • 特点:
    • 客户是服务请求方,服务器是服务提供方
    • 网络中各计算机的地位不平等,服务器可以通过对用户权限的控制来达到管理客户机的目的,使它们不能随意存储删除数据,或进行其他受限的网络活动。

      整个网络的管理工作由少数服务器担当,故网络的管理非常集中和方便。

    • 客户机相互之间不直接通信。

      例如,在Web应用中两个浏览器并不直接通信。

    • 可扩展性不佳。受服务器硬件和网络带宽的限制,服务器支持的客户机数有限。
  • 适用性:
    常见的C/S应用包括Web、文件传输协议(FTP)、远程登录和电子邮件等。

P2P模型

对等连接(peer-to-peer, P2P)是指两个主机在通信时并不区分客户和服务器。任意一对计算机,直接相互通信
其实本质上仍然使用客户/服务器方式,每个结点既作为客户访问其他节点的资源,也作为服务器提供资源给其他节点访问。

  • 优点:
    • 减轻了服务器的计算压力,消除了对某个服务器的完全依赖。
    • 多个客户机之间可以直接共享文档
    • 可扩展性好
    • 网络健壮性强
  • 缺点:
    在获取服务的同时,还要给其他结点提供服务,因此会占用较多的内存,影响整机速度。

  • 适用性:
    常见的P2P应用包括PPlive、Bittorrent和电驴等。

域名系统(DNS)

域名系统(Domain Name System, DNS)是因特网使用的命名系统,用来把便于人们记忆的具有特定含义的域名(即 Internet上某一台计算机或计算机组的名称)转换为便于及其处理的IP地址

  • DNS系统采用客户/服务器模型,其协议运行在UDP之上,使用53号端口。

    扫描二维码关注公众号,回复: 7342584 查看本文章

    层次域名空间

    因特网采用层次树状结构的命名方法。采用这种命名方法,任何一个连接到因特网的主机或路由器,都有一个唯一的层次结构名称,即域名(Domain Name)。

  • 域(Domain)是名字空间中一个可被管理的划分。
  • 域还可以划分为子域,这样就形成了顶级域、二级域、三级域等。
  • 每个域名都由标号序列组成,而各标号之间用点(".")隔开。

  • 注意:
    • 标号中的英文不区分大小写
    • 标号中除连字符(-)外,不能使用其他的标点符号
    • 每个标号不超过63个字符,多标号组成的完整域名最长不超过255个字符
    • 级别最低的域名写在最左边(打头阵),级别最高的域名写在最右边(最后出马)
  • 顶级域名(Top Level Domain, TLD)分类:
    • 国家顶级域名(nTLD, National Top-Level Domain):国家和某些地区的域名,如".cn"(中国),".hk"(中国香港特别行政区)。
    • 通用顶级域名(gTLD, Generic Top-level Domain):常见的有".com"(commercial公司)、".net"(网络服务机构)、".org"(非营利性组织)、".gov"(美国政府部门)等。
    • 基础结构域名:这种顶级域名只有一个,即arpa,用于反向域名解析,因此又称反向域名

域名服务器

  • 域名到IP地址的解析是由运行在域名服务器上的程序完成的,一个服务器所负责管辖的(或有权限的)范围称为区。
  • 分类:
    • 根域名服务器:(知道所有顶级域名地址)最高层次的域名服务器,知道所有顶级域名服务器的IP地址。

      不管是哪个本地域名服务器,若要对因特网上任何一个域名进行阶,只要自己无法解析,就首先要求助于根域名服务器。

    • 顶级域名服务器:(知道所有二级域名的地址)知道所有授权域名服务器的IP地址。
    • 授权域名服务器:(知道所有三级域名的地址)知道所有自己管辖的区的地址。
    • 本地域名服务器:(储存着常用的域名映射)也称为默认域名服务器。

域名解析

使用UDP(多对一),所以不能TCP
域名解析是指把域名映射为IP地址正向解析)或把IP地址映射成域名反向解析)的过程。

  1. 解析器通过网络向本地域名服务器53号端口发送一个以UDP数据报封装的DNS请求报文,询问与该域名对应的IP地址;
  2. 本地域名服务器查找自己的域名数据库(映射文件),将域名对应的IP地址组成一个以UDP数据报封装的DNS响应报文,返回给解析器;若在本地域名数据库中查不到,则此域名服务器就暂时成为全球DNS中的另一个客户,并向其它.域名服务器发出查询请求,直至找到能回答请求的域名服务器为止,并将解析结果响应给本地域名服务器;本地域名服务器再将解析结果返回给客户端解析器;
  3. 客户端解析器最终收到响应报文后,再将解析得到的IP地址返回给应用程序。
  • 递归与迭代相结合的查询:
    • 发起请求使用递归查询
    • 后序解析使用迭代查询
  • 递归查询:

  • 高速缓存:
    • 一旦(任何)域名服务器得知了某个映射,就将其缓存。
    • 在一定时间间隔后缓存的条目将会过期(自动消除)

文件传输协议(FTP)

  • FTP采用客户/服务器的工作方式,它使用TCP可靠的传输服务。一个FTP服务器进程可同时为多个用户进程提供服务。(端口21/20

    工作原理

    文件传输协议(File Transfer Protocol, FTP)是因特网上使用得最广泛的文件传输协议。

  • FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。
  • 它屏蔽了计算机系统的细节,因而适合于在异构网络中的任意计算机之间传送文件。
  • 功能:
    • 提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力。
    • 以用户权限管理的方式提供用户对远程FTP服务器上的文件管理能力。
    • 以匿名FTP的方式提供公用文件共享的能力。

      连接

      FTP在工作时使用两个并行的TCP连接:一个是控制连接(端口号21),一个是数据连接(端口号20)。使用两个不同的端口号可使协议更加简单、更容易实现。

  • 控制连接:
    • 服务器监听21号端口,等待客户连接,建立在这个端口上的连接称为控制连接
    • 用来传输控制信息(如 连接请求、传送请求等),并且控制信息都以7位ASCII格式发送
    • 在整个会话期间一直保持打开状态。
  • 数据连接:
    • 数据连接用来连接客户端和服务器端的数据传送进程,数据传送进程实际完成文件的传送,在传送完毕后“数据传送连接”结束运行
  • 过程:
    1. 服务器监听21号端口
    2. 控制连接三次握手
    3. 客户发出的传送请求,通过控制连接发送给服务器端的控制进程,但控制连接并不用来传送文件。

      注意:在传输文件时还可以使用控制连接(如 客户在传输中途发一个终止传输的命令),因此控制连接在整个会话期间一直保持打开状态。

    4. 服务器端的控制进程接收到FTP客户发来的文件传输请求
    5. 创建“数据传送进程”和“数据连接”
    6. 数据连接用来连接客户端和服务器端的数据传送进程
    7. 数据传送进程实际完成文件的传送
    8. 在传送完毕后“数据传送连接”结束运行。

电子邮件

电子邮件系统的组成结构

  • 用户代理(User Agent, UA):用户与电子系统的接口。
  • 邮件服务器:组成电子邮件系统的核心。采用C/S方式工作,当能够同时充当客户和服务器。
  • 邮件发送协议和读取协议:
    • 邮件发送协议:用于用户代理向邮件服务器发送邮件或在邮件服务器之间发送邮件,通常使用SMTP

      SMTP采用的是“推”(Push)的通信方式,即 在用户代理向邮件服务器发送邮件及在邮件服务器之间发送邮件时,SMTP客户端主动将邮件“推”到SMTP服务器端。

    • 邮件读取协议:用于用户代理从邮件服务器读取邮件,如 POP3

      POP3采用的是“拉”的通信方式,即 用户读取邮件时,用户代理向邮件服务器发出请求,“拉”取用户邮件中的邮件。

多用途网络邮件扩充(MIME)

由于SMTP只能传送一定长度的ASCII码,许多其他非英语国家的文字(如中文)就无法传送,且无法传送可执行文件及其他二进制对象,因此提出了多用途网络邮件扩充(Multipurpose Internet Mail Extensions, MIME)。(相当于一个翻译官

简单邮件传输协议(SMTP)

(Simple Mail Transfer Protocol, SMTP)是一种提供可靠且有效的电子邮件传输的协议,它控制两个相互通信的SMTP进程交换信息。

  • SMTP采用客户/服务器方式,使用TCP连接,端口号为25。(“推”

    负责发送邮件的SMTP进程就是SMTP客户,而负责接收邮件的SMTP进程就是SMTP服务器。

  • 邮件报文必须使用7-bit ASCII表示。

  • 过程:
    • 连接建立
    • 邮件传送
    • 连接释放

邮局协议(POP3)

(Post Office Protocol, POP)是一个非常简单但功能有限的邮件读取协议,现在使用的是它的第3个版本POP3。

  • POP也采用客户/服务器的工作方式,使用TCP连接,端口号为110
  • 工作方式:
    • 下载并保留
    • 下载并删除
  • 用户使用POP3协议无法在邮件服务器上建立远程文件夹,对自己的邮件进行重组织,只能将邮件下载到本地计算机进行重组织。

网际报文存取协议(IMAP)

  • 比POP3复杂得多
  • 允许用户在服务器上建立远程文件目录,组织自己的邮件
  • 允许用户代理读取邮件的一部分

基于万维网的电子邮件

  • 电子邮件从A发送到网易邮件服务器使用HTTP协议。
  • 两个不同邮件服务器之间的传送使用SMTP。
  • 邮件从新浪邮件服务器传达到B是使用HTTP协议。
  • 特点:
    • 用户浏览器邮件服务器之间的邮件发送或接收使用HTTP
    • 仅在不同邮件服务器之间传送邮件时才使用SMTP
  • 优点:
    只要能够找到上网的计算机,打开任何一种浏览器就可以非常方便地收发电子邮件

万维网(WWW)

万维网(World Wide Web, WWW)是一个资料空间,在这个空间中:一个有用的事物称为一个“资源”,并由一个全域“统一资源定位符”(URL)标识,这些资源通过超文本传输协议(HTTP)传送给使用者,而后者通过单击链接来获取资源。

  • 万维网客户/服务器方式工作。

    浏览器是在用户计算机上的万维网客户程序,而万维网文档所主流的计算机则运行服务器程序,这台计算机称为万维网服务器。

  • 万维网的内核部分:
    • 统一资源标识符(URL):负责标识万维网上的各种文档,并使每个文档在整个万维网的范围内具有唯一的标识符URL。(相当于一个文件名在网络范围的扩展)
    • 超文本传输协议(HTTP):一个应用层协议,它使用TCP连接进行可靠的传输,HTTP是万维网客户程序和服务器程序之间交互所必须严格遵守的协议。
    • 超文本标记语言(HTML):一种文档结构的标记语言,它使用一些约定的标记对页面上的各种信息(包括文字、声音、图像、视频等)、格式进行描述。
  • URL:
    • 一般形式: <协议> :// <主机> : <端口> / <路径>

      常见的协议有http、ftp等;主机是存放资源的主机在因特网中的域名,也可以是IP地址;端口和路径有时可以省略。

    • 在URL中不区分大小写。

超文本传输协议(HTTP)

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

  • 从层次上看,HTTP是面向事务的(Transaction-oriented)应用层协议,它规定了在浏览器和服务器之间的请求和响应的格式与规则,是万维网上能够可靠地交换文件的重要基础。

  • 工作过程:
    • 每个万维网站点都有一个服务器进程,它不断地监听TCP的端口80(默认)
    • 当监听到连接请求后,便与浏览器建立连接。
    • TCP连接建立后,浏览器就向服务器发送请求获取某个Web页面的HTTP请求。
    • 服务器收到HTTP请求后,将构建所请求的Web页的必需信息,并通过HTTP响应返回给浏览器。
    • 浏览器再将信息进行解释,然后将Web页显示给用户。
    • 最后,TCP连接释放。
  • 例子
    用户点击鼠标后所发生的事件:
    1. 浏览器分析超链指向页面的URL。
    2. 浏览器向DNS请求解析www.tsinghua.edu.cn的IP地址。
    3. 域名系统DNS解析出清华大学服务器IP地址。
    4. 浏览器与服务器建立TCP连接
    5. 浏览器发出取文件命令:GET /chn/ yxsz/ index. htm。
    6. 服务器给出响应,把文件index. htm发给浏览器
    7. TCP连接释放。
    8. 浏览器显示“清华大学院系设置”文件index.htm中的所有文本。
  • HTTP的主要特点:
    • HTTP是无状态的。也就是说,同一个用户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时的相同。

      因为服务器并不记得这个曾经访问过的客户,也不记得为该客户曾经服务过多少次。(服务器中没有保存客户端的状态,客户端必须每次带上自己的状态去请求服务器)

    • HTTP协议本身是无连接的,虽然它使用了面向连接的TCP向上提供的服务,但通信的双方在交换HTTP报文之前是不需要建立HTTP连接的(只用建立TCP连接)。
  • 连接:
    • HTTP协议使用非持久连接:建立TCP连接后,一个HTTP请求过去,一个HTTP响应过来,然后就断开TCP连接。
    • HTTP协议使用持久连接:万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。
      • 非流水线方式:1RTT(建立TCP)+1RTT(请求并接收一个基本网页)+nRTT(请求并接收n个基本网页上的图片)=(n+2)RTT
        客户在收到前一个响应后才能发出下一个请求。

        这比非持续连接的两倍RTT的开销节省了建立TCP连接所需的一个RTT时间。但服务器在发送完一个对象后,其TCP连接就处于空闲状态,浪费了服务器资源。

      • 流水线方式:1RTT(建立TCP)+1RTT(请求并接收一个基本网页)+1RTT(请求并接收n个基本网页上的图片)=3RTT
        客户在收到HTTP的响应报文之前就能够接着发送新的请求报文。

        一个接一个的请求报文到达服务器后,服务器就可连续发回响应报文。使用流水线方式时,客户访问所有的对象只需花费一个RTT时间,使TCP连接中的空闲时间减少,提高了下载文档效率。

  • HTTP的报文结构:

    HTTP是面向文本的(Text-Oriented),因此报文中的每个字符都是一些ASCII码串,并且每个字段的长度都是不固定的

  • 分类:
    • 请求报文:从客户向服务器发送的请求报文。
    • 响应报文:从服务器到客户的回答。

本文图片来源:https://blog.csdn.net/w372426096/article/details/78484149

猜你喜欢

转载自www.cnblogs.com/blknemo/p/11561835.html