第二章 应用层

网络应用是计算机网络存在的理由

 应用层协议原理

研发核心:写出能够运行在不同的端系统和通过网络彼此通信的程序,应用软件限制在端系统上。

网络应用程序体系结构

客服-服务器   P2P

客服-服务器:


该体系中总有一个打开的主机,客户相互之间不直接通信。

服务器具有特定的IP地址

例子:web   电子邮件    ftp

P2P

在一个p2p结构里,服务器被依赖程度很小。

应用程序在间断连接的主机对之间使用直接通信。

特点:自扩展性 

进程通信

程序之间怎么进行通信?在操作系统的术语中,进行通信的实际上是进程

在不同端系统上的进程,通过跨越计算机网络交换报文而互相通信。

特点:客户-服务器进程

对于web而言,浏览器是客户,web服务器是服务器

对于P2P而言下载文件的是客户,上传文件的是服务器

我们定义客户和服务器进程如下:

在给定的一对进程之间的通信会话场景中,发起通信的进程被标识为客户,在会话开始时等待联系的进程是服务器

进程与计算机网络之间的接口

进程通过套接字socket的软件接口向网络发送报文和从网络接收报文。

套接文是应用层与传输层的接口,也成为网络应用程序与网络之间的应用程序编程接口(API)

我们可以控制套接字在应用层的一切,但只能选择运输层的协议,设定如最大缓存,最大报文长度的几个参数。

进程寻址

IP地址

如何选择更好的运输层协议?

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

可靠数据传输               容忍丢失的应用

带宽敏感的应用              弹性应用

交互式实时应用      非实时应用

安全                   不安全

Web和HTTP

超文本传输协议 HTTP  Hyper Text Transfer Protocol,HTTP

一个客户程序和一个服务器程序组成实现了HTTP协议

Web页面由对象组成(面向对象编程)

一个对象属于一个文件,可通过URL寻址(url由服务器主机名和对象路径名)

http协议规定了web客户向web服务器请求web界面的方式,以及服务器向客户传送web界面的方式

其使用TCP作为它的支撑运输协议 

HTTP是一个无状态协议

非持续连接与持续连接:非持续连接通过不止一个TCP,持续连接通过一个TCP

HTTP请求报文格式:第一行叫做请求行,后面叫做首部行

请求行有三个字段:方法字段    URL字段    HTTP版本字段

方法字段能取很多值,GET,POST,HEAD,PUT,DELETE,绝大部分用的是GET

电子邮件

用户代理和邮件服务器和简单邮件传输协议

SMTP协议   每个邮件服务器及运行SMTP的客户端也运行服务端

邮件不存在于中间邮件服务器

HTTP与SMTP的关系

前者为一个拉协议,后者为推协议

前者对报文数据格式不限制,后者限制使用

对于一个既包含图片又包含文本的文件,HTTP把每个对象封装到自己的HTTP响应报文里,SMTP则把所有报文对象放在一个报文中。

邮件报文格式:
From  To    Subject

IP地址4个字节,32个比特,表示了0-255的十进制数字

运行在不同机器上的进程彼此通过向套接字发送报文来进行通信。我们说过每个进程好比是一座房子,该进程的套接字则好比是一扇门。应用程序位于房子中间的一侧,运输层位于另一侧。应用程序开发者可以控制应用层的所有东西,却不能控制运输层。


你可能感兴趣的:(计算机网络,网络)