2-1应用层协议原理
2.1应用层协议原理
2.1.1网络应用程序体系结构
应用程序体系结构明显不同于网络的体系结构,由应用程序研发者设计
-
客户-服务器体系结构
-
P2P体系结构
2.1.2进程通信
在同一端系统上,进程间通信的规则由操作系统决定
不同端系统上,进程通过计算机网络交换报文而相互通信。
1.客户与服务器进程
在每对通信进程中,我们通常将这两个进程之一标识为客户,而另一个进程标识为服务器。
一般发起通信的进程被标识为客户,在会话开始时等待联系的进程是服务器。
2.进程与计算机网络之间的接口
进程通过一个被称为socket的软件接口向网络发送报文和从网络接收报文
开发者可以控制socket在应用层的一切,但对于传输层仅能选择协议与有限的几个参数
3.进程寻址
为了向另一台主机上的进程发送分组,进程需要一个接收进程的地址
该地址的信息有:1.主机的地址2.在该主机上的接收进程的标识符
对应的标识信息为:1.IP地址2.端口号
2.1.3可供应用程序使用的运输服务
运输层协议提供不同的运输服务,区别的指标有:可靠数据传输,吞吐量,定时和安全性
1.可靠数据传输
分组在网络中可能丢失,部分应用必须防止该事件,因此需要可靠数据传输特征的协议。
2.吞吐量
部分应用对吞吐量有要求(带宽敏感的应用)
3.定时
部分实时应用对时延要求较高
4.安全性
部分运输协议能提供安全性服务
2.1.4因特网提供的运输服务
1.TCP服务
TCP服务包括面向连接的服务和可靠数据传输服务
-
面向连接的服务:客户端和服务器先进行握手(即互相交换传输层控制信息),之后建立起TCP连接,开始报文发送。在发送结束之后需要拆除该连接。
-
可靠的数据传输服务:无差错,无冗余,按顺序传输数据
**备注:**TCP还拥有拥塞控制机制
TCP安全:由于TCP没有加密,以明文传输,因此出现了TCP的加强版本:SSL。该版本的加强在应用层实现,并拥有自己的库和API(类似TCP的)
2.UDP服务
提供无连接的、不可靠的轻量级最小服务
3.运输协议不提供的服务
不保证吞吐量和定时的服务
2.1.5应用层协议
应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递报文:
-
交换的报文类型:请求报文、响应报文
-
各种报文的语法:字段及如何描述
-
字段的语义
-
进程如何发送报文和响应报文