计算机网络(1)概述
计算机网络(2)物理层
计算机网络(3)数据链路层
计算机网络(4)网络层
计算机网络(5)传输层
传输层为应用进程提供了端到端的通信服务。但不同的网络应用的应用进程之间,还需要有不同的通信规则。因此在传输层协议之上,还需要有 应用层协议 (application layer protocol)。这是因为,每个应用层协议都是为了解决某一类应用问题,而问题的解决又必须通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的。应用进程之间的这种通信必须遵循严格的规则。应用层的具体内容就是精确 定义这些通信规则
● 应用进程交换的报文类型,如请求报文和响应报文。
● 各种报文类型的语法,如报文中的各个字段及其详细描述。
● 字段的语义,即包含在字段中的信息的含义。
● 进程何时、如何发送报文,以及对报文进行响应的规则。

应用层的许多协议都是基于 客户-服务器方式 。即使是对等通信方式,实质上也是一种特殊的客户-服务器方式。
客户 (client)和 服务器 (server)都是指通信中所涉及的两个 应用进程 。客户-服务器方式所描述的是进程之间服务和被服务的关系。这里最主要的特征就是:客户是服务请求方,服务器是服务提供方

域名系统DNS

域名系统概述
域名系统 DNS (Domain Name System)是因特网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址。域名系统其实就是名字系统。
许多应用层软件经常直接使用域名系统DNS。虽然计算机的用户只是 间接 而不是直接使用域名系统,但DNS却为因特网的各种网络应用提供了核心服务。

因特网的域名系统DNS被设计成为一个联机分布式数据库系统,并采用客户-服务器方式。DNS使大多数名字都在本地进行 解析 (resolve),仅少量解析需要在因特网上通信,因此DNS系统的效率很高。由于DNS是分布式系统,即使单个计算机出了故障,也不会妨碍整个DNS系统的正常运行。
域名到IP地址的解析是由分布在因特网上的许多 域名服务器程序(可简称为域名服务器)共同完成的。域名服务器程序在专设的结点上运行,而人们也常把运行域名服务器程序的机器也称为 域名服务器
域名到IP地址的解析过程的要点如下:当某一个应用进程需要把主机名解析为IP地址时,该应用进程就调用 解析程序(resolver),并成为DNS的一个客户,把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发给本地域名服务器(使用UDP是为了减少开销)。本地域名服务器在查找域名后,把对应的IP地址放在回答报文中返回。应用进程获得目的主机的IP地址后即可进行通信。
若本地域名服务器不能回答该请求,则此域名服务器就暂时成为DNS中的另一个客户,并向其他域名服务器发出查询请求。这种过程直至找到能够回答该请求的域名服务器为止。

因特网的域名结构
因特网采用了层次树状结构的命名方法
任何一个连接在因特网上的主机或路由器,都有一个唯一的 层次结构的名字 ,即 域名 (domain name)。这里,“ ”(domain)是名字空间中一个可被管理的划分。域还可以划分为子域,而子域还可继续划分为子域的子域,这样就形成了顶级域、二级域、三级域,等等。
从语法上讲,每一个域名都是由 标号 (label)序列组成,而各标号之间用 隔开。

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

因特网的名字空间是按照机构的组织来划分的,与物理的网络无关,与IP地址中的“子网”也没有关系。

域名服务器

(1) 根域名服务器 (root name server):根域名服务器是最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。根域名服务器是最重要的域名服务器,因为不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析(即转换为IP地址),只要自己无法解析,就首先要求助于根域名服务器。假定所有的根域名服务器都瘫痪了,那么整个的DNS系统就无法工作。
在许多情况下,根域名服务器并不直接把待查询的域名直接转换成IP地址(根域名服务器也没有存放这种信息),而是告诉本地域名服务器下一步应当找哪一个顶级域名服务器进行查询。
(2) 顶级域名服务器(即TLD 服务器):这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的IP地址)。
(3) 权限域名服务器 :当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的DNS客户,下一步应当找哪一个权限域名服务器。
(4) 本地域名服务器 (local name server):一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。由此可看出本地域名服务器的重要性。每一个因特网服务提供者ISP,或一个大学,甚至一个大学里的系,都可以拥有一个本地域名服务器,这种域名服务器有时也称为默认域名服务器。当PC使用Windows XP操作系统时,打开“控制面板”,选择“网络连接”,再用鼠标右键点击任何一种网络连接,选择“属性”、“网络”,然后选择“Internet协议(TCP/IP)”,再选择“属性”,就可看见有关DNS地址的选项(自动获取或指定地址)。这里的DNS服务器指的就是本地域名服务器。本地域名服务器离用户较近,一般不超过几个路由器的距离。当所要查询的主机也属于同一个本地ISP时,该本地域名服务器立即就能将所查询的主机名转换为它的IP地址,而不需要再去询问其他的域名服务器。

