精华内容
下载资源
问答
  • 计算机网络学习笔记

    2018-08-25 16:36:27
    计算机网络学习笔记,个人整理,详细全面,可以自己做精简。可以留邮箱,我发给你。
  • 计算机网络学习笔记.docx
  • 计算机网络学习笔记——第一讲——计算机网络概述(1.2计算机网络结构).pdf
  • 计算机网络学习笔记——第一讲——计算机网络概述(1.4计算机网络性能).pdf
  • 王道考研计算机网络个人学习笔记
  • 计算机网络学习笔记——第一讲——计算机网络概述(1.1计算机网络基本概念).pdf
  • 计算机网络学习笔记——第一讲——计算机网络概述(1.6计算机网络发展历史).pdf
  • 计算机网络学习笔记,计算机网络,学习笔记
  • 计算机网络学习笔记:第二章

    千次阅读 多人点赞 2020-11-10 22:29:02
    计算机网络学习笔记:第二章 学习书籍:《计算机网络:自顶向下方法》 文章目录计算机网络学习笔记:第二章前言2.1、应用层协议原理2.1.1 网络应用程序体系结构2.1.2 进程通信2.1.3 可供应用程序使用的运输服务...

    计算机网络学习笔记:第二章

    学习书籍:《计算机网络:自顶向下方法》 第二章:应用层

    其他章节请参阅:
    《计算机网络:自顶向下方法》 第一章:计算机网络和因特网
    《计算机网络:自顶向下方法》 第二章:应用层
    《计算机网络:自顶向下方法》 第三章:运输层
    《计算机网络:自顶向下方法》 第四章:网络层:数据平面



    前言

    本章介绍有关网络应用的原理和实现方法;定义关键的应用层概念,包括程序所需要的网络服务客户和服务器进程和运输层接口;详细考察几种网络应用程序,包括WEB、电子邮件、DNS、对等文件分发和视频流;并设计开发运行在TCP和UDP上的网络应用程序;

    2.1、应用层协议原理

    研发网络应用的核心是写出能够运行在不同端系统通过网络彼此通信的程序;值得注意的是,我们不需要写在网络核心设备如路由器或者链路层交换机上运行的软件,这种设计方式(将应用程序限制在端系统的方法),促进了大量网络应用程序的迅速研发和部署;

    2.1.1 网络应用程序体系结构

    应用程序的体系结构不同于网络的体系结构。从应用程序研发者的角度来看,网络体系结构是固定的,并为应用程序提供特定的服务集合;换言之,应用程序体系结构使用应用程序开发设计的,它规定了在端系统上如何组织应用程序。两种常见的现代网络应用程序所采用的体系结构为:客户-服务器体系结构和对等体系结构

    客户-服务器体系结构

    在该体系结构中,有一个总是打开的主机,即服务器,它接收和服务来自其他许多被称为客户的主机请求;值得注意的是,在该体系结构中,客户之间是不直接通信的该服务器具有固定的、周知的地址

    客户-服务器体系结构的著名应用有:Web、FTP、Telnet和电子邮件

    通常,如果仅有一台服务器处理所有的请求,那么服务器系统将很快变得不堪重负,为此,配备大量主机的数据中心常被用于创建强大的虚拟的服务器,一个数据中心可以有数十万台服务器,它们需要供电和维护,同时服务提供商还需要支付不断出现的互联和带宽费用,以及发送和接收到达/来自数据中心的数据;

    P2P体系结构

    在P2P体系结构中,对位于数据中心的专用服务器有着最小或者没有依赖。应用程序在间断连接的主机对之间使用直接通信,这些主机被称为对等方。对等方并不为服务提供商所拥有,因为这种对等方通信不需要通过专门的服务器,所以该体系结构也被称为对等方到对等方结构;

    目前,流量密集型应用都是P2P体系结构的。这些应用包括文件共享(例如BitTorrent)、协助下载(例如迅雷)、因特网电话(例如Skype)和 IPTV(例如迅雷看看)。

    值得注意的是,某些应用具有混合的体系结构,它们结合了客户-服务器和P2P这两种体系结果,比如许多的即时通讯工具,服务器用来跟踪用户IP地址,但是用户之间的通信则使用直接发送

    P2P体系结构最引人入胜的特性之一就是它们的自扩展性。比如在文件共享应用中,对等方可能通过向文件的原始拥有者发出请求而产生工作量,但是对等方也有可能通过为其他对等方传送文件而为原始拥有者分担压力;P2P体系结构也是成本有效的,因为他通常不需要庞大的服务器基础设施和服务带宽。

    P2P面临以下三个问题:

    1. ISP友好。大多数住宅ISP受制于非对称带宽应用,也就是下载比上传要多得多。但是P2P视频和文件分发应用改变了从服务器到住宅ISP的上载流量,因而给ISP带来压力;
    2. 安全性。因为其高度的分布和开放式,P2P应用也可能给安全带来挑战;
    3. 激励。如何说服用户资源向应用提供带宽、存储和计算资源?这是一个问题;

    2.1.2 进程通信

    在操作系统中,实际进行通信的是进程而不是应用程序;当进程运行在同一个端系统上时,它们使用进程间通信机制相互通信;而进程间通信的规则是由端系统上的操作系统确定的。当进程运行在不同的端系统上时,它们通过跨越计算机网络的报文相互通信;发送进程产生报文并且向网络中发送,接收进程接收报文并对此作出响应(不响应也是一种响应);

    客户与服务器进程

    网络应用程序由成对的进程组成,这些进程通过网络互相发送报文。对于每对通信进程,我们通常将这两个进程之一标识为客户,而另一个进程标识为服务器
    需要注意的是,在某些P2P应用中,一个进程可能既是客户也是服务器,因为在一个文件共享应用中,一个进程的确既能请求文件也能发送文件。所以从进程所扮演的角色来区分是客户进程还是服务器进程不够精确,所以我们从发起通信的顺序来定义它们:在给定的一对进程之间,首先发起通信的进程被标记为客户进程,在会话开始时等待联系的进程被称为服务器进程。

    进程与计算机网络之间的接口

    多数应用程序是由通信进程对组成的,运行在不同端系统上的进程对之间通过计算机网络来实现通信。所以,在应用程序进程和计算机网络之间存在一个接口,该接口被称为套接字。更为准确的说,套接字是同一台主机内应用层和运输层之间的接口。由于该套接字是建立网络应用程序的可编程接口,因此套接字也被称为应用程序和网络之间的应用编程接口(Application Programming Interface, API .

    应用程序开发者可以控制套接字在应用层的一切内容,但是对于运输层的相关部分几乎没有控制权,可以做的只有:

    1. 选择传输层协议;
    2. 设定几个传输层参数,比如最大缓存和最长传输层报文长度;

    进程寻址

    为了向特定目的进程发送报文,发送机进程需要知道接收进程(更为准确的说是,接收进程对应的套接字)的标记。该标记由两部分组成:接收进程所在的主机地址在目的主机中指定接收进程的标识符;在因特网中,主机由IP地址标记,其中IP地址是一个32位(IPV4)标记;而接收进程(或者说是接收套接字)使用端口号标记;一些常用的应用程序有着固定的端口号,比如Web服务器使用80端口、邮件服务器(运行SMTP协议)使用25端口等;

    2.1.3 可供应用程序使用的运输服务

    传输层协议的特点大致可以从以下这四个方面考量:可靠数据传输吞吐量定时安全性

    可靠数据传输

    如同在第一章中介绍的,分组在传输过程中可能会丢失。比如,分组因为路由器中的缓存溢出而被丢弃或者分组在传输的过程中发生了损坏等情况;有些应用是不允许数据发生丢失的,比如电子邮件文件传输远程主机访问Web文档传输以及金融应用等。为了支持这些应用,必须做一些工作以确保应用程序一段发送的数据正确完全地交付给接收数据的进程。如果一个协议提供了这样得确保数据交付的服务,就认为该协提供了可靠数据传输。当应用程序使用可靠数据传输的传输层协议时,只要将要发送的数据传输进套接字就可以完全相信该数据可以完整无差错地到达接收方;

    当一个运输层协议不提供可靠数据传输时,由发送方发送的数据就可能不能够到达接收进程。这可能被丢失允许的应用所接受。这类应用常见的有:交谈式音频和视频。它们能够承担丢失一定量的数据损失,在这些应用中,如果丢失少量数据将出现小干扰,但是不会出现致命的损伤,这些应用为容忍丢失的应用。

    吞吐量

    在一条网络路径上的两个进程之间的通信会话中,可用吞吐量就是指能够向接收进程交付比特的速率。因为会有其他会话共享该网络的路径的带宽,并且因为这些会话的到来和离开,可用吞吐量将发生变化;这就导致另一种自然的服务,即运输层协议能够提供确切的可用吞吐量。使用这种服务时,应用程序就能以明确的速度接收数据,并且运输层应当保证可用吞吐量必须总是至少为该速度;

    对吞吐量有明确要求的应用程序被称为带宽敏感的应用。许多多媒体应用是带宽敏感的,比如因特网电话。而弹性应用则对吞吐量没有严格的要求。这类应用包括:电子邮件、文件传输以及web传送等。值得注意的是,吞吐量当然是越多越好了;

    定时

    定时和吞吐量都是关于速度的。一个提供定时服务的例子是:发送方注入套接字中的每个比特到达接收方的套接字不迟于100ms。也就是说,定时是对数据从发送到到达所需时间的要求,而吞吐量是对数据交付速度的要求。有些应用为了服务的有效性而对数据到达时间有严格的要求,常见的应用有:因特网电话多方在线游戏等;

    安全性

    运输层可以提供一些安全服务,以防止传输的数据以某种方式在这两个进程之间被察觉到。这些安全服务包括:数据的加解密数据的完整性端点鉴别等;

    2.1.4 因特网提供的传输层服务

    因特网(更一般的是TCP/IP网络)为应用程序提供连个运输层协议,即UDPTCP。每个协议对应用程序提供了不同服务的组合。以下为常见的因特网应用的特点:

    应用数据丢失带宽时间敏感
    文件传输不能丢失弹性
    电子邮件不能丢失弹性
    Web文档不能丢失弹性(几kbs)
    因特网电话/视频会议容忍丢失音频(几kbs~1Mbps) / 视频(10kbps~5Mbps)是,100ms
    流存式存储音频/视频容忍丢失同上是, 几秒
    交互式游戏容忍丢失几kbs~10kbps是,100ms
    智能手机讯息不能丢失弹性是和不是

    TCP服务
    TCP服务模型包括了面向连接的服务可靠数据传输服务

    面向连接的服务:在应用层数据报文开始流动之前,TCP会在客户端和服务器端相互交换传输层控制信息。这个握手过程将提示客户端和服务器端,让它们为即将到来的大量分组做好准备;握手阶段接收后将建立一个TCP连接。这条链接是全双工的,即连接双方使用该条链接可以同时进行报文的收发。这条连接将在通讯结束后拆除
    可靠的数据传输:应用程序使用TCP协议可实现无差错按适当顺序交付所有发送的数据没有字节的丢失和冗余

    TCP服务还提供了拥塞控制机制该机制不一定会给通行双方带来好处,但是会给网络带来整体好处;当发送方和接收方之间的网络出现拥塞时,TCP将使用拥塞控制机制来使网络恢复正常 ;

    UDP服务

    UDP服务是一种不提供不必要服务的轻量级运输协议。它仅提供最小服务。UDP是无连接的也就是说通信之前没有握手;UDP不提供数据的可靠传输;UDP也没有拥塞控制机制,所以UDP的发送端可以用它选定的任何速率向其下层(网络层)注入数据。有些应用场景下,UDP协议将带来更多的便利和效率,比如DNS和一些因特网电话服务(为了避免拥塞控制协议的控制而使用UDP);

    传输层无法提供的服务

    从可靠数据传输、吞吐量、定时、安全性等四个角度来看运输层提供的服务,我们发现,运输层无法对吞吐量和定时做出保证(因为因特网已经被设计成尽可能最大可能对付这种保证的缺乏)。总之,今天的因特网能够为时间敏感的应用提供满意的服务,尽管它并不提供任何定时或者带宽保证;

    流行的因特网应用及其应用层协议和支撑的运输协议

    应用应用层协议支撑的运输协议
    电子邮件SMTP [RFC 5321]TCP
    远程终端访问Telnet [RFC 854]TCP
    WebHTTP [RFC 2616]TCP
    文件传输FTP [RFC 959]TCP
    流式多媒体HTTP (如YouTube)TCP
    因特网电话SIP [RFC 3261]、RTP [RFC 3550]UDP或TCP

    电子邮件、远程终端访问、Web、文件传输都使用了TCP(TCP提供了可靠数据传输服务,确保所有数据最终到达目的地);而因特网电话应用通常能忍受某些丢失但要求一定的最小速率才能有效工作,故通常使用UDP(有些防火墙被配置成阻挡UDP流量,则使用TCP作为备份)以避开TCP的拥塞控制机制和分组开销;

    2.1.5 应用层协议

    应用层协议定义运行在不同端系统上的应用程序进程如何相互传递信息。涉及的内容包括:交换的报文类型(请求或者响应)、报文中包含哪些字段字段如何被解释一个进程何时收发报文并如何对报文进行响应等内容‘
    区分网络应用和应用层协议很重要,应用层协议只是网络应用的一部分;(例如对于一个Web应用,包括文档格式标准HTML、Web浏览器、WEb服务器,以及一个应用层协议HTTP;)

    2.1.6 本书涉及的网络应用

    即将介绍的应用包括:Web文件传输电子邮件目录服务流式视频和P2P。Web部分将介绍HTTP协议,它比较简单和易于理解;FTP则和HTTP形成了对照;电子邮件是比Web更为复杂的应用,因为它使用了多个应用层协议;大多数用户不会直接和DNS接触,但是DNS很好地说明了一种核心的网络功能是如何在应用层实现的;最后便是P2P应用的简单介绍了;

    2.2 、Web和HTTP

    对于大多数用户来说,最具吸引力的就是Web的按需操作

    2.2.1 HTTP概述

    HTTP(HyperText Transfer Protocol)是Web的应用层协议,它是Web的核心;HTTP有两部分实现,一个客户端程序和一个服务器程序;HTTP定义了客户和服务器进行报文交换的方法

    Web页面(也叫文档)是由对象组成的,一个对象是一个文件,它们通过一个URL地址进行寻址。客户和服务器交互的核心思想是客户通过HTTP请求对服务器发出对Web页面的请求报文,服务器收到该报文后将返回包含该对象的HTTP响应报文。URL地址由两部分组成:存放对象的服务器主机名和对象的路径名

    HTTP使用TCP作为它的传输层协议;HTTP客户首先发起一个与服务器的TCP连接,需要注意的是,服务器根据请求作出响应,但是不存储任何关于该客户的状态信息;也正因为这样,HTTP被称为无状态协议。同时,Web使用了客户端-服务器的应用体系结构;其中web服务器总是开着的;

    2.2.2 持续连接和非持续连接

    在因特网应用程序中,客户端和服务器将在很长的时间范围里通信;应用程序将根据自身的特点,选择以规则的间隔周期性性发出请求也可以间断性一个个发出请求。当通信是使用TCP协议时,服务器端需要做出一个决定:这些请求是使用一个TCP连接完成还是通过独立的TCP连接完成。前者称应用程序使用持续连接,后者则称为非持续连接

    HTTP既可使用持续连接也可以使用非持续连接,尽管HTTP在静默情况下使用持续连接;

    采用非持续连接的HTTP

    使用非持续连接时,每个TCP连接在服务器发送一个对象后就会关闭,也就是每个TCP只传送一个请求报文和响应报文

    为了描述持续连接和非持续连接的特点,我们引入往返时间(Round-Trip Time, RTT)。RTT指的是,一个短分组从客户端到服务器,然后再返回客户端所用的时间。RTT包括分组的传播时延排队时延处理时延(因为是短分组,所以其传输时延可不计);因为客户端和服务器建立TCP连接的时候,会通过一个三次握手的过程来交换传输控制信息。三次握手的前两次占用了一个RTT,客户结合第三次握手通行会通过该连接发送一个HTTP请求报文,一旦该分组到达服务器,服务器便开始使用TCP传输HTML对象。因此,粗略地说,响应时间是两个RTT加上传输HTML的时间(不是传播)。
    在这里插入图片描述

    采用持续连接的HTTP

    上文可见非持续连接的一些缺点:第一,必须为每个请求新建一个TCP连接,而每个TCP连接将占用系统资源,包括缓冲区和变量等,这样服务器的负担就很重了;第二,一个对象将通过两个RTT的时延才能交付;

    如果使用持续连接,那么服务器在发送响应报文后将保持该TCP打开,后续客户端可以使用该连接来向服务器发出请求。不但一个完整的页面可以通过同一个连接传送,同一台服务器上的多个页面也可以通过同一个连接发送。这就提高了效率
    一般来说,如果一条连接在一定的时间间隔后没被使用的话,就会被关闭。HTTP默认使用的是带流水线的持续连接

    2.2.3 HTTP报文格式

    HTTP报文有两种:请求报文和响应报文;

    HTTP请求报文

    GET /somedir/page.html HTTP/1.1
    Host: www.someschool.edu
    Connection: close
    User-agent: Mosilla/5.0
    Accept-language: fr
    

    一个请求报文具有至少一行的内容。请求报文的第一行称为请求行,其后继的各行被称为首部行。请求行包含三个内容:方法字段URL字段HTTP版本;其中方法字段可为:GET、POST、PUT、DELETE、HEAD等。URL字段里可以传递请求对象的标志;

    首部行包含是否在发送完响应报文后关闭TCP连接的Connection;请求的主机地址(该头部信息被Web高速缓存所要求);浏览器版本;可接受的语言等头部信息;

    在首部行之后一个空行,之后便是请求的“实体体”。使用GET方法时实体体为空,使用POST方法的时候才用该实体体;该实体体可以在POST方法里传递Form表单内容或者传递其它一些二进制流数据等。值得注意的是,表单也不一定必须使用POST方法。如果使用GET图,实体体为空,会显示在URL中;

    HEAD类似于GET方法,将会用一个HTTP报文进行响应,但是不返回请求对象,经常用作调试跟踪。PUT方法常与Web发行工具联合使用,允许用户上传对象到指定的Web服务器上指定的路径。DELETE方法允许用户或应用程序删除Web服务器上的对象。

    在这里插入图片描述
    HTTP响应报文

    HTTP/1.1 200 OK
    Connection: close
    Date: True, 18 Aug 2015 15:44:04 GMT
    Server: Apache/2.2.3 (CentOS) // 类似于请求报文的User-agent
    Last-Modified: True, 18 Aug 2015 15:11:03 GMT 
    Content-Length: 6821
    Content-Type: text/html
    (data data data data data ...)
    

    响应报文总体上也分三个部分,第一部分是状态行,包含HTTP版本、状态以及状态信息等内容;第二部分是首部行,包含发送日期、服务器类型、上一次修改请求资源的时间、内容的类型等内容。第三部分是实体体。实体体包含请求对象本身。

    这里的Date是从文件系统中检索到该对象,插入到响应报文,并发送该响应报文的时间。Last-Modified则是对象创建或者最后修改的日期和时间;

    在这里插入图片描述

    常见状态码

    200 OK:请求成功,处理方式:信息在返回的响应报文中;
    301 Moved Permanently:请求的对象被永久转移了,首部行中;处理方式:重定向到分配的URL;
    400 Bad Request:非法请求,处理方式:丢弃;
    404 Not Found:没有找到,处理方式:丢弃;
    505 HTTP Version Not Supported:服务器不支持请求报文使用的HTTP版本;

    2.2.4 用户与服务器的交互:Cookie

    前面提到,HTTP是无状态协议,但是Web站点为了识别用户身份或者限制用户访问的时间或者将用户访问的内容同用户身份相关联,Web站点可以使用Cookie技术;

    Cookie技术包含4个组件:

    1. HTTP响应报文里增加一个关于Cookie的首部行;
    2. HTTP请求报文里增加一个关于Cookie的首部行;
    3. 用户端系统保留一个Cookie文件,由浏览器保存维护;
    4. Web站点建立Cookie和用户身份的关联;

    虽然,Cookie的使用方便了用户也方便了服务端,但是它的使用存在争议,因为使用Cookie被认为是对用户隐私的一种侵犯,因为Web站点可以通过Cookie得到很多用户的信息,并有可能将这部分信息卖给第三方等;

    在这里插入图片描述

    2.2.5 Web缓存

    Web缓存器也被称为代理服务器,它代表初始web服务器来满足HTTP请求。它有自己的存储空间,并在存储空间里保持有最近请求过的对象的副本;可以通过配置浏览器,将所有指向初始服务器的请求首先指向代理服务器。

    当代理服务器收到一个HTTP请求后,它将检查本地是否缓存过该对象,如果缓存过该对象,将检查是否过期,如果没有过期,则直接将该对象返回给浏览器;如果本地不存在或者存在已过期,则代理服务器将根据请求报文里的Host首部行以及请求行里的URL字段向初始服务器发出请求,然后将响应对象返回给浏览器并缓存在本地。

    通常,代理服务器与客户端的通信速度要快于初始服务器与客户端的连接速度;因特网部署Web缓存器有两个原因:1)Web代理服务器可以大起大减少对客户请求的响应时间;2)缓存器能从整体上大大降低因特网上的Web流量,从而有助于提高所有应用程序的性能;

    通过使用内容分发网络(Content Distribution Network, CDN),Web缓存器正在因特网中发挥越来越重要的作用;

    Web缓存即是客户又是服务器;

    2.2.6 条件GET方法

    高速缓存器的使用,带来很多好处,但是有一个问题:存放在缓存器伤的对象副本可能是旧的,即保存在服务器中的对象自该副本缓存在客户上以后可能被修改了;

    其实HTTP提供了一种机制,允许缓存器证实其使用的对象是最新的,这种机制就是条件GET方法。使用条件GET方法只需在使用GET方法的时候,增加一个If-Modified-Since:首部行,其对应的内容是一个时间,如果所请求的资源在指定日期后被修改了,那么服务器将返回新的对象,否则服务器将返回一个包含空实体体的报文。这样代理服务器就可以确认缓存是否过期了。

    2.3、因特网中的电子邮件

    因特网电子邮件系统有三个核心组件用户代理、邮件服务器、SMTP(简单邮件传输协议,Simple Mail Transfer Protocol);
    邮件服务器构成了电子邮件系统的核心。每个收发方在邮件服务器上拥有一个邮箱;一个典型的电子邮件发送过成为:发送方通过用户代理将邮件传送到发送方的邮件服务器,然后再传输到接收方的邮件服务器,然后邮件被分发到接收方的邮箱里;接收方从邮件服务器里获取自己的邮件时需要通过邮件服务器的验证(使用用户名和口令);

    SMTP是因特网中电子邮件的主要应用层协议,它使用TCP可靠数据传输从发送方的邮件服务器向接收方的邮件服务器发送邮件;在每台邮件服务器上同时运行SMTP服务器和SMTP客户端。当邮件服务器接收其他邮件服务器的邮件时,它表现为SMTP服务器,当邮件服务器向其他邮件服务器发送邮件时,表现为SMTP客户端;

    如果发送端不能将邮件发送给接受端的服务器,发送端的邮件服务器会在一个报文队列中保持该报文并在以后尝试再次发送(几天后仍不成功则将删除报文并通过电子邮件通知发送方);

    2.3.1 SMTP

    传输的三个阶段:握手、传输、关闭连接。

    SMTP如何将报文从发送邮件服务器传送到接收邮件服务器的:1)客户SMTP(运行在发送邮件服务器主机)在25号端口建立一个到服务器SMTP(接收端)的TCP连接;2)如果服务器没有开机,客户会在稍后继续尝试连接;一旦连接建立,服务器和客户执行某些应用层的握手,SMTP客户指示发送方和接收方邮件地址;3)客户SMTP依赖TCP可靠数据传输无差错地将邮件传输到接收方服务器;4)如果该客户还有另外报文发送到该服务器,通过相同的TCP连接重复传输数据;否则,断开TCP连接

    在这里插入图片描述

    值得注意的是,SMTP报文一般不使用中间邮件服务器发送报文,邮件不会在中间某个邮件服务器保留;

    //SMTP客户(C)和SMTP服务器(S)交换文本
    
    S: 220 hamburger.edu
    C: HELLO crepes.fr
    S: 250 Hello crepes.fr, pleased to meet you
    C: MALL FROM:<alice@crepes.fr>
    S: 250 alice@crepes.fr ... Sender ok
    C: RCPT TO:<bob@hamburger.edu>
    S: 250 bob@hamburger.edu ..Recipient ok
    C: DATA
    S: 354 Enter mail, end with "." on a line by itself
    C: Do you like ketchup?
    C: How about pickles?
    C: .                              // 表示报文已结束
    S: 250 Message accepted for delivery
    C: QUIT
    S: 221 hamburger.edu closing connection
    

    SMTP是持续连接的。对每一报文,客户使用一个新的MAIL FROM:crepes.fr开始。当所有报文发送完后才发送QUIT,断开连接。SMTP出现在因特网之前,尽管它有着很不错的特性,但是它具有的某种陈旧的特征表明它仍然是一种继承的技术,比如,它限制邮件报文的所有部分只能使用7比特的ASCII表示,这就导致二进制多媒体文件需要编码为ASCII,而且在发送方需要编码,接收方则需要解码。

    2.3.2 与HTTP的对比

    HTTP和SMTP都是用TCP协议;持续的HTTP和SMTP都是用持续连接
    但是两者也有区别:首先HTTP被设计为一个拉协议(Pull Protocol),TCP连接是由想接收的机器发起的;而SMTP被设计为一个推协议(Push Protocol),TCP连接通过发送该文件的机器发起;即用户通过HTTP主动向服务器请求内容,而SMTP则是客户将内容推向服务器端
    第二个区别就是HTTP传输的数据不一定是用ASCII字符,但是SMTP则只能使用ASCII字符
    第三个重要区别就是,HTTP将每个对象封装在自己的响应报文里,而SMTP则将所有的报文对象放到一个报文之中

    2.3.3 邮件报文格式

    From: alice@crepes.fr
    To: bob@hamburger.edu
    Subject: Searching for the meaning of life.
    

    报文由两部分组成:一个包含环境信息的首部和一个包含邮件内容的报文体;首部和报文体之间使用空行分开;首部行的格式为关键字:及其值;每个首部必须包含一个From和To首部行。首部也可以包含其它信息,比如Subject等。这与2.3.1中接触的SMTP命令不同,那节中的命令是握手协议的一部分;本节中研究的内容是邮件报文自身的一部分;

    2.3.4 邮件访问协议

    需要注意的是,SMTP是邮件服务器之间发送邮件报文的协议,并不是用户通过代理和邮件服务器之间通信的协议;用户代理使用邮件访问协议来从邮件服务器上获取邮件信息(注意:用户代理无法使用SMTP得到报文是因为取报文是一个拉操作,而SMTP是一个推协议!);目前常用的邮件访问协议有POP3(Post Office Protocol-Version 3)、因特网邮件访问协议(IMAP,Internet Mail Access protocol)和HTTP
    在这里插入图片描述

    POP3

    POP3是一个非常简单的协议,因为简单,所以功能有限;POP3使用端口110来建立TCP连接(SMTP使用端口25);POP3按照三个阶段进行工作:特许、事务处理和更新;在特许阶段,用户代理发送密码和用户名,进行身份鉴别;第二阶段,用户代理取回报文,同时还可以做删除、取消删除等标记或者统计邮件信息;第三个阶段是在用户退出后,POP3结束会话,删除被标记的邮件;

    一个需要注意的是,POP3用户代理可以使用两种事务处理模式:一种是下载并删除,另一种是下载保留;POP3代理发出的命令和其工作模式相关;下载并删除的方法存在的问题是,如果用户在一台设备上查看了邮件(下载了邮件)后,邮件将被删除,那么在其他设备上将无法查看邮件;这给用户带来一定的不便。使用下载保存方式,则用户下载邮件后,邮件还在服务器上。

    在用户代理与邮箱服务器之间的POP3会话期间,该POP3服务器保留了一些状态信息,特别是标记了哪些用户报文被标记为删除了。但是POP3服务器并不在POP3绘画过程中携带状态信息,大大简化了POP3的服务。

    IMAP

    POP3协议无法为用户提供邮件分类管理的功能,虽然用户可以通过将邮件下载到本地,然后由用户代理程序做分类管理,但是处理的结果是无法同步到其他查看设备上的。为了解决这一问题,IMAP诞生了。IMAP是一个邮件访问协议,比POP3要复杂的多,当然也就有更多的特色了。

    (远程)IMAP将每一份邮件和一个一个文件夹联系起来,当报文第一次到达服务器时,它与收件人的INBOX相关联。收件人可以将邮件移到新创建的文件夹,阅读邮件,删除邮件等。IMAP允许用户在不同文件夹里移动邮件并且查询邮件。值得注意的是,IMAP服务器维护了IMAP会话的用户状态信息,但是POP3并不;IMAP协议还允许用户代理获取报文组件而不是报文整体(当用户代理和其邮件服务器之间使用低带宽连接这个特性非常有用!);

    基于Web的电子邮件

    这种方式主要是指,用户使用HTTP协议和邮件服务器通信。用户代理就是普通的浏览器,但是,邮件服务器之间还是使用SMTP协议的;
    (发送方浏览器~HTTP~发送方邮件服务器~SMTP~接收方邮件服务器~HTTP~接收方浏览器)

    2.4、DNS:因特网的目录服务

    在计算机网络里,我们通过IP地址来标记某一时刻网络中唯一的主机。IP地址(IPV4)由4个字节组成,有着严格的层次结果,每个字节使用点号分隔。同时,为了方便记忆,我们也通过为主机提供一个便于记忆的主机名来标志主机,这样主机之间的通信就变得方便了。但是有了主机名和IP地址的转换问题:因为在信息的发送者一端,通常使用主机名来标识主机,但是在计算机网络里是使用IP地址来标机主机。

    2.5.1 DNS提供的服务

    计算机网络里有一种应用专门提供这样的服务,它就是域名系统(Domain Name System, DNS);DNS是一个由分层的DNS服务器组成的分布式数据库一个使得主机可以查询分布式数据库的应用层协议组成;

    DNS服务通常运行BIND(Berkeley Intnernet Name Domain)软件的UNIX机器;DNS协议运行在UDP之上,使用53号端口DNS通常被其他应用层协议使用,比如:HTTP、SMTP和FTP等。这些协议在正式工作以前,首先利用DNS提供的服务,将主机名转换为IP地址,可以发现的是,DNS为用户带来方便的同时,也为网络应用带来额外的时延——查询DNS服务器的时延。幸运的是,想获得的IP地址通常缓存在一个“附近的”DNS服务器中,这样有助于减少DNS的网络流量和DNS平均时延;

    除了提供主机名到IP地址的转换外,DNS还提供以下重要服务:

    主机别名:虽然,主机名比起IP地址好记多了,但是有时候我们的主机名仍然很长,很不好记忆,所以我们需要为主机名再起一个名字,这就是主机别名,DNS不但提供主机名到IP地址的转换服务还提供主机名与主机别名的转换;此时主机名被称为规范主机名;
    邮件服务器别名:DNS同样也提供邮件服务器主机名和别名的转换服务,实际上,公司的邮件服务器和Web服务器可以使用相同的主机别名;MX记录允许一个公司的邮件服务器和Web服务器使用相同的主机名;
    负载分配:DNS也被用在冗余的服务器之间分配负载。每个服务器有着不同的IP地址,但是它们都和同一个主机名相关联,也就是一个IP地址集合同一个规范主机名相联系;当某个DNS服务器收到DNS请求时,该服务器奖使用IP地址的整个集合作为相应,但是在每个应答中,循环这些地址的次序。因为客户端通常都是使用IP地址集合的首个元素,所以DNS就在冗余的Web服务器之间分配了负载。同理,多个邮件服务器可以具有相同的别名;

    2.4.2 DNS工作机理概述

    1)用户主机上某些程序需要将主机名转换为IP地址,这些程序先调用DNS客户端,并指明需要被转换的主机名;2)当主机上的DNS客户端收到一个转换请求时,客户端将向网络发送一个DNS查询报文;3)经过若干毫秒到若干秒的时延之后,用户主机上的DNS接收到一个提供所希望映射的DNS回答报文;4)这个映射结果则被传递到调用DNS的应用程序;
    从使用DNS服务的请求者来看,DNS就像一个简单的提供直接转换服务的黑盒子,实际上这个黑盒子非常复杂,由分布在全球的大量DNS服务器以及定义DNS服务器和查询主机之间如何通信的应用层协议组成;

    DNS采用分布式的设计方案,因为单一的DNS服务器无法解决单点故障无法保证通信容量以及无法临近所有的查询主机维护困难等问题;

    分布式、层次的数据库

    为了处理扩展性问题,DNS服务器采用层次式组织,并且分布在全世界范围内;大致来说,存在三种DNS服务器:根DNS服务器、顶级域(Top-Level Domain, TLD)DNS服务器和权威DNS服务器
    举例说明,其工作的普遍流程:一个DNS客户端,希望获得www.amazon.com的IP地址。首先,DNS客户端和根DNS服务器取得联系,它将返回负责解析顶级域名com的服务器的IP地址(或者其集合),客户将同这些服务器之一取得联系,然后顶级域DNS服务器建返回amazon.com的权威服务器的IP集合,客户端通过与这些服务器之一取得联系,获得www.amazon.com的IP地址。

    根DNS服务器:因特网上有13个根DNS服务器,大部分分布在北美洲,尽管我们可以将这13个根DNS服务器视为单个的服务器,但是每台服务器实际上是一个冗余的计算机网络以提供安全性和可靠性;
    顶级域DNS服务器:负责顶级域名,如com,org,net,edu,gov以及各个国家的顶级域名的转换。
    权威DNS服务器:因特网上,具有公共可访问主机的每个组织机构必须公共可访问的DNS记录,这些记录将主机名映射为IP地址。一个组织的权威DNS服务器收藏了这些DNS记录,多数大学和大公司实现和维护它们自己的基本和辅助(备份)权威DNS服务器;当然,也可以通过付费的方式,将相关的信息插入到其它权威服务器中;
    除了上面三种DNS服务器,还有一种不在DNS层次结构之中,但是很重要的DNS,是本地DNS服务器。本地DNS服务器通常邻近其所在网络的其他主机。当主机发出DNS请求时,该请求被发往本地DNS服务器,它起着代理的作用,并将请求转发到DNS服务器层次结构中。

    在这里插入图片描述

    DNS查询有两种,一种是递归查询一种是迭代查询;实践中,查询通常满足这样的模式:从请求主机到本地DNS服务器的查询是递归的,其余查询是迭代的。所谓迭代就是,如果请求的接收者不知道所请求的内容,那么接收者将扮演请求者,发出有关请求,直到获得所需要的内容,然后将内容返回给最初的请求者。也就是说,在递归查询中,一定要给请求者想要的答案;迭代查询则是指,如果接收者没有请求者所需要的准确内容,接收者将告诉请求者,如何去获得,但是自己并不去发出请求。

    DNS缓存

    DNS缓存:为了改善时延性能并且减少在因特网上传输的DNS报文数量而引入的。DNS缓存原理十分简单,每当DNS服务器发出请求后收到回答时,就将回答的内容缓存在它自己的主机空间上。这样,如果有相同的请求到达时,就不需要再去发出请求,直接使用缓存即可;因为缓存,除了少数DNS查询以外根服务器被绕过了。需要注意的是,缓存不可避免的一个问题:有效时间。如果缓存过时而未得到更新,那么就会导致一些请求失败。

    缓存技术就是一种典型的使用空间换时间的策略;

    2.4.3 DNS记录和报文

    共同实现分布式数据库的所有DNS服务器存储了资源记录(Resource Record, RR)。而RR提供了主机名到IP地址的映射信息

    一条RR是包含以下字段的4元组:(Name, Value, Type, TTL); 其中TTL是指该记录的生存时间,它决定了该条记录何时被删除;而Name和Value的值取决于Type:
    Type=A:则Name为主机名,Value为对应的IP地址;(标准的主机名到IP地址的映射)
    Type=NS:则Name是个(如cctv.com),Value是个知道如何获得该域下主机IP地址权威DNS服务器主机名
    Type=CNAME:则Value为Name(本身为主机别名)所对应的主机规范主机名
    Type=MX:则Value是个别名为Name邮件服务器规范主机名;(注意和CNAME的区别)

    如果一台DNS服务器用于某特定主机名权威DNS服务器,则该DNS服务器会有一条包含于该主机名的类型A记录
    如果服务器不是用于某主机名的权威服务器,那么该服务器将包含一条类型NS记录,对应于包含主机名的域;还将包含一条类型A记录,提供了在NS记录的Value字段中的DNS服务器的IP地址
    Type=CNAMEType=MX的记录则实现了主机别名主机规范名的转换,可以通过该规范名继续构建查询链条直到获得希望的IP地址

    DNS报文
    DNS只有查询回答报文,这两种报文有着相同格式:
    在这里插入图片描述

    前12字节为首部区域。标识符是一个用来标记该查询的16比特数。该标志符会被复制到相应的回答报文里,以便匹配请求和回答;标志字段有若干标志,用来指出报文的类型(请求还是响应)、查询类型(递归还是迭代)、是否是所请求名字的权威DNS服务器、以及4个有关数量的字段,用来指示4类数据区域出现的数量;
    问题区域包含了正在进行的查询信息,包括名字字段、查询类型;
    回答区域包含了对最初请求的名字的资源记录,回答报文的回答区域可以包含多条RR,因此一个主机名能有多个IP地址;
    权威区域包含了其他权威服务器的记录
    附加区域包含了其它有帮助的记录,比如在对于一个MX类型的请求回答报文里,回答区域里指出了邮件服务器的规范主机名,而附加区域里就有可能包含一个类型为A的关于该规范主机名的的IP地址;

    向DNS数据库中插入数据

    需要在注册登记机构完成这一任务,当你注册一个域名时,需要向该机构提供你的基本和辅助DNS服务器的名字和IP地址;该注册机构将确保一个类型为NS和类型为A的记录输入对应的顶级域名服务器;这样就完成了插入数据;

    2.5、P2P文件分发

    前文描述的应用(Web、电子邮件和DNS)都采用客户-服务器体系结构,极大依赖于总算打开的基础设施服务器;而使用P2P体系结构,对总是打开的基础设施服务器没有依赖,成对间歇连接的主机之间相互通信
    P2P体系结构有着良好的自扩展性。这种扩展性的直接成因是:对等方除了比特的消费者之外还是他们的重新分发者;

    P2P文件分发(BitTorrent)

    BitTorrent 是一种用于文件分发的流行P2P协议;用BitTorrent的术语来说,参与一个特定文件分发的所有对等方的集合被称为一个洪流;在一个洪流中的对等方彼此下载等长度的文件块;当一个对等方下载文件块的时候,也向其他对等方发送了多个块;一旦某对等方获得了完整文件,就可以自私地离开洪流或者大公无私地留下来继续向其他对等方发送文件.
    每个洪流都有一个追踪器。当一个对等方加入某洪流时,它向追踪器注册自己,并周期性地通知追踪器它仍在洪流中;一个给定的洪流可能在任何时刻都有数以百计的对等方;

    在这里插入图片描述

    如上图所示:Alice加入某洪流时,会在追踪器里进行注册,周期性通知追踪器它仍在洪流中。我们称所有与Alice成功的创建了一个TCP连接的对等方成为邻近对等方
    洪流随机从参与对等方的结合中选择一个子集,将他们的IP地址发给Alice,Alice维护这张对等方列表,试图与所有对等方建立并行的TCP连接;
    Alice周期询问每个邻近对等方(连上的)他们有的文件块列表,她随时知道邻居有哪些文件块;
    Alice使用最稀缺优先技术,首先请求那些邻居们副本数量最少的块,使该文件块迅速分发,以均衡每个块在洪流中的副本数量;
    BitTorrent使用一种算法,Alice优先从向她传输速度最快的邻居4个,每10s修改一次)那里获取文件块;
    每过30s,Alice也要随机选择另外一个对等方Bob,向他发送块。若Alice是Bob最快的前四快,Bob也是Alice的前4快,则Bob和Alice互相发送数据
    每过30s换一个新的对象,互相交换数据(一报还一报),为了使对等方能够找到彼此协调的速率上传;


    在这里插入图片描述

    本章完。

    展开全文
  • 计算机网络学习笔记——第一讲——计算机网络概述(1.5计算机网络体系结构——Part2).pdf
  • 计算机网络学习笔记——第一讲——计算机网络概述(1.5计算机网络体系结构——Part1).pdf
  • 计算机网络学习笔记2-物理层+网络层.pdf
  • 计算机网络学习笔记——第一讲——计算机网络概述(1.3网络核心——Part1).pdf
  • 计算机网络学习笔记——第一讲——计算机网络概述(1.3网络核心——Part2).pdf
  • 计算机网络学习笔记3-ARP+广播风暴.pdf
  • 计算机网络学习笔记1-OSI 7层模型.pdf
  • 计算机网络学习笔记第四章(网络层)超详细整理.pdf
  • 计算机网络学习笔记第一章(概述) 超详细整理.pdf
  • 计算机网络学习笔记第五章(运输层)超详细整理.pdf
  • 计算机网络学习笔记第六章(应用层)超详细整理.pdf
  • 计算机网络学习笔记第二章(物理层)超详细整理.pdf
  • 计算机网络学习笔记第三章(数据链路层)超详细整理.pdf
  • 计算机网络学习笔记——第二讲——网络应用(2.3Web应用——Part1).pdf
  • 计算机网络学习笔记——第二讲——网络应用(2.1、2.2网络应用概述及基本原理).pdf
  • 考研课程计算机网络学习笔记比较浅的知识点用于应付笔试面试中的网络题 一计算机网络体系结构 1 计算机网络的概念组成和功能 1. 概念 按照网络协议语法语义同步 以共享资源和传递信息为主要目的将地理上分散且 ...
  • 考研课程计算机网络学习笔记比较浅的知识点用于应付笔试面试中的网络题 一计算机网络体系结构 1计算机网络的概念组成和功能 1. 概念 按照网络协议语法语义同步 以共享资源和传递信息为主要目的将地理上分散且 功能...
  • 计算机网络学习笔记:基础知识

    千次阅读 2020-11-22 22:33:51
    计算机网络的定义、计算机网络的分类、计算机网络的功能、计算机网络体系结构、网络参考模型、网络发展历程进行了相关知识详细解说与介绍!

    目录

    一、计算机网络的定义

    什么是网络?

    计算机网络的定义:

    计算机网络的组成:

    端系统之间的两种通信方式:

    客户-服务器方式:

    对等连接方式 :

    二、计算机网络的分类

    计算机网络的拓扑结构:

    计算机网络拓扑分类:

    计算机网络覆盖范围分类:

    覆盖范围与传输速率的关系:

    计算机网络其他分类方式及其汇总:

    三、计算机网络的功能

    四、计算机网络体系结构

    分层模型示例:

    网络层次模型:

    分层的好处与缺点 :

    各层完成的主要功能:

    计算机网络体系结构的形成:

    协议与划分层次:

    网络协议的三个组成要素 :

    协议的两种形式:

    实体、协议、服务和接口:

    服务访问点(接口)的介绍:

    服务原语的介绍:

    五、网络参考模型

    OSI参考模型:

    TCP/IP参考模型:

    两种网络参考模型比较:

    五层协议的体系结构 :

    数据发送过程:

    六、网络发展历程

    计算机网络发展历史:

    1961-1972: 早期分组交换原则

    1972-1980: 网络互连, 新的网络,专用网络

    1980-1990: 新协议, 网络激增

    1990, 2000’s: 商业化, Web, 新应用

    最新发展

    计算机网络在我国的发展:

    标准的制定:

    计算机网络的性能指标:


    一、计算机网络的定义

    什么是网络?

    “网络”是一个泛称,泛指把人和物互联在一起而形成的系统。(下图来自百度百科)


    计算机网络的定义:

    计算机网络是通过通信线路通信设备将分布在不同位置的、具有独立自治功能的计算机彼此连接起来,并配置相应的网络软件,以实现计算机之间的信息交换和资源共享

    • 自治:自治是指每台计算机的功能是完整的、可以独立工作
    • 彼此连接:指计算机之间在物理上是互联的,在逻辑上能够彼此交换信息


    计算机网络的组成:

    计算机网络,依据完成功能的不同,可以分解为两个部分通信子网资源子网

    通信子网——通信线路通信设备所构成的通信子网,通信设备包括转发器、交换机、路由器等。

    • 它为资源子网的计算机提供数据传输服务。

    • 它覆盖的地理范围可以是很小的局域区域,如一个单位,也可以是很大的区域,如一个城市、一个国家。

    资源子网——位于网络的边缘,资源子网中的计算机负责运行对信息进行处理的应用程序。

    • 它们是信息流动的源和宿,也叫做端系统

    将通信子网和资源子网分离开来,使得这两部分可以单独规划和管理简化了整个网络的设计和管理

    在进程局域范围内,一个单位可同时拥有通信子网和资源子网。

    在远程广域范围内,通信子网可以由政府部门或电信运行上拥有和经营(如:联通、电信、移动三大运营商)

    • 它向社会提供服务
    • 拥有计算机的用户通过申请接入通信子网,成为计算机网络中的成员,使用网络服务。

    端系统之间的两种通信方式:

    端系统之间的通信方式通常可划分为两大类:

    • 客户-服务器方式C/S 方式)即 Client/Server 方式,简称为 C/S 方式。
    • 对等方式P2P 方式)即 Peer-to-Peer 方式 ,简称为 P2P 方式。

     

    • 客户-服务器方式:

    客户 (client) 服务器 (server) 都是指通信中所涉及的两个应用进程。

    客户-服务器方式所描述的是进程之间服务和被服务的关系。

     

    • 对等连接方式 :

    对等连接 (peer-to-peer,简写为 P2P) 是指两个主机在通信时并不区分哪一个是服务请求方还是服务提供方

    只要两个主机都运行了对等连接软件 (P2P 软件) ,它们就可以进行平等的、对等连接通信。

    双方都可以下载对方已经存储在硬盘中的共享文档。

    对等连接方式的特点:

    对等连接方式从本质上仍然是使用客户-服务器方式客户又是服务器。

    (例如:主机 C 请求 D 的服务时,C 是客户,D 是服务器。但如果 C 又同时只是对等连接中的每一个主机既是F提供服务,那么 C 又同时起着服务器的作用。)

    对等连接工作方式可支持大量对等用户(如上百万个)同时工作。

     

    二、计算机网络的分类

    计算机网络的拓扑结构:

    计算机网络的拓扑结构指网络节点和链路之间的分布和互连形成的物理形状

     

    计算机网络拓扑分类:

    星形拓扑结构:一种以中央节点为中心,把若干外围节点连接起来的辐射状互联结构。

    优点易扩充②控制简单(中央节点实施对全网的控制)

    缺点:中央节点会成为系统的瓶颈②存在单点故障问题

    适用场合:

    • 传统场合:网络智能集中于中央节点的场合

    • 新场合:在计算机从集中的主机系统发展到功能很强的微型机和工作站,以高速交换设备为中心的星形拓扑结构发展迅猛,应用也越来越广。

    环形拓扑结构:所有网络节点通过通信链路连接成一个闭合环,每个节点能够接受从一段链路传来的数据,并把该数据沿环送到另一端链路上。

    • 链路可单向,也可双向

    • 数据在环上的传送由分布式策略控制

    优点:通信链路长度比星形拓扑结构要短②可使用光纤③增加/删除结点容易;

    缺点: 任一结点或链路发生故障会导致全网故障,且故障检测和定位比较困难;

    场合示例:IEEE802.5令牌环网记为采用拓扑的网络

    总线拓扑结构:采用一个共享信道作为传输介质,所有结点都通过相应的硬件接口直接连到被称为总线的传输介质上。

    • 共享信道:任何一个站点发送的数据信号都沿着传输介质传播,并且能被其他站点接收

    优点:拓扑结构简单②无源线路、有较高的可靠性③便于扩充,便于节点的增加和删除;

    缺点:传输距离有限,通信范围受限制②故障诊断和隔离比较困难

    场合示例:

    • 早期的以太网采用总线拓扑结构的网络
    • 现行的电缆因特网接入方案

    树形拓扑结构:

    • 顶端是根结点,根节点下有分支,每个分支还可再带子分支。
    • 根节点接收各网络结点发送的数据,然后再广播发送到全网。

    优点:扩展容易②管理简单、方便维护

    缺点:资源共享能力差②可靠性低,根节点是系统瓶颈

    场合示例:军事单位、政府单位等上下界相当严格和层次分明的网络结构

    网形拓扑结构:各网络节点之间根据需要将通信线路互连,形成网状。

    优点:可靠性高:不受瓶颈问题和单点故障问题的影响

    缺点:结构复杂、成本高②网络协议复杂

    场合示例:

    • 广域网中得到广泛应用

    • 因特网


    计算机网络覆盖范围分类:

    局域网(Local Area Network, LAN):

    定义:覆盖范围在几公里内的计算机相互连接所构成的计算机网络

    使用场景:

    • 这类网络被广泛应用在一个实验室、一栋或几栋大楼、一个学校、一个单位等,便于区域内人们进行资源共享和数据通信

    •  局域网由某个单位单独拥有、使用和维护

    特点:结构简单、传输速率高、延时小、管理方便、造假低廉。

    局域网一般面对的通信问题和对应解决技术:

    • 一般采用共享传输介质的广播通信技术,会有冲突问题
    • 冲突问题是指多个结点进行数据传输时造成的数据帧碰撞
    • 在局域网中,必须引入介质访问控制协议来解决结点对介质的争用问题

    常用的局域网标准:以太网和令牌环网

     

    城域网(Metropolitan Area Network,MAN):

    定义:城域网是一个城市范围内所建立的计算机网络,一般5到50公里。

    • 城域网通常被用作城市骨干网
    • IEEE成立的城域网标准:IEEE 802.6

    分布式队列双总线(Distributed Queue Dual Bus,简写DQDB)是 IEEE 802.6 标准中定义的城域网(MAN)数据链路层通信协议,主要应用于城域网(MAN)。DQDB 被设计来用于数据,还有语音和视频的传输,它基于信元交换(cell switching)技术(类似于 ATM)。此外,DQDB 是开放标准(open standard),其设计与载波传输标准(如 SMDS)相兼容,使用两根单向逻辑总线进行多路系统的相互连接。(来源自百度百科)

     

    广域网(Wide Area Network, WAN):

    定义:广域网,也称远程网,是指覆盖范围广阔的网络 (几十到几千公里 )

    • 覆盖范围可以是一个国家或地区
    • 广域网将分布在不同地区的宽带城域网或计算机系统互连起来,提供各种网络服务

    广域网的典型代表:Internet

     

    覆盖范围与传输速率的关系:

     

     


    计算机网络其他分类方式及其汇总:

     

    三、计算机网络的功能

     

    四、计算机网络体系结构

    分层模型示例:

    分层的思想:

    • 将复杂问题,分解为若干个功能相对独立的子问题
    • 不同的子问题由不同的模块单独处理,模块之间形成单向依赖关系。

    网络层次模型:

    • 两台计算机AB要进行通信,考虑进行通信涉及的所有问题。

    • 将系统划分成若干个模块,这些功能模块间具有层次依赖关系。

    • 底层负责完成系统功能的基本部分。

    • n层利用第n-1层向其提供的服务来完成本层要实现的功能,并向它的上一层—第n+1层提供相应的服务。

    分层的好处与缺点 :

    层数的多少要适当 :

    • 层数太少,就会使每一层的协议太复杂。
    • 层数太多,又会在描述和综合各层功能的系统工程任务时遇到较多的困难。

    各层完成的主要功能:

    差错控制:使相应层次对等方的通信更加可靠。

    流量控制:发送端的发送速率必须使接收端来得及接收,不要太快。

    分段和重装 :发送端将要发送的数据块划分为更小的单位,在接收端将其还原。

    复用和分用:发送端几个高层会话复用一条低层的连接,在接收端再进行分用。

    连接建立和释放:交换数据前先建立一条逻辑连接,数据传送结束后释放连接。


    计算机网络体系结构的形成:

    • 1974 年,美国的 IBM 公司宣布了系统网络体系结构SNA (System Network Architecture)。这个著名的网络标准就是按照分层的方法制定的

    • 不久后,其他一些公司也相继推出自己公司的具有不同名称的体系结构。

    • 由于网络体系结构的不同,不同公司的设备很难互相连通。

    • 为了使不同体系结构的计算机网络都能互连,国际标准化组织 ISO 1977 年成立了专门机构研究该问题。

    • 他们提出了一个试图使各种计算机在世界范围内互连成网的标准框架,即著名的开放系统互连基本参考模型 OSI/RM (Open Systems Interconnection Reference Model),简称为 OSI(只要遵循 OSI 标准,一个系统就可以和位于世界上任何地方的、也遵循这同一标准的其他任何系统进行通信。)

    • 但是OSI 只获得了一些理论研究的成果,在市场化方面却失败了。

     

    • 法律上的 (de jure) 国际标准 OSI 并没有得到市场的认可。非国际标准 TCP/IP 却获得了最广泛的应用。TCP/IP 常被称为事实上的 (de facto) 国际标准

    协议与划分层次:

    • 计算机网络中的数据交换必须遵守事先约定好的规则。
    • 些规则明确规定了所交换的数据的格式以及有关的同步问题(同步含有时序的意思)。
    • 网络协议 (network protocol),简称为协议,是为进行网络中的数据交换而建立规则、标准或约定。

     

    网络协议的三个组成要素 :

    • 语法:数据与控制信息的结构或格式 。
    • 语义:需要发出何种控制信息,完成何种动作以及做出何种响应。
    • 同步:事件实现顺序的详细说明

     

    协议的两种形式:

    • 一种是使用便于人来阅读和理解的文字描述。
    • 另一种是使用让计算机能够理解的程序代码。
    • 这两种不同形式的协议都必须能够对网络上信息交换过程做出精确的解释。

     

    实体、协议、服务和接口:

    • 实体 (entity) 表示任何可发送或接收信息的硬件或软件进程。
    • 协议是控制两个对等实体进行通信的规则的集合。
    • 在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。
    • 要实现本层协议,还需要使用下层所提供的服务。

    协议与服务之间有什么不同?

    • 协议的实现保证了能够向上一层提供服务。
    • 本层的服务用户只能看见服务而无法看见下面的协议。即下面的协议对上面的服务用户是透明的。
    • 协议是“水平的”,即协议是控制对等实体之间通信的规则。
    • 服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。
    • 上层使用服务原语获得下层所提供的服务。

    服务访问点(接口)的介绍:

    • 同一系统相邻两层的实体进行交互的地方,称为服务访问点 SAP (Service Access Point)
    • 服务访问点SAP是一个抽象的概念,它实际上就是一个逻辑接口
    • 接口定义相邻层之间上层如何访问或使用下层所提供的服务
    • n+1层通过n+1层与n层的层间接口处的SAP来调用第n层的服务

     

    服务原语的介绍:

    • 上层使用下层必须通过与下层交换一些命令,这些命令称为服务原语(primitive),原语可以带参数。
    • 服务在形式上用一组原语来描述
    • 服务原语可以划分为四类:请求Request),指示Indication),响应Response),确认Confirm)。

    请求(Request)——由服务用户发往服务提供者,请求完成某项工作。

    指示(Indication)——由服务提供者发往服务用户,指示发生了某些事件。

    响应(Response)——由服务用户发往服务提供者,作为对指示的响应。

    确认(Confirm)——由服务提供者发往服务用户,作为对请求的确认。

    服务原语之间的关系

     

    层次协议集合,称为网络体系结构。

    网络体系结构的描述必须包含足够信息:

    • 以便网络设计者能够为每一层设计相应的硬件或软件,但实现的细节和接口对外界是不可见的
    • 每台机器只需正确地使用网络体系结构所定义的协议即可

    一个特定的系统所使用的一组协议称为协议栈。

     

    五、网络参考模型


    OSI参考模型:

    物理层:

    功能:在物理介质上传输原始比特流。

    • 数据链路层提供一个物理连接。

    • 物理层定义传输信号的电气特征、连接器的机械形状、交换电路的功能和进行比特传输过程 4个规章特性,用以确定如何使用物理传输介质来实现两个结点间的物理连接。

    处理的数据:二进制比特信号(如:二进制的基带信号或模拟信号。)

    处理的地址:直接面向物理端口的各个管脚,如RS-232的管脚。

     

    数据链路层:

    功能:负责在两个相邻结点间的线路上,无差错地传送以“”为单位的数据

    • 数据链路层(Data Link Layer)传送的比特信息是有意义和规范的结构

    主要功能:成帧、差错控制、流量控制传输管理

    处理的数据单元:数据帧

    处理的地址:硬件的物理地址

     

    网络层:

    主要任务:如何把网络层的协议数据单元(分组)从源传送到目的

    功能:

    • 路由选择
    • 拥塞控制
    • 网络互连

    处理的数据单元:分组

    处理的地址:逻辑地址(如:IP地址)

     

    传输层:

    为高层用户提供可靠的、透明的、有效的数据传输服务。

    传输层提供的服务大体分:面向连接的传输服务面向无连接的传输服务。

    处理的数据单元:报文段。

    处理的地址:进程标识(TCP/UDP,端口号)

     

    会话层:

    功能:主要实现会话连接到传输连接的映射、加强会话管理等功能

    会话(Session)是一种建立在传输层之上的连接,这种连接提供了一种建立连接并有序传输数据的方法

    处理的数据单元:报文

     

    表示层:

    功能:处理结点间或通信系统间信息表示方式方面的问题。

    不同生产商的计算机具有不同的内部数据表示,所以不同类型计算机之间交换的数据,一般需要经过格式转换才能保证其意义不变。 

     

    应用层:

    应用层是开放系统互连参考模型的最高层,是用户与网络的接口,其功能是为特定类型的网络应用提供访问OSI环境的手段。

    处理的数据单元:报文

    数据传输过程

    TCP/IP参考模型:

    是在ARPANet的发展过程中逐渐形成的参考体系结构。

    TCP/IP参考模型特点:

    • 开放的协议标准
    • 独立于特定的计算机硬件和操作系统
    • 独立于特定的网络硬件,可以运行在局域网、城域网和广域网上,使用该模型易于实现网络互联
    • 具有统一的网络地址分配方案
    • 标准化的应用层协议,可以提供多种可靠的网络服务

     

    应用层包含所有的高层协议

    传输层负责在源主机和目的主机的应用程序间提供端-端的数据传输服务,使主机上的对等实体可以进行会话

    互联层负责将报文独立地从源主机传送到目的主机,主要解决路由选择、拥塞控制和网络互连等问题

    主机至网络层,负责将相邻高层提交的IP报文封装成适合在物理网络上传输的帧格式并传输,或将从物理网络接收到的帧解封,从中取出IP报文并提交给相邻高层。 


    两种网络参考模型比较:

    相同之处:

    • 二者都是基于独立的协议栈的概念;
    • 二者都采取分层体系结构,而且各层的功能也大体相似。

    相异之处:

    • OSI参考模型中清晰的定义了3个主要概念:服务、接口和协议,TCP/IP参考模型最初没有明确区分服务、接口和协议。
    • 模型和协议的产生时间。
    • 模型层数不同,某些层实现服务不同。

    五层协议的体系结构 :

    数据发送过程:

     

    六、网络发展历程

    计算机网络发展历史:

    1961-1972: 早期分组交换原则

    1961:

    • Kleinrock – 排队理论显示了分组交换的有效性( effectiveness)

    1964:

    • Baran – 军队网络中的分组交换

    1967:

    • ARPAnet ——由 Advanced Research Projects Agency构想

    1969:

    • 第一个 ARPAnet 节点运转

    1972:

    • ARPAnet 发布 demo
    • NCP (Network Control Protocol) 第一个主机之间的协议
    • 第一个 e-mail 程序
    • ARPAnet 有 15 个节点

    1972-1980: 网络互连, 新的网络,专用网络

    1970:

    • ALOHAnet satellite network in Hawaii

    1974:

    • Cerf and Kahn - architecture for interconnecting networks

    1976:

    • Ethernet at Xerox PARC

    late70’s:

    • 体系结构: DECnet, SNA, XNA

    late 70’s:

    • 交换固定长度分组 (ATM 雏形)

    1979:

    • ARPAnet 有 200个节点

     

    1980-1990: 新协议, 网络激增

    1983:

    • 部署 TCP/IP

    1982:

    • 定义smtp e-mail 协议

    1983:

    • 定义DNS 协议

    1985:

    • 定义ftp 协议

    1988:

    • TCP 拥塞控制协议

    新的国家网络: Csnet, BITnet, NSFnet, Minitel

    100,000主机连入网络联盟( confederation of networks)

    1990, 2000’s: 商业化, Web, 新应用

    early 1990’s:

    • ARPAnet 退役

    1991:

    • NSF——出台NSFnet (1995退役)商业使用的条款

    early 1990s:

    • Web
    • hypertext [Bush 1945, Nelson 1960’s]
    • HTML, HTTP: Berners-Lee

    1994:

    • Mosaic, later Netscape

    late 1990’s:

    •  Web商业化

    late 1990’s – 2000’s:

    • 更多apps: instant messaging, P2P file sharing
    • 网络安全问题越来越突出
    • 至少 500000 主机, 1亿多用户
    • 主干链路的速率达Gbps

    最新发展

    2010:

    • 750 million hosts
    • 视频,音频
    • P2P 应用: BitTorrent (file sharing) Skype (VoIP), PPLive (video)
    • 更多应用: YouTube, gaming, Twitter
    • 无线,移动性

    计算机网络在我国的发展:

    1980 年,铁道部开始进行计算机联网实验。

    1989 年11 月,我国第一个公用分组交换网 CNPAC 建成运行。

    1994 年 4 月 20 日,我国用 64 kbit/s 专线正式连入互联网,我国被国际上正式承认为接入互联网的国家。

    1994 年 5 月,中国科学院高能物理研究所设立了我国的第一个万维网服务器。

    1994 年 9 月中国公用计算机互联网  CHINANET 正式启动。

    到目前为止,我国陆续建造了基于互联网技术的并能够和互联网互连的多个全国范围的公用计算机网络,其中规模最大的就是下面这五个:

    • (1) 中国电信互联网 CHINANET(也就是原来的中国公用计算机互联网)
    • (2) 中国联通互联网 UNINET
    • (3) 中国移动互联网 CMNET
    • (4) 中国教育和科研计算机网 CERNET
    • (5) 中国科学技术网 CSTNET

    中国教育和科研计算机网 CERNET (China Education and Research NETwork) 始建于 1994 年,是我国第一个 IPv4 互联网主干网。

    2004 年 2 月,我国的第一个下一代互联网 CNGI 的主干网 CERNET2 试验网正式开通,并提供服务。

    中国互联网络信息中心 CNNIC (ChiNa Network Information Center) 每年两次公布我国互联网的发展情况。


    标准的制定:

    ITU-国际电信联盟:对国际电信进行标准化

    • ITU-T,10个研究组,通常400多人;标准化了X.509等

    ISO-国际标准化组织->TC->子委员会(SC)->工作组(WG)

    • 200多个委员会(TC)
    • 某个领域需要国际标准时:组成一个WG,提出委员会草案(CD)
    • 给所有成员审核(约6个月),如果绝大多数都同意形成国际标准草案
    • 发给所有成员投票表决,根据结果,形成国际标准(IS)
    • 在有较大争议的领域,可能需要几次修订才能获得通过票数,可能持续几年

    NIST-国际标准和技术协会

    • 美国商业部部门,颁发美国政府采购强制执行的标准

    IEEE:电气和电子工程师协会

    • David Clark形容internet标准:rough consensus and running code
    • IEEE的802委员会已经标准化了很多类型的局域网

    IABInternet Activities Board-Internet活动委员会:

    • 保持ARPANETInternet的研究人员大致朝同一个方向走

    • 1989年,IAB两个附属组织:IRTFIETF
    • 1989年,改组为Internet研究任务组(IRTF Internet工程任务组(IETF IAB 吸纳了更多新人,建立了Internet协会(Internet Society

    W3C-万维网联盟:

    • Web标准,Tim Berners-Lee领导


    计算机网络的性能指标:

    速率:

    • 比特(bit)是计算机中数据量的单位,也是信息论中使用的信息量的单位。
    • 比特(bit)来源于 binary digit,意思是一个“二进制数字”,因此一个比特就是二进制数字中的一个 1 0
    • 速率是计算机网络中最重要的一个性能指标指的是数据的传送速率,它也称为数据率 (data rate)或比特率 (bit rate)。
    • 速率的单位bit/s,或 kbit/sMbit/s Gbit/s 等。
    • 速率往往是指额定速率或标称速率,非实际运行速率。 

     

    带宽:

    两种不同意义:

    • 带宽”(bandwidth) 本来是指信号具有的频带宽度,其单位是赫(或千赫、兆赫、吉赫等)。
    • 在计算机网络中,带宽用来表示网络中某通道传送数据的能力表示在单位时间内网络中的某信道所能通过的“最高数据率”单位是 bit/s ,即 “比特每秒”。   

    在“带宽”的上述两种表述中,前者为频域称谓,而后者为时域称谓,其本质是相同的。也就是说,一条通信链路的“带宽”越宽,其所能传输的“最高数据率”也越高。

     

    吞吐量:

    • 吞吐量 (throughput) 表示在单位时间内通过某个网络(或信道、接口)的数据量。
    • 吞吐量更经常地用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。
    • 吞吐量受网络的带宽网络的额定速率限制。 

     

    时延:

    • 时延 (delay latency) 是指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间
    • 有时也称为延迟迟延
    • 网络中的时延由以下几个不同的部分组成(发送时延、传播时延、处理时延、排队时延)

    发送时延:

    也称为传输时延。

    发送数据时,数据帧从结点进入到传输媒体所需要的时间。

    也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。

    传播时延:

    电磁波在信道中需要传播一定的距离而花费的时间。

    发送时延与传播时延有本质上的不同。

    信号发送速率和信号在信道上的传播速率是完全不同的概念。

    处理时延:

    主机或路由器在收到分组时,为处理分组(例如分析首部、提取数据、差错检验或查找路由)所花费的时间。

    排队时延:

    分组在路由器输入输出队列中排队等待处理所经历的时延。

    排队时延的长短往往取决于网络中当时的通信量。

    四种时延所产生的地方

    总时延  =      发送时延    + 传播时延   +  处理时延    + 排队时延

     

    容易产生的错误概念 :

    • 对于高速网络链路,我们提高的仅仅是数据的发送速率而不是比特在链路上的传播速率。
    • 提高链路带宽减小了数据的发送时延。

    “在高速链路(或高带宽链路)上,比特会传送得更快些”。(这种说法是错误的!)

     

    时延带宽积:

    链路的时延带宽积又称为以比特为单位的链路长度

     

    往返时间 RTT:

    • 互联网上的信息不仅仅单方向传输,而是双向交互的。因此,有时很需要知道双向交互一次所需的时间。

    • 往返时间表示从发送方发送数据开始,到发送方收到来自接收方的确认,总共经历的时间。

    • 在互联网中,往返时间还包括各中间结点的处理时延、排队时延以及转发数据时的发送时延。

    • 当使用卫星通信时,往返时间 RTT 相对较长,是很重要的一个性能指标。

     

    利用率:

    • 分为信道利用率网络利用率

    • 信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。

    • 网络利用率则是全网络的信道利用率的加权平均值。

    • 信道利用率并非越高越好。当某信道的利用率增大时,该信道引起的时延也就迅速增加。

    时延与网络利用率的关系:

    根据排队论的理论,当某信道的利用率增大时,该信道引起的时延也就迅速增加

    若令 D0 表示网络空闲时的时延,D 表示网络当前的时延,则在适当的假定条件下,可以用下面的简单公式表示 D D0之间的关系:

    其中:U 网络的利用率,数值在 0 到 1 之间。

     

    END... ...

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 80,701
精华内容 32,280
关键字:

计算机网络学习笔记