计算机网络 应用层

二、计算机网络 应用层

前言

本文介绍计算机网络应用的体系结构、网络应用通信的基本原理、应用层协议、DNS、WEB 应用与 HTTP、电子邮件系统与 SMTP 、FTP 应用。

1. 应用体系结构

  1. 客户/服务器(C/S)模式结构网络

    通信双方分为服务器程序和客户程序,服务器程序要先运行,走好接收通信的准备,被动的等待客户通信的到来,客户程序运行后,主动与服务器进行通信。

    特点:C/S 网络应用最主要的特征是通信只在服务器与客户之间进行,客户与客户之间不进行直接通信。在 C/S 通信过程中,主动发起通信的一方就是客户,被动接收通信的一样就是服务器。

    tips: 随着技术的进步,服务端已经可以主动与客户端发起通信到了,比如 WebSocket 等技术,还有移动设备常见的基于长连接的 PUSH 技术。

  2. 纯 P2P 结构的网络应用

    P2P 网络应用在文件分发、文件共享、视屏流服务等应用中表现出优越的性能。在纯 P2P 网络应用中,所有的通信都是在对等的通行双方之间直接进行,通信双方没有传统意义上的客户与服务器之分,“地位”对等。

    对等软件通常需要运行在普通用户的计算设备上,可以动态地直接与其他对等端进行通信。因此,P2P 应用中的每个对等端都同时具备 C/S 应用的客户与服务器的特征,是一个服务器与客户的结合体。

  3. 混合结构网络应用

    混合结构网络应用将 C/S 应用与 P2P 应用相结合,既有中心服务器的存在,又有对等端(客户)间的直接通信。

    在混合结构网络应用中,通常每个客户通过 C/S 方式想服务器注册自己的网络地址,声明可以共享的资源或可提供的服务,并通过中心服务器发现其他在线的客户,检索其他客户可以共享的资源等信息。当某客户希望获取另一个客户拥有的资源或服务时,遍直接与该客户发起通信,请求其提供服务。

2. 网络应用通信基本原理

网络应用的本质是运行在不同主机上(也可以运行同一台主机上)的应用进程之间的通信。网络应用选择性的使用传输层提供的服务,来实现自己的功能。应用层使用的下层的接口就是 socket。

3. 域名解析系统(DNS)

DNS 服务的作用是将域名解析为 IP 地址,实现将域名映射为 IP 地址的过程,称为域名解析。

域名的结构是具有层次的,比如 com 、us 、cn 这种顶级域名,在这顶级域名下下可以有 baidu.com ,xxx.cn 等这样的二级域名。对应的,域名解析也是有层次的,根域名服务器知道各个顶级域名服务器的地址,顶级域名服务器又知道自己这一层次下的二级域名服务器地址。

域名解析流程:在进行域名解析时,会首先到本地域名服务器查询,看能否找到对应的域名映射,如果找到了就返回给调用的主机,如果没有找到,会从根域名服务器开始进行查找,根域名服务器会告诉你这个域名的顶级域名服务器的 IP 地址,然后由本地域名服务器去查这个顶级域名服务器,顶级域名服务器又会告诉你对应权威域名服务器 IP 地址,最后从这个权威域名服务器就可以查询到对应的 IP 地址了。同时本地域名服务器要将结果缓存下来,同时设置一个有效时间。

此外,域名的查询有两种方式:迭代查询递归查询。迭代查询是每次都由本地服务器去查询下一级的域名服务器,如下图所示。递归查询是指,本地服务器查询根服务器时,再由根服务器去查询顶级域名服务器,顶级域名服务器再去查询权威服务器,最后一层层返回给本地域名服务器,跟程序代码中的递归同理。

上述的查询过程对主机是透明的,主机只知道自己从本地服务器查询到了 IP 地址,也就是说,主机不知道到底是迭代还是递归。

