本章重点关注:
网络应用的原理和实现方面的知识。
应用程序所需要的网络服务、客户机和服务器、进程和运输层接口
详细讨论几种网络应用程序,包括web、电子邮件、DNS、对等文件分发和P2P因特网电话。
1.应用层协议原理:
应用程序体系结构:C/S模式 或 P2P体系结构
进程通信:发起通信的进程被标识为客户机,在会话开始时等待联系的进程是服务器。
套接字:套接字是软件接口(应用程序和网络之间的应用程序编程接口,称为API)。打比方:房子就是进程,而套接字就是门,想发送报文时,需要先把报文推出“门”才行。
2.供应用程序使用的运输服务:
套接字是API,这一侧由应用程序通过套接字发送报文,那么另一侧有运输层协议负责将报文发送出去。于是就涉及到了运输层的协议~
运输层协议大体可以为应用程序提供四类服务:可靠数据传输、吞吐量、定时和安全性。
可靠数据传输:分组能在计算机网络中丢失的,但是有些应用不允许数据丢失,像电子邮件、文件传输、远程主机访问、Web文档传输以及金融应用等,这些应用一旦数据丢失,后果将非常严重。所以运输层在这方面提供了一种可靠数据传输服务,保证数据能毫无差错的到达接收进程。
吞吐量:两个进程在一条网络路径上进行通信会话时,可用吞吐量就是发送进程能够向接受进程交付比特的速率.因为其他会话将共享着该网络路径上的带宽,并且这些其他会话将会到达和离开,所以可用吞吐量是随时间波动的。于是自然就有了一种服务:即运输层协议能够以某种特定的速率提供确保的可用吞吐量。
定时:运输层协议能提供定时保证,如同吞吐量保证一样。(不多累赘)
安全性:运输层能够为应用程序提供一中或多种安全性服务。例如:在发送主机中,运输层协议能够加密由发送进程传输的所有数据,并且在接收进程中解密。
3.因特网提供的运输服务:
因特网上的应用使用了两个运输层协议:UDP 和 TCP
UDP特性关键字:面向连接服务、可靠数据传输服务、有握手过程、连接是全双工的、无差错按适当顺序交付发送数据、具有拥塞控制机制;
TCP特性关键字:无连接服务、不可靠数据传输服务、无握手过程、接受进程可能是乱序收到数据、不具有拥塞机制。
电子邮件、远程终端访问、Web、文件传输都是使用TCP协议,主要原因是TCP提供了可靠数据传输,保证所有数据最终到达目的地。
因特网电话使用UDP协议,因为UDP提供了最低传输速率的服务。
4.应用层协议:
应用层协议定义了:交换的报文类型、各种报文类型的语法、字段的语义、进程何时及如何发送报文的规则。
区分 网络应用 和 应用层协议:应用层协议只是网络应用的一部分。例如:Web应用是一种C/S应用程序,它包含文档格式的标准(HTML)、Web浏览器(如IE)、Web服务器以及一个应用层协议。Web的应用层协议是HTTP。因此,HTTP只是Web应用的一个部分。
5.HTTP概况:
Web的应用层协议是HTTP(超文本传输协议)。
Web页面是由对象组成的,对象简单说就是文件,如JPEG图形文件、Java小程序或视频片段文件。
这些文件可由一个URL地址寻址。每个URL地址由两个部分组成:存放对象的服务器主机名 和 对象的路径名。
HTTP使用TCP作为它的支撑运输层协议。
6.FTP概况:
FTP也是文件传输协议,也运行在TCP之上。
7.非持久连接和持久连接:
虽然好理解但是不好总结啊,详情见书上P63-P65。
8.Web缓存
旦安装了浏览器,当访问一个对象时,首先转向Web缓存器去请求,若近期访问过该对象,那么Web缓存器就可以直接返回该对象;若近期没有访问过该对象,那么初始服务器会向Web缓存器发送一个具有该对象的HTTP响应。
9.DNS(因特网的目录服务)
为什么需要DNS?
标识因特网上的一台主机有多种方法,可以用主机名来辨别,也可以用IP地址来辨别。人们是喜欢便于记忆的主机名标识,而对于路由器来说,它喜欢定长的、有着层次结构的IP地址。所以我们需要一种能进行主机名向IP地址转换的目录,这就是域名系统(DNS)。
DNS通常由其他应用层协议(包括HTTP、SMTP、FTP)所使用。
DNS除了提供主机名到IP地址的转换外,还提供这些服务:主机别名、邮件服务器别名 和 负载分配。
DNS是分布式存储的,实现分布式数据库的所有DNS服务器共同存储着资源记录(RR),RR提供了主机名到IP的映射。
10.套接字编程不好总结
详见书上P103。