计算机网络 应用层

一、应用层协议原理
1.1网络应用程序体系结构:两种主流体系结构: 1客户-服务器体系结构:参见数据中心,被用来创建强大的虚拟服务器,如搜索引擎,社交网络如微信,特征1 服务器收到客户主机请求后,提供服务向发送请求的客户发送对象作为响应。但是客户之间不直接通信,比如Web应用中两个浏览器不直接通信。特征2 服务器具有固定的、众所周知的地址称为IP地址,客户总是通过这个地址发送分组与服务器联系。2 P2P体系结构:使用于流量密集型应用,比如文件共享,迅雷,视频会议,等 应用程序在间接连接的主机之间使用直接通信,不用通过专门的服务器。特性:自扩展性:比如P2P共享应用中,尽管每个对等方都由于请求文件产生工作负载,但每个对等方通过向其他对等方分发文件也为系统增加服务能力。优点:不需要庞大的服务器设施和带宽,缺点;,面临安全性,性能,可靠性挑战。


1.2 进程通信:用操作系统的术语说进行通信的是进程。一个进程被认为运行的端系统的一个程序。运行在不同计算机之间的进程通信,是通过跨越计算机网络交换报文而相互通信的。

        1.2.1客户和服务器进程:发起通信的进程被标识为客户,在会话开始时,等待联系的进程叫服务器

        1.2.2进程与计算机网络之间的接口:进程通过叫套接字的软件接口向网络发送报文和接收报文。套接字是同一台主机内应用层与运输层之间的接口。也是应用程序和网络之间的应用程序编程接口 API。进程类似房子,套接字类似门,进程把报文推出该门(套接字),然后通过运输的基础设施把报文发送到目的进程的门口,通过该接收进程的门(套接字)进行传递。应用程序开发者只能控制套接字在应用层端的一切,对于运输层的控制仅仅局限于:选择运输层协议,设定几个运输层参数如最大缓存和最大报文长度。

        1.2.3 进程寻址:特定目的发送邮件需要一个地址,为了标识该接收进程要定义两种信息:1 主机的地址,2 在目的主机中指定接收进程的标识符,具体的套接字。


1.3 可供应用程序使用的运输服务:开发应用程序需要选择一种可用的运输层协议,运输层所提供的四类服务:

        1 可靠数据传输:电子邮件,金融应用的分组可能丢失造成严重后果,多媒体应用的音频和视频能承受一定的数据丢失。

        2 吞吐量:要求运输层协议能够以某种特定速率提供确保的可用吞吐量。比特每秒。因特网电话应用程序对语音以一定速率向网络发送数据,若是接收所需吞吐量只是一半,这种对吞吐量有要求的应用程序是带宽敏感应用。电子邮件,文件传输属于弹性应用,能够根据带宽或多或少利用可供使用的吞吐量。

        3 定时:定时保证以多种形式,交互式实时应用程序如因特网电话,多方游戏需要有效性而要求数据交付有严格的时间限制。

        4安全性:加密数据,以及接收解密数据


1.4因特网提供的运输服务:因特网为应用程序提供了两个应用程序运输层协议: UDP和TCP,不同协议提供不同服务集

        1.4.1 TCP服务:TCP服务模型包括面向连接服务可靠数据传输服务。当应用程序调用TCP作为运输协议时,应用程序就能获得上面两种服务。可以使用SSL加密数据提供安全性

        面向连接的服务:应用层数据开始流动前,TCP让客户和服务器互相交换运输层控制信息,这个是所谓的握手过程提醒客户和服务器为大量分组到来做准备。经过握手后,一个TCP连接在两个进程的套接字之间建立。建立之后可进行报文收发,结束报文发送后拆除连接。

        可靠数据传送服务:无差错、按适当顺序交付所有发送的数据。字节流传送给套接字。保证没有字节丢失和多余

        拥塞控制机制:出现拥挤时,抑制发送进程,对因特网整体带来好处。

        1.4.2 UDP服务:一种不提供不必要,仅提供最小的服务。没有握手过程,提供一种不可靠数据传送服务。报文可能乱序或无法送达

        1.4.3 因特网运输协议所不能提供的服务:吞吐量,定时保证,电子邮件,文件传输为了可靠数据传输服务,使用TCP协议,因特网电话能容忍数据某些丢失但是要求达到一定最小速率,使用UDP,避开TCP的拥塞控制机制和分组开销。

1.5应用层协议:定义了交换的报文类型,例如请求报文和响应报文。各种报文类型的语法,如

报文中各个字段以及这些字段如何描述。字段语义:如字段的信息含义1.确定一个进程何时以及如何发送报文,对报文进行响应规划。

1.6涉及到的网络应用:Web应用层使用HTTP协议

二、 Web 和 HTTP 

2.1HTTP概况

