欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

计算机网络基础知识总结(六)应用层

程序员文章站 2022-07-01 17:26:52
...

六、应用层

6.1 域名系统DNS

6.1.1 基础概念

1)域名系统DNS(Domain Name System):是互联网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址。互联网的域名系统DNS被设计成为一个联机分布式数据库系统,并采用客户服务器方式。

2)域名服务器程序(可简称为域名服务器):域名到IP地址的解析是由分布在互联网上的许多域名服务器程序共同完成的。人们也常把运行域名服务器程序的机器称为域名服务器。

3)互联网的域名结构

DNS规定,域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符(但为了记忆方便,最好不要超过12个字符),也不区分大小写字母(例如,CCTV或cctv在域名中是等效的)。标号中除连字符(-)外不能使用其他的标点符号。级别最低的域名写在最左边,而级别最高的*域名则写在最右边。由多个标号组成的完整域名总共不超过255个字符。

  • *域名TLD(Top Level Domain)

    • 国家*域名nTLD:采用ISO 3166的规定。如:cn表示中国,us表示美国,uk表示英国,等等。
    • 通用*域名gTLD:如:com(公司企业),net(网络服务机构),org(非营利性组织),int(国际组织),edu(美国专用的教育机构),gov(美国的*部门),mil表示(美国的军事部门),等等。
    • 基础结构域名(infrastructure domain):这种*域名只有一个,即arpa,用于反向域名解析,因此又称为反向域名。
    • 任何公司、机构都有权向ICANN申请新的*域名。目前已有一些由两个汉字组成的中文的*域名出现了,例如,商城、公司、新闻等。
  • 二级域名(在国家*域名**册的二级域名均由该国家自行确定)

    • 我国“类别域名”共7个,分别为:ac(科研机构),com(工、商、金融等企业),edu(中国的教育机构),gov(中国的*机构),mil(中国的国防机构),net(提供互联网络服务的机构),org(非营利性的组织)。
    • 我国“行政区域名”共34个,适用于我国的各省、自治区、直辖市。例如:bj(北京市),js(江苏省),等等。
  • 三级域名/四级域名等等。

6.1.2 域名服务器

1)一个服务器所负责管辖的(或有权限的)范围叫做区(zone)。

各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。每一个区设置相应的权限域名服务器(authoritative name server) ,用来保存该区中的所有主机的域名到IP地址的映射。总之,DNS服务器的管辖范围不是以“域”为单位,而是以“区”为单位。区是DNS服务器实际管辖的范围。区可能等于或小于域,但一定不能大于域。

2)域名服务器的四种类型

  • 根域名服务器(root name server):根域名服务器是最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的*域名服务器的域名和IP地址。采用任播技术。
  • *域名服务器(即TLD服务器):这些域名服务器负责管理在该*域名服务器注册的所有二级域名。
  • 权限域名服务器:这就是前面已经讲过的负责一个区的域名服务器。
  • 本地域名服务器(local name server):每一个互联网服务提供者ISP,或一个大学,甚至一个大学里的系,都可以拥有一个本地域名服务器,这种域名服务器有时也称为默认域名服务器。(Windows操作系统中,首选DNS服务器和备用DNS服务器的IP地址中的的DNS服务器指的就是本地域名服务器。)

3)主域名服务器和辅助域名服务器

为了提高域名服务器的可靠性,DNS域名服务器都把数据复制到几个域名服务器来保存,其中的一个是主域名服务器(master name server),其他的是辅助域名服务器(secondary name server)。当主域名服务器出故障时,辅助域名服务器可以保证DNS的查询工作不会中断。主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行。这样就保证了数据的一致性。

4)域名的解析过程

  • 主机向本地域名服务器的查询一般都是采用递归查询(recursive query)。

  • 本地域名服务器向根域名服务器的查询通常是采用迭代查询(iterative query),也可采用递归查询。如下:
    计算机网络基础知识总结(六)应用层

5)域名服务器中广泛地使用了高速缓存(有时也称为高速缓存域名服务器)。不但在本地域名服务器中需要高速缓存,在主机中也很需要。


6.2 文件传送协议

6.2.1 介绍

1)文件传送协议FTP(File Transfer Protocol)[RFC 959]是互联网上使用得最广泛的文件传送协议。

2)基于TCP的FTP和基于UDP的简单文件传送协议TFTP,它们都是文件共享协议中的一大类,即复制整个文件。

6.2.2 FTP协议

1)文件传送协议FTP只提供文件传送的一些基本的服务,它使用TCP可靠的运输服务。FTP的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。

