计算机网络学习系列(应用层)

应用层协议原理

网络应用

  • 网络应用运行于端系统
  • 网络应用的消息传递通过网络进行
  • Web服务器软件与浏览器软件交互
  • 网络核心不运行应用程序
  • 终端系统的应用程序允许快速的开发和传播

协议的体系结构

应用程序结构

  • client-server:传统应用
    Email,FTP,Http

  • peer-to-peer(P2P):流量密集型应用
    Internet Phone,IPTV,Instant Message(IM)

Client-server 结构

基础设施密集型应用

server:
  • always-on host:主机运行
  • permanent IP address:不变的IP地址
  • data centers for scaling:数据中心服务器集群满足伸缩性要求
Client
  • communicate with server:通过服务器进行交流
  • may be intermittently connected:间歇性连接
  • may have dynamic IP addresses:动态的IP地址
  • do not communicate directly with each other:相互之间没有直接的连接

P2P

流量密集型应用

  • no always-on server:没有不间断服务器
  • arbitrary end systems directly communicate:任意端系统直接通信
  • peers request service from other peers, provide service in return to other peers:对等点向其他对等点请求服务,并向其他对等点提供服务
self scalability – new peers bring new service capacity, as well as new service demands
  • peers are intermittently connected and change IP addresses:对等点间歇性地连接并更改IP地址
complex management:复杂管理

进程通信

process: program running within a host
进程:在主机中运行的程序

client process: process that initiates communication
server process: process that waits to be contacted

  • within same host, two processes communicate using inter-process communication (defined by OS):在同一主机中,两个进程使用进程间通信进行通信(由OS定义)
  • processes in different hosts communicate by exchanging messages:不同主机中的进程通过交换消息进行通信

对于P2P文件共享,下载文件的对等方标识为客户,上载文件的对等方标识为服务器。

进程与网络间接口:套接字

  • process sends/receives messages to/from its socket
    -进程从它的套接字发送/接收消息

  • socket analogous to door:
    -进程类比为一个房子,它的套接字类比于它的门,当一个进程想向位于另一台主机的另一个进程发送报文时,它把报文推出该门(套接字)。该发送进程假定该门到另外一侧之间有运输的基础设施,该设施将把报文传送到目的进程的门口。一旦该报文抵达目的主机,它通过接收进程的门(套接字)传递,然后接收进程对该报文进行处理。
    在这里插入图片描述

进程寻址:

IP地址区分不同机器,端口号区分同一机器上不同进程

应用层所需传输层服务

data integrity(数据完整性)

有些应用程序需要可靠数据传输;
有些应用程序容忍一定量的数据丢失;

Throughput(吞吐量)

具有吞吐量要求的应用被称为带宽敏感应用;
没有对吞吐量有严格要求的应用称为弹性应用;

Timing(定时)

实时的应用对时延的要求比较高;

Security(安全性)

数据加密传输

因特网传输层提供的服务

TCP服务

  • 面向连接的服务:传输前在服务器和客户端之间建立一条稳定的连接。
  • 可靠的数据传送服务:通信进程能够依靠TCP, 无差错、按适当顺序交付所有发送的数据。
  • 拥塞控制机制:详见第三章
  • TCP加强版SSL,提供了进程到进程的的安全性服务,包括加密,数据完整性,端点鉴别,有自己的套接字API

UDP服务

  • 提供最小服务
  • 无连接
  • 不可靠数据传输
  • 不保证数据到达顺序
  • 没有拥塞控制机制
  • 发送端向下层注入数据没有服务级别的限制

因特网运输协议不提供的的服务

不提供任何的定时和带宽保证

应用层协议

定义了运行在不同端系统上的应用程序进程如何相互传递报文。

  • 交换的报文类型, 例如请求报文和响应报文。
  • 各种报文类型的语法, 如报文中的各个字段及这些字段是如何描述的。
  • 字段的语义, 即这些字段中包含的信息的含义。
  • 一个进程何时以及如何发送报文, 对报文进行响应的规则。

