计算机网络02-应用层(http、email、dns)

计算机网络02

第二章 应用层(http、email、dns)

一、应用层协议原理

1 · 应用层的概念与作用

应用层规定了 网络应用程序之间用什么方式通信互联网有哪些典型的应用以及应用程序之间的通信规程。

2 · 网络应用体系结构

在第一章我们提及了两种主流体系结构:

  • 客户端/服务器(c/s方式)
    所描述的是进程之间服务和被服务的关系,客户是服务的请求方,服务器是服务的提供方,客户发送请求,接收服务器响应。
    服务器的特点

    • 服务器具有固定的地址/域名
    • 服务器是永久打开的
    • 利用大量服务器实现可扩展性

    客户机的特点

    • 与服务器通信,使用服务器提供的服务
    • 间歇性接入网络
    • 可能使用动态IP地址
    • 不会与其他客户机直接通信
  • P2P(点对点)
    两个主机在通信时并不区分哪一个是服务请求方还是服务提供方,通信在对等实体之间直接进行(如QQ),他的特点是高度可伸缩,但难以管理

    • 没有永远在线的服务器
    • 任意端系统/节点之间可以直接通讯
    • 节点间歇性接入网络
    • 节点可能改变IP地址

3 · 进程之间如何通信

一个进程可以被认为是运行在端系统中的程序。不论是c/s结构还是p2p结构中都有客户机进程与服务及进程之分。

注意:进程!= 程序 引申:春招12.17-1-什么是进程

  • 同一端系统中的通信
    使用进程间的通信规则进行通信,其规则由端系统的操作系统决定。操作系统中的进程通信方法见->春招12.23日-1
  • 不同端系统中的通信
    通过跨越计算机网络 交换报文 而相互通信。发送进程生成并向网络中发送报文,接收进程接收报文并可能通过会送报文进行响应。
  • 通信的方法
    在不同主机上的进程间通信,每个进程必须拥有标识符。这个标识符由IP地址(主机的地址)+ 端口号(在目的主机中指定接收进程的标识)决定。

二、常用应用层协议

1 · 万维网的构成

万维网即 WWW 的缩写 (简称'3W',英文全称为“World Wide Web”),其核心部分由三个部分组成:

  • 统一资源定位符(Uniform Resource Locator,URL
    统一资源定位符又称网页地址,一个完整的URL由资源类型、存放资源的主机域名、资源文件(包括路径和名称)这三个部分。常见的url类型有:http、ftp、telnet、gopher等。
  • 超文本传送协议(Hyper Text Transport Protocol,HTTP
    是万维网的应用层协议
  • 超文本标记语言(Hypertext Markup Language,HTML
    HTML是一种简单、通用的网络通用语言,它允许建立文本与图片相结合的页面,并支持被网上任何其他人浏览。

2 · Http协议

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

  • http使用tcp作为支撑运输协议。 传输过程为:
    • 服务器在80端口等待客户的请求
    • 浏览器发起到服务器的TCP连接,并发送http请求报文
    • 服务器接受TCP连接
    • 客户端与服务器交换HTTP消息,发送响应报文
    • 关闭TCP连接
  • http是无状态的。 因为服务器不保存任何有关客户端过去所发请求的信息,假如在短时间内发送两次同样的请求,服务器不会因为已经提供了对象而不再反应。

3 · E-mail

因特网的电子邮件系统的3个主要组成部分:

  • 用户代理
    作为邮件阅读器,允许用户阅读、回复、发送、保存和撰写报文。
    发送邮件时从发送方的用户代理传输到发送方的邮件服务器,再传输到接收方的邮件服务器中。当接收邮件的时候,接收方的用户代理载从邮件服务器中获取报文。
  • 邮件服务器(mail servet)
    接收方的邮件服务器上有邮箱,存储发送给用户的报文。
    发送方的邮件服务器通常处于报文队列,通过SMTP协议转发到接收方邮件服务器。
  • 简单邮件传输协议(SMTP)
    是因特网点子邮件中的主要应用层协议,使用tcp可靠数据传输服务。分为客户机端和服务器端,每个邮件服务器上都有SMTP的客户机端和服务器端。

4 · DNS

因特网上识别主机的方式有两种:1.使用主机名(域名),2.使用IP地址。而DNS(域名解析系统 Domain Name System)的作用就是进行主机名到IP地址的目录服务。
DNS是

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

DNS提供的服务有

  • 域名向IP地址的翻译
    dns通常是由其他应用层协议所使用的,包括http、smtp、ftp,将用户提供的主机名解析为IP地址
  • 主机别名
    一台主机可能拥有多个别名,应用程序可以调用DNS对提供的主机名别名进行解析成主机名。
  • 邮件服务器别名
    和主机别名类似,dns可以将邮件服务器名称解析成其对应的主机名。
  • 负载均衡:Web服务器
    dns用于在冗余的服务器之间进行负载分配。繁忙的站点被冗余分布在多台服务器上,每台服务器运行在不同的端系统上,有着不同的ip地址,并记录在dns数据库中。

为什么不使用集中式的dns(即因特网上只使用一个dns,对其余进行映射)

  • 单点故障 若该dns服务器崩溃,将造成因特网瘫痪
  • 通信容量 单个dns服务器将处理所有的dns请求
  • 距离问题 远距离的dns请求将经过低俗和拥塞的链接,将造成严重的时延
  • 维护 单个dns服务器将为所有的因特网主机保留记忆,并且因每个新添加的主机而频繁更新

分布式数据库
为了处理扩展性问题,dns使用了大量的dns服务器,以层次方式组织且分布在全世界范围内。
DNS服务器一般分三种,都处在dns服务器的层次结构中:

  • 根域名服务器 本地域名解析服务器无法解析域名时,访问根域名服务器。它提供顶级域名服务器的ip地址。
  • 顶级域名服务器 提供权威域名服务器的ip地址,负责com, org, net,edu等 顶级域名和国家顶级域名,例如cn, uk, fr等。
  • 权威域名服务器 组织的域名解析服务器,提供组织内部服务器的解析服务

除了上述三类,还有一种重要的dns服务器,本地DNS服务器

  • 不严格属于层次结构
  • 每个ISP有一个本地域名服务器(默认名字服务器)
  • 局域网中主机发出dns请求时,被发往本地dns服务器,它起着代理的作用,并再转发到dns服务器层次结构中。
posted @ 2021-01-06 22:06  凉将  阅读(555)  评论(0编辑  收藏  举报