一.应用程序体系结构:(开发者方面考虑)
1.客户-服务器体系结构:
服务器一直打开,来等待客户端的连接,比如:Web,FTP,Telnet和电子邮件。
通常一台服务器处理不过来大量的客户请求,所以会有配备大量主机的数据中心。(比如谷歌在全球有30-50个数据中心)
2.P2P体系结构(对等方):
这种对等方通信不必经过专门的服务器,该体系结构被称为对等方到对等方的。比如:文件共享,因特网电话。
P2P的成本是有效的,因为他不需要庞大的服务器基础设施和服务器带宽。
二.进程通信:
1.当进程运行在相同的端系统上时,他们使用进程间通讯机制相互通信。而我们关注的是运行在不同端系统上的通信。
2.在两个不同端系统上的进程通过计算机网络交换报文而相互通信。
1.客户与服务器进程:
网络由成对的进程组成,这些进程通过网络相互发送报文。
在一个P2P文件共享的某些应用中,一个进程既能是客户又是服务器。通常发起通信的被标识为客户。
2.进程与计算机网络之间的接口:
进程通过一个称为套接字的软件接口向网络发送和接收报文,套接字是同一台主机上应用层和网络层之间的接口,所以也称为应用程序编程接口,就是API。
3.进程寻址:
主机地址(IP地址),和在目的主机中接收进程的标识符(端口号)。
三.可供应用程序使用的运输服务:
按服务要求进行四大分类
可靠数据传输,吞吐量,定时,和安全性
1.可靠数据传输
必须确保发送的数据正确完整的发送到另一端。
2.吞吐量
即协议能够以某种特定的速率提供确保的可用吞吐量,比如要保证可用吞吐量最少为R比特/秒。具有吞吐量要求的应用程序被称为带宽敏感程序。
3.定时
比如发送方注入进套接字的每个比特到达接受方的套接字不迟于100ms,这种服务对交互式应用有吸引力,比如因特网电话,在线多方游戏。
4.安全性
要求运输协议能够加密发送的所有数据
1.TCP服务:
1.面向连接的服务,创建的连接是全双工的,当应用程序结束报文发送后必须拆除该连接。
2.可靠的数据传输服务,通信进程能够依靠TCP,无差错,按适当顺序的交付所有发送的数据。
还具有拥塞控制协议
不论TCP和UDP都没有提供任何加密的机制,但是因特网界已经研制了TCP的加强版,称为安全套接字层SSL,当使用SSL时,进程向SSL发送明文数据,SSL对数据进行加密在传递给TCP套接字。TCP套接字把接收到的数据传递给SSL,再由SSL对数据进行解密。
2.UDP服务:
1.无连接的服务
2.不可靠的数据传输,不保证数据到达,还有可能是乱序到达的
3.没有拥塞控制协议
3.发现TCP和UDP没有对吞吐量和定时进行保证,留给了开发者
SMTP Telnet HTTP FTP底层都是TCP
四.应用层协议
HTTP SMTP FTP DNS P2P......
应用层协议定义了运行在不同端系统上的应用程序如何传递报文,
有些协议是由RFC文档定义的,还有些是专用的,企业自己定义的。
应用程序协议只是网络应用一部分,比如web应用有很多组成部分,文档格式的标准(HTML),web浏览器,web服务器和一个应用层协议。
1.HTTP(web的应用层协议,超文本传输协议)
1.客户端程序和服务器程序运行在不同的端系统中,通过交换HTTP报文进行会话。
2.Web页面是由对象组成的,一个对象是一个文件,比如一个HTML文件,一个JPEG图形,一个JAVA小程序或一个视频片段这样的小程序,且他们可以通过URL寻址,多数web页面含有一个html基本文件和几个引用对象。
3.web浏览器实现了HTTP的客户端,WEB服务器实现了HTTP的服务器端,它用于存储web对象
4.因为HTTP使用TCP作为它的支撑运输协议,所以客户进程发送的每一个HTTP请求都能完整的到达服务器,即不用担心数据丢失
5.而且HTTP是无状态协议,即服务器不存储任何关于该客户的状态信息,比如客户端已经对这个服务器请求过一个对象,但是服务器并不记得
6.HTTP报文格式和cookie
网上去查或看书去吧,不讲了
1.2非持续连接和持续连接
即每个请求和响应式经一个单独的TCP发送还是所有的请求和响应是经过一个TCP发送
非持续连接有一些缺点,即必须为每一个请求的对象建立和维护一个全新的连接,在客户和服务器中药占用大量的缓冲区,并且每一个对象都经受了两倍的RTT交付时延
1.3web缓存器(代理服务器)
Web缓存器有自己的磁盘存储空间,并在存储空间中保存过近期请求对象的副本。
1.浏览器建立一个到web缓存器的TCP连接,并向web缓存器中的对象发送一个HTTP请求
2.Web缓存器进行检查,看看本地是否存储了该对象的副本,如果有,web缓存器就向客户浏览器用HTTP响应报文返回该对象
3.如果web缓存器没有该对象,他就向初始服务器请求该对象,自己保存一份,再用http响应报文返回给浏览器该对象
3.1条件GET方法
缓存器用If-Modified-Since首部行来检查自己缓存对象是否过期,如果没有过期,服务器会回复304 Not Modified来通知缓存器,如果过期,服务器会返回具有被请求对象的响应报文,缓存器自己存储一份,返回给浏览器一份
2.FTP(文件传输协议)
使本地主机的FTP客户进程建立一个到远程主机FTP服务器进程的TCP连接。该用户接着提供用户标识和口令,作为FTP的一部分在该TCP连接上传送
1.FTP使用了两个并行的TCP连接来传输文件,一个是控制连接,一个是数据连接。控制连接在两个主机之间传输控制信息,比如用户标识,口令,命令,数据连接则实际发送文件。
2.因为FTP使用一个独立的控制连接,所以可以说FTP的控信息是带外传送的,而HTTP是带内传送控制信息的。
3.用户主机首先在服务器21号端口和服务器发起一个用于控制的TCP连接,当服务器从该连接上收到一个文件传输命令后,就发起一个 到客户端的数据连接,直到准确的发送完一个数据文件后,将断开该数据连接,如果还需要其他文件,服务器将继续建立TCP数据连接,而不论发送多少个文件,控制连接是贯穿始终的。
4.从客户到服务器的命令和服务器到客户的回答,都是以7比特的ASCII格式在控制连接上传送的,为了区分命令,每个命令后跟回车换行符,常见命令如下:
USER:用于向服务器传送用户标识
PASS:用于向服务器发送用户口令
LIST:用于请求服务器发送当前文件目录的所有文件列表(新建数据连接发送)
RETP:即get请求当前目录文件
STOR:即put在当前目录上存放文件
3.SMTP
电子邮件系统有三个主要组成部分:
用户代理,邮件服务器,和简单邮件传输协议(SMTP)
SMTP用于从发送方的邮件服务器发送报文到接收方的邮件服务器
1.他限制所有邮件报文的体部分必须采用简单的7比特ASCII表示,所以,当发送多媒体数据时,需要先将多媒体转换为ASCII格式,并在传输后将ASCII还原为原多媒体数据
2.SMTP是持续连接,如果发送邮件服务器有几个报文发往同一个接收邮件服务器。它可以通过一个TCP连接发送所以这些报文
3.1SMTP和HTTP的对比
1.HTTP是一个拉协议,是由想接收文件的机器发起的
SMTP是一个推协议,即发送邮件服务器把文件推向接收邮件服务器
2.SMTP必须按7进制ASCII码进行编码,而HTTP不受这种限制
3.HTTP把每个对象封装到它自己的HTTP响应报文中,而SMTP把所有对象放在一个报文当中
3.2邮件访问协议
要注意接收邮件的用户代理不能从接收服务器通过SMTP取回报文,因为SMTP是一个推协议,而取邮件是一个拉操作,所以需要邮件访问协议。流行着一些邮件访问协议:第三版邮局协议(POP3),因特网邮件访问协议(IMAP),HTTP
܃|���