自考计算机网络原理(三)
第二章:网络应用
一、计算机网络应用体系结构
(一)体系结构分类
计算机网络应用很多,从体系结构角度可以分为:客户/服务器(C/S)结构、纯P2P结构和混合结构3种类型。
(二)客户/服务器(C/S)结构网络应用
客户/服务器(C/S)结构的网络应用是最典型、最基本的网络应用,如:www应用;文件传输;电子邮件。主要特征有:
网络通信双方分为客户程序和服务器程序,用户与用户之间不进行直接通信。
服务器程序先运行,做好接受通信的准备。
客户程序后运行,主动与服务器进行通信。
(三)纯P2P结构网络应用
P2P应用中的对等端是一个服务器与客户的结合体。
(四)混合结构网络应用
混合结构网络应用将C/S应用与P2P应用相结合,既有中心服务器的存在,又有对等端(客户)间的直接通信。
二、网络应用通信基本原理
(一)应用层
网络应用的基本通信方式是C/S通信。
协议定义了应用进程间交换的报文类型、报文构成部分具体含义以及交换时序等内容,即语法、语义和时序等协议三要素内容。
(二)网络应用
典型的网络应用编程接口是套接字(Socket),套接字是每个应用进程与其他应用进程进行网络通信时,接收和发送报文的通道。通过进程运行的主机IP地址以及其套接字所绑定的端口号可以标识应用进程。

对每个套接字进行编号,用于标识该套接字,该编号称为端口号。
IP地址是Internet的网络层地址,用于唯一标识一个主机或路由器接口。
(三)TCP服务
TCP服务分类:面向连接的服务和可靠的数据传输服务。
面向连接的服务:在应用层报文开始传送之前,TCP客户和服务器互相交换传输层控制信息,完成握手。在客户进程与服务器进程的套接字之间建立一条逻辑的TCP连接。这条连接是双全工的,当应用程序结束报文发送时,必须拆除该连接。
可靠的数据传输服务:应用进程能够依靠TCP实现端到端的无差错、按顺序交付所有发送数据的服务。
(四)UDP服务
UDP是一种不提供连接的保障的轻量级传输层协议,仅提供最小的“尽力”服务。UDP是不可靠的数据传输服务,因此在两个进程通信前没有握手过程。
TCP服务与UDP服务比较:

三、域名系统(DNS)
(一)域名解析
实现将域名映射为lP地址的过程,称为域名解析。域名服务器分布在整个互联网上,每个域名服务器只存储了部分域名信息,域名中的英文字母不区分大小写。
(二)层次化域名空间
国家顶级域名nTLD:如cn表示中国,us表示美国,uk表示英国等。
通用顶级域名gTLD:最早的顶级域名是com(公司和企业)、net(网络服务机构)、org(非盈利性组织)、edu(专用的教育机构)、gov(专用的政府部门)、mil(专用的军事部门)、int(国际组织)。
基础结构域名:这种顶级域名只有一个,即arpa,用于反向域名解析,又称反向域名。
(三)域名服务器
定义:DNS服务器的管辖范围不是以“域”为单位,而是以“区”为单位。域名服务器根据其主要保存的域名信息以及在域名解析过程中的作用等,可以分为:根域名服务器、顶级域名服务器、权威域名服务器、中间域名服务器。
概念:其中根域名服务器是最重要的域名服务器,在因特网上共有13个不同IP地址的根域名服务器。它们的名字是用一个英文字母命名,从a一直到m。任何一个拥有域名的主机,其域名与lP地址的映射关系等信息都存储在所在网络的权威域名服务器上。
主机如何确定本地域名服务器:
任何一个主机在网络地址配置时,都会配置一个域名服务器作为默认域名服务器,这台主机任何时候需要进行域名解析,都会将域名查询请求发送给该服务器;
该服务器如果保存了被查询域名的信息,则直接作出响应,如果没有,则代理查询其他域名服务器,直到查询到结果,最后将查询结果发送到查询主机。
这个默认域名服务器通常称为本地域名服务器,是主机进行域名查询过程中最先被查询的域名服务器。
(四)域名解析过程
城名解析分为递归解析和选代解析,通常本地域名服务器都提供递归查询服务。
迭代查询服务:主机进行域名查询时,本地域名服务器没有被查询域名信息,则先求助于根域名服务器。根域名服务器只是将下一步要查询的服务器告知查询主机的本地域名服务器,本地域名服务器继续查询下一个域名服务器,知道查询到被查询的域名的IP地址。

递归查询服务:主机进行域名查询时,本地域名服务器没有被查询域名信息,则本地域名服务器代理主机查询根域名服务器。根域名服务器代理本地域名服务器查询下一个域名服务,以此类推。直到被查询域名的IP地址,最后将解析结果发送给主机。

四、万维网应用
(一)万维网应用结构
万维网应用也称为Web应用。
构成:Web应用主要包括Web服务器、浏览器与超文本传输协议(HTTP)等部分,浏览器是Web应用的客户端软件。
基本知识:在Web应用中,通过一个URL地址来寻址一个Web页或Web对象,每个URL地址主要由两部分组成:存放对象的服务器主机域名(或lP地址)和对象的路径名。例如:URL地址为http://www.abc.cn/cs/index.html,其中www.abc.cn是Web服务器主机域名,/cs/index.html是路径名。
(二)HTTP

HTTP概述:HTTP是Web应用的应用层协议,定义浏览器如何向Web服务器发送请求以及Web服务器如何向浏览器进行响应。HTTP使用的端口号是80端口。
HTTP基于传输层的TCP传输报文。浏览器在向服务器发送请求之前,首先需要建立TCP连接,然后才能发送HTTP报文,并接收HTTP响应报文。根据HTTP在使用TCP连接的策略不同,可以分为非持久连接的HTTP和持久连接的HTTP。
非持久连接的HTTP1.0:

非持久连接的HTTP1.0中,客户HTTP需先向Web服务器发送请求建立TCP连接的请求报文,等待Web服务器的响应报文,这一来一回的一个往返时间为一个RTT;
Web服务器响应HTTP客户后,HTTP客户再请求Web网页,Web服务器响应后,告知HTTP客户该网页有多少个图片引用,并通知TCP断开此TCP连接;
随后HTTP客户再次请求TCP连接,Web响应后,再请求第一个图片的TCP连接,等待响应,Web响应后通知TCP连接断开此TCP连接;

HTTP报文由四部分组成:起始行、首部行、空白行和实体主体。
HTTP报文可以分为两类:请求报文和响应报文,请求报文由浏览器(客户端)发送给Web服务器,响应报文由Web发送给浏览器。
HTTP典型的请求方法:有GET、HEAD、POST、OPTION、PUT等。
(三)Cookie
定义:Cookie中文名称为小型文本文件,是由Web服务器端生成,发送给浏览器,并存储在用户本地终端上的数据。Web应用引入Cookie机制,用于跟踪用户。
应用:最常见的用途包括以下几点:
网站可以利用Cookie的ID来准确统计网站的实际访问人数等数据。
网站可以利用Cookie制某些特定用户的访问。
网站可以存储用户访问过程的操作习惯和偏好,有针对性地为用户提供服务,提升用户体验。
记录用户登录网站使用的用户名、密码等信息,当用户多次登录时,无须每次都从键盘输入这些烦琐的字符和数字。
电子商务网站利用Cookie可以实现“购物车”功能。对于同一个ID的用户,网站可以跟踪其向“购物车”中添加的不同商品,每个商品都会和ID一起存储在网站数据库中。当用户选择结账时,网站通过对数据库中该ID的检索,找到用户购买的所有商品,一起实现结账功能。