域名的解析过程。
第一,主机向本地域名服务器的查询一般都是采用 递归查询 (recursive query)。所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文(即替该主机继续查询),而不是让该主机自己进行下一步的查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。
第二,本地域名服务器向根域名服务器的查询通常是采用 迭代查询 (iterativequery)。迭代查询的特点是这样的:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询(而不是替本地域名服务器进行后续的查询)。根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的IP地址,要么告诉本地域名服务器下一步应当向哪一个权限域名服务器进行查询,本地域名服务器就这样进行迭代查询。最后,知道了所要解析的域名的IP地址,然后把这个结果返回给发起查询的主机。当然,本地域名服务器也可以采用递归查询,这取决于最初的查询请求报文的设置是要求使用哪一种查询方式。

文件传送协议

文件传送协议 FTP (File Transfer Protocol) 是因特网上使用得最广泛的文件传送协议。
FTP提供交互式的访问,允许客户指明文件的类型与格式(如指明是否使用ASCII码),并允许文件具有存取权限(如访问文件的用户必须经过授权,并输入有效的口令)。FTP屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。

基于TCP的FTP和基于UDP的简单文件传送协议TFTP,它们都是文件共享协议中的一大类,即 复制整个文件,其特点是:若要存取一个文件,就必须先获得一个本地的文件副本。如果要修改文件,只能对文件的副本进行修改,然后再将修改后的文件副本传回到原节点。
文件共享协议中的另一大类是 联机访问 (on-line access)。联机访问意味着允许多个程序同时对一个文件进行存取。和数据库系统不同之处是用户不需要调用一个特殊的客户进程,而是由操作系统提供对远地共享文件进行访问的服务,就如同对本地文件的访问一样。这就使用户可以用远地文件作为输入和输出来运行任何应用程序,而操作系统中的文件系统则提供对共享文件的 透明存取 。透明存取的优点是:将原来用于处理本地文件的应用程序用来处理远地文件时,不需要对该应用程序作明显的改动。

FTP的基本工作原理
文件传送协议FTP只提供文件传送的一些基本的服务,它使用TCP可靠的运输服务。FTP的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。
FTP使用客户服务器方式。一个FTP服务器进程可同时为多个客户进程提供服务。FTP的服务器进程由两大部分组成:一个 主进程 ,负责接受新的请求;另外有若干个 从属进程 ,负责处理单个请求。
进程的工作步骤如下:
(1) 打开熟知端口(端口号为21),使客户进程能够连接上。
(2) 等待客户进程发出连接请求。
(3) 启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。
(4) 回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发地进行。

图中的椭圆圈表示在系统中运行的进程。图中的服务器端有两个从属进程:控制进程和数据传送进程。为简单起见, 服务器端的主进程没有画上。在客户端除了控制进程和数据传送进程外,还有一个用户界面进程用来和用户接口。

在进行文件传输时,FTP的客户和服务器之间要建立两个并行的TCP连接:“ 控制连接 ”和“ 数据连接 ”。控制连接在整个会话期间一直保持打开,FTP客户所发出的传送请求,通过控制连接发送给服务器端的控制进程,但控制连接并不用来传送文件。实际用于传输文件的是“数据连接” 。服务器端的控制进程在接收到FTP客户发送来的文件传输请求后就创建 “数据传送进程”和“数据连接” ,用来连接客户端和服务器端的数据传送进程。数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。由于FTP使用了一个分离的控制连接,因此FTP的控制信息是带外(out of band)传送的。
当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口(21),同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。接着,服务器进程用自己传送数据的熟知端口(20)与客户进程所提供的端口号码建立数据传送连接。由于FTP使用了两个不同的端口号,所以数据连接与控制连接不会发生混乱。