Web和HTTP

HTTP概况

Web的应用层协议是超文本传输协议(HyperText Transfer P rotocol, HTTP) , 它是Web的核心,HTTP 由两个程序实现: 一个客户程序和一个服务器程序。

客户程序和服务器程序运行在不同的端系统中, 通过交换HTTP报文进行会话。HTTP定义了这些报文的结构以及客户和服务器进行报文交换的方式。

无状态协议

非持续连接和持续连接

对于一个用户的每一个间断性请求,服务器是通过一个单独的TCP连接,还是采用相同的TCP连接发送呢?
前者:非持续性连接
后者:持续性连接

采用非持续连接的HTTP

例子,客户端向服务端请求一个网页,该网页含有一个HTML基本文件和10个JPEG图形,这11个对象位于同一台服务器。
在这里插入图片描述
缺点:

  • 必须为每一个请求的对象建立和维护一个全新的连接。对于每个这样的连接, 在客户和服务器中都要分配TCP 的缓冲区和保持TCP 变量,这给Web 服务器带来了严直的负担, 因为一台Web 服务器可能同时服务千数以百计不同的客户的请求。
  • 每一个对象经受两倍RTT 的交付时延,即一个RTT 用于创建TCP, 另一个RTT 用于请求和接收一个对象。

采用持续连接的HTTP

在这里插入图片描述

HTTP报文格式

HTTP 报文有两种:请求报文响应报文

HTTP 请求报文

/** 请求行 **/
方法字段   URL字段                    HTTP版本字段
GET          /somedir/page.html    HTTP/1.1
/** 首部行 **/
对象主机
Host: www.someschool.edu
不使用持续连接
Connection: close
浏览器类型
User-agent: Mozilla/5.0
语言版本
Accept-language: fr

请求方法类型:

HTTP/1.0:

  • GET
  • POST
  • HEAD
    请求资源是否存在

HTTP/1.1:

  • GET, POST, HEAD
  • PUT
    将实体主体中的文件上载到URL字段中指定的路径
  • DELETE
    删除URL字段中指定的文件

Http的响应报文

HTTP/1. l 200 OK
Connection: close
Date: Tue, 09 Aug 2011 15:44:04 GMT
Server: Apache/2.2.3 (CentOS)
Last-Modified: Tue, 09 Aug 2011 15:11:03 GMT
Content-Length: 6821
Con七ent-Type: text/html
(data data data data data ...)

首部行:

  • Date:指示服务器产生并发送该响应报文的日期和时间。
  • Server:指示该报文是由一台XXX服务器发送的
  • Last-Modify:指示了对象创建或者最后修改的日期和时间。
  • Content_Length:指示了被发送对象的字节数
  • Content_Type:实体体的对象类型

常见的状态码:

  • 200 OK :请求成功, 信息在返回的响应报文中。
  • 30 Moved Permanently: 请求的对象已经被永久转移了,新的URL定义在响应报文的Location: 首部行中。客户软件将自动获取新的URL。
  • 400 Bad Request:一个通用差错代码, 指示该请求不能被服务器理解。
  • 404 Not Found: 被请求的文档不在服务器上。
  • 505 HTTP Version Not Supported: 服务器不支持请求报文使用的HTTP 协议版本。

Cookie

用于标识一个用户,用户首次访问一个站点时,可能需要提供一个用户标识,在后继会话中,浏览器向服务器传递一个cookie首部,从而向该服务器标识了用户。因此,cookie 可以在无状态的HTTP 之上建立一个用户会话层。
在这里插入图片描述

四个组件

  • 在HTTP 响应报文中的一个cookie 首部行;
  • 在HTTP 请求报文中的一个cookie 首部行;
  • 在用户端系统中保留有一个cookie 文件, 并由用户的浏览器进行管理;
  • 位于Web 站点的一个后端数据库。

Web 缓存