2)FTP使用客户服务器方式。 一个FTP服务器进程可同时为多个客户进程提供服务。

3)主进程和从属进程:FTP的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。

  • 主进程的工作步骤
    • (1)打开熟知端口(端口号为21),使客户进程能够连接上。
    • (2)等待客户进程发出连接请求。
    • (3)启动从属进程处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。
    • (4)回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发进行的。
  • 从属进程:每个FTP连接都有两个从属进程,控制进程和数据传送进程。
    • (1)当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口21,同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。
    • (2)服务器进程用自己传送数据的熟知端口20与客户进程所提供的端口号建立数据传送连接。

4)FTP数据连接的两种方式(服务器角度)

  • 主动模式:服务端主动用自己的20端口去连客户端。

  • 被动模式:服务端被动等待客户端来连服务端的一个随机端口。注意被动模式服务器的数据端口不再是20。

  • 两种模式图解:
    计算机网络基础知识总结(六)应用层

6.2.3 简单文件传送协议TFTP

1)简单文件传送协议TFTP(Trivial File Transfer Protocol)是一个很小且易于实现的文件传送协议。

2)TFTP也使用客户服务器方式 ,但它使用UDP数据报,因此TFTP需要有自己的差错改正措施。


6.3 远程终端协议TELNET

1)TELNET又称为终端仿真协议。用户用TELNET就可在其所在地通过TCP连接注册(即登录)到远地的另一台主机上(使用主机名或IP地址)。TELNET能将用户的击键传到远地主机,同时也能将远地主机的输出通过TCP连接返回到用户屏幕。

2)TELNET也使用客户服务器方式。 在本地系统运行TELNET客户进程,而在远地主机则运行TELNET服务器进程。和FTP的情况相似,服务器中的主进程等待新的请求,并产生从属进程来处理每一个连接。


6.4 万维网WWW

6.4.1 介绍

1)万维网WWW(World Wide Web)并非某种特殊的计算机网络。万维网是一个大规模的、联机式的信息储藏所,英文简称为Web。

2)万维网是一个分布式的超媒体(hypermedia)系统,它是超文本(hypertext)系统的扩充。

3)万维网以客户服务器方式工作。

6.4.2 统一资源定位符URL

1)URL的一般形式由以下四个部分组成:<协议>://<主机>:<端口>/<路径>

  • <协议>:指出使用什么协议来获取该万维网文档。现在最常用的协议就是http(超文本传送协议HTTP),其次是ftp(文件传送协议FTP)。
  • <主机>:指出这个万维网文档是在哪一台主机上。这里的<主机>就是指该主机在互联网上的域
    名。
  • 第三和第四部分<端口>和<路径>,有时可省略。

6.4.3 超文本传送协议HTTP

1)HTTP协议定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。

2)在使用HTTP之前要先建立TCP连接,连接的三报文握手的第三个报文段中的数据,就是客户对万维网文档的请求报文。
计算机网络基础知识总结(六)应用层
3)HTTP/1.0协议和HTTP/1.1协议

  • HTTP/1.0协议:非持久连接。每次请求和响应一个文档都要重新建立连接。
  • HTTP/1.1协议:持久连接。在一段时间内,对同一个服务器的请求和响应都可以使用同一个连接。有两种工作方式。
    • 非流水线方式(without pipelining):特点是客户在收到前一个响应后才能发出下一个请求。
    • 流水线方式(with pipelining):特点是客户在收到HTTP的响应报文之前就能够接着发送新的请求报文。

4)代理服务器(proxy server):是一种网络实体,它又称为万维网高速缓存(Web cache)。代理服务器把最近的一些请求和响应暂存在本地磁盘中。

5)HTTP有两类报文:请求报文(从客户向服务器发送请求报文)和响应报文(从服务器到客户的回答)。
计算机网络基础知识总结(六)应用层

  • 开始行:用于区分是请求报文还是响应报文。在请求报文中的开始行叫做请求行(Request-Line),而在响应报文中的开始行叫做状态行(Status-Line)。在开始行的三个字段之间都以空格分隔开,最后的“CR”和“LF”分别代表“回车”和“换行”。
  • 首部行:用来说明浏览器、服务器或报文主体的一些信息。首部可以有好几行,但也可以不使用。
  • 实体主体(entity body):在请求报文中一般都不用这个字段,而在响应报文中也可能没有这个字段。