超文本传输协议:是Web应用层协议,由两个程序实现:客户重新,服务程序。这两个程序通过交换HTTP报文进行会话。HTTP定义了报文的结构和交换的方式。

Web页面:由一个HTML基本文件和几个对象组成。对象:指一个文件如HTML文件,一个JPEG图形,一个java小程序。这些对象通过一个URL地址寻址URL地址两部分组成:存放对象的服务器主机名,对象的路径名。每个对象由URL寻址。当用户请求一个Web页面(如点击一个超连接)时,浏览器向服务器发出对该页面中所包含对象的HTTP请求报文,服务器收到请求用包含这些对象的响应报文进行响应。


2.2非持续连接和持续连接:指应用程序发送请求的方式。每个请求是一个接一个间隔周期性或者间接性的发出,所有请求连续发出。

        往返时间: RTT

2.3HTTP报文格式:

2.3.1请求报文

典型的HTTP请求报文

GET / somedir/page.html HTTP/1.1    第一行叫请求行,浏览器请求对象somedir/page.html  组成 分 方法字段URL字段HTTP版字段。方法字段有几种:GET、POST、HEAD、PUT、DELETE。大部分使用GET方法,用户提交表单时,如向搜索引擎提供关键词,使用POST

Host: www.somechool.edu :以下几个是首部行,指明对象所在的主机

Connection: close:告诉服务器不使用持续连接,要求服务器发送完被请求对象后关闭连接。

User-agent : Mozila/5.0: 指明用户代理,即向服务器发送请求的浏览器类型。这里浏览器类型是Mozila/5.0, 服务器能为不同类型的用户代理实际发送相同对象的不同版本。

Accept-language: fr: 用户想得到该对象的法语版本,否则服务器发送默认版本。

HEDD方法类似GET方法,但是用这个方法当服务器收到请求时,会用一个HTTP报文进行响应但是不返回请求对象。用这个方法来调试跟踪。PUT方法常与Web发行工具联合使用,允许用户上传对象到指定的Web服务器上指定的路径(目录)

2.3.2HTTP响应报文

该响应报文有三个部分:一个初始状态行,6个首部行,实体体(是报文的主要部分,包含所请求的对象本身,表示为data data)。状态行有3个字段:协议版本字段、状态码、相应状态信息

一个初始状态行,六个首部行,然后实体体

HTTP / 1.1 200 OK 请求成功,信息在返回响应报文中

Connection: close :首部行:服务器用Connection: close 首部行告诉客户,发送报文后,关闭TCP连接

Date: Tue, 18 Aug 2015 15 : 44 : 04 GMT :服务器产生并发送该响应报文的时间

Server:Apache/2.2.3 (CentOS) :指示该报文由一台Apache Web 服务器产生。

Last-Modified: Tue,18 Aug 2015 15 : 11 : 03 GMT :指示了对象创建或者最后修改的时间

Content-Length: 6821:被发送对象中的字节数。

Content-Type:text/html:指示了实体体中的对象是HTTP文本 该对象类型应该正式地由Content-Type

(data data data data............)


2.4用户与服务器的交互:cookie ,为了识别用户身份对用户进行跟踪

 cookie用于标识一个用户,首次访问网站时,提供一个用户标识 在后继会话中,浏览器向服务器传递一个cookie,服务器就标识了客户,如课客户在网站注册时,也是发送cookie信息,用户的所有行为都被标识记录,在后端数据库中产生一个表项,这些都标识了客户信息,所以实现点击购物时,选择买某个商品,客户就不必要重新输入姓名,银行卡账号信息了。

2.5Web缓存:Web缓存器也叫代理服务器,减少对客户请求响应的时间,先发到缓存器,缓存器没有就会找到初始服务器继续响应。

2.6条件GET方法:因为引入代理服务器(缓存器),能减少用户感受响应的时间,但是存放在缓存器中的对象副本可能是旧的,所以HTTP存在一种机制条件GET,保证对象是最新的。


三 因特网中的电子邮件 : 用户代理、 邮件服务器、简单邮件传输协议SMTP

SMTP与HTTP对比: HTTP从Web服务器向Web客户(浏览器)传送文件(对象);SMTP从一个邮件服务器向另一个邮件服务器传送文件(电子邮件报文)

四 因特网的目录服务 :主机的一种标识方法是主机名,也可以使用IP地址标识

4.1 域名系统DNS提供的服务:人们喜欢记忆主机名,而路由器喜欢记住长的IP地址,为了折中选择,使用DNS进行主机名到IP地址的转换。是一个使得主机能够查询分布式数据库的应用层协议。

主机名能拥有一个多个别名,调用DNS能获得主机别名对应的IP地址

五  P2P文件分发

六 视频流和内容分发网

七 套接字编程:生成网络应用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值