在计算机网络形成早期,网络中的设备比较少,ip 地址与域名的映射是保存在操作系统中的 hosts 文件中,但随着设备的增多,在本地保存映射关系显然是行不通了。在我们开发中,经常会在测试期间,通过在 hosts 文件中修改某个域名对应的服务器地址,让它映射到一台测试服务器上去。

DNS 的作用除了域名解析之外,还可以通过将域名映射到不同的 IP,实现负载均衡的功能。

DNS 的知名端口为:53

4. 万维网应用

万维网(Web)的应用主要包括 Web 服务器、浏览器与超文本传输协议(HTTP)等。

HTTP

HTTP 是 Web 应用的应用层的协议,定义了浏览器如何向服务器发送请求以及服务器如何向浏览器响应。

HTTP 基于传输层的 TCP 传输报文,浏览器在向服务器发送请求之前,首先需要建立 TCP 连接,然后才能发送 HTTP 请求报文,并接收 HTTP 响应报文。根据 HTTP 在使用 TCP 连接的策略的不同,可以分为非持久连接的 HTTP 和 持久连接的 HTTP。

HTTP 报文:HTTP 报文由4部分组成,起始行、首部行、空白行和实体主题。起始行与首部是行分隔的 ASCII 文本,每行有 CRLF (回车换行)终止,空白行中只有 CRLF , 主体可以是文本或二进制数据。

HTTP 典型的请求方法

  • GET:请求读取由 URL 所标识的信息,是最常见的方法。没有请求体,参数都在 URL 中。
  • HEAD:请求读取由 URL 所标识的信息的首部,即无须在响应报文中包含对象。
  • POST:给服务器添加信息,比如提交一些信息。
  • PUT:在指明的 URL 下请求一个文档,但是由于 Http/1.1 的 PUT 方法不带验证机制,存在安全性问题,所以一般的网站都不用这个方法来进行文件传输。
  • OPTION:请求一些选项的信息。用来查询请求的指定资源都支持什么 http 方法。
Cookie

cookie 可以用来跟踪记录一些会话信息,服务端在响应报文中增加 Set-cookie 首部行,其值为服务端生成的一个唯一的串。浏览器收到这个响应后,就会向本地缓存中存入这个值,下次再请求时,浏览器就会在请求报文中增加 Cookie 的首部行,值就是服务端下发的串,这样服务器收到请求报文后,就能够辨别出这是哪一个用户。通常,利用 cookie 可以实现未登录用户的跟踪。

对于 cookie 的争议,cookie 可以用来收集用户隐私。因此现在很多浏览器都是默认阻止接收 cookie 。

HTTP 的知名端口号为 80 。

5. Internet 电子邮件

电子邮件涉及到的协议通常有三个,SMTPPOP3IMAP

SMTP 是代理向发件人服务器、发件人服务器向收件人服务器推邮件时用到的协议。

POP3 和 IMAP 是代理从收件人服务器拉取邮件时用到的协议。

POP3 的邮件服务器的特点是:用户将邮件从服务端拉到本地后,服务器会将这个邮件删除。

IMAP 的特点:用户拉取邮件时,相当于在远程浏览服务器上的文档,服务端不会将邮件删除。

还有一种 web 邮件系统,它是由 HTTP 实现。

SMTP 服务端的知名端口为: 25

POP3 服务端的知名端口为:110

6. FTP 应用

FTP 是一种 C/S 架构的应用,客户端和服务器分别有两个进程,连接的建立以及传输文件时的一些控制信号由控制进程负责,传输文件数据时,则由数据传输进程负责。

控制进程端口号:21

传输进程端口号:20

7. P2P 应用

P2P 体系结构对服务器的依赖性很小,甚至对于纯 P2P 来说,整个应用几乎不依赖某个集中服务器,应用都是动态地在对等方之间进行。在 P2P 应用中,对等方随时可能加入应用,也随时可能离开应用,具有很强的应用规模伸缩性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值