6)HTTP请求报文的主要特点

  • “方法”就是对所请求的对象进行的操作,这些方法实际上也就是一些命令。求报文中常用的
    几种方法:
    计算机网络基础知识总结(六)应用层

  • 完整的HTTP请求报文的例子:

    GET /dir/index.htm HTTP/1.1 		{请求行使用了相对URL}
    Host: www.xyz.edu.cn 		{此行是首部行的开始。这行给出主机的域名}
    Connection: close 		    {告诉服务器发送完请求的文档后就可释放连接}
    User-Agent: Mozilla/5.0 		{表明用户代理是使用火狐浏览器Firefox}
    Accept-Language: cn 			{表示用户希望优先得到中文版本的文档}
    							{请求报文的最后还有一个空行}
    

7)HTTP响应报文的主要特点

  • 状态行包括三项内容,即HTTP的版本,状态码,以及解释状态码的简单短语。

    • 状态码(Status-Code)都是三位数字的,分为5大类,原先有33种[RFC2616],后来又增加了几种[RFC 6585]。这5大类的状态码都是以不同的数字开头的:

      1xx表示通知信息,如请求收到了或正在进行处理。
      2xx表示成功,如接受或知道了。
      3xx表示重定向,如要完成请求还必须采取进一步的行动。
      4xx表示客户的差错,如请求中有错误的语法或不能完成。
      5xx表示服务器的差错,如服务器失效无法完成请求。

    • 三种状态行在响应报文中是经常见到的:

      HTTP/1.1 202 Accepted {接受}
      HTTP/1.1 400 Bad Request {错误的请求}
      Http/1.1 404 Not Found {找不到}

6.4.4 其它

1)万维网的文档(HTML):静态文档、动态文档和活动文档。

2)万维网的信息检索方式:有全文检索搜索与分类目录搜索两种。


6.5 电子邮件

1)电子邮件的两个最重要的标准就是:简单邮件传送协议SMTP(Simple Mail Transfer Protocol)[RFC 5321]和互联网文本报文格式[RFC 5322]。

2)一个电子邮件系统应具有三个主要组成构件,这就是用户代理、邮件服务器,以及邮件发送协议(如SMTP)和邮件读取协议(如POP3)。
计算机网络基础知识总结(六)应用层

  • 用户代理UA(User Agent):就是用户与电子邮件系统的接口,在大多数情况下它就是运行在用户电脑中的一个程序。因此用户代理又称为电子邮件客户端软件。
  • 邮件服务器按照客户服务器方式工作 ,邮件服务器必须能够同时充当客户和服务器。
  • 邮件服务器需要使用两种不同的协议。
    • 一种协议用于用户代理向邮件服务器发送邮件或在邮件服务器之间发送邮件,如SMTP协议,
    • 另一种协议用于用户代理从邮件服务器读取邮件,如邮局协议POP3。

3)现在常用的邮件读取协议有两个,即邮局协议第3个版本POP3和网际报文存取协议IMAP(Internet Message Access Protocol)。

  • POP3是一个脱机协议,所有对邮件的处理都在用户的PC机上进行。
  • IMAP是一个联机协议,用户可以操纵ISP的邮件服务器的邮箱,在不同的地方使用不同的计算机处理邮件。

6.6 动态主机配置协议DHCP

1)动态主机配置协议DHCP(Dynamic Host Configuration Protocol):它提供了一种机制,称为即插即用连网(plug-and-playne tworking)。这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与。

2)DHCP使用客户服务器方式。 是UDP用户数据报的数据部分。

3)DHCP中继代理(relay agent):每一个网络上都设置一个DHCP服务器会使DHCP服务器的数量太多,因此现在是使每一个网络至少有一个DHCP中继代理,通常是一台路由器,配置了DHCP服务器的IP地址信息。

当DHCP中继代理收到主机A以广播形式发送的发现报文后,就以单播方式向DHCP服务器转发此报文,并等待其回答。收到DHCP服务器回答的提供报文后,DHCP中继代理再把此提供报文发回给主机A。

4)租用期(lease period):DHCP服务器分配给DHCP客户的IP地址是临时的,因此DHCP客户只能在一段有限的时间内使用这个分配到的IP地址。DHCP协议称这段时间为租用期,但并没有具体规定租用期应取为多长或至少为多长,这个数值应由DHCP服务器自己决定。

5)DHCP客户使用的UDP端口是68,而DHCP服务器使用的UDP端口是67。这两个UDP端口都是熟知端口。windows系统中若选择“自动获得IP地址”和“自动获得DNS服务器地址”,就表示是使用DHCP协议。

相关标签: 计算机网络