2.1应用层协议原理
网络应用程序位于应用层
开发网络应用程序:
写出能够在不同的端系统上通过网络彼此通信的程序
2.1.1网络应用程序体系结构分类:
客户机/服务器结构
服务器: 总是打开(always-on),具有固定的、众所周知的IP地址,主机群集常被用于创建强大的虚拟服务器
客户机:
无需总打开,可间断的同服务器连接,可拥有动态IP地址,客户机相互之间不直接通信
如:搜索引擎、电子邮件
搜索引擎,如Google,百度
网络商务,如Amazon,e-Bay,淘宝网
Web电子邮件,如Yahoo邮件
社交网络,如MySpace和Facebook
视频共享,如YouTube
提出客户机/服务器体系结构的优点:服务器地址已知,定位快速。缺点:服务器向客户机提供服务的能力有限,随着客户机的增加,网络服务能力下降,并且服务器故障将会导致服务丢失。
P2P体系结构
没有总是打开的服务器,任意一对主机直接相互通信,对等方间歇连接并且可以改变IP地址
纯P2P体系结构的优点:网络可扩展性强,用户数量越多,服务能力越强,某一个计算机的故障不会导致服务丢失。缺点:服务器地址未知,服务管理复杂。
应用:
文件分发,如BitTorrent
文件搜索和共享,如eMule和LimeWire
网络电话,如Skype
IPTV,如PPLive
混合的体系结构
2.1.2 进程通信
进程:运行在端系统中的程序
同一主机上的两个进程通过内部进程通信机制进行通信
不同主机上的两个进程通过计算机网络交换报文相互通信
注意:具有P2P体系结构的应用程序,同时有客户机进程和服务器进程。既发送又接收。
进程与网络的接口是套接字
通过套接字,进程在网络上发送和接收报文
进程类比于房屋中的人,套接字类比于门
发送进程把报文从门发送出去
接收进程把报文从门接收进来
套接字又叫做网络应用程序编程接口API
用户通过API对传输层的控制,但仅限于:
(1) 选择传输协议,如TCP或UDP;
(2) 能设定几个参数,如最大缓存、最大报文长度等
进程标识:包括IP地址和端口号(IP,port),通过这个标识才能找到目的主机上的对应进程
2.1.3应用程序的运输要求以及协议选择
由于应用层的实现要基于传输层的服务,因此为实现上述的服务需求,必须首先明确传输层提供了哪些服务?
传输层提供的两类服务:
所以这些应用层协议的实现是基于下面的传输层协议的
根据应用层的服务需求和传输层提供的服务,
一般需要实时的,会对传输时延、带宽要求较高,一般使用UDP。
TCP主要是可靠
UDP就是实时
2.2 Web应用和HTTP协议
HTTP协议用于从网页抓取文件。
网页: