欢迎光临散文网 会员登陆 & 注册

04741 计算机网络原理第二章

2023-05-20 19:22 作者:JerryFan9527  | 我要投稿

第一节 计算机网络应用体系结构

计算机网络应用是运行在计算机网络环境下的分布式软件系统,计算机网络应用很多,从体系结构角度可以分为:客户/服务器(C/S)结构、纯 P2P(Peer to Peer)结构和混合结构3 种类型。

一、客户/服务器(C/S)结构网络应用

客户/服务器(C/S)结构的网络应用是最典型的、最基本的网络应用,如:WWW应用;文件传输;电子邮件。C/S 网络应用最主要的特征是通信只在客户与服务器之间进行,客户与客户之间不进行直接通信。事实上,在现代计算机网络中,网络应用程序之间通信的基本模式就是 C/S 方式通信。在 C/S 通信过程中,主动发起通信的一方就是客户,被动接受通信的一方就是服务器。

显然,服务器为了能被动接受通信,必须先运行,做好通信准备。

二、纯P2P结构网络应用

P2P网络应用是近年来网络上发展比较快,并且表现出许多优良性能,深受用户青睐的一类网络应用,在文件分发、文件共享、视频流服务等应用中,P2P 表相出优越的性能。

在纯 P2P 网络应用中,没有一直在运行的传统服务器,所有通信都是在对等的通信方之间直接进行,通信双方没有传统意义上的客户与服务器之分,“地位”对等。

对等端软件通常运行在普通用户的计算设备上,可以动态地直接与其他对等端进行通信。

任何一个对等端既可以主动发起请求另一个对等端的服务,也可以被动地为其他对等端提供服务。因此,P2P 应用中的每个对等端都同时具备 C/S 应用的客户与服务器的特征,是一个服务器与客户的结合体。事实上,P2P 应用中的对等端软件包括服务器软件与客户端

软件。

三、混合结构网络

混合结构网络应用将 C/S 应用于 P2P 应用相结合,既有中心服务器的存在,又有对等端(客户)间的直接通信。

在混合结构网络应用中,存在客户(即对等端)与服务器之间的传统 C/S 结构的通信,也存在客户之间的直接通信。

第二节 网络应用通信基本原理

网络应用的基本通信过程

网络应用的本质是运行在不同主机上的应用进程之间的通信。无论哪种类型的网络应用,

基本通信方式都是 C/S 通信,因此,网络应用的基本通信过程就是运行在不同主机上的应用进程间以 C/S 方式进行的通信。

在C/S结构的网络应用中,服务端运行的是服务器进程,被动地等待客户请求服务,客户端运行的是客户进程,主动发起通信,请求服务器进程提供服务,应用进程间遵循应用层协议交换应用层报文M。

网络应用于传输层服务

无论是服务器进程还是客户进程,当其遵循应用层协议组织好应用层报文后,需要通过层间接口(如应用编程接口 API)将报文传递给相邻的传输层,请求传输层协议提供的端到端传输服务。

典型的网络应用编程接口是套接字(Socket)。应用进程可以通过创建套接字实现与底层协议接口,并可以进一步通过套接字实现应用进程与底层协议之间的报文交换。因此,套接字是每个应用进程与其他应用进程进行网络通信时,真正收发报文的通道。

一个应用进程可以创建多个套接字与同一个或不同的传输层协议进行接口,对于一个传输层协议,需要为与其接口的每个套接字分配一个编号,标识该套接字,该编号称为端口号

(port number)。通常服务器进程套接字会分配特定的端口号,而客户进程的套接字会绑

定一个随机的唯一端口号。

一个主机上可能同时运行多个网络应用进程,每个应用进程通过一个或多个套接字与传输层协议进行接口,因此,通过进程运行的主机IP地址以及其套接字所绑定的端口号可以【标识应用进程】。IP地址是Internet的网络层地址,用于唯一标识一个主机或路由器接口。

【网络应用】需要使用传输层提供端到端的传输服务,不同应用对传输层服务有不同的服务性能需求。有的应用期望传输层提供可靠的数据传输服务,有的应用期望传输层提供延时保障服务等。

TCP服务模型包括面向连接服务和可靠数据传输服务。当某个应用程序调用TCP作为其传输协议时,该应用程序就能能获得来自TCP的这两种服务。

简述TCP所提供的面向连接的服务。

面向连接的服务,在应用层报文开始传送之前,TCP客户和服务器互相交换传输层控制信息,完成握手,在客户进程于服务器进程的套接字之间建立一条逻辑的TCP连接。这条连接是双工的,即连接双方的进程可以在此连接上同时进行报文收发。当应用程序结束报文发送时,必须拆除该连接。

可靠的数据传送服务

应用进程能够依靠TCP,实现端到端的无差错、按顺序交付所有发送数据的服务。当应用程序的一端将字节流通过本地套接字传送时,它能够依靠TCP将相同的字节流交付给接收方的套接字,而没有字节的丢失和冗余。

第三节 域名系统(DNS)

用户通常利用客户端软件来使用某个网络应用,例如:浏览器、邮件收发软件等,这些软件称为【用户代理】

为服务器主机起一个更容易读懂、有一定自然语言含义的名字,这个名字就是主机的域名(domain name)。

DNS 是一个重要的基础应用,因为任何一个需要使用域名进行通信的网络应用,在应用通信之前首先需要请求 DNS 应用,将域名映射为 IP 地址。实现将域名映射为 IP 地址的过程,称为【域名解析】。

DNS为了实现域名解析,需要建立分布式数据库,存储网络中域名与IP地址的映射关系数据,这些数据库存储在域名服务器上,域名服务器根据用户的请求提供域名解析服务。DNS作为分布式数据库,域名服务器分布在整个互联网上,每个域名服务器只存储了部分域名信息。为了完成域名解析,通常需要在多个域名服务器之间进行查询,因此DNS也必须定义相应的应用层协议。

分别说明DNS、HTTP、FTP、TCP、ICMP的中文名称及其作用。

DNS域名系统,主要用于将域名转换为对应的IP地址;
HTTP超文本传输协议,用于浏览器访问Web服务器上的超文本信息;

FTP文件传送协议,用户网络中主机间文件传输;

TCP传输控制协议,用于在不可靠的因特网上提供可靠的,端到端的字节流传输;

ICMP互联网控制报文协议,用户互联网报告差错,或者提供有关意外情况信息。

一、层次化域名空间

DNS 为了实现域名的有效管理与高效查询,DNS 服务器按层次结构进行组织,并且该层次结构与域名的结构相对应。

1、国家顶级域名 nTLD:如cn表示中国,us表示美国,uk表示英国等。

2、通用顶级域名 gTLD:最早的顶级域名是com(公司和企业)、net(网络服务机构)、

org(非盈利性组织)、edu(专用的教育机构)、gov(专用的政府部门)、mil(专用的军事部门)、int(国际组织)。

3、基础结构域名:这种顶级域名只有一个,即 arpa,用于反向域名解析,因此又称为反向域名。

二、域名服务器

一个服务器所负责的管辖的(或有权限的)范围叫做区。每个区设置相应的权威域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。

DNS服务器的管辖范围不是以“域”为单位,而是以“区”为单位。

域名服务器根据其主要保存的域名信息以及在域名解析过程中的作用等,可以分为根域名服务器、顶级域名服务器、权威域名服务器、中间域名服务器 4 类。

1、根域名服务器:根域名服务器是最重要的域名服务器,是主机进行域名查询过程中首先

被查询的域名服务器。

2、顶级域名服务器:即 TLD 服务器,负责管理在该顶级域名服务器注册的所有二级域名。

3、权威域名服务器:负责一个区的域名服务器,保存该区中的所有主机的域名到IP地址

的映射。

4、中间域名服务器:在层次域名结构中,有时还存在一些既不是根域名服务器,又不是顶

级域名服务器,也不是权威域名服务器的域名服务器,这些域名服务器通常称为中间域名

服务器。

三、域名解析过程

域名解析分为递归解析和迭代解析。提供递归查询服务的域名服务器,可以代替查询主机或其他域名服务器,进行进一步的域名查询,并将最终解析结果发送给查询主机或服务器;

提供迭代查询的服务器,不会代替查询主机或其他域名服务器,进行进一步的查询,只是将下一步要查询的服务器告知查询主机或服务器(当然,如果该服务器拥有最终解析结果,

则直接响应解析结果)。

简述本地域名服务器进行域名解析的过程

通常本地域名服务器都提供递归查询服务。主机在进行域名查询时,本地域名服务器如果没有被查询域名的信息,则代理主机查询根域名服务器或其他服务器,直到得到被查询域名的IP地址(当然,也可能查询不到),最后将解析结果发送给主机。

第四节 万维网应用

一、万维网应用结构

万维网(Word Wide Web,WWW)应用,也称为Web应用。

Web 应用主要包括 【Web服务器】、【浏览器】与【超文本传输协议(HTTP)】等部分。浏览器就是 Web 应用的客户端软件,即Web应用的客户代理,运行在用户计算机上。Web 服务器是Web应用的服务器软件,存储并管理供用户请求浏览的 Web 页面或称为 Web 文档。Web应用是典型的客户/服务器网络应用,客户与服务器之间的交互基于应用层协议 HTTP。

Web 页面是由对象组成的。一个对象通常分别存储为一个文件。在 Web 应用中,通过

一个 URL 地址来寻址一个 Web 页或 Web对象,HTML 基本 Web 页也是通过 URL 地址引

用页面中的其他对象。

每个 URL 地址主要由两部分组成:存放对象的服务器主机域名和【对象的路径名】。

二、HTTP

【HTTP】 是 Web 应用的应用层协议,定义浏览器如何向Web服务器发送请求以及 Web 服务器如何向浏览器进行响应。目前以 HTTP/1.1 为主流。 

 

HTTP 基于传输层的TCP传输报文。浏览器在向服务器发送请求之前,首先需要建立 TCP

连接,然后才能发送 HTTP 请求报文,并接收 HTTP 响应报文。根据 HTTP 在使用 TCP 连

接的策略不同,可以分为非持久连接的 HTTP 和持久连接的 HTTP。

1、非持久连接

非持久连接是指 HTTP 客户与 HTTP 服务器建立 TCP 连接后,通过该连接发送 HTTP 请求报文,接收 HTTP 响应报文,然后断开连接。

请求传输过程如下:

(1)HTTP 客户进程向服务器 www.abc.edu.cn 的 80 号端口,请求建立 TCP 连接。

(2)HTTP 客户进程基于已建立的 TCP 连接向服务器发送一个 HTTP 请求报文。

(3)HTTP 服务器进程接收该请求报文,从指定的路径中检索出 index.html 文件,并封装

到一个HTTP响应报文中,发送给客户进程。

(4)HTTP 服务器进程通知 TCP 断开该 TCP 连接。

(5)HTTP 客户接收响应报文,断开 TCP 连接。浏览器从响应报文中提出 HTML 文件,

进行解析显示,并获知还有 3 个 JPEG 图片的引用。

(6)对每个引用的 JPEG 图片,重复前 4 个步骤。

典型优化技术包括以下两种:

并行连接,通过建立多条并行的 TCP 连接,并行发送 HTTP 请求和并行接收 HTTP 响应。

持久连接,重用已建立的 TCP 连接发送新的HTTP请求和接收HTTP响应,从而消除新建

TCP 连接的时间开销。

1、  持久连接

客户端请求了 Web 页后,继续传输引用的图像文件,这些图像文件多数情况下位于与 Web页所在的服务器相同的服务器,即具有站点局部性特点。这种情况下,可以不断开已建立的 TCP连接,而是利用该连接继续请求传输后续的JPEG小图像,这种 TCP 连接称为持久连接。

根据使用持久连接传输多个对象的策略不同,持久连接又分为两种工作方式:非流水方式

持久连接和流水方式持久连接

(1)   非流水方式持久连接:也称为非管道方式持久连接,客户端在通过持久连接接收到前一个响应报文后,才能发出对下一个对象的请求报文。

(2)   流水方式持久连接:也称为管道方式持久连接,客户端在通过持久连接收到前一

个对象的响应报文之前,连续依次发送对后续对象的请求报文,然后再通过该连接依次接

