计算机网络自顶向下—第二章—应用层

1. 应用层协议原理

1.1. 网络应用程序体系结构

1.1.1. 客户-服务器体系结构(C/S)

存在一个能够向客户机提供服务的服务器(总是打开的主机,固定永久的IP地址)(eg.WEB服务器);
存在一个或多个主动连接服务器,试图从服务器那里获取所需服务的客户机(eg.IE浏览器)
配备大量主机的数据中心;
客户机之间不能相互通信;
为提高服务器的处理能力,通常采用服务器群集(Server Farm)。

1.1.2. P2P体系结构

任何一方既提供服务又享受服务;
结点之间可以相互通信,服务器不总是打开着;
结点的地址以及他们之间的连接可能随时发生变化;

非常容易扩展,但也难以管理;
对位于数据中心的专用服务器有最小的(或者没有)依赖,相反,应用程序在间断连接的主机之间使用通信,这些主机被称为对等方。
 

1.2. 进程通信

两个不同端系统上的进程,通过跨越计算机网络交换报文而相互通信:
①发送进程生成并向网络中发送报文,接收进程接收这些报文可能通过将报文发送回去进行响应;
②发起通信的进程被标识为客户,在会话等待联系的进程是服务器。

1.2.1. 客户进程/服务器进程

同一台主机上进程之间通信的规则,由操作系统制定,和计算机网络无关;不同主机上进程之间通信的规则,当然就和网络相关了,这套规则在计算机网络中,称之为“应用层协议”。
一个进程可以被认为是运行在端系统中的一个程序,在同一主机内,两个进程使用进程间通信进行通信。

1.2.2. 进程与计算机之间的接口

进程通过一个称为套接字的软件接口向网络发送报文和从网络接收报文,套接字也称为应用程序和网络之间的应用程序编程接口

1.2.3. 进程寻址

我们需要定义两种信息:主机的地址;在目的主机中指定接收进程的标识符。

1.3. 可供应用程序使用的运输服务

可靠数据传输,吞吐量,定时,安全性。
 

1.4. 因特网提供的运输服务(运输层协议)

1.4.1. TCP服务

面向连接:在客户端和服务器之间需要建立连接
可靠传输:在发送和接收进程之间
流量控制:发送数据的速度不超过接收的速度
拥塞控制:当网络超负荷时,束紧发送端口,减缓发送速度
不提供:实时性,最小带宽承诺

1.4.2.UDP服务

是一种不提供不必要服务的轻量级运输协议,仅仅提供最小服务,因此在两个进程通信前都没有握手过程,在客户端和服务器进程之间实现“不可靠的”数据传输
不提供:连接建立,可靠性保证,流量控制,拥塞控制,实时性,最小带宽承诺


1.5.应用层协议

应用层协议定义了运行在不同端系统上的应用程序如何相互传递报文,特别是应用层协议定义了:
交换的报文类型,例如请求报文和相应报文;
各种报文类型的语法,如报文中各个字段及这些字段是如何描述的;
字段的语义,即这些字段中的信息的定义;
进程何时、如何发送报文及对报文进行响应。

2. WEB应用和HTTP协议

2.1. HTTP概况

Web的应用层协议是超文本传输协议(HTTP),它是Web的核心。

We属于C/S模式。

Web页面是由对象组成的,对象可以是HTML文件,JPEG图形,一个Java小程序或者一个视频片段这样的文件,HTML文件是Web页面的基础,它可以包括各种各样的对象,是一个容器对象;任何一个对象都可以用URL来定位。多数Web页面含有一个HTML基本文件以及几个引用对象。

Web内容的传输——HTTP协议:
客户端启动TCP连接到服务器,端口80,服务器接收来自客户端的TCP连接,http报文咋浏览器和Web服务器之间进行交换,关闭TCP连接。
HTTP是“无状态”的,服务器不存储任何关于请求客户的状态信息。
 

2.2. 非持续连接和持续连接

2.2.1. 非持续连接

假设用户输入了一个URL:cs.cug.edu.cn/xyjj/xyjj.htm(假设该网页包含文本并引用了10jpeg图片)
1a.http客户端启动TCP连接到cs.cug.edu.cn上的http服务器(进程)。Port80是http服务器的默认端口。
1b.在csc.cug.edu.cn上的http服务器在port80等待TCP的连接请求,“接收”并通知客户端。
2.http客户端发送http请求报文(包括URL)进入TCP连接插口。
3.http服务器接收到相应报文,形成响应报文(包含了所请求的对象,xyjj/xyjj.htm),将报文送入端口。
4.http服务器关闭TCP连接。
5.http客户端接收到了包含html文件的响应报文。分析html文件,发现10个引用的jpeg对象。
6.对10jpeg 对象逐个重复1-5步。