网络文件系统NFS则采用另一种思路。NFS允许应用进程打开一个远地文件,并能在该文件的某一个特定的位置上开始读写数据 。这样,NFS可使用户只复制一个大文件中的一个很小的片段,而不需要复制整个大文件。对于上述例子,计算机A中的NFS客户软件,把要添加的数据和在文件后面写数据的请求一起发送到远地的计算机B中的NFS服务器,NFS服务器更新文件后返回应答信息。在网络上传送的只是少量的修改数据。

简单文件传送协议TFTP
TCP/IP协议族中还有一个 简单文件传送协议 TFTP (Trivial File TransferProtocol),它是一个很小且易于实现的文件传送协议。
虽然TFTP也使用客户-服务器方式,但它使用UDP数据报,因此TFTP需要有自己的差错改正措施。TFTP只支持文件传输而不支持交互。TFTP没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。
TFTP的优点主要有两个。第一,TFTP可用于UDP环境。例如,当需要将程序或文件同时向许多机器下载时就往往需要使用TFTP。第二,TFTP代码所占的内存较小。这对较小的计算机或某些特殊用途的设备是很重要的。这些设备不需要硬盘,只需要固化了TFTP和UDP以及IP的小容量只读存储器即可。当接通电源后,设备执行只读存储器中的代码,在网络上广播一个TFTP请求。网络上的TFTP服务器就发送响应,其中包括可执行二进制程序。设备收到此文件后将其放入内存,然后开始运行程序。这种方式增加了灵活性,也减少了开销。
TFTP的工作很像停止等待协议。发送完一个文件块后就等待对方的确认,确认时应指明所确认的块编号。发完数据后在规定时间内收不到确认就要重发数据PDU。发送确认PDU的一方,若在规定时间内收不到下一个文件块,也要重发确认PDU。这样就可保证文件的传送不致因某一个数据报的丢失而告失败。
在一开始工作时。TFTP客户进程发送一个读请求报文或写请求报文给TFTP服务器进程,其熟知端口号码为69。TFTP服务器进程要选择一个新的端口和TFTP客户进程进行通信。若文件长度恰好为512字节的整数倍,则在文件传送完毕后,还必须在最后发送一个只含首部而无数据的数据报文。若文件长度不是512字节的整数倍,则最后传送数据报文中的数据字段一定不满512字节,这正好可作为文件结束的标志。

远程终端协议TELNET

TELNET是一个简单的远程终端协议,它也是因特网的正式标准。用户用TELNET就可在其所在地通过TCP连接注册(即登录)到远地的另一个主机上(使用主机名或IP地址)。TELNET能将用户的击键传到远地主机,同时也能将远地主机的输出通过TCP连接返回到用户屏幕。这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上。因此,TELNET又称为 终端仿真协议。
TELNET也使用客户-服务器方式。在本地系统运行TELNET客户进程,而在远地主机则运行TELNET服务器进程。和FTP的情况相似,服务器中的主进程等待新的请求,并产生从属进程来处理每一个连接。

万维网WWW

万维网概述
万维网 WWW (World Wide Web)并非某种特殊的计算机网络。万维网是一个大规模的、联机式的信息储藏所 ,英文简称为Web。万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点(也就是所谓的“ 链接到另一个站点 ”),从而主动地按需获取丰富的信息。