收服务器发回的响应报文。

使用持久连接的主要约束与规则如下:

(1)   如果客户端不期望在连接上发送其他请求,则应该在最后一条请求报文中包含

connection:close 首部行。

(2)   如果客户端在收到的响应报文中包含 connection:close 首部行,则客户端不能再

在这条连接上发送更多的请求。

(3)   每个持久连接只适用于一跳传输,HTTP/1.1 代理必须能够分别管理与客户端和服

务器的持久连接。

  HTTP/1.1 代理服务器不应该与 HTTP/1.0 客户端建立持久连接。 

 

HTTP 报文由 4 个部分组成:起始行、首部行、空白行和实体主体。

HTTP 报文可以分为两类:请求报文和响应报文,请求报文由浏览器(客户端)发送给Web

服务器,响应报文由Web服务器发送给浏览器。

请求报文与响应报文最主要的区别是起始行不同,请求报文起始行为

<方法><URL><协议版本>

响应报文起始行为

<协议版本><状态码><短语>

每部分之间由空格分离,起始行最后是 CRLF。

HTTP 典型的请求方法有 GET、HEAD、POST、OPTION、PUT 等。

1、GET:请求读取由URL所标识的信息,是最常见的方法。

2、HEAD:请求读取由URL所标识的信息的首部,即无须在响应报文中包含对象。

3、POST:给服务器添加信息(例如,注释)

4、OPTION:请求一些选项的信息。

5、PUT:在指明的URL下存储一个文档。

三、Cookie

【Cookie】 中文名称为小型文本文件,指某些网站为了辨别用户身份、进行会话跟踪而储存在用户本地终端上的数据。

Cookie 技术主要包括 4 部分内容。

HTTP响应报文中的Cookie头行:Set-Cookie。

用户浏览器在本地存储、维护和管理的Cookie文件。

HTTP请求报文中的Cookie头行:Cookie。

网站在后台数据库中存储、维护Cookie信息,包括已分配给用户ID、每个ID用户在本网

站的访问特征等。  

 

简述Cookie的常见用途
1)网站可以利用Cookie的ID来准确统计网站的实际访问人数等数据。

2)网站可以利用Cookie制某些特定用户的访问。

3)网站可以存储用户访问过程的操作习惯和偏好,有针对性地为用户提供服务,提升用户体验。

4)记录用户登录网站使用的用户名、密码等信息,当用户多次登录时,无须每次都从键盘输入这些烦琐的字符和数字。

5)电子商务网站利用Cookie可以实现“购物车”功能。对于同一个ID的用户,网站可以跟踪其向“购物车”中添加的不同商品,每个商品都会和ID一起存储在网站数据库中。当用户选择结账时,网站通过对数据库中该ID的检索,找到用户购买的所有商品,一起实现结账功能。

第五节 Internet电子邮件

一、电子邮件系统结构

电子邮件系统主要包括邮件服务器、简单邮件传输协议、用户代理和邮件读取协议等。

邮件服务器的功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、

被拒绝、丢失等),是电子邮件体系结构的核心。

二、SMTP

SMTP 是Internet电子邮件中核心应用层协议,实现邮件服务器之间或用户代理到邮件服务器之间的邮件传输。SMTP使用传输层【TCP】 实现可靠数据传输,从发送方向接收方发送邮件。在发送邮件时,SMTP客户端首先请求与服务器端的25号端口建立TCP连接,连接一旦建立,便开始进行SMTP应用层交互,实现邮件的发送。当TCP连接建立成功后,SMTP通过 3 个阶段的应用层交互完成邮件的传输,分别是握手阶段、邮件传输阶段和关闭阶段。

握手阶段类似于两个人通信之前的寒暄,彼此声明自己的身份;邮件传输阶段,客户端首先向服务器端通告邮件发送者与邮件接收者的邮箱地址,然后开始邮件数据的传输;关闭阶段声明邮件传输结束,并关闭TCP连接。

 

简述简单邮件传输协议(SMTP)所具有的特点:

1、SMTP 只能传送 7 位 ASCⅡ码文本内容,包括SMTP命令、应答消息以及邮件内容。