工作机制:取对象需要2RTTs——TCP连接,对象请求/传送;总时间=2RTT+文件传输时间;许多浏览器同时打开多个并行的连接来改善性能。

2.2.2. 持久连接

服务器在发送响应后,不再断开TCP连接,而是保持该连接,用于后续对象的传送,直至该连接“休息”了一个较长的时间后,方断开连接;
减少了对服务器端连接数的需求,从而减少了对服务器端套接字资源的占用,提高了服务器的负载能力;
持久连接又可以分为:非流水线方式——一个对象传输完成方能传输下一个;流水线方式——可以一次性发送所有请求,慢慢接收
 

2.3. HTTP报文类型

2.3.1. HTTP请求报文

一般格式:请求行(方法字段,URL,HTTP版本字段),首部行,空行,实体行。

HTTP1.0定义的方法:
GET——向服务器请求指定的URL的对象。
POST——用于向服务器提交表单数据,也可以同时请求一个WEB页面,特别注意:可以不适用POST方法,而使用GET方法发送表单数据以获取新的WEB页面。
HEAD——请求服务器返回一个响应报文,但是该报文中并不包含请求的对象,该方法常常用来进行故障跟踪。

HTTP1.1新定义的方法:
PUT——上传的文件放在实体主体字段中,目标路径由URL字段标明,允许用户上传对象到指定的web服务器的指定路径。
DELETE——删除URL字段中指定的文件,允许用户或者应用程序删除web服务器上的对象。

2.3.2. HTTP响应报文

格式:状态行(协议版本字段,状态码和相应状态信息),首部行,实体行(包含所请求的对象本身)。

常见的HTTP响应状态码和短语:
200 OK——请求成功,被请求的对象在报文中。
301 Moved Permanently ——被请求的对象被移动过,新的位置在报文中有说明。
400 Bad Request——服务器不懂报文请求。
404 Not Found ——服务器上找不到请求的对象。
505 HTTP Version Not Supported ——服务器不支持请求报文使用的HTTP协议版本。


2.4. 用户与服务器的交互:cookie

WEB站点使用cookie的目的:闲置用户的访问,把内容和用户身份关联起来。

Cookie技术的组成部分:在HTTP响应报文中有一个Cookie首部行;在HTTP请求报文中也有一个cookie首部行;在用户的端系统中保留了一个Cookie文件,用用户浏览器负责管理;在Web站点有一个后端数据库。

Cookies和私密性:Cookies运行网站获得相当多的用户的信息;你可能会向网站提供你的姓名和e-mail地址;搜索引擎也可以使用cookie和重定向技术获得很多的信息;广告公司也可以同规格用户访问过的网站来获得用户的相关信息。


2.5. Web缓存

2.5.1. 目的

加速客户端访问WEB页面的速度,减少时延;减少局域网与外部因特网交换的数据量,从而在达到同等服务质量的同时,可以使用较小的网络带宽,节约费用。

2.5.2. 举例

假设:平均对象的大小=1Mb;浏览器对这些对象的平均访问速率为15个/秒;从因特网一侧的路由器转发HTTP请求到它收到响应报文的平均时间为2秒。

结果:总延迟=Internet延迟+访问延迟+局域网延迟;局域网的流量强度=0.15;接入链路的流量强度=1;当流量强度为1时,时延可能非常大,从而导致总时延可能得以分钟计时;流量强度=La/R=(15个请求/秒 ×1Mb/请求)/R。

改进方法一——增加出口带宽,增加到100Mbps:
局域网的流量强度=0.15;接入链路的流量带宽=0.15;总延迟=Internet延迟+访问延迟+局域网延迟=2 sec;请注意:增加出口带宽的费用通常是非常昂贵的

改进方法二——假设WEB缓存(好于方案1)
代价:一台普通PC+一套免费的WEB缓存。
 

2.6. 条件GET方法的使用

目的:更新WEB缓存中WEB对象副本。

3. 因特网中的电子邮件

三个组成部分:用户代理,邮件服务器,简单邮件传输协议(SMTP)

3.1. SMTP协议

使用TCP可靠的传送邮件报文,端口25;
直接传输:发送服务器到接收服务器;
传输的三个阶段:握手,报文传输,结束;
命令/响应交互:命令——ASC||文本,响应——状态码和短语;
邮件报文必须使用7-bit ASC||表示。

SMTP评述:
SMTP使用连接连续
SMTP要求报文(首部&信体)全部使用7-bit ASC||码
某些代码组合不允许出现在报文中
SMTP服务器使用CRLF.CRLF表示邮件报文的结束