万维网是一个分布式的 超媒体 (hypermedia)系统,它是 超文本 (hypertext)系统的扩充。所谓超文本是包含指向其他文档的链接的文本。也就是说,一个超文本由多个信息源链接成,而这些信息源的数目实际上是不受限制的。利用一个链接可使用户找到另一个文档,而这又可链接到其他的文档(依次类推)。这些文档可以位于世界上任何一个接在因特网上的超文本系统中。超文本是万维网的基础。
超媒体与超文本的区别是文档内容不同。超文本文档仅包含文本信息,而超媒体文档还包含其他表示方式的信息,如图形、图像、声音、动画,甚至活动视频图像。
分布式的和非分布式的超媒体系统有很大区别。在非分布式系统中,各种信息都驻留在单个计算机的磁盘中。由于各种文档都可从本地获得,因此这些文档之间的链接可进行一致性检查。所以,一个非分布式超媒体系统能够保证所有的链接都是有效的和一致的。
万维网把大量信息分布在整个因特网上。每台主机上的文档都独立进行管理。对这些文档的增加、修改、删除或重新命名都不需要(实际上也不可能)通知到因特网上成千上万的节点。这样,万维网文档之间的链接就经常会不一致。
万维网以客户-服务器方式工作。上面所说的浏览器就是在用户主机上的万维网客户程序。万维网文档所驻留的主机则运行服务器程序,因此这个主机也称为万维网服务器。客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。 在一个客户程序主窗口上显示出的万维网文档称为 页面 (page)。
万维网使用 统一资源定位符 URL (Uniform ResourceLocator)来标志万维网上的各种文档,并使每一个文档在整个因特网的范围内具有唯一的标识符URL。为了解决上述的第二个问题,就要使万维网客户程序与万维网服务器程序之间的交互遵守严格的协议,这就是 超文本传送协议 HTTP (HyperTextTransfer Protocol)。HTTP是一个应用层协议,它使用TCP连接进行可靠的传送。为了解决上述的第三个问题,万维网使用 超文本标记语言 HTML (HyperTextMarkup Language),使得万维网页面的设计者可以很方便地用链接从本页面的某处链接到因特网上的任何一个万维网页面,并且能够在自己的主机屏幕上将这些页面显示出来。最后,用户可使用搜索工具在万维网上方便地查找所需的信息。

统一资源定位符URL
URL的格式
统一资源定位符URL是用来表示从因特网上得到的资源位置和访问这些资源的方法。URL给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。只要能够对资源定位,系统就可以对资源进行各种操作,如存取、更新、替换和查找其属性。
URL相当于一个文件名在网络范围的扩展。因此,URL是与因特网相连的机器上的任何可访问对象的一个指针。由于访问不同对象所使用的协议不同,所以URL还指出读取某个对象时所使用的协议。URL的一般形式由以下四个部分组成:

URL的第一部分是最左边的<协议>。这里的<协议>就是指出使用什么协议来获取该万维网文档。现在最常用的协议就是http(超文本传送协议HTTP),其次是ftp(文件传送协议FTP)。
在<协议>后面是规定必须写上的格式“

