计算机考研课程408包括计组、计网、操作系统、数据结构与算法,计组在21年就补完了——计算机组成原理:最详细笔记!,数据结构与算法、操作系统都看了,就差计网这个八股文,系统的听了一遍考研课程《王道-计算机网络》,简单的截了图,也不打算再补充了,就把它发出来吧。希望考研人可以用的上!!!推荐:《王道计算机网络》学习笔记总目录+思维导图
《计算机网络该怎么学 |面试题分享 |程序员面试必问 |互联网,通信公司常问 |java,python,c++等校园招聘》
第1章计算机网络体系结构 【复习提示】计算机网络主要指的就是TCP/IP协议栈,是互联网的基石
TCP/IP协议体系的认知链路层 以太网帧的格式MTU的概念ARP协议和RARP协议(掌握一下ARP缓存的原理) 网络层 掌握IP的首部格式掌握IP的分片掌握IP选路ICMP协议 掌握报文格式分类:查询 + 差错两种 + 五种 传输层 UDP,次要一点,掌握特点和首部各个字段掌握TCP 特点 + 首部字段 + 可靠机制连接控制 : 三次握手,四次挥手,同时打开,同时关闭,半关闭(可能问到为什么需要) 流量控制机制:滑动窗口,慢启动,拥塞避免,快速重传,快速恢复超时重传机制 应用层 掌握DNS协议 名字空间指针查询(反向查找或逆向解析)基本原理DNS缓存 FTP协议(活化石): 控制流和数据流两种工作模式: PASV 和 PORT各种指令和响应码断点续传和匿名FTP的概念 HTTP协议:报文格式:请求报文、响应报文、请求头各种字段、响应头各种字段http状态码https协议: https的详细握手过程摘要算法、数字签名、数字证书的原理和过程
容易忘是因为TCP/IP技术栈有一大部分都隐藏于操作系统的内核态,较少被接触。
重点脉络:
(1,反复记忆。2,多问为什么)课代表来啦
本章主要介绍计算机网络体系结构的基本概念,读者可以在理解的基础上适当地记忆。重点掌握网络的分层结构(包括5层和7层结构),尤其是ISO/OSI参考模型各层的功能及相关协议、接口和服务等概念。掌握有关网络的各种性能指标,特别是时延、带宽、速率和吞吐量等的计算。
1.1 计算机网络概述 1.1.1 计算机网络的概念计算机网络:是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。
计算机网络是互连的、自治的计算机集合。互连-互联互通 通信链路自治-无主从关系
从组成部分上看,一个完整的计算机网络主要由硬件、软件、协议三大部分组成,缺一不可。硬件主要由主机(也称端系统)、通信链路(如双绞线、光纤)、交换设备(如路由器、交换机等)和通信处理机(如网卡)等组成。软件主要包括各种实现资源共享的软件和方便用户使用的各种工具软件(如网络操作系统、邮件收发程序、FTP程序、聊天程序等)。软件部分多属于应用层。协议是计算机网络的核心,如同交通规则制约汽车驾驶一样,协议规定了网络传输数据时所遵循的规范。1.2.1节将详细讨论协议。从工作方式上看,计算机网络(这里主要指 Intemet)可分为边缘部分和核心部分。边缘部分由所有连接到因特网上、供用户直接使用的主机组成,用来进行通信(如传输数据、音频或视频)和资源共享;核心部分由大量的网络和连接这些网络的路由器组成,它为边缘部分提供连通性和交换服务。图1.1给出了这两部分的示意图。
从功能组成上看,计算机网络由通信子网和资源子网组成。通信子网由各种传输介质、通信设备和相应的网络协议组成,它使网络具有数据传输、交换、控制和存储的能力,实现联网计算机之间的数据通信。资源子网是实现资源共享功能的设备及其软件的集合,向网络用户提供共享其他计算机上的硬件资源、软件资源和数据资源的服务。 1.1.3 计算机网络的功能 1.1.4 计算机网络的分类
两个系统中实体间的通信是一个很复杂的过程,为了降低协议设计和调试过程的复杂性,也为了便于对网络进行研究、实现和维护,促进标准化工作,通常对计算机网络的体系结构以分层的方式进行建模。
计算机网络的体系结构通常都具有可分层的特性,它将复杂的大系统分成若干较容易实现的层次。分层的基本原则如下:
网络体系结构是从功能上描述计算机网络结构。
计算机网络体系结构简称网络体系结构是分层结构。
每层遵循某个/些网络协议以完成本层功能。
计算机网络体系结构是计算机网络的各层及其协议的集合
第n层在向n+1层提供服务时,此服务不仅包含第n层本身的功能,还包含由下层服务提供的功能。
仅仅在相邻层间有接口,且所提供服务的具体实现细节对上一层完全屏蔽。
体系结构是抽象的,而实现是指能运行的一些软件和硬件。 1.2.2 计算机网络协议、接口、服务的概念
注意,协议和服务在概念上是不一样的。首先,只有本层协议的实现オ能保证向上层提供服务。本层的服务用户只能看见服务而无法看见下面的协议,即下面的协议对上层的服务用户是透明的。其次,协议是“水平的”,即协议是控制对等实体之间通信的规则。但服务是“垂直的”,即服务是由下层通过层间接口向上层提供的。另外,并非在一层内完成的全部功能都称为服务,只有那些能够被高一层实体“看得见”的功能才称为服务。
协议,就是规则的集合。在网络中要做到有条不紊地交换数据,就必须遵循一些事先约定好的规则。这些规则明确规定了所交换的数据的格式及有关的同步问题。这些为进行网络中的数据交换而建立的规则、标准或约定称为网络协议( Network Protocol),它是控制两个(或多个)对等实体进行通信的规则的集合,是水平的。不对等实体之间是没有协议的,比如用 TCP/IP协议栈通信的两个结点,结点A的传输层和结点B的传输层之间存在协议,但结点A的传输层和结点B的网络层之间不存在协议。网络协议也简称为协议。
协议由语法、语义和同步三部分组成。语法规定了传输数据的格式;语义规定了所要完成的功能,即需要发出何种控制信息、完成何种动作及做出何种应答;同步规定了执行各种操作的条件、时序关系等,即事件实现顺序的详细说明。一个完整的协议通常应具有线路管理(建立、释放连接)、差错控制、数据转换等功能。
接口是同一结点内相邻两层间交换信息的连接点,是一个系统内部的规定。每层只能为紧邻的层次之间定义接口,不能跨层定义接口。在典型的接口上,同一结点相邻两层的实体通过服务访问点( Service Access Point,SAP)进行交互。服务是通过SAP提供给上层使用的,第n层的SAP就是第n+1层可以访问第n层服务的地方。每个SAP都有一个能够标识它的地址。SAP是个抽象的概念,它实际上是一个逻辑接口(类似于邮政信箱),但和通常所说的两个设备之间的硬件接口是很不一样的。
3、服务服务是指下层为紧邻的上层提供的功能调用,它是垂直的。对等实体在协议的控制下,使得本层能为上一层提供服务,但要实现本层协议还需要使用下一层所提供的服务。
上层使用下层所提供的服务必须与下层交换一些指令,这些指令在OSI中被称为服务原语。
OSI将原语划分为4类:
●请求(Request):由服务用户发往服务提供者,请求它完成某项工作。
●指示(Indication):由服务提供者发往服务用户,指示发生了某些事件。
●响应(Response):由服务用户发往服务提供者,对前面发生的指示的响应。
●证实(/confirm/iation):由服务提供者发往服务用户,对前面发生的请求的证实。这4类原语用于不同的功能,如建立连接、传输数据和断开连接等。有应答服务包括全部4种原语无应答服务则只有请求和指示
举个例子来理解这四种原语
计算机网络提供的服务可按以下三种方式分类。
(1) 面向连接服务与无连接服务
在面向连接服务中,通信前双方必须先建立连接,分配相应的资源(如缓冲区),以保证通信能正常进行,传输结束后释放连接和所占用的资源。因此这种服务可以分为连接建立、数据传输和连接释放三个阶段。例如TCP就是一种面向连接服务的协议。
在无连接服务中,通信前双方不需要先建立连接,需要发送数据时可直接发送,把每个带有目的地址的包(报文分组)传送到线路上,由系统选定路线进行传输。这是一种不可靠的服务。这种服务常被描述为“尽最大努力交付”(Best- Effort-delivery),它并不保证通信的可靠性。例如IP、UDP就是一种无连接服务的协议。
2) 可靠服务和不可靠服务
可靠服务是指网络具有纠错、检错、应答机制,能保证数据正确、可靠地传送到目的地。
不可靠服务是指网络只是尽量正确、可靠地传送,而不能保证数据正确、可靠地传送到目的地,是一种尽力而为的服务
对于提供不可靠服务的网络,其网络的正确性、可靠性要由应用或用户来保障。例如,用户收到信息后要判断信息的正确性,如果不正确,那么用户要把出错信息报告给信息的发送者,以便发送者采取纠正措施。通过用户的这些措施,可以把不可靠的服务变成可靠的服务(如面试过程中问如何使用UDP实现可靠连接?)。
注意:在一层内完成的全部功能并非都称之为服务,只有那些能够被高一层实体“看得见的功能才能称为服务。
(3) 有应答服务和无应答服务
有应答服务是指接收方在收到数据后向发送方给出相应的应答,该应答由传输系统内部自动实现,而不由用户实现。所发送的应答既可以是肯定应答,也可以是否定应答,通常在接收到的数据有错误时发送否定应答。例如,文件传输服务就是一种有应答服务。
无应答服务是指接收方收到数据后不自动给出应答。若需要应答,则由高层实现。例如,对于WWW服务,客户端收到服务器发送的页面文件后不给出应答。
OSl参考模型与TCP/IP参考模型相同点 都分层基于独立的协议栈的概念可以实现异构网络互联 网络的五层协议体系结构模型
最后简单介绍使用通信协议栈进行通信的结点的数据传输过程。每个协议栈的最顶端都是个面向用户的接口,下面各层是为通信服务的协议。用户传输一个数据报时,通常给出用户能够理解的自然语言,然后通过应用层,将自然语言会转化为用于通信的通信数据。通信数据到达传输层,作为传输层的数据部分(传输层SDU),加上传输层的控制信息(传输层PCI),组成传输层的PDU,然后交到网络层,传输层的PDU下放到网络层后,就成为网络层的SDU,然后加上网络层的PCI,又组成了网络层的PDU,下放到数据链路层,就这样层层下放,层层包裹,最后形成的数据报通过通信线路传输,到达接收方结点协议栈,接收方再逆向地逐层把“包裹”拆开,然后把收到的数据提交给用户,如图1.14所示
传统电信网的主要用途是电话通信,并且普通电话机不是智能的,因此电信公司必须花费巨大的代价把电信网设计得非常好,以保证用户的通信质量。数据的传送显然必须非常可靠。当初在设计 ARPANET时,很重要的讨论内容之一是:“谁应当负责数据传输的可靠性?”一种意见是主张应当像电信网那样,由通信网络负责数据传输的可靠性(因为电信网的发展历史及其技术水平已经证明人们可以将网络设计得相当可靠);另一种意见则坚决主张由用户的主机负责数据传输的可靠性,理由是这样可使计算机网络便宜、灵活。计算机网络的先驱认为,计算机网络和电信网的一个重大区别是终端设备的性能差别很大于是,他们采用了“端到端的可靠传输”策略,即在传输层使用面向连接的TCP协议,这样既能使网络部分价格便宜且灵活可靠,又能保证端到端的可靠传输。 第2章 物理层 【复习提示】
物理层考虑的是怎样才能在连接各台计算机的传输媒体上传输数据的比特流,而不是连接计算机的具体物理设备或具体传输媒体。本章概念较多,易出选择题,且涉及一些通信原理,读者不太明白的地方可以参考一些相关书籍,通信部分的内容也并非考研重点。复习时应抓住重点,如奈奎斯特定理和香农定理的应用、编码与调制技术、数据交换方式,以及电路交换、报文交换与分组交换技术等。
数据是指传送信息的实体。信号是指数据的电气或电磁表现,是数据在传输过程中的存在形式。数据和信号都可用“模拟的”或“数字的”来修饰:①连续变化的数据(或信号)称为模拟数据(或模拟信号);②取值仅允许为有限的几个离散数值的数据(或信号)称为数字数据(或数字信号)。
数据传输方式可分为串行传输和并行传输。串行传输是指一个一个的比特按照时间顺序传输出于经济上的考虑,远距离通信通常采用串行传输),并行传输是指多个比特通过多条通信信道同时传输。
码元是指用一个固定时长的信号波形(数字脉冲)表示一位k进制数字,代表不同离散数值的基本波形,是数字通信中数字信号的计量单位,这个时长内的信号称为k进制码元,而该时长称为码元宽度。1码元可以携带多个比特的信息量。例如,在使用二进制编码时,只有两种不同的码元:一种代表0状态,另一种代表1状态。
2.信源、信道与信宿
数据通信是指数字计算机或其他数字终端之间的通信。一个数据通信系统主要划分为信源、信道和信宿三部分信源是产生和发送数据的源头。信宿是接收数据的终点,它们通常都是计算机或其他数字终端装置。发送端信源发出的信息需要通过变换器转换成适合于在信道上传输的信号,而通过信道传输到接收端的信号先由反变换器转换成原始信息,再发送给信宿。信道与电路并不等同,信道是信号的传输媒介。一个信道可视为一条线路的逻辑部件,一般用来表示向某个方向传送信息的介质,因此一条通信线路往往包含一条发送信道和一条接收信道。噪声源是信道上的噪声(即对信号的干扰)及分散在通信系统其他各处的噪声的集中表示。图2.1所示为一个单向通信系统的模型。实际的通信系统大多为双向的,即往往包含一条发送信道和一条接收信道,信道可以进行双向通信。 3、速率、波特与带宽
数据无论是数字的还是模拟的,为了传输的目的都必须转变成信号。把数据变换为模拟信号的过程称为调制,把数据变换为数字信号的过程称为编码。
信号是数据的具体表示形式,它和数据有一定的关系,但又和数据不同。数字数据可以通过数字发送器转换为数字信号传输,也可以通过调制器转换成模拟信号传输;同样,模拟数据可以通过PCM编码器转换成数字信号传输,也可以通过放大器调制器转换成模拟信号传输。这样,就形成了下列4种编码方式。
数字数据编码用于基带传输中,即在基本不改变数字数据信号频率的情况下,直接传输数字信号。具体用什么样的数字信号表示0及用什么样的数字信号表示1就是所谓的编码。编码的规则有多种,只要能有效地把1和0区分开即可,常用的编码方式有以下几种,如图2.2所示。
在归零编码(RZ)中用高电平代表1、低电平代表0(或者相反),每个时钟周期的中间均跳变到低电平(归零),接收方根据该跳变调整本方的时钟基准,这就为传输双方提供了自同步机制。由于归零需要占用一部分带宽,因此传输效率受到了一定的影响非归零编码
非归零编码(NRZ)与RZ编码的区别是不用归零,一个周期可以全部用来传输数据。但NRZ编码无法传递时钟信号,双方难以同步,因此若想传输高速同步数据,则需要都带有时钟线。反向非归零编码
反向非归零码( NRZI)与NRZ编码的区别是用信号的翻转代表0、信号保持不变代表1。翻转的信号本身可以作为一种通知机制。这种编码方式集成了前两种编码的优点,既能传输时钟信号,又能尽量不损失系统带宽。USB2.0通信的编码方式就是NRI编码。曼彻斯特编码
曼彻斯特编码( Manchester Encoding)将一个码元分成两个相等的间隔,前一个间隔为高电平而后一个间隔为低电平表示码元1;码元0的表示方法则正好相反。当然,也可采用相反的规定。该编码的特点是,在每个码元的中间出现电平跳变,位中间的跳变既作为时钟信号(可用于同步),又作为数据信号,但它所占的频带宽度是原始基带宽度的两倍。
注意:以太网使用的编码方式就是曼彻斯特编码差分曼初斯特编码
差分曼縐斯特编码常用于局域网传输,其规则是:若码元为1,则前半个码元的电平与上一码元的后半个码元的电平相同;若码元为0,则情形相反。该编码的特点是,在每个码元的中间都有一次电平的跳转,可以实现自同步,且抗干扰性较好。4B/5B编码
将欲发送数据流的每4位作为一组,然后按照4B/5B编码规则将其转换成相应的5位码。5位码共32种组合,但只采用其中的16种对应16种不同的4位码,其他的16种作为控制码(帧的开始和结束、线路的状态信息等)或保留。
2、数字数据调制为模拟信号
数字数据调制技术在发送端将数字信号转换为模拟信号,而在接收端将模拟信号还原为数字信号,分别对应于调制解调器的调制和解调过程。基本的调制方法有如下几种:
这种编码方式最典型的例子是常用于对音频信号进行编码的脉码调制(PCM)。它主要包括三个步骤,即采样、量化和编码。先来介绍采样定理:在通信领域,带宽是指信号最高频率与最低频率之差,单位为Hz。因此,将模拟信号转换成数字信号时,假设原始信号中的最大频率为f,那么采样频率f必须大于等于最大频率f的两倍,才能保证采样后的数字信号完整保留原始模拟信号的信息(只需记住结论)。另外,采样定理又称奈奎斯特定理。 采样是指对模拟信号进行周期性扫描,把时间上连续的信号变成时间上离散的信号。根据采样定理,当采样的频率大于等于模拟数据的频带带宽(最高变化频率)的两倍时,所得的离散信号可以无失真地代表被采样的模拟数据。量化是把采样取得的电平幅值按照一定的分级标度转化为对应的数字值并取整数,这样就把连续的电平幅值转换为了离散的数字量。采样和量化的实质就是分割和转换。编码是把量化的结果转换为与之对应的二进制编码。
4.模拟数据调制为模拟信号
为了实现传输的有效性,可能需要较高的频率。这种调制方式还可以使用频分复用(FDM)技术,充分利用带宽资源。电话机和本地局交换机采用模拟信号传输模拟数据的编码方式;模拟的声音数据是加载到模拟的载波信号中传输的。
在进行数据传输前,两个结点之间必须先建立一条专用(双方独占)的物理通信路径(由通信双方之间的交换设备和链路逐段连接而成),该路径可能经过许多中间结点。这一路径在整个数据传输期间一直被独占,直到通信结束后才被释放。因此,电路交换技术分为三个阶段:连接建立、数据传输和连接释放
从通信资源的分配角度来看,“交换”就是按照某种方式动态地分配传输线路的资源。电路交换的关键点是,在数据传输的过程中,用户始终占用端到端的固定传输带宽。
电路交换技术的优点如下:
通信时延小。由于通信线路为通信双方用户专用,数据直达,因此传输数据的时延非常小。当传输的数据量较大时,这一优点非常明显有序传输。双方通信时按发送顺序传送数据,不存在失序问题。没有冲突。不同的通信双方拥有不同的信道,不会出现争用物理信道的问题适用范围广。电路交换既适用于传输模拟信号,又适用于传输数字信号。实时性强。通信双方之间的物理通路一旦建立,双方就可以随时通信。控制简单。电路交换的交换设备(交换机等)及控制均较简单。
电路交换技术的缺点如下:
建立连接时间长。电路交换的平均连接建立时间对计算机通信来说太长。线路独占,使用效率低。电路交换连接建立后,物理通路被通信双方独占,即使通信线路空闲,也不能供其他用户使用,因而信道利用率低。灵活性差。只要在通信双方建立的通路中的任何一点出了故障,就必须重新拨号建立新的连接,这对十分紧急和重要的通信是很不利的。难以规格化。电路交换时,数据直达,不同类型、不同规格、不同速率的终端很难相互进行通信,也难以在通信过程中进行差错控制。 2、报文交换数据交换的单位是报文,报文携带有目标地址、源地址等信息。报文交换在交换结点采用的是存储转发的传输方式。
报文交换技术的优点如下:
无须建立连接。报文交换不需要为通信双方预先建立一条专用的通信线路,不存在建立连接时延,用户可以随时发送报文动态分配线路。当发送方把报文交给交换设备时,交换设备先存储整个报文,然后选择条合适的空闲线路,将报文发送出去。提高线路可靠性。如果某条传输路径发生故障,那么可重新选择另一条路径传输数据,因此提高了传输的可靠性。提高线路利用率。通信双方不是固定占有一条通信线路,而是在不同的时间一段一段地部分占有这条物理通道,因而大大提高了通信线路的利用率提供多目标服务。一个报文可以同时发送给多个目的地址,这在电路交换中是很难实现的。报文交换技术的缺点如下:
由于数据进入交换结点后要经历存储、转发这一过程,因此会引起转发时延(包括接收报文、检验正确性、排队、发送时间等)报文交换对报文的大小没有限制,这就要求网络结点需要有较大的缓存空间。注意:报文交换主要使用在早期的电报通信网中,现在较少使用,通常被较先进的分组交换方式所取代。 3、分组交换
同报文交换一样,分组交换也采用存储转发方式,但解决了报文交换中大报文传输的问题。分组交换限制了每次传送的数据块大小的上限,把大的数据块划分为合理的小数据块,再加上些必要的控制信息(如源地址、目的地址和编号信息等),构成分组( Packet)。网络结点根据控制信息把分组送到下一结点,下一结点接收到分组后,暂时保存并排队等待传输,然后根据分组控制信息选择它的下一个结点,直到到达目的结点。
分组交换的优点如下:
无建立时延。不需要为通信双方预先建立一条专用的通信线路,不存在连接建立时延,用户可随时发送分组。线路利用率高。通信双方不是固定占有一条通信线路,而是在不同的时间一段一段地部分占有这条物理通路,因而大大提高了通信线路的利用率。简化了存储管理(相对于报文交换)。因为分组的长度固定,相应的缓冲区的大小也固定,在交换结点中存储器的管理通常被简化为对缓冲区的管理,相对比较容易加速传輸。分组是逐个传输的,可以使后一个分组的存储操作与前一个分组的转发操作并行,这种流水线方式减少了报文的传输时间。此外,传输一个分组所需的缓冲区比传输次报文所需的缓冲区小得多,这样因缓冲区不足而等待发送的概率及时间也必然少得多。减少了出错概率和重发数据量。因为分组较短,其出错概率必然减小,所以每次重发的数据量也就大大减少,这样不仅提高了可靠性,也减少了传输时延。分组交换的缺点如下:
存在传输时延。尽管分组交换比报文交换的传输时延少,但相对于电路交换仍存在存储转发时延,而且其结点交换机必须具有更强的处理能力。需要传输额外的信息量。每个小数据块都要加上源地址、目的地址和分组编号等信息,从而构成分组,因此使得传送的信息量增大了5%~10%,一定程度上降低了通信效率,增加了处理的时间,使控制复杂,时延增加。当分组交换采用数据报服务时,可能会出现失序、丢失或重复分组,分组到达目的结点时,要对分组按编号进行排序等工作,因此很麻烦。若采用虚电路服务,虽无失序问题,但有呼叫建立、数据传输和虚电路释放三个过程。 三种数据交换方式的对比
图2.4给出了三种数据交换方式的比较。要传送的数据量很大且其传送时间远大于呼叫时间时,采用电路交换较为合适。端到端的通路由多段链路组成时,采用分组交换传送数据较为合适。从提高整个网络的信道利用率上看,报文交换和分组交换优于电路交换,其中分组交换比报文交换的时延小,尤其适合于计算机之间的突发式数据通信。
2.1.5 数据报与虚电路
分组交换根据其通信子网向端点系统提供的服务,还可进一步分为面向连接的虚电路方式和无连接的数据报方式。这两种服务方式都由网络层提供。要注意数据报方式和虚电路方式是分组交换的两种方式。
1.数据报作为通信子网用户的端系统发送一个报文时,在端系统中实现的高层协议先把报文拆成若干带有序号的数据单元,并在网络层加上地址等控制信息后形成数据报分组(即网络层PDU)。中间结点存储分组很短一段时间,找到最佳的路由后,尽快转发每个分组。不同的分组可以走不同的路径,也可以按不同的顺序到达目的结点。
我们用图2.5的例子来说明数据报服务的原理。假定主机A要向主机B发送分组。
主机A先将分组逐个发往与它直接相连的交换结点A,交换结点A缓存收到的分组。然后査找自己的转发表。由于不同时刻的网络状态不同,因此转发表的内容可能不完全相同,所以有的分组转发给交换结点C,有的分组转发给交换结点D.网络中的其他结点收到分组后,类似地转发分组,直到分组最终到达主机B.当分组正在某一链路上供送时:分细并不占用网悠的其他部分:因为采用存储转发技术,资源是共享的,所以主机A在发送分组时,主机B也可同时向其他主机发送分组。
通过上面的例子,我们可以总结出数据报服务具有如下特点:
发送分组前不需要建立连接。发送方可随时发送分组,网络中的结点可随时接收分组。网络尽最大努力交付,传输不保证可靠性,所以可能丢失;为每个分组独立地选择路由,转发的路径可能不同,因而分组不一定按序到达目的结点。发送的分组中要包括发送端和接收端的完整地址,以便可以独立传输。分组在交换结点存储转发时,需要排队等候处理,这会带来一定的时延。通过交换结点的通信量较大或网络发生拥塞时,这种时延会大大增加,交换结点还可根据情况丢弃部分分组。网络具有冗余路径,当某一交换结点或一段链路出现故障时,可相应地更新转发表,寻找另一条路径转发分组,对故障的适应能力强。存储转发的延时一般较小,提高了网络的吞吐量收发双方不独占某一链路,资源利用率较高。 2.虚电路 虚电路方式试图将数据报方式与电路交换方式结合起来,充分发挥两种方法的优点,以达到最佳的数据交换效果。在分组发送之前,要求在发送方和接收方建立一条逻辑上相连的虚电路,并且连接一旦建立,就固定了虚电路所对应的物理路径。与电路交换类似,整个通信过程分为三个阶段:虚电路建立、数据传输与虚电路释放。在虚电路方式中,端系统每次建立虚电路时,选择一个未用过的虚电路号分配给该虚电路,以区别于本系统中的其他虚电路。在传送数据时,每个数据分组不仅要有分组号、校验和等控制信息,还要有它要通过的虚电路号,以区别于其他虚电路上的分组。在虚电路网络中的每个结点上都维持一张虚电路表,表中的每项记录了一个打开的虚电路的信息,包括在接收链路和发送链路上的虚电路号、前一结点和下一结点的标识。数据的传输是双向进行的,上述信息是在虚电路的建立过程中确定的。虚电路方式的工作原理如图2.6所示
为进行数据传输,主机A与主机B之间先建立一条逻辑通路,主机A发出一个特殊的“呼叫请求”分组,该分组通过中间结点送往主机B,若主机B同意连接,则发送“呼叫应答”分组予以确认。虚电路建立后,主机A就可向主机B发送数据分组。当然,主机B也可在该虚电路上向主机A发送数据。传送结束后主机A通过发送“释放请求”分组来拆除虚电路,逐段断开整个连接。
通过上面的例子,可以总结出虚电路服务具有如下特点
虚电路通信链路的建立和拆除需要时间开销,对交互式应用和小量的短分组情况显得很浪费,但对长时间、频繁的数据交换效率较高。虚电路的路由选择体现在连接建立阶段,连接建立后,就确定了传输路径。虚电路提供了可靠的通信功能,能保证每个分组正确且有序到达。此外,还可以对两个数据端点的流量进行控制,当接收方来不及接收数据时,可以通知发送方暂缓发送。虚电路有一个致命的弱点,即当网络中的某个结点或某条链路出现故障而彻底失效时所有经过该结点或该链路的虚电路将遭到破坏。分组首部并不包含目的地址,而包含虚电路标识符,相对数据报方式开销小。虚电路之所以是“虚”的,是因为这条电路不是专用的,每个结点到其他结点之间的链路可能同时有若干虚电路通过,也可能同时与多个结点之间建立虚电路。每条虚电路支持特定的两个端系统之间的数据传输,两个端系统之间也可以有多条虚电路为不同的进程服务,这些虚电路的实际路由可能相同也可能不同。
注意,图2.6所示的数据传输过程是有确认的传输(由高层实现),主机B收到分组后要发回相应分组的确认。网络中的传输是否有确认与网络层提供的两种服务没有任何关系。 数据报服务和虚电路服务的比较见表2.1 2.1.6 本节习题精选 2.1.7 答案与解析 2.2 传输介质 2.2.1 双绞线、同轴电缆、光纤与无线传输介质
在这里明白了:原来老家电视锅的线就是同轴电缆
2.2.2 物理层接口的特性 2.2.3 本节习题精选 2.2.4 答案与解析 2.3 物理层设备 2.3.1 中继器
不超过5个网段,最多通过4个中继器;
在计算机网络中,同步( Synchronous)的意思很广泛,没有统一的定义。例如,协议的三个要素之一就是“同步”。在网络编程中常提到的“同步”则主要指某函数的执行方式,即函数调用者需等待函数执行完后オ能进入下一步。异步( Asynchronous)可简单地理解为“非同步”。在数据通信中,同步通信与异步通信区别较大。同步通信的通信双方必须先建立同步,即双方的时钟要调整到同一个频率。收发双方不停地发送和接收连续的同步比特流。主要有两种同步方式:一种是全网同步,即用一个非常精确的主时钟对全网所有结点上的时钟进行同步;另一种是准同步,即各结点的时钟之间允许有微小的误差,然后采用其他措施实现同步传输。同步通信数据率较高,但实现的代价也较高。异步通信在发送字符时,所发送的字符之间的时间间隔可以是任意的,但接收端必须时刻做好接收的准备。发送端可以在任意时刻开始发送字符,因此必须在每个字符开始和结束的地方加上标志,即开始位和停止位,以便使接收端能够正确地将每个字符接收下来。异步通信也可以帧作为发送的单位。这时,帧的首部和尾部必须设有一些特殊的比特组合,使得接收端能够找出帧的开始(即帧定界)。异步通信的通信设备简单、便宜,但传输效率较低(因为标志的开销所占比例较大)。图2.13给出了以字符、帧为单位的异步通信示意图。
第3章数据链路层 【复习提示】
本章是历年考査的重点。要求在了解链路层基本概念和功能的基础上,重点掌握滑动窗口机制、三种可靠传输协议、各种MAC协议、HDLC协议和PPP协议,特别是CSMA/CD协议和以太网帧格式,以及局域网的争用期和最小帧长的概念、二进制指数退避算法。此外,中继器、网卡、集线器、网桥和局域网交换机的原理及区别也要重点掌握。
3.1 数据链路层的功能 3.1.1 为网络层提供服务
左边是放在了传输层,右边放在了链路层以前在链路层就在做,后来环境就变好了,只需要放在传输层就可以
3.4.3 多帧滑动窗口与后退N帧协议(GBN)
F:FrequencyT:TimeW:WaveC:Code
IEEE802.11是无线局域网通用的标准,它是由IEEE所定义的无线网络通信的标准。
本章是历年考查的重中之重,尤其是结合第3、5、6章出综合题的概率很大。其中IPv4以及路由的相关知识点是核心,历年真题都有涉及,因此必须牢固掌握其原理,也要多做题,以便灵活应用。本章的其他知识点,如IP组播、移动IP、IPv6也要有所了解。
视频演示
4.3.2 IPv4地址与NAT IP
选 R2
4.3.4 ARP、DHCP与ICMP ARP协议
传输层是整个网络体系结构中的关键层次。要求掌握传输层在计算机网络中的地位、功能、工作方式及原理等,掌握UDP及TCP(如首部格式、可靠传输、流量控制、拥塞控制、连接管理等)。其中,TCP报文分析、流量控制与拥塞控制机制,出选择题、综合题的概率均较大,因此要将其工作原理透仞掌握,以便能在具体的题目中灵活运用。
5.1 传输层提供的服务 5.1.1 传输层的功能
本章内容既可以以选择题的形式考査,也可以结合其他章节的内容出综合题。所以牢固掌握本章的几个典型应用层协议是关键。我们生活中的很多网络应用都是建立在这些协议的基础上的,因此在学习时要注意联系实际,提高学习的兴趣,才会获得更好的效果。
6.1 网络应用模型 6.1.1 客户/服务器模型
在客户/服务器( Client/Server,C/S)模型中,有一个总是打开的主机称为服务器,它服务于许多来自其他称为客户机的主机请求。其工作流程如下:
客户程序必须知道服务器程序的地址,客户机上一般不需要特殊的硬件和复杂的操作系统。而服务器上运行的软件则是专门用来提供某种服务的程序,可同时处理多个远程或本地客户的要求。系统启动后即自动调用并一直不断地运行着,被动地等待并接收来自各地客户的请求。因此,服务器程序不需要知道客户程序的地址。客户/服务器模型最主要的特征是:客户是服务请求方,服务器是服务提供方。如Web应用程序,其中总是打开的Web服务器服务于运行在客户机上的浏览器的请求。当Web服务器接收到来自客户机对某对象的请求时,它向该客户机发送所请求的对象以做出响应。常见的使用客户/服务器模型的应用包括Web、文件传输协议(FTP)、远程登录和电子邮件等。 6.1.2 P2P模型(Peer to Peer)
在C/S模型中(见图6.1),服务器性能的好坏决定了整个系统的性能,当大量用户请求服务时,服务器就必然成为系统的瓶颈。P2P模型(见图6.2)的思想是整个网络中的传输内容不再被保存在中心服务器上,每个结点都同时具有下载、上传的功能,其权利和义务都是大体对等的。
在P2P模型中,各计算机没有固定的客户和服务器划分。相反,任意一对计算机称为对等方(Peer), 直接相互通信。P2P 模型从本质上来看仍然使用客户/服务器方式,每个结点既作为客户访问其他结点的资源,也作为服务器提供资源给其他结点访问。当前比较流行的P2P应用有PPlive、Bittorrent 和电驴等。还流行吗?并不觉得好用)。
与C/S模型相比,P2P 模型的优点主要体现如下: 减轻了服务器的计算压力,消除了对某个服务器的完全依赖,可以将任务分配到各个结点上,因此大大提高了系统效率和资源利用率(例如,播放流媒体时对服务器的压力过大,而通过P2P模型,可以利用大量的客户机来提供服务)。多个客户机之间可以直接共享文档。可扩展性好,传统服务器有响应和带宽的限制,因此只能接受一定数量的请求。网络健壮性强,单个结点的失效不会影响其他部分的结点。
P2P模型也有缺点。在获取服务的同时,还要给其他结点提供服务,因此会占用较多的内存,影响整机速度。例如,经常进行P2P下载还会对硬盘造成较大的损伤。据某互联网调研机构统计,当前P2P程序已占互联网50%~90%的流量,使网络变得非常拥塞,因此各大ISP (互联网服务2提供商,如电信、网通等)通常都对P2P应用持反对态度。 6.1.3 本节习题精选 6.1.4 答案与解析 6.2 域名系统(DNS)
域名系统( Domain Name System,DNS)是因特网使用的命名系统,用来把便于人们记忆的具有特定含义的主机名(如www.baidu.com)转换为便于机器处理的IP地址。相对于IP地址,人们更喜欢使用具有特定含义的字符串来标识因特网上的计算机。DNS系统采用客户/服务器模型,其协议运行在UDP之上,使用53号端口。从概念上可将DNS分为3部分:层次域名空间、域名服务器和解析器 6.2.1 层次域名空间
关于域名中的标号有以下几点需要注意:
顶级域名(Top Level Domain, TLD)分为如下三大类: 国家顶级域名(nTLD)。国家和某些地区的域名,如“.cn”表示中国,“.us”表示美国,".uk”表示英国。通用顶级域名(gTLD)。 常见的有“.com” (公司)、“.net" (网络服务机构)、“.org”(非营利性组织)和“.gov" (国家或政府部门)等。基础结构域名。这种顶级域名只有一个,即arpa,用于反向域名解析,因此又称反向域名。反向域名解析与通常的正向域名解析相反,提供IP地址到域名的对应,反向域名格式如:X.X.X.in-addr.arpa。很多网络服务提供商要求访问的IP地址具有反向域名解析的结果,否则不提供服务。
国家顶级域名下注册的二级域名均由该国家自行确定。图6.4展示了域名空间的树状结构。
6.2.2 域名服务器
因特网的域名系统被设计成一个联机分布式的数据库系统,并采用客户/服务器模型。域名到IP地址的解析是由运行在域名服务器上的程序完成的,一个服务器所负责管辖的(或有权限的)范围称为区(不以“域”为单位),各单位根据具体情况来划分自己管辖范围的区,但在一个区中的所有结点必须是能够连通的,每个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。每个域名服务器不但能够进行一些域名到IP地址的解析,而且还必须具有连向其他域名服务器的信息。当自己不能进行域名到IP地址的转换时,能够知道到什么地方去找其他域名服务器。DNS使用了大量的域名服务器,它们以层次方式组织。没有一台域名服务器具有因特网上所有主机的映射,相反,该映射分布在所有的DNS上。采用分布式设计的DNS,是一个在因特网上实现分布式数据库的精彩范例。主要有4种类型的域名服务器。 (1)根域名服务器
根域名服务器是最高层次的域名服务器,所有的根域名服务器都知道所有的顶级域名服务器的IP地址。根域名服务器也是最重要的域名服务器,不管是哪个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先要求助于根域名服务器。因特网上有13个根域名服务器,尽管我们将这13个根域名服务器中的每个都视为单个服务器,但每个“服务器”实际上是冗余服务器的集群,以提供安全性和可靠性。需要注意的是,根域名服务器用来管辖顶级域(如.com), 通常它并不直接把待查询的域名直接转换成IP地址,而是告诉本地域名服务器下一步应当找哪个顶级域名服务器进行查询。 (2)顶级域名服务器
顶级域名服务器负责管理在该顶级域名服务器注册的所有二级域名。收到DNS查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当查找的域名服务器的IP地址)。 (3)授权域名服务器(权限域名服务器)
每台主机都必须在授权域名服务器处登记。为了更加可靠地工作,一台主机最好至少有两个授权域名服务器。实际上,许多域名服务器都同时充当本地域名服务器和授权域名服务器。授权域名服务器总能将其管辖的主机名转换为该主机的IP地址。 (4)本地域名服务器
本地域名服务器对域名系统非常重要。每个因特网服务提供者(ISP), 或一所大学,甚至一所大学中的各个系,都可以拥有一个本地域名服务器。当一台主机发出DNS查询请求时,这个查询请求报文就发送给该主机的本地域名服务器。事实上,我们在Windows系统中配置“本地连接”时,就需要填写DNS地址,这个地址就是本地DNS (域名服务器)的地址。
6.2.3 域名解析过程
域名解析是指把域名映射成为IP地址或把IP地址映射成域名的过程。前者称为正向解析,后者称为反向解析。当客户端需要域名解析时,通过本机的DNS客户端构造一个DNS请求报文,以UDP数据报方式发往本地域名服务器。域名解析有两种方式:递归查询和递归与迭代相结合的查询。
(1)主机向本地域名服务器的查询采用的是递归查询
如果本地主机所询问的本地域名服务器不知道被查询域名的IP 地址,那么本地域名服务器就以DNS客户的身份,向根域名服务器继续发出查询请求报文(即替该主机继续查询),而不是让该主机自己进行下一步的查询。在这种情况下,本地域名服务器只需向根域名服务器查询一次,后面的几次查询都是递归地在其他几个域名服务器之间进行的[见图6.6(a)中的步骤③~⑥]。在步骤⑦中,本地域名服务器从根域名服务器得到了所需的IP地址,最后在步骤⑧中,本地域名服务器把查询结果告诉主机m.xyz.com、(2)本地域名服务器向根域名服务器的查询采用的是迭代查询
当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器:“你下一步应当向哪个顶级域名服务器进行查询”。
然后让本地域名服务器向这个顶级域名服务器进行后续的查询,如图6.6(b)所示。
同样,顶级域名服务器收到查询报文后,要么给出所要查询的IP地址,要么告诉本地域名服务器下一步应向哪个权限域名服务器查询。
最后,知道所要解析的域名的IP地址后,把这个结果返回给发起查询的主机。
下面举例说明域名解析的过程:
假定某客户机想获知域名为y.abc.com主机的IP地址,域名解析的过程(共使用8个UDP报文)如下:
①客户机向其本地域名服务器发出DNS请求报文。(递归查询)
②本地域名服务器收到请求后,查询本地缓存,若没有该记录,则以DNS客户的身份向根域名服务器发出解析请求。(迭代查询)
③根域名服务器收到请求后,判断该域名属于.com域,将对应的顶级域名服务器dns.com的IP地址返回给本地域名服务器。
④本地域名服务器向顶级域名服务器dns.com发出解析请求报文。(迭代查询)
⑤顶级域名服务器dns.com收到请求后,判断该域名属于abc.com域,因此将对应的授权域名服务器dns.abc.com的IP地址返回给本地域名服务器。
⑥本地域名服务器向授权域名服务器dns.abc.com发起解析请求报文。(迭代查询)
⑦授权域名服务器dns.abc.com收到请求后,将查询结果返回给本地域名服务器。
⑧本地域名服务器将查询结果保存到本地缓存,同时返回给客户机。
6.2.4 本节习题精选 6.2.5 答案与解析为了提高DNS的查询效率,并减少因特网上的DNS查询报文数量,在域名服务器中广泛地使用了高速缓存。当一个DNS服务器接收到DNS查询结果时,它能将该DNS信息缓存在高速缓存中。这样,当另一个相同的域名查询到达该DNS服务器时,该服务器就能够直接提供所要求的IP地址,而不需要再去向其他DNS服务器询问。因为主机名和IP地址之间的映射不是永久的,所以DNS服务器将在一段时间后丢弃高速缓存中的信息。
1.如果一台主机通过两块网卡连接到两个网络(如服务器双线接入),那么就具有两个IP地址,每个网卡对应一个MAC地址,显然这两个P地址可以映射到同一个域名上。此外,多台主机也可以映射到同一个域名上(如负载均衡),一台主机也可以映射到多个域名上(如虚拟主机)。因此,IP地址、MAC地址、主机和域名均不具有一一对应的关系。 正常情况下,客户机只需把域名解析请求发往本地域名服务器,其他事情都由本地域名服务器完成,并把最后结果返回给客户机。所以主机只需要知道本地域名服务器的IP 11.FTP用来传输文件,SMTP用来发送电子邮件,HTTP用来传输网页文件,都对可靠性的要求较高,因此都用传输层有连接的TCP服务。无连接的UDP服务效率更高、开销小,DNS在传输层采用无连接的UDP服务 6.3 文件传输协议(FTP) 6.3.1 FTP的工作原理
**文件传输协议( File Transfer Protocol, FTP)**是因特网上使用得最广泛的文件传输协议。FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。它屏蔽了各计算机系统的细节,因而适合于在异构网络中的任意计算机之间传送文件。
FTP采用客户/服务器(C/S)的工作方式,它使用TCP可靠的传输服务。一个FTP服务器进程可同时为多个客户进程提供服务。依照FTP协议提供服务,进行文件传送的计算机就是FTP服务器。连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端。FTP的服务器进程由两大部分组成:
一个主进程,负责接收新的请求;
若干从属进程,负责处理单个请求。
其工作步骤如下:①打开熟知端口21 (控制端口),使客户进程能够连接上。②等待客户进程发连接请求。③启动从属进程来处理客户进程发来的请求。主进程与从属进程并发执行,从属进程对客户进程的请求处理完毕后即终止。④回到等待状态,继续接收其他客户进程的请求。 6.3.2 控制连接与数据连接
服务器监听21号端口,等待客户连接,建立在这个端口上的连接称为控制连接,控制连接用来传输控制信息(如连接请求、传送请求等),并且控制信息都以7位ASCⅡ格式传送。
FTP客户发出的传送请求,通过控制连接发送给服务器端的控制进程,但控制连接并不用来传送文件。
在传输文件时还可以使用控制连接(如客户在传输中途发一个中止传输的命令),因此控制连接在整个会话期间一直保持打开状态。数据连接
服务器端的控制进程在接收到FIP客户发来的文件传输请求后,就创建“数据传送进程”和“数据连接”。
数据连接用来连接客户端和服务器端的数据传送进程,数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。
因为FTP使用了一个分离的控制连接,所以也称FTP的控制信息是带外( Out-of-band)传送的。
使用FTP时,若要修改服务器上的文件,则需要先将此文件传送到本地主机,然后再将修改后的文件副本传送到原服务器。
网络文件系统(NFS)允许进程打开一个远程文件,并在该文件的某个特定位置开始读写数据。这样,NFS可使用户复制一个大文件中的一个很小的片段,而不需要复制整个大文件 6.3.3 本节习题精选 6.3.4 答案与解析 6.4 电子邮件 6.4.1 电子邮件系统的组成结构