计算机网络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服务器层次结构中。
旧时不展,不朽为歌。