2、SMTP 传送的邮件内容中不能包含“CRLF.CRLF”,因为该信息用于标识邮件内容的结束。

3、SMTP 是“推动”协议。当客户端有邮件发送给服务器时,客户主动与服务器请求建立 TCP

连接,然后将邮件“推送”给服务器。

4、SMTP 使用 TCP 连接是持久的。

三、电子邮件格式与MIME

大部分邮件本身并不是一段文本内容,而是按着一定格式结构进行组织的。一份邮件包括首部、空白行、主体3部分。邮件内容首部包括一条或多条首部行,每条首部行包括一个关键字,后面加上冒号,冒号后面是首部值。

由于 SMTP 只能传输 7 位 ASCⅡ码文本内容,所以在传输非7位ASCⅡ码文本内容时,必须依据一个标准将非7位ASCⅡ码文本内容转换为7位ASCⅡ码文本内容,然后再利用SMTP进行传输。解决这一问题的具体方案就是多用途互联网邮件扩展(MIME)。MIME已经广泛应用于互联网的邮件之中。

MIME 主要包括 3 个部分:

1、5 个 MIME 邮件首部字段,可包含在邮件首部中。这些字段提供了有关邮件主体的信息。

2、定义了多种邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。

3、定义了邮件传送编码,可对任何内容格式进行转换,从而适合通过 SMTP 进行传送。 

四、邮件读取协议

POP3

POP3 是一个简单的邮件读取协议,因此其功能很有限。为了保证读取邮件过程的可靠性,POP3 协议使用传输层TCP。POP3客户端运行在用户代理中,POP3服务器运行在邮件服务器上,默认熟知端口号为 110。用户读取邮件中的邮件时,用户代理中的 POP3 客户首先请求与 POP3 服务器进行交互,实现对邮箱的操作。POP3协议交互过程可以分为 3 个阶段:授权、事务处理和更新。 

IMAP

IMAP 服务器将每个邮件与一个文件夹进行关联,当邮件第一次到达服务器时,与收件人的INBOX 文件夹相关联。通过 IMAP,收件人可以在服务器上创建新的文件夹,并可以对邮件进行移动、查询、阅读、删除等操作。

HTTP

HTTP 是 Web 应用的应用层协议。当使用基于 Web 的邮件时,HTTP 便被用于邮件的读取,此时,HTTP 也作为邮件读取协议使用。

第六节 FTP

【文件传送协议】(FTP)是在互联网的两个主机间实现文件互传的网络应用,其应用层也称为 FTP。

FTP 的服务器进程由两大部分组成:一部分为主进程,负责接受新的客户请求;另一部分为若干从属进程,负责处理单个客户请求,与具体客户进行交互。

FTP 的特点

(1)FTP 在传输文件内容时,需要新建一个数据连接,专门用于文件传输,文件传输结束

后,数据连接即关闭。也就是说,FTP应用使用两个“并行”的TCP连接:控制连接和数据连接。

(2)FTP 服务器必须在整个会话期间保留用户的状态,即FTP是有状态的。

(3)FTP 会话形式是客户向服务器发送命令,服务器发送状态码和短语作为应答。 

第七节 P2P应用

P2P 体系结构对服务器的依赖很小,甚至对于纯 P2P 来说,整个应用几乎不依赖某个集中服务器,应用都是动态地在对等方之间进行。在 P2P 应用中,对等方随时可能加入应用,也可能随时离开应用,具有很强的应用规模伸缩性。P2P  应用充分聚集利用了端系统(对等方主机)的计算能力以及网络传输带宽,代表了全新的网络应用架构与理念。

第八节 Socket编程基础

网络应用进程通信时需要通过API接口请求底层协议的服务,如传输层服务,目前在

Internet中应用最广泛的网络应用编程接口就是 Socket API。无论是客户进程还是服务器进

程,都需要创建Socket,实现与底层协议接口,从而可以通过Socket将数据发送出去或接

收进来。

网络应用进程可以创建 3 种类型的 Socket:数据报类型套接字 SOCK_DGRAM、流式套接字 SOCK_STREAM和原始套接字SOCK_RAM。


04741 计算机网络原理第二章的评论 (共 条)

分享到微博请遵守国家法律