——计算机网络自顶向下方法第7版

本文为原书内容概括,无拓展内容,*号标注为自己理解

目录

概述:

1、网络应用是计算机网络存在的理由

本章学习有关网络应用的原理和实现

内容有关应用程序所需的网络服务、客户和服务器、进程和运输层接口

应用层协议原理

进程通信

应用层协议

Web和HTTP

HTTP概况

HTTP报文格式

用户与服务器交互:cookie

Web缓存

条件GET方法

因特网中的电子邮件

SMTP

SMTP与HTTP对比

邮件报文格式

邮件访问协议

POP3

IMAP

DNS:因特网的目录服务

DNS提供的服务

DNS工作机理

只使用一个DNS服务器,该服务器包含所有的映射

分布式层次数据库

DNS缓存:


概述:

1、网络应用是计算机网络存在的理由

  1. 本章学习有关网络应用的原理和实现

  2. 内容有关应用程序所需的网络服务、客户和服务器、进程和运输层接口

  1. 应用层协议原理

    1. 概述:研发网络应用程序的核心在于写出能够运行在不同端系统和通过网络彼此通信的程序。两种模型:CS(客户(client)-服务器(server))模型和P2P(Peer-to-Peer 对等网络)模型
    2. 网络核心设备并不在应用层上起作用,
    3. 网络应用程序的体系结构
      • 当进行软件编码之前,应当对于应用程序由一个宽泛的体系结构计划
      • 应用程序的体系结构明显不同于网络的体系结构
      • 应用程序体系结构由应用程序研发者设计,规定如何在各种端系统上组织该程序
      • CS结构中,S服务多个C主机的请求
      • 为了处理S跟不上C的请求的情况,配备大量主机的数据中心用于创建强大的虚拟服务器。
      • P2P体系结构中,对数据中心的专用服务器又最小的依赖
      • P2P结构体系中,应用层在间断连接的主机之间使用直接通信,通信对被称为对等方。
      • P2P最优特点在于其自扩展性
    4. 进程通信

      • 进行通信的实际上是进程而不是程序
      • 一个进程可以被认为是运行在端系统的一个程序
      • 多个进程在统一端系统上运行时使用的时进程间通信机制
      • 进程间通信机制由操作系统决定(*以上几点都是操作系统知识)
      • 不同端系统上进程跨越计算机网络交换报文
      • 发送进程生成并向网络发送报文,接收进程接收这些报文并可能会送报文进行响应
      • CS模式定义:在进程会话场景中,发起同信(在会话开始时发起与其他进程的联系)的进程被标识为客户(client),在会话开始时等待联系的进程时服务器(Server)
      • P2P模式定义:下载文件的对等体被标识为客户,上载文件的对等方被标识为服务器
      • 进程与计算机网络之间的接口:
        1. 进程通过一个称为套接字的软件接口向网络发送报文和从网络接收报文。
        2. 套接字时同一台主机内应用层运输层之间的接口。
        3. 套接字也被称为应用层和网络层的应用程序编程接口(API)
        4. 应用层开发者对于运输层的控制仅限于一、选择运输层协议;二、也许能设定几个运输层参数,如最大缓存和最大报文端长度等(*?)
      • 进程寻址:
        • 一台主机上运行的进程为了向另外一台主机运行发送分组,接收进程需要一个地址。
        • 标识接收进程需要定义:一、主机的地址;二、在目的主机中指定接收进程的标识符。
        • 因特网中,主机由IP地址标识
        • 目的端口号用于指定运行在接收主机上的接收进程
      • 可供应用程序使用的运输服务
        • 运输层协议负责从接收进程的套接字得到该报文
        • 应用层对运输层协议提供的服务要求可分为:可靠数据传输、吞吐量、定时和安全性
        • 可靠数据传输:
          1. 如果一个协议工作能够确保应用程序的一段发送的数据正确、完全地交付给该应用程序的另一端,就认为这个协议提供了可靠数据传输。
          2. 运输层协议能够潜在的向应用程序提供一个重要服务是进程到进程的可靠数据传输,此时发送进程默认只要将数据传递给套接字,就可以无差错到达接受进程。
          3. 如果运输层协议不提供可靠数据传输时,发送方的数据可能到达不了接收方,但这可以被容忍丢失的应用接受-音频视频。
        • 吞吐量
          1. 在沿着一条网络路径上的两个进程之间的回话场景中,可用吞吐量就是发送进程能够向接收进程交付比特的速率
          2. 由于其他回话共享网络路径带宽,这些会话的到达和离开,该可用吞吐量随时间波动
          3. 以上导致:运输层协议能够以某种特定的速率提供确保的可用吞吐量,如使用这种服务的应用程序能够请求Rbit/s的确保吞吐量,则运输层协议能够确保可用吞吐量至少为Rbit/s。
          4. 具有吞吐量要求的应用程序称为带宽敏感应用
          5. 弹性应用能够根据当时可用带宽或多或少利用可使用吞吐量
        • 定时
          1. 运输层也能提供定时保证。
        • 安全性
          1. 运输层协议能够为应用程序提供一种或者多种安全性服务。
      • 因特网提供的运输服务
        • 之前为计算机网络能够提供的通用运输服务,而TCP/UDP是因特网提供的运输服务类型

        • TCP服务
          1. 面向连接的服务:在应用层数据报文开始流动之前,TCP服务让客户和服务器互相交换运输层控制信息(握手),然后建立一个TCP连接(全双工),应用程序结束报文发送后必须拆除该连接
          2. 可靠的数据传输服务:无差错、按适当顺序交互所有发送的数据。
          3. TCP协议具有拥塞控制,是一种整体最优。
        • UDP服务
          1. 不提供不必要服务的轻量级运输协议,仅提供最小服务
          2. UDP是无连接的,故而没有握手过程。
          3. UDP提供的试一种不可靠的数据传输服务,即并不保证该报文将到达接收进程,且可能到达的报文乱序
          4. UDP没有拥塞控制,UDP可以以选定的任何速率向下层注入数据
        • 因特网运输协议所不提供得服务
          1. 目前因特网运输层协议并没有提供对吞吐量和定时服务
          2. 但是目前因特网通常能够为时间敏感服务提供满意服务,但是不能提供任何定时和带宽保证。
    5. 应用层协议

      • 应用层协议定义了运行在不同端系统上应用程序如何互相传递报文,特别是应用层协议定义了:

        1. 交换报文类型
        2. 各种类型报文得语法
          1. 字段的语义
          2. 确定一个进程何时以及如何发送报文,对报文进行响应的规则
      • 应用层协议只是应用层的一部分
  2. Web和HTTP

    1. Web是按需操作。
    2. HTTP概况

      • Web的应用层协议是超文本传输协议(HyperText Transfer Protocol,HTTP)

        1. HTTP由一个客户程序和一个服务器程序实现,两者分属不同端系统
        2. 客户和服务器通过交换HTTP报文进行会话
        3. HTTP定义了这些报文的结构以及客户服务器交换报文的方式
        4. Web页面由对象组成
        5. 一个对象只是一个文件,HTML、JPEG、可以使用URL地址寻址
        6. 多数web包含一个HTML基本文件以及几个引用对象
        7. Web浏览器是想了HTTP的客户端,web服务器实现了HTTP的服务器。
        8. HTTP请求响应行为如图
        9. HTTP使用TCP作为运输层协议。
        10. Web服务器向客户发哦是那个被请求的文件,但不存储任何关于该客户的状态信息。所以HTTP是无状态协议
      • 持续连接和非持续连接
        1. 非持续连接即每个请求响应对通过一个单独的TCP连接发送
        2. 持续连接即所有的请求及协议都经过相同的TCP连接发送
        3. HTTP支持持续连接和非持续连接
        4. 使用非持续连接的HTTP:
          1. 访问一个包含一个HTML基本文件和10个JPEG图形的网站:http://www.someSchool.edu/someDepartment/home.index
          2. 一个短分组从客户到服务器然后再返回客户所花费的时间定义为往返时间(Round-Trip Time RTT
          3. RTT包括分组传播时延,分组再中间路由器和交换机上的排队时延以及分组处理时延。
          4. 三次握手即客户向服务器发送一个小TCP报文段,服务器用一个小TCP报文端做出确认和响应,最后客户向服务器返回确认。
          5. 每次总响应时间为两个RTT加上文件传输的时间。
        5. 采用持续连接的HTTP
          1. 非持续连接缺点一:必须为每个请求对象建立和维护一个全新的连接
          2. 非持续连接缺点二:每一个对象经受两倍RTT的交付时延。
          3. HTTP协议默认模式使用带流水线的持续连接,当一条连接超过一定的时间仍未被使用,HTTP服务器就关闭该连接
      • HTTP报文格式

        1. 请求报文

          1. PUT方法常与web联合使用,允许用户上传到指定web服务器上指定目录。
          2. 当服务器收到HEAD方法请求时,将会用一个HTTP报文进行响应,并不放回请求对象。
          3. 使用GET方法时实体行为空,使用POST方法时使用该实体
          4. 请求文本的通用格式:
          5. 首部行:host指明对象所在主机,首部行:connection指明是否持续连接,首部行user-agent指明用户代理,即浏览器类型,首部行accept-language指明用户想得到对象的语言版本。
          6. 请求行有三个字段:方法字段、URL字段和HTTP版本字段,方法字段可取GET、POST、HEAD、PUT、DELETE。
          7. 请求报文第一行为请求行,之后为首部行,
          8. 此请求报文为5行,但可以有更多行却至少有一行,每行有一个回车和换行符结束
          9. 报文由ASCII文本组成
        2. 响应报文
          1. 此典型报文分为三个部分:1个状态行,6个首部行,余下为实体行
          2. 状态行有三个字段:协议版本,状态码,相应状态信息
          3. 首部行:connection:指示接收后TCP状态;Date:指示服务器发送响应报文时间(指的时服务器从文件系统中检索到该对象并插入响应报文的使时间);server:指示指示服务器;last-modified:指示对象创建或者最后修改时间;content-length:指示被发送对象中字节数;content-type:指示实体行对象;
          4. 响应报文通用格式:

          5. 常见状态码:
            1. 200 OK:请求成功
            2. 301 Moved Permanently:请求队形永久转移,新得URL定义再响应报文的Location首部行中,客户软件将自动获取新得URL
            3. 400 Bad Request:一个通用差错码,指该请求不能被服务器理解
            4. 404 Not Found:被请求文档不再服务器上
            5. 505 HTTP version Not Supported:服务器不支持请求报文所使用的HTTP协议版本。
          6. 这里给出自己查看响应报文的方法:
      • 用户与服务器交互:cookie

        1. Web网站为了识别用户,服务器希望限制用户的访问或者希望用户与内用联系起来,HTTP使用了cookie。
        2. 如图:cookie有四个组件:
          1. 在HTTP响应报文中有一个cookie首部行
          2. 在HTTP请求报文中的一个cookie首部行
          3. 在用户端系统中保留有一个cookie文件,并由浏览器管理
          4. 位于web站点的一个后端数据库。
      • Web缓存

        1. Web缓存器也叫代理服务器,能够代表初始web服务器来满足HTTP请求的网络实体

        2. 使用代理服务器时访问过程:
          1. 浏览器船舰一个到web缓存器的TCP连接,并向web缓存器中的对象发送一个HTTP请求
          2. Web缓存器进行检查,看看本地是否存储了该对象副本,如果有,web缓存就像客户浏览器用HTTP报文返回该对象。
          3. 如果web缓存器没有该对象,它就打开一个与该对象的初始服务器的TCP连接,web缓存器则在这个缓存器到服务器的TCP连接上发送一个对该对象的HTTP请求。在收到该请求后,初始服务器应该向该web缓存器发送具有该对象的HTTP响应,
          4. 当web缓存器接收到该对象时,它在本地存储空间中存储一份副本,并向客户的浏览器用的HTTP响应报文发送该副本(通过现有的TCP连接)
        3. 部署代理服务器
          1. Web缓存可以大大减少对客户请求的响应时间。(客户到初始服务器的带宽与客户到代理服务器的带宽不同)
          2. Web缓存器能够大大减少一个机构的接入链路到因特网的通信量。
          3. Web缓存器能够从整体上大大减低因特网上的web流量,从而改善所有应用的性能。
        4. 理解代理服务器的好处
          1. 假设有如图所示场景:内部高速外部低速。

          2. 假设内部会以每秒15个请求访问初始服务器,且HTTP报文不会对网络中以及接入链路上产生额外通信量,同时假设从因特网接入链路的一侧路由转发HTTP报文开始,到它接收到其响应报文的平均时间为2秒
          3. 总的响应时间即从请求一个对象到接受到该对象为止的时间,是局域网时延、接入时延和因特网时延之和,则:局域网上的流量强度为15request/s*1Mb/request/100Mbps=0.15,而接入链路上的流量强度为:15request/s*1Mb/request/15Mbps=1.
          4. 流量低时通常最多导致数十毫秒的时延,但是流量强度的为1时,链路上的时延会变得非常大且五项增长。
          5. 两种方法解决,1、将接入链路的速率增加到100Mbps.2、增加web缓存。1的响应时间大约为2秒。
          6. 增加web缓存,假设web缓存命中率为0.4,此时平均响应时间为0.4*0.010秒+0.6*2.01秒 >1.2。
          7. Web缓存器使用内容分发网络(content Distribution Network CDN .
      • 条件GET方法

        1. 为了处理缓存中的对象副本陈旧问题,所以HTTP有如下机制,允许缓存器证实他的对象时最新的

          1. 请求报文使用GET方法,且
          2. 请求报文中包含以分If-MOdified-Since首部行
          3. 这就是一个条件GET方法
    3. 因特网中的电子邮件

      1. 电子邮件由三个主要组成部分:用户代理邮件服务器简单邮件传输协议(SMTP)。
      2. 邮件服务器形成了电子邮件体系结构的核心。每一个接受方在某一个邮件服务器上有一个邮箱。
      3. 典型的电子邮件发送过程:从发送方的用户代理开始,传输到发送方的右键服务器,在传输到接收当的邮件服务器,然后再这里被分发到接受方的邮箱中,当接收方要再它的邮箱中读取该报文的时候,其用户邮箱所在的邮件服务器来鉴别接受方。
      4. 当发送方无法将邮件传输到接受方的邮件服务器,发送方的邮件服务器再一个报文队列中保持该报文并在以后尝试再次发送,通常30分钟一次,如果几天仍旧不成功,服务器会删除报文并以邮件形式通知发送方。
      5. SMTP

        • SMTP是因特网电子邮件中的主要应用层协议。
        • SMTP使用TCP可靠数据传输服务。
        • SMTP应用分为两个部分:运行在发送方邮件服务器上的客户端和运行在接受方服务器上的服务端。
        • SMTP协议由RFC 5321定义
        • SMTP限制所有邮件班文的体部分只能采用简单的7比特ASCII表示。
        • 如今在使用SMTP传送邮件之前需要将二进制多媒体数据编码为ASCII码,并且使用SMTP传输后将相应的ASCII码邮件解码还原。
        • 假设Alice想向Bobby发送一封简单的ASCII报文
          1. Alice条用它的邮件代理程序并提供Bobby的邮件地址,撰写报文,然后指示用户代理发送该报文
          2. Alice的用户代理把报文发送给他的邮件服务器,在那里邮件被放在报文队列里
          3. 运行在ALice邮件服务器上的SMTP客户端发现了报文队列里的这个报文,他就创建一个运行在Bobby的邮件服务器上的SMTP服务器的TCP连接
          4. 经过一些初始的TCP握手之后,SMTP客户通过该TCP连接发送Alice报文。
          5. 在Bobby的邮件服务器上,SMTP的服务器端接收该报文,Bobby的邮件服务器然后将该报文凡在Bobby的邮箱里
          6. 在任何时候,Bobby可以调用用户代理阅读该报文。
        • SMTP不使用中间邮件服务器发送邮件。
        • SMTP客户与SMTP服务器连接过程
          1. 首先,SMTP客户在25号端口建立一个到服务器SMTP的TCP连接,如果SMTP服务器没有开机,则稍后禅师。
          2. 建立之后客户与服务器执行某些应用层握手,同时SMTP的客户会指示发送方的邮件地址和接受方邮件地址
          3. 使用此TCP连接发送报文邮件
          4. 如果由另外报文要发送到该服务器,则继续使用此TCP,否则指示TCP连接关闭。
        • SMTP客户与SMTP服务器交换数据实例
          1. 此例子中,客户从邮件服务器crepes.fr向邮件服务器hamburger.edu发送了一个报文(Do you like ketchup?How about pickles?).
          2. 客户发送了5条命令:HELO、MAIL FROM、RCPT TO、DATA以及QUIT,均为自解释命令。
          3. 该客户发送一个只包含句点的行,向服务器指示该报文结束了。按照ASCII码表示方式,每个报文以CRLF.CRLF结束,CR和LF分别表示回车和换行。
      6. SMTP与HTTP对比

        • 相同:都用于从一台主机向另外一台主机传送文件,持续HTPP和SMTP都是用持续连接
        • 不同:
          1. 推拉的区别在于客户如何与服务器交换文件,拉协议指从服务器拉去文件,推协议指将文件推向服务器。

            1. SMTP主要是一个推协议(push protocol)
            2. HTTP主要是一个拉协议(pull protocol)
          2. SMTP要求每个报文采用7比特ASCII码格式,HTTP不受限制
          3. 处理一个既包含文本又包含图形的文档
            1. HTTP会把他的每一个对象封装到自己的HTTP响应报文中,
            2. SMTP则把所有报文对象放在一个报文中
      7. 邮件报文格式

        • RFC 5322定义了信中例如收信人地址日期等环境信息的首部行
        • 典型报文首部如下:
        • 首部之后一个空白行,然后是以ASCII格式表示的报文体。
      8. 邮件访问协议

        • 发送方向将邮件由发送方用户代理使用SMTP协议发送到发送方的邮件服务器,发送方的邮件服务器使用SMTP协议发送到接受方的邮件服务器,接受方的用户代理使用POP3/IMAP/HTTP获取邮件服务器的邮件

          1. 如果发送方邮件服务器不在线,用户代理无法访问
          2. 如果接受方邮件服务器不在线,则发送方邮件服务器每隔30分钟尝试发送一次邮件,如果一定时间后仍旧无法成功,则放弃发送,以邮件的方式通知发送方
          3. 接受方的邮件服务器无法主动将邮件推送到接受方用户代理。
          4. POP3:第三版邮局协议,Post Office Protocol--version 3
          5. IMAP:因特网邮件访问协议。Internet Mail Access Protocol
        • POP3

          1. 由RFC 1939定义。
          2. POP3按照三个阶段进行工作:特许(authorization)、事物处理以及更新
            1. 特许阶段:用户代理发送( 以明文形式)用户名和口令以鉴别用户。
            2. 事务处理阶段:用户代理取回报文;同时在这个阶段用户代理还能进行如下操作,对报文做删除标记,取消报文删除标记,以及获取邮件的统计信息。
            3. 更新阶段,它出现在客户发出了quit 命令之后,目的是结束该POP3会话;这时,该邮件服务器删除那些被标记为删除的报文。
            4. 在事物处理过程中,服务器会对用户代理发出的命令做出回答,可能有:+OK 表示前面命令正常;-ERR 表示错误
            5. 特许过程:两个主要命令:user <user name> pass <password>,
            6. 事物处理过程:POP3的用户代理通常被配置为“下载并删除”或者“下载并保留”,此时用户代理仅使用:list,retr,dele和quit。语法定义在RFC 1939.
            7. 使用下载并删除则无法多端访问
        • IMAP

          1. POP3协议没有给用户提供任何创建远程文件夹并为报文指派文件夹的方法。
          2. RFC 3501定义了IMAP。
          3. IMAP为用户提供了创建文件夹以及将邮件从文件加移动的命令。
          4. IMAP服务器维护了IMAP会话的用户状态信息。
          5. IMAP允许用户代理获取报文的部分命令。
        • 基于web的电子邮件,使用HTTP而不是SMTP。
    4. DNS:因特网的目录服务

      1. 书记可以使用主机名和IP地址进行标识
      2. DNS提供的服务

        • DNS(域名系统)是将主机名转换到IP地址的目录服务
        • DNS是:
          1. 一个由分层的DNS服务器实现的分布式数据库
          2. 一个使得主机能够查询分布式数据库的应用层协议。
          3. DNS通常运行在BIND(Berkeley Internet Name Domain)软件的UNIX机器中
          4. DNS运行在UDP上,使用53号端口
        • DNS通常有其他应用层协议使用,如HTTP,SMTP,FTP等,将用户提供的主机名解析为IP地址
        • 假设浏览器请求URL www.someschool.edu/index.html.,为了得到其IP地址
          1. 同一台用户主机上运行着DNS应用的客户端
          2. 浏览器从上述URL中抽取主机名:www.someschool.edu,并将这台主机名传给DNS应用的客户端
          3. DNS客户向DNS服务器发送一个包含主机名的请求
          4. DNS客户最终会收到一份回答报文,其中含有对应于该主机名的IP地址
          5. 一旦浏览器接受到来自DNS的该IP地址,它能够向位于该IP地址80端口的HTTP服务器进程发起一个TCP
        • 主机别名
          1. 有着复杂主机名的主机能够有一个或多个别名,如一台主机名字为relay.west-coast.enterprise.com的主机可以拥有两个别名enterprise.com和www.enterprise.com。这种情况下源主机名字被称为规范主机名字
        • 邮件服务器别名
        • 负载分配
          1. 可以用于冗余服务器之间进行负载分配
          2. 繁忙的站点(如cnn. com)被冗余分布在多台服务器上,每台服务器均运行在不同的端系统上,每个都有着不同的IP地址。由于这些冗余的Web服务器,一个IP地址集合因此与同-一个规范主机名相联系。DNS数据库中存储着这些IP地址集合。当客户对映射到某地址集合的名字发出一个DNS请求时,该服务器用IP地址的整个集合进行响应,但在每个回答中循环这些地址次序。因为客户通常总是向IP地址排在最前面的服务器发送HTTP请求报文,所以DNS就在所有这些冗余的Web服务器之间循环分配了负载。
          3. DNS的循环同样可以用于邮件服务器,因此,多个邮件服务器可以具有相同的别名。
      3. DNS工作机理

        1. 只使用一个DNS服务器,该服务器包含所有的映射

          1. 单点故障:如果此DNS服务器崩溃,则整个因特网随之崩溃
          2. 通信容量:不得不处理所有的DNS查询(可能多达上亿)
          3. 远距离集中式数据库:不可能临近所有查询客户,时延难以保证
          4. 维护,不得不为所有因特网主机保留记录,会使得中央数据库过于庞大,还要为新加入主机频繁更新。
        2. 分布式层次数据库

          1. 大致分为三类DNS服务器:根DNS服务器、顶级域DNS服务器(Top-Level Domain TLD)和权威DNS服务器。
          2. 根DNS服务器[Root Server 2016]:有400多个根名字服务器,遍及全世界。根名字服务器提供TLD服务器的IP地址。
          3. 顶级域(DNS)服务器[TLD list 2016],对于每个顶级域和所有国家的顶级域,都有TLD服务器或着服务器集群。TLD服务器提供权威DNS服务器的IP地址。
          4. 权威DNS服务器:在因特网上具有公共可访问主机的每个组织机构必须提供公共可访问的DNS记录,这些记录将这些主机的名字映射为IP地址。
          5. 本地DNS服务器:不属于该层次结构,但是非常重要。每一个ISP(居民区或者机构DNS)都有一台本地DNS服务器(名字服务器)
            1. 假设主机cse.nyu.edu想知道主机gaia.cs.umass.edu的IP地址。同时假设纽约大学(NYU)的cse. nyu. edu主机的本地DNS服务器为dns. nyu. edu,并且gaia. cs. umass. edu的权威DNS服务器为dns.umass.edu。主机cse.nyu.edu首先向它的本地DNS服务器dns. nyu. edu发送一个DNS查询报文。该查询报文含有被转换的主机名gaia.cs.umass.edu。本地DNS服务器将该报文转发到根DNS服务器。该根DNS服务器注意到其edu前缀并向本地DNS服务器返回负责edu的TLD的IP地址列表。该本地DNS服务器再次向这些TLD服务器之一发送查询报文,该TLD 服务器注意到umass.edu前缀,并用权威DNS服务器的IP地址进行响应,该权威DNS服务器式负责马赛诸塞大学的dns.umass.edu.最后,本地DNS服务器直接向dns.umass.edu重发查询报文,dns.umass.edu使用gaia.cs.edu的IP地址进行响应。共使用8份DNS报文,
            2. 我们前面的例子假设了TLD服务器知道用于主机的权威DNS服务器的IP地址。一般而言,这种假设并不总是正确的。相反,TLD 服务器只是知道中间的某个DNS服务器,该中间DNS服务器依次才能知道用于该主机的权威DNS服务器。例如,再次假设马萨诸塞大学有一台用于本大学的DNS服务器,它称为dns. umass. edu。同时假设该大学的每个系都有自己的DNS服务器,每个系的DNS服务器是本系所有主机的权威服务器。在这种情况下,当中间DNS服务器dns.umass.edu收到了对某主机的请求时,该主机名是以cs.umass.edu结尾,它向dns.myu.edu返回dns.cs.umass.edu的IP地址,后者是所有以cs. umass. edu结尾的主机的权威服务器。本地DNS服务器dns. nyu. edu则向权威DNS服务器发送查询,该权威DNS服务器向本地DNS服务器返回所希望的映射,该本地服务器依次向请求主机返回该映射。在这个例子中,共发送了10份DNS报文!
            3. 迭代查询和递归查询
            4. 理论上任何DNS查询报文既可以是递归的也可以式迭代的。
            5. 实际上通常为2-18模式,从请求主机到本地DNS的查询是递归的,其余查询是迭代的。
        3. DNS缓存:

          1. 为了改善时延性能并减少在因特网上到处传输的DNS报文数量,DNS广泛采用了DNS缓存技术。
          2. 在一个请求链中,当某DNS服务器接收到一个回答,他能够缓存包含在该回答中的任何信息。
          3. 由于主机于主机名的IP地址间的映射不是永久的,DNS服务一般会在一段时间后丢弃缓存信息。
          4. DNS记录和报文
            1. 共同实现DNS分布式数据库的所有DNS服务器存储了资源记录(Resource Record RR),RR提供了主机名到IP地址的映射。
            2. 资源记录包含四元组字段:(Name,Value,Type,TTL)
              1. TTL是该记录的生存时间,它决定了资源记录应当从缓存中删除的时间。在下面给出的记录例子中,我们忽略掉TTL字段。Name和Value的值取决于Type:
              2. ●如果Type=A,则Name是主机名,Value是该主机名对应的IP地址。因此,一条类型为A的资源记录提供了标准的主机名到IP地址的映射。例如( relayl.bar. foo. com, 145. 37. 93. 126,A)就是-条类型A记录。
              3. ●如果Type=NS,则Name是个域(如foo.com),而Value是个知道如何获得该域中主机IP地址的权威DNS服务器的主机名。这个记录用于沿着查询链来路由DNS查询。例如(oo. com, dns. foo. com,NS)就是- - 条类型为NS的记录。
              4. ●如果Type =CNAME,则Value 是别名为Name的主机对应的规范主机名。该记录能够向查询的主机提供-一个 主机名对应的规范主机名,例如( foo. com, relayl.bar. foo. com, CNAME)就是一条 CNAME类型的记录。
              5. ●如果Type= MX,则Value是个别名为Name的邮件服务器的规范主机名。举例来说,(foo.com,mail.bar.foo.com,MX)就是一条MX记录。MX记录允许邮件服务器主机名具有简单的别名。值得注意的是,通过使用MX记录,一个公司的邮件服务器和其他服务器(如它的Web服务器)可以使用相同的别名。为了获得邮件服务器的规范主机名,DNS 客户应当请求一条MX记录;而为了获得其他服务器的规范主机名,DNS客户应当请求CNAME记录。
            3. DNS报文
              1. ●前12个字节是首部区城,其中有几个字段。第一个字段(标识符)是一个16比特的数,用于标识该查询。这个标识符会被复制到对查询的回答报文中,以便让客户用它来匹配发送的请求和接收到的回答。
              2. 标志字段中含有若干标志。1比特的“查询/回答”标志位指出报文是查询报文(0)还是回答报文(1)。
                1. 当某DNS服务器是所请求名字的权威DNS服务器时,1比特的“权威的”标志位被置在回答报文中。
                2. 如果客户(主机或者DNS服务器)在该DNS服务器没有某记录时希望它执行递归查询,将设置1比特的“希望递归”标志位。
                3. 如果该DNS服务器支持递归查询,在它的回答报文中会对1比特的“递归可用”标志位置位。
              3. 在该首部中,还有4个有关数量的字段,这些字段指出了在首部后的4类数据区域出现的数量。问题区域包含着正在进行的查询信息。
                1. ①名字字段,包含正在被查询的主机名字;
                2. ②类型字段,指出有关该名字的正被询问的问题类型,例如主机地址是与一个名字相关联(类型A)还是与某个名字的邮件服务器相关联(类型MX)。
              4. ●在来自DNS服务器的回答中,回答区城包含了对最初请求的名字的资源记录。
              5. ●权威区城包含了其他权威服务器的记录。
              6. ●附加区域包含了其他有帮助的记录。例如,对于一个MX请求的回答报文的回答区域包含了一条资源记录,该记录提供了邮件服务器的规范主机名。该附加区域包含-一个类型A记录,该记录提供了用于该邮件服务器的规范主机名的IP地址。

计算机网络(1)——应用层(概述到DNS)相关推荐

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

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

  2. 【计算机网络】应用层 : 网络应用模型 ( 应用层概述 | 客户端 / 服务器 模型 | P2P 模型 )

    文章目录 一.应用层概述 二.网络应用模型 三.客户 / 服务器 模型 四.P2P 模型 一.应用层概述 应用层作用 : 对 应用程序 的 通信 提供服务 ; 应用层定义 : 报文类型 : 应用进程 ...

  3. 王道考研 计算机网络20 应用层 客户端/服务器C/S模型 P2P模型 DHCP协议 域名解析系统DNS 文件传送协议FTP 万维网 超文本传输协议HTTP

    应用层概述 FTP:文件传输协议(File Transfer Protocol)是用于在网络上进行文件传输的一套标准协议. SMTP:是一种提供可靠且有效的电子邮件传输的协议. POP3 ,全名为&q ...

  4. 计算机网络应用层笔记--域名系统DNS

    域名系统DNS 标识因特网上主机的方式 主机名 IP地址 域名系统(DNS) 工作过程 互联网的域名结构 顶级域名 国家顶级域名nTLD 通用顶级域名gTLD 基础结构域名 二级域名 类别域名 行政区 ...

  5. 计算机网络之应用层:1、概述

    应用层:1.概述 应用层概述: 传输层的俩种模型: 客户服务器模型(C/S): P2P模型: 应用层概述: 传输层的俩种模型: 客户服务器模型(C/S): P2P模型:

  6. 计算机网络---应用层概述

    (一)应用层概述 基本定义:        应用层(Application layer)是OSI模型的第七层.应用层直接和应用程序接口并提供常见的网络应用服务.应用层也向表示层发出请求.应用层是开放系 ...

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

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

  8. 计算机网络笔记Part1 概述

    本人计算机网络笔记总目录 计算机网络笔记Part1 概述 计算机网络笔记Part2 物理层(Physical Layer) 计算机网络笔记Part3 数据链路层(Data Link Layer) 计算 ...

  9. 2、计算机网络之应用层笔记(基于中科院郑老师和计算机网络自顶向下方法)

    文章目录 应用层协议一些概述 应用程序体系结构可以分成两种主流的体系结构 1.C/S模型,即为客户-服务器体系结构 2. 第二个是P2P系统 3. 第三种,混合体 进程通信 分布式通信中要解决哪些问题 ...

最新文章

  1. Docker学习(七)-----Docker安装nginx
  2. 一位资深Java架构师的晋级心得
  3. 【超越白皮书3】DAG技术解析与实测
  4. 棱形旋转c语言程序_C 语言时隔 5 年重回巅峰,这 20 个热门项目拿去练手!
  5. 大棚骨架搭建好 科学施肥增收增产
  6. go语言基础到提高(10)- 包及方法
  7. 卷积云神经网络_2018.10
  8. 面试题如何实现一个IOC容器
  9. ActiveMQ 持久化讯息数据库信息
  10. zenoss(智能监控软件)
  11. 三容水箱液位控制系统_光电液位传感器在饮水机中的应用解决方案
  12. 学生签到系统c代码_学生信息管理系统C代码
  13. 12生肖年份c语言,12生肖在什么年份最好运
  14. 三体 III 中的思想实验:死神永生(上)
  15. 2020美赛F题翻译
  16. 安装molten教程
  17. b站下载器,支持分辨率登录,带弹幕,简洁bilili
  18. 尚学堂-肖斌-100集hadoop视频教程
  19. 桌面管理之道让桌面看起来都舒服
  20. 微积分:如何理解方向导数与梯度?

热门文章

  1. 避免死锁的银行家算法
  2. 改进的360环评方法
  3. 微信比拼支付宝,也来送红包啦!附领取攻略
  4. 如何记住使用Google Assistant停在哪里
  5. uni-app 安装node_module模块
  6. mybatis注解方式调用存储过程
  7. @曹宏宇 @坚 来认领你们的七夕礼物
  8. 安卓使用华为HMS实现扫码功能
  9. Winform项目打包
  10. html中css常用知识点