计算机网络(6)应用层相关推荐

  1. 【计算机网络】应用层 : 总结 ( 网络应用模型 C/S P2P | 域名解析 DNS | 文件传输协议 FTP | 电子邮件 | 万维网 与 HTTP ) ★★★

    文章目录 一.网络应用模型 ★ 二.域名解析过程 ★ 三.FTP 文件传输协议 四.电子邮件★ 五.万维网 和 HTTP 协议★ 一.网络应用模型 ★ 网络应用模型 : ① 客户 / 服务器 模型 ( ...

  2. 自顶向下计算机网络学习 应用层

    自顶向下计算机网络学习 应用层 一.应用层协议原理 1. 网络应用的体系结构 1.1 客户-服务器(C/S)体系结构 1.2 对等体(P2P)体系结构 1.3 混合体:客户 - 服务器和对等体系结构 ...

  3. 计算机网络原理 - 应用层

    计算机网络原理 - 应用层 应用层 应用层是主机上进程之间的交互,不同的进程内可以有多个线程,多线程处理数据 2.1 应用层协议原理 研发网络应用的核心是写出能够运行在不同端系统和通过网络彼此通信的程 ...

  4. 计算机网络自顶向下 应用层 习题

    计算机网络自顶向下 应用层 习题 假定你想尽快地处理从远程客户到服务器的事务,你将使用 UDP 还是 TCP?为什么? 答:我会使用UDP, 因为TCP是面向连接的, 在传输之前需要进行三次握手. 而 ...

  5. 计算机网络笔记----应用层

    应用层 应用层协议原理 网络应用程序的体系结构 客户-服务器体系结构 P2P体系结构 进程通信 进程与计算机网络之间的接口 进程寻址 可供应用程序使用的运输服务 可靠数据传输 吞吐量 定时 安全性 因 ...

  6. 计算机网络自顶向下-应用层

    一.简介: 网络应用是计算机网络存在的理由,没有了应用也不存在任何的网络协议.我们学习网络应用的原理和实现方面知识,从定义应用层概念开始,其中包括网络服务.客户]服务器.进程和运输层接口. 其中包括我 ...

  7. 计算机网络之应用层图解,秒解应用层HTTP,期末考试不担心!!

    应用层 已同步微信公众号:乐享Coding,期待你的关注! 应用层是计算机网络体系结构的最顶层,是设计和建立计算机网络的最终目的,也是计算机网络中发展最快的部分. 首先对应用层要有个大概了解,思维导图 ...

  8. 计算机网络之应用层(DNS域名系统)

    应用层作为和用户直接交互的一层,它具体的内容就是规定应用进程在通信时所需要遵循的协议. 应用层的很多协议都是基于客户-服务器方式(C-S方式),即便是 P2P 的方式,本质上也只是一种特殊的客户-服务 ...

  9. 计算机网络体系结构 - 应用层

    一.应用层协议 (1)域名系统(Domain Name System,DNS):用于实现网络设备名字到IP地址映射的网络服务. (2)文件传输协议(File Transfer Protocol,FTP ...

  10. 计算机网络之应用层(文件传送协议、万维网)

    文件传送协议 FTP 文件传送协议 FTP 的概述 文件传送协议 FTP(file transfer protocol)是互联网上使用得最广泛的文件传送协议(应用层协议),基于可靠的 TCP 协议.F ...

最新文章

  1. 图像去马赛克:双线性插值VS高质量线性插值
  2. linux能安装音乐软件吗,Linux上如何安装使用音乐软件SoundCloud
  3. android comparator,Comparator和Comparable实现排序的例子源码及其对比
  4. 2020年电赛题目,命题专家权威解析!
  5. C++11使用互斥量保护共享数据
  6. node.js 获取异步方法里面的数据 =》 两种方式
  7. 3481. 阶乘的和
  8. vue-cli部署ngixs_nginx部署访问vue-cli搭建的项目的方法
  9. rocketmq namesrv 第一章启动过程
  10. 根据自己平时的经验写的针对SQLSERVER操作的通用类库
  11. 昆仑通态如何连接sqlserver数据库_三菱FX5U 与昆仑通态触摸屏的连接操作步骤
  12. 思科CEO自爆:G20虚拟会议用的我家技术
  13. ArcView Spacial Analyst v2.0 1CD
  14. jq js json 转字符串_Jquery中Json对象转为string字符串
  15. Adobe Acrobat 9 Pro打印提示“你需要先安装打印机方可执行打印相关任务,例如页面设置和打印文档。”解决
  16. 雄迈录像机开放哪些端口
  17. 2020时尚COSMO美容大奖“破圈直播间”完美收官!打造美妆直播全新形式!
  18. POJ - 1679 The Unique MST (次小生成树) 板子
  19. Maven学习笔记__上篇
  20. 《数字图像处理》自学笔记(一)

热门文章

  1. Windows 10 远程桌面开启和关闭
  2. Tomcat启动错误-Unable to open debugger port (127.0.0.4322)一次性解决方式
  3. win10 cmd窗口中文乱码,永久解决方法
  4. python实例豆瓣代码_Python实例:通过selenium模拟登陆豆瓣
  5. 学渣的刷题之旅 leetcode刷题 88. 合并两个有序数组
  6. 程序员是世界上最聪明、最具幽默感的一群人
  7. unity算法面试_Unity笔试面试题目分享
  8. Redis的常用应用场景
  9. java 前置系统报文通讯方式_银行核心与前置系统的区别
  10. 机器学习笔记 (第一周)