主流应用程序体系结构:CS结构、P2P结构。
CS结构:客户-服务器体系结构。有一台总是打开的主机称为服务器,它服务来自其他许多称为客户的主机的请求。
P2P体系结构:应用程序在不同的主机间链接,被称为对等方。P2P体系结构最有特点的地方在于自扩展性,但是也有问题:ISP不友好、安全性、用户是否愿意提供带宽。
进程通信:
在两个不同端系统上的进程,通过跨越计算机网络交换报文而相互通信。
网络应用程序由成对的进程组成。在给定的一对进程之间的通信会话场景,发起通信的进程被表示为客户,在会话开始时等待联系的进程是服务器。
多数应用程序由通信进程对组成,进程通过一个软件接口(套接字)向网络发送报文和从网络接受报文。
套接字:
是一台主机内应用层与运输层之间的接口,也成为应用程序编程接口(Application Programming Interface)
开发者对于运输层的控制权仅限于:1.选择运输层协议。2.设定仅有的几个运输层参数。
为了标识接收进程需要定义两个信息:主机的地址 主机中接收进程的标识符。这两个信息分别用:ip 端口号做标识。
运输层协议可以为应用程序提供:1.可靠数据传输、2.吞吐量、3.定时、4.安全性四个方面的服务。
可靠数据传输:端系统的传送的数据正确且完全地交付给另一个端系统。
吞吐量:具有吞吐量敏感的应用被称为:带宽敏感数据。
定时:指能够实现较短的时延。
安全性:运输层协议能够对数据进行加密和解密。
因特网为应用程序提供了两个运输层协议:UDP和TCP。
TCP:
包含面向连接服务与可靠数据服务。某个应用程序调用TCP作为运输协议时,该应用就能获得这两个服务。
面向连接服务:
在数据报文流动前,TCP让客户端与服务端相互交换运输层控制信息(三次握手),握手后一个TCP连接就在应用程序的套接字间建立了。该连接是全双工的,即连接双方的进程可以在此连接同时发送报文。当应用程序发送报文结束时,该连接需要拆除(四次挥手)。
可靠的数据传送服务:
通信进程可以依靠TCP,无差别、按适当顺序交付所有发送的数据。不会出现字节丢失和冗余。
TCP还具有拥塞控制机制:当发送方和接收方间的网络出现拥塞时,TCP的拥塞控制机制会抑制发送进程。
至于安全性问题:
TCP与UDP都没有加密机制。因特网界使用安全套接字层(Secure Sockets Layer,SSL)。
UDP:
是一种不提供不必要服务的轻量级运输协议,仅提供最小的服务。
UDP无连接,即进程通信不会握手、UDP提供一种不可靠数据传送服务,不能够保证该报文将到达接受进程(到达的报文也可能乱序)。
应用层协议:
定义了运行在不同端系统上的应用程序进程如何相互传递报文:
交换的报文类型。 如请求报文和响应报文
各种报文类型的语法。 报文中的各个字段及这些字段是如何描述的。
字段的语义。 字段包含的信息
一个进程何时以及如何发送报文,对报文进行响应的规则。