目的: Client通过访问Web代理获取请求信息
工作过程:

  • 浏览器建立一个到Web 缓存器的TCP 连接, 并向Web 缓存器中的对象发送一个HTTP 请求。
  • Web 缓存器进行检查, 看看本地是否存储了该对象副本。如果有, Web 缓存器就向客户浏览器用HTTP 响应报文返回该对象。
  • 如果Web 缓存器中没有该对象, 它就打开一个与该对象的初始服务器(如www. someschool. edu) 的TCP 连接。Web 缓存器则在这个缓存器到服务器的TCP连接上发送一个对该对象的HTTP 请求。在收到该请求后, 初始服务器向该Web缓存器发送具有该对象的HTTP 响应。
  • 当Web 缓存器接收到该对象时, 它在本地存储空间存储一份副本, 并向客户的浏览器用HTTP 响应报文发送该副本(通过现有的客户浏览器和Web 缓存器之间的TCP 连接)。
  • 在这里插入图片描述

条件GET

代理缓存服务器向服务器发送一个条件GET执行最新检查。

FTP

使用两个并行的TCP连接来传输文件,一个是控制连接,一个是数据连接。

  • 控制连接
    用于两主机之间传输控制信息,如用户标识,口令,改变远程目录的命令以及存放和获取文件的命令
  • 数据连接
    用于实际发送一个文件。

一次会话,控制连接连续,在整个会话期保留状态,数据连接非持续,

在这里插入图片描述

SMTP

后期完善

域名系统

识别主机的方式:主机名,IP地址

人喜欢记忆主机名标识方式,路由器喜欢定长的,层次结构的IP地址。

DNS提供一种能进行主机名到IP 地址转换的目录服务。

DNS定义

  • 一个由分层的DNS 服务器(DNSserver) 实现的分布式数据库
  • 一个使得主机能够查询分布式数据库的应用层协议
  • DNS 协议运行在UDP 之上, 使用53号端口
  • 使用客户-服务器模式运行在通信的端系统之间

DNS提供的服务

  • 域名转换
  • 主机别名
  • 邮件服务器别名
  • 负载分配‘

DNS工作机理概述

分布式数据库的精彩范例
在这里插入图片描述

  • 根DNS服务器:
  • 顶级域(DNS) 服务器(Top-Level Domain, TLD):
    负责顶级域名如com 、org 、net 、edu 和gov,
    以及所有国家的顶级域名如uk 、fr、ca 和jp。
  • 权威DNS 服务器:
    在因特网上具有公共可访问主机(如Web 服务器和邮件服务器)的每个组织机构必须提供公共可访问的DNS 记录, 这些记录将这些主机的名字映射为IP地址。
    在这里插入图片描述
  • 递归查询:
    该模式下DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS 服务器本地没有存储查询DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。
  • 迭代查询
    当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台DNS 服务器地址,客户机再向这台DNS 服务器提交请求,依次循环直到返回查询的结果为止。

在这里插入图片描述

DNS 缓存

DNS缓存服务器;
DNS本地服务器也可以缓存;
由于主机名和IP地址间的映射不是永久的,DNS服务器一段时间后将丢弃缓存;
如果存在缓存,则可以绕过查询系统中的一些服务器。

DNS记录

DNS 分布式数据库的所有DNS 服务器存储了资源记录(Resource Record,RR),RR 提供了主机名到IP 地址的映射。
资源记录是一个包含了下列字段的4元组:

  • TTL:
    记录的生存时间,决定了资源记录应当从缓存中删除的时间
  • Name,Value取决于Type:
    • Type = A,Name是主机名,Value是主机名对应的IP地址
    • Type = B,Name是个域,Value是个知道如何获得该域中主机IP地址的权威DNS服务器的主机名。
    • Type = CNAME,Value是别名为Name的主机对应的规范主机名。该记录能够向查询的主机提供一个主机名对应的规范主机名。
    • Type = MX,Value是个别名为Name的邮件服务器的规范主机名,

DNS 报文

在这里插入图片描述

  • 标识符:
  • 标志:
  • 问题:

在这里插入图片描述

P2P 应用

后期补

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值