3.2. SMTP VS HTTP

都使用ASC||命令/响应交互,状态码
HTTP:每个对象封装在各自响应的报文中
SMTP:多个对象在一个多分部的报文中传送

3.3. 邮件报文格式

首部诸行(寄去地址,自己地址,日期等等)
空行
信体

3.4. 邮件访问协议

3.4.1. POP3协议

客户端命令:user——用户名;pass——口令
服务器响应:+OK(正常),-ERR(命令出错)

用户代理分为:
“下载-删除”——用户如果更换客户机无法再次阅读原本的邮件
“下载-保存”——在不同的客户机上保存邮件的副本

POP3会话是没有状态的。

用户使用POP3协议无法再邮件服务器上对自己的邮件进行重组织,只能将邮件下载到本地计算机进行重组织。

3.4.2. IMAP协议

将所有的邮件都保存在服务器上。

允许用户在服务器上组织自己的邮件目录。

IMAP维护了IMAP会话的用户信息:目录名以及报文ID与目录名之间的映射关系。

4. DNS:因特网的目录服务

DNS简述:

DNS是一个分布式数据库,由很多台DNS服务器按照层次结构组织起来。
DNS运行在端到端系统上,并使用UDP协议(53号端口)进行报文传输,因此DNS是应用层协议。
DNS以C/S的模式工作。
DNS不直接和用户打交道,而是因特网的核心功能。4.3.1

4.1. DNS可提供的服务

域名到IP地址的转换;
主机/邮件服务器别名:为不好记的规范主机/邮件服务器提供一个容易记的别名;
负载均衡:一个域名对应多个IP;DNS服务器在多个IP中进行轮转。

4.2. DNS工作机理概述

最简单的DNS实现——单台DNS服务器,同时具有很多问题:单点故障,通信容量,远距离的集中式数据库,维护成本。

4.2.1. 分布式、层次数据库

根DNS服务器
顶级域DNS服务器:负责顶级域名和所有国家顶级域名解析工作。
权威DNS服务器:属于某个组织的DNS服务器,为组织的服务器提供一个权威的域名到IP地址的映射服务。
本地DNS服务器:严格来讲,本地DNS服务器并不属于DNS层次结构中的一层;每一个网络服务提供商都会提供一个本地DNS服务器;当一台主机需要做一个域名查询时,查询请求首先被发送到本地域名服务器。

4.2.2. DNS缓存

一旦(任何)域名服务器的质量某个映射,就将其缓存,在一定的时间间隔后缓存的条目将会过期,TLD DNS服务器通常被缓存在本地DNS服务器中。这样可以减少根DNS的负载。

4.3. DNS记录和报文

4.3.1. DNS记录

RR格式:(name,value,type,ttl)

type=A——name=主机名,value=IP地址
type=B——name=域,value=该域权威域名服务器的主机名
type=C——name=别名,value=真名
type=MX——value=与name相关的邮件服务器域名

DNS记录的维护:目前基本上都是手工维护,RFC2136定义了DNS动态更新。

4.3.2. DNS报文

查询和回答报文的格式是一致的。

5. P2P文件分发

C/S模式:T>=max{NF/u,F/min{d1,d2,d3......dN}

P2P模式:T>=max{F/u,F/dmin,NF/u+ui求和

P2P模式在用户数量增多时,速率比C/S模式下小很多。

BitTorrent:洪流——参与一个特定文件分发的所有对等方的集合
追踪器——跟踪正参与在洪流中的对等方
文件块——256kb
工作机制——最稀罕优先,对换算法

  • 42
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
计算机网络自顶向下第二章主要讨论了网络应用和网络核心设备。网络应用是计算机网络存在的理由,它们是能够在不同的端系统上运行,并通过网络相互通信的程序。这些应用程序可以通过编程来实现,以确保它们在网络中有效地运行。 IP地址是网络中的一个重要概念,它由4个字节组成,每个字节表示0~255的十进制数字,通过句点分隔开来。IP地址具有严格的层次结构,当我们从左至右扫描它时,我们可以得到越来越具体的关于主机位于因特网的哪个网络里的信息。这种层次结构帮助我们在网络中定位和识别不同的主机。 网络核心设备在网络中起到了重要的作用。它们主要在较低的网络层和网络核心层起作用,而不是在应用层。网络核心设备是为了管理和控制网络流量以及确保数据包在网络中的传输效率。这种设计使得应用软件可以在端系统上限制,并且使得网络的运行更加高效和可靠。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [计算机网络自顶向下第二章应用层笔记](https://blog.csdn.net/qq_56320213/article/details/122630105)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值