白话计算机网络-计算机网络考研辅导-课件全套 第1-7章 计算机网络概述-动手实验_第1页
白话计算机网络-计算机网络考研辅导-课件全套 第1-7章 计算机网络概述-动手实验_第2页
白话计算机网络-计算机网络考研辅导-课件全套 第1-7章 计算机网络概述-动手实验_第3页
白话计算机网络-计算机网络考研辅导-课件全套 第1-7章 计算机网络概述-动手实验_第4页
白话计算机网络-计算机网络考研辅导-课件全套 第1-7章 计算机网络概述-动手实验_第5页
已阅读5页,还剩354页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机网络概述第一章白话计算机网络——计算机网络考研辅导01什么是计算机网络计算机网络什么是计算机网络?计算机网络就是把计算机互联起来形成的网络。什么是互联?用一根麻绳把两台计算机捆在一起,这不叫计算机的互联,我们所说的互联,是指能够将这台计算机里面的数据传到另外一台计算机里面去,能实现计算机之间的数据传输。计算机之间的数据传输,也可以称为资源共享。什么是计算机网络分组什么是计算机网络什么是分组?分组(Packet)是带有地址信息的信息小片,分组容量的典型值是1500字节,即1500B。分组就是计算机打出的包裹,就像日常生活中的包裹一样,由两部分构成:一是地址信息,二是要传输的东西,在这里就是一段二进制数据。也有人将分组称为数据包。什么是计算机网络图1-1是用Wireshark软件捕获的分组,Wireshark是一款免费的、优秀的用于抓取和分析数据包的工具软件,可用于分析各种网络故障。这款软件的使用,需要读者自学。路由器什么是计算机网络日常传包裹的关键是要找一个快递公司,由快递公司传包裹。在计算机网络中,有一种专用的设备,称为路由器,它只有一个功能,就是传输分组。路由器传输分组的工作原理称为分组交换技术,简称分组交换。交换、转发都是传输的意思。什么是计算机网络计算机网络的基本原理就是分组交换。我们可以先简单地将路由器理解为电子化的邮政局,如同日常生活一样,一个邮政局不能做什么,但遍布全国各地的邮政局是互相连通的,这就构成了一张邮政网,使得包裹能够传递。路由器也是这样,世界上有无数台路由器,它们互相连通,构成了一张庞大的路由器网络,正是这张路由器网络,使得分组能够被正确传输。这些路由器每小时不间断工作,从而使计算机网络能正常运转。02路由与交换路由与交换连通交换机(Switch)将计算机互联在一起,构成局域网。扩展路由器(Router)将局域网互联在一起,构成互联网。路由与交换在计算机的互联中,先讨论两台计算机是如何互联的。在计算机的背板上,有一个网络插口,通常简称网口。可以将一根通常称为网线的专用电缆的插头插入计算机的网口。网口和网线如图1-2所示。路由与交换可是,两台计算机可以使用一根网线连通,那三台、五台计算机怎么互相连通呢?显然,我们不可能在计算机背板上配置无限多的网口。怎么办?当前的技术是将多台计算机连接到一种称为“交换机”的专用设备上,交换机上有许多网口,如常见的24口。将网线的一头插入计算机的网口,另一头连接交换机,通过交换机将多台计算机互相连通。路由与交换计算机与交换机的连接图如图1-3所示。多台计算机互相连通后,就可以称为一个网络了,人们将用交换机连接多台计算机的网络称为局域网。扩展路由与交换当各企业都建立了自己的局域网时,人们就希望进一步扩展,将这些局域网互联在一起。这时,就需要用到路由器。通过路由器可将局域网互联在一起,构成互联网。路由与交换图1-4所示的是三个网络互联的拓扑。路由与交换显然,交换机与路由器的工作原理是计算机网络中的重要内容,通常称为路由与交换技术。路由与交换技术是计算机网络的第一个重要的组成部分。早期交换机与路由器的主要生产厂商只有思科(Cisco),目前国内华为等厂商也已能生产交换机与路由器等网络设备。要学习交换机与路由器的工作原理,就需要做实验,而这些设备价格都很昂贵,建设一个网络实验室需要花费巨额资金,培养网络工程师的成本非常高。路由与交换思科公司为使网络学习者无须花费高额学费就可以学习网络设备的工作原理,开发了一款模拟软件,称为PacketTracer,这款软件是免费的,人人都可以下载使用,但思科公司要求用户注册一个账号后才能使用。PacketTracer是一款优秀的模拟软件,在这里可以进行多种网络实验,实验体验同使用真实的思科网络设备一致。这款软件的使用,需要读者自学。03分组交换为什么计算机网络具有强大的生命力,引发了一个个浪潮?分组交换真正的原因只有一个——便宜。通过计算机网络传输数据比用电话、电报等方式便宜很多。还记得十年前怎么打长途电话吗?使用IP卡,就是用计算机网络传输语音。为什么这样呢?也是因为便宜。对老百姓来说,便宜是必需的,而计算机网络是目前最便宜的通信方式。分组交换为什么分组交换技术能使数据传输如此便宜?上文我们已经介绍了计算机网络的基本工作原理是分组交换技术,在此原理中,发送方将数据切分成分组,接收方接收分组,重新组装成数据,这些工作是由两端的计算机完成的,由于这部分工作由“端计算机”承担了,中间路由器的设计就可以非常简单,从而带来极低的数据传输成本,我们将这一原理称为“端到端的原理”。分组交换分组交换原理如图1-5所示,这张图非常重要,这里有许多非常重要的基本概念与原理。在图1-5中,用“主机”来表示计算机网络中的计算机。分组独立选择路径假设主机将电影《玩尽杀绝》的数据切分成60多万个分组,依次传输给路由器。可靠的数据传输路由器依靠结构简单实现了低成本的数据传输。主机至少直连一台路由器主机将数据包传给了谁?传给了路由器。依靠这台路由器,主机才能上网。分组存储转发分组完全存储到路由器中后,路由器对分组进行转发处理。分组交换分组交换路由与交换技术从连通与扩展的角度阐述如何将更多的计算机、更多的网络互联在一起。从这个角度讲,计算机网络是计算机的互联。TCP/IP技术从分组可靠传输的角度阐述分组如何在网络中传输。中间路由器负责传输分组,端计算机负责可靠性,二者合力,形成可靠传输。从这个角度讲,计算机网络是计算机技术和通信技术相结合的产物。04计算机网络的分类计算机网络的分类计算机网络的分类有多种方法,最常用、最基础的分类方法是按地理范围分类。地理范围往往会限定网络技术和拓扑结构的选择。例如,要将一个房间中的计算机互联起来,大家都会选择用交换机和星形连接方式,没有人会想到用光纤和点到点连接方式。01广域网(WAN)广域网覆盖的地理范围为从几十到几千千米,提供远距离通信,也称为远程网。03局域网(LAN)局域网覆盖的地理范围从几米到几千米,通常使用高速链路,具有结构简单、传输速度快、性能稳定的特点。02城域网(MAN)城域网覆盖的地理范围为从几千米到几十千米,常作为城市骨干网,将多个局域网互联起来。计算机网络的分类05计算机网络的性能指标带宽计算机网络的性能指标计算机网络中的带宽,是指数据率(DataRate)或比特率(BitRate),带宽的单位是bit/s(bps),表示每秒主机能向网络发送多少比特的数据。注意,字节(Byte)和比特(bit)的换算关系如下:1Byte=8bit若将字节记为B,比特记为b,则有:1B=8b这里一定要注意单位,弄清是否需要换算,如果弄错了,计算结果就会差8倍。计算机网络的性能指标时延时延是指一个分组从网络的一端传输到另一端所花费的时间。多部教材与多篇文献中提出的总时延由发送时延、传播时延、处理时延和排队时延组成:总时延=发送时延+传播时延+处理时延+排队时延本书认为:总时延=发送时延+传播时延+存储时延发送时延是指主机向网络发送数据所花费的时间,可用数据量除以网络带宽得到。传播时延是指信号电磁波在信道中传播一定的距离所花费的时间。处理时延是指路由器的CPU处理分组的时间,该时间非常短,通常可以忽略不计。排队时延分组在路由器内排队等待处理的时间。计算机网络的性能指标计算机网络的性能指标计算机网络采用分组交换技术,也就是说,一个分组从源主机出发,穿越多台路由器后,到达目的主机。其中的关键就是路由器“存储-转发”分组的过程。分组在网络中传输的过程如图1-6所示。计算机网络的性能指标在这个过程中,关键是分析清楚分组在路由器内部被处理的全过程,这个过程如图1-7所示。01第一步,接收分组。当分组的第1比特到达路由器的接口时,接口芯片开始将分组数据存储在路由器I/O设备的缓冲区里。03第三步,转发分组。当分组排队排到后,路由器CPU开始处理分组,就是检索路由表,转发分组,这段CPU处理所用的时间很短,通常都忽略不计。02第二步,分组排队。路由器可能已经接收了多个分组,这些分组在路由器内部排队,等待CPU处理。计算机网络的性能指标计算机网络的性能指标存储存储时延,不能忽略,必须计算。转发处理时延忽略不计,转发动作表达清楚。06计算机网络的体系结构010302第一个问题发送端要将两个人下棋的过程变成数据,再进行传输,接收端将数据解释回下棋界面,如何实现?第二个问题数据在从天津到南宁的路上,会经过许多路由器,可能会遇到网络拥堵,从而产生丢失、错序等问题(这些问题统称为数据可靠传输问题),如何解决?第三个问题天津的主机如何找到南宁的主机,即如何寻路或导航?计算机网络的体系结构第四个问题两个相邻的网络设备之间,即一段链路,如何可靠地传输数据?第五个问题在一段链路上,如何将比特串变换为电信号进行传输?计算机网络的体系结构计算机网络的体系结构计算机网络的体系结构就是计算机网络的各层及其协议的集合。计算机网络的体系结构定义两台主机间数据传输的功能分解,是从功能的角度描述计算机网络的结构的。注意,计算机网络的体系结构仅定义网络及其部件通过协议应完成的功能、各层协议之间的接口关系,不定义协议的实现细节。分层的概念计算机网络的体系结构计算机网络可分为多层,每层实现一个相对独立的功能,每层的设计都是独立的。层与层之间的关系是服务与被服务的关系,每层都有其服务接口,其他层可通过服务接口使用服务。每层只需知道下一层为“我”提供哪些服务,和“我”必须为上一层提供哪些服务。计算机网络的体系结构协议的概念在计算机网络中,协议是一个经常和数据通信相联系的概念。如果做一件事,怎么做都不会出错,那就随意去做,反正不会错。可如果做一件事,这么做会这么错,那么做会那么错,就需要事先精心准备好一个工作手册,处理好所有的错误。工作时严格按照手册一步步进行,就不会发生错误。01语法(Syntax)报文的结构。03同步(Timing)工作手册中程序化的、一步步的动作指令序列。02语义(Semantics)报文中数据的具体含义。计算机网络的体系结构计算机网络的体系结构图1-9给出了飞机的三视图。为了将飞机表达得更清楚,人们分别从正面、侧面、顶部进行观察,画出三视图,得到同一架飞机三种不同角度的表示。分层协议计算机网络的体系结构从垂直的角度说明服务之间如何调用。从水平的角度说明对等实体之间如何收发数据。计算机网络的体系结构计算机网络的三种体系结构分别是OSI参考模型、TCP/IP参考模型以及“计算机网络”课程中的五层网络模型,如图1-10所示。在五层网络模型中,各层的主要功能如下。计算机网络的体系结构02传输层通过中间网络,实现两台主机进程之间的通信,包含可靠通信协议TCP和不可靠通信协议UDP。01应用层为用户提供具体的网络应用服务。030504网络层实现两台主机间的通信,选择合适的路由,构建互连网络。数据链路层实现两个相邻节点之间数据的可靠传输。物理层传送比特流。计算机网络的体系结构计算机网络的体系结构在五层网络模型中,数据封装原理图如图1-11所示。对等层(PeerLayers)一词,一般是指通信双方的相同层次。协议数据单元(ProtocolDataUnit,PDU)是对等层之间传输数据的单位,而服务数据单元(ServiceDataUnit,SDU)是层与层之间交换数据的单位。它们之间的关系如下:PDU=头部+SDU=下一层的SDU计算机网络的体系结构注意,SDU是上层向下层交付数据的单位,PDU是同一层传输数据的单位。例如,传输层的头部加数据构成传输层PDU,当将这个完整的报文向下交付给网络层时,就称为SDU,这时就将“H5(应用层头部)+应用程序数据”看成一个数据单元,再添加传输层头部H4,构成网络层的PDU。计算机网络的体系结构各层的PDU还有自己的专用名称,分别如下:02传输层的PDU有两种,分别称为segment(段)和datagram(数据报)。01应用层的PDU称为message(消息、报文、数据)。计算机网络的体系结构030504网络层的PDU称为packet(分组、数据包)。数据链路层的PDU称为frame(数据帧)。物理层的PDU称为bit(比特)。计算机网络的体系结构感谢观看物理层第二章白话计算机网络——计算机网络考研辅导01数据与信号数据与信号数据通信系统如图2-1所示。01信源发送数据的源点。03信宿接收数据的终点。02信道可以视为一个电路的逻辑部件。数据与信号模拟数据与数字数据模拟数据(AnalogData)是连续的,人的声音就是典型的模拟数据;数字数据(DigitalData)是离散的,主机内存储的比特只能是0或1,是典型的数字数据。模拟信号与数字信号模拟信号(AnalogSignal)指在1个信号周期内值连续变化的信号,有无穷多个值;数字信号(DigitalSignal)只能有几个已定义的值,最常见的是简单的0和1。数据与信号数据与信号正弦波时域图表达了振幅随时间的变化。正弦波还有一种表达方式——频域图,频域图表达了振幅和频率的关系。正弦波的时域图与频域图如图2-2所示。数据与信号复合信号由许多简单正弦波构成,三个正弦波复合的时域图与频域图如图2-3所示。数据与信号复合信号所包含的频率范围称为带宽,是信号最高频率与最低频率的差值。例如,某复合信号最高频率为5000Hz,最低频率为1000Hz,带宽为4000Hz,如图2-4所示。数据与信号在这些正弦波中,前几个波包含大部分能量,后面的无穷多个波只包含很小一部分能量,所以通常只考虑前几个简单正弦波。周期数字信号的时域图与频域图如图2-5所示。数据与信号数字信号由前几个简单正弦波组合的情况,如图2-6(a)、2-6(b)所示,只有基频的正弦波的信号波形与方波波形相差很大,当继续叠加高倍频的正弦波时,信号波形与方波波形就比较接近了,如图2-6(c)所示。02信道的极限容量010302奈奎斯特定理如果信道是理想低通信道,那么:最高码元传输速率=2WBaud数据传输速率与码元传输速率数据传输速率又称为信息传输速率、比特率、信息速率等,它表示单位时间内数据通信系统传输的比特数,单位是bit/s。信号的编码级数信道上真正传输的是信号,根据所使用调制技术的不同,1个电磁信号又可以携带n比特数据,所以:数据传输速率=码元传输速率×1个电磁信号携带的比特数信道的极限容量信号的编码级数是什么意思?其含义就是要确定1个电磁信号可以携带几比特数据。例如,某信号有8级编码,意思是信号发送集合中有8个元素,这8个元素的值不同,若用二进制数对其编号,应是从000到111,共8个值。那么1个电磁信号携带3比特数据。这个3是怎么算出来的呢——log28=3。信道的极限容量信噪比信道的极限容量早在1948年,香农就推导出了带宽受限且有高斯白噪声干扰的信道的极限数据传输速率。香农定理的数学公式如下:也有文献将信噪比记为SNR(Signal-to-NoiseRatio),定义为信噪比有数值表示法(SNR)与分贝表示法(SNRdB)两种表示方法,换算公式为

信道的极限容量信道的极限容量这就是说,如果人们能找到消除噪声的办法,数据传输速率就可以无穷大,香农上限就是无穷大,实际就是没上限,香农定理就会被推翻。香农定理给出了数据传输速率的上限,奈奎斯特定理给出了码元传输速率的上限。数据通信时,这两个定理都要满足。要确认两个定理之间的联系,就需要分析每个信号可携带的比特数。03数字数据的传输数字数据能在数字信道上直接传输吗?或者再具体一点,计算机内的TTL电平信号(+5V等价于逻辑1,0V等价于逻辑0)能直接在网线上传输吗?不行。为什么呢?有两个问题。数字数据的传输02连续的1或0问题在总线中有1根时钟线(CLK),当数据总线中通有一段时间的高电平时,由于有时钟的指示,能确认有多少个1、多少个0;但是网线中没有时钟线,那一段时间的高电平表示多少个1呢?无法确定。而这个问题必须解决,否则无法正常通信。01并行与串行问题计算机内各部分之间的通信采用总线传输。数字数据的传输有时钟线与无时钟线的数据传输如图2-7所示。数字数据的传输现在的问题是,网线中没有时钟线。通信的双方必须明确通信的数据是1还是0,必须正确接收数据。这就要求发送方和接收方的时钟必须同步,而现在又没有时钟线,就需要将时钟信号编入传输信号中,也就是说,在网线中使用的编码信号内必须有许多跳变,使得接收方能从收到的信号中获取时钟。若长时间没有跳变,则会导致时钟漂移。数字数据转换为数字信号的过程,称为编码。编码需要解决这两个问题。常见的编码有NRZ(不归零)码、RZ(归零)码、曼彻斯特码、差分曼彻斯特码等,下面主要介绍后两种。曼彻斯特码(ManchesterCode)数字数据的传输曼彻斯特码规定在每个码元中间有一次跳变,用从高到低的跳变(下跳变)表示1,用从低到高的跳变(上跳变)表示0。0:↑上跳变,从低到高跳变;1:↓下跳变,从高到低跳变。其关键是每个码元中间都要发生跳变,码元中间的跳变既作为时钟信号,又作为数据信号。差分曼彻斯特码(DifferentialManchesterCode)差分曼彻斯特码是曼彻斯特码的一个变种,其在每个码元中间也都要发生跳变;与曼彻斯特码不同的是,其用在码元开始处有无跳变来表示0和1,用在码元开始处有跳变表示0,用在码元开始处无跳变表示1。0:两次跳变,在码元开始和码元中间;1:一次跳变,在码元中间。数字数据的传输数字数据的传输例如,比特串01001100011的差分曼彻斯特码如图2-9所示。数字数据的传输S(t)的参量包括:幅度A、频率、相位。调制就是要使这三个参量随数字基带信号的变化而变化,三种常用的调制技术如图2-10所示。01幅移键控(AmplitudeShiftKeying,ASK):调幅。03相移键控(PhaseShiftKeying,PSK):调相。02频移键控(FrequencyShiftKeying,FSK):调频。数字数据的传输010302ASK,用载波的两个不同振幅表示0(0V)和1(+5V)。FSK,用载波的两个不同频率表示0(1.2kHz)和1(2.4kHz)。PSK,用载波的起始相位的变化表示0(同相)和1(反相)。数字数据的传输数字数据的传输为了取得更高的码元传输速率,可采用技术上更复杂的多元制的振幅相位混合调制方法,如正交振幅调制(QAM)。其中16-QAM使用振幅和相位的16种组合,16-QAM的星座图如图2-11所示。将数字数据转换为模拟信号的设备称为调制器,将模拟信号再转换为数字数据的设备称为解调器,两个设备被制作在一个机壳内,该机器称为调制解调器(Modem),人们日常俗称其为“猫”。数字数据的传输04模拟数据的传输模拟数据的传输脉冲编码调制使用ADC(模拟-数字转换器件)经过三个步骤进行,如图2-12所示。01采样:按一定间隔对语音信号进行采样。03编码:对每个舍入后的样本进行编码。02量化:将每个样本舍入到量化级别上。模拟数据的传输模拟数据在模拟信道上能直接传输吗?模拟数据的传输不行,通常模拟信道是带通信道,即只有一段频率可用,这就需要进行调制。模拟调制技术包括调幅(AM)、调频(FM)、调相(PM)。例如,天津相声广播的频道是调频92.1MHz,人的声音频率在100Hz~7kHz之间,电台将低频的声音调制到高频载波信号上,收音机接收高频信号,再将其解调,还原为人的声音。05传输介质传输介质就是信号传输时所通过的具体的物理介质,分为导向型介质(GuidedMedia)和非导向型介质(UnguidedMedia)两种。有形的介质有线,无形的介质无线。常见的有线线缆有三类:同轴电缆、双绞线、光纤。下面详细介绍同轴电缆和双绞线。传输介质传输介质同轴电缆历史上曾有两种以太网使用同轴电缆,分别是10Base-2和10Base-5。以太网10Base-2使用直径为0.2英寸、阻抗为50Ω的同轴电缆,也称细缆以太网。其最大网段长度为185m,采用基带传输方法,拓扑结构为总线型。其主要硬件设备有细同轴电缆、带有BNC插口的以太网卡、中继器、T型连接器、终结器等。非屏蔽双绞线直通线与交叉线传输介质非屏蔽双绞线有质量好坏的区别吗?有。更重要的是,网线好并不能直接等同于布线工程好,就如同鱼好不能等同于用这条鱼做的菜就一定好吃。如何判断网线与布线工程质量的好坏呢?网线的端头并不是裸露的线头,而是一个插头,称为RJ45插头,俗称“水晶头”。RJ是RegisteredJack的缩写,意思是“注册的插座”。传输介质网线内的双绞线如图2-13所示。传输介质网线头与网线如图2-14所示。传输介质当网线做好后,我们用这根网线将两台主机连接在一起,如图2-15所示。传输介质DTE与DCE是通信中的说法,DTE指数据终端设备,DCE指数据通信设备。顾名思义,DTE是处理数据的,典型的DTE如计算机。DCE是传输数据的,典型的DCE如调制解调器。关键之处是,我们需要理解DTE与DCE的逻辑关系。传输介质RJ45引脚定义如图2-16所示。06蜂窝电话技术蜂窝电话技术蜂窝电话(CellularTelephony)为两个移动单元(MobileStation,MS)之间或者一个移动单元和一个固定单元(通常称为陆地单元)之间提供通信。服务商能够定位和跟踪通话者,为通话分配信道,并在通话者移动出基站时,将通话从一个基站切换到另一个基站。每个蜂窝服务区域(Cell)包含一个称为基站(BaseStation,BS)的网络控制站点、一根天线、多个移动单元(MS)。基站又被移动交换中心(MobileSwitchingCenter,MSC)控制,MSC负责呼叫连接、记录呼叫信息和计费。第三代(3G)3G系统采用数字数据与语音通信技术。第四代(4G)4G系统不同于3G系统,是只基于分组的。第一代(1G)20世纪80年代初,美国建立全球第一个蜂窝电话系统AMPS,英国也建立起TACS制式移动通信系统,二者是最具影响力的1G系统。第二代(2G)2G系统采用数字语音通信技术。蜂窝电话技术蜂窝电话技术CDMA(码分多址)我们知道,电磁信号必须使用不同的频率,如调频广播的不同电台必须使用不同的频率,否则信号就会混杂在一起,无法区分。注意,总有学生不理解,说不知道接收方是谁。即使不知道接收方是谁,只知道叠加信号,也可以知道某个站点发送了什么数据。07物理层小结物理层小结看如图2-22所示的拓扑,两台主机内安装的是10Base-T网卡,分析数据传输的原理。两台主机内安装的是10Base-T网卡,使用的就是10Base-T以太网技术。设备使用网线连接,最常见的是5类线。因为网线两端都是主机,都是DTE设备,所以应使用交叉线,网线水晶头一端是568B头,另一端是568A头。网络传输速率是10Mbit/s。物理层小结物理层小结10Base-T以太网使用曼彻斯特码传输数据,比特串00110110在网线上传输时,其波形图如图2-23所示,使用下跳变表示1,上跳变表示0。感谢观看数据链路层第三章白话计算机网络——计算机网络考研辅导01循环冗余检测循环冗余检测如图3-3所示,发送方发出数据87,传输时出错了,接收方接收的是82。目前处理错误的技术分为两大类循环冗余检测一类称为纠错码,该技术不仅能发现接收的82错了,还能将其改回87。另一类称为检错码,该技术只能发现接收的82错了。计算机网络中使用的循环冗余检测(CyclicRedundancyCheck,CRC)用的是一种检错码。循环冗余检测如图3-4所示,发送方与接收方事先商量好一个数,如15,发送时先计算87除以15的余数,为12,将这个余数与87一起发送,即8712。循环冗余检测接收时先计算82除以15的余数,为7,不等于12,就认为传输的数据出错了。但是这种检错技术的准确率并非百分之百,例如,如果将87错接收成72,就检测不出来。但总体来说,其检错准确率已经非常高了。在循环冗余检测中,数学基础是有限域。在离散数学中有关于群、环、域的内容,其中域分为无限域和有限域,有限域中的加、减、乘、除与普通的计算有很大不同。循环冗余检测3位比特串与多项式对应表如表3-1所示。02停止等待协议如果两台主机在数据传输时,接收方的传输速率永远不会低于发送方的传输速率,那么传输的数据不会出错,也不会丢失,能实现完全理想化的数据传输,也就不需要解决问题的办法,也就不需要协议了。现在假设,数据传输不会出错,但是接收方的传输速率低于发送方的传输速率。显然,解决思路只能是发送方照顾接收方,传输速率由接收方决定,即传输速率受接收能力的限制。停止等待协议停止等待协议具体来说,就是发送方每发送一帧就停下来,等待接收方确认,收到ACK(确认帧,Acknowledgement)后再发送下一帧。接收方则等待,收到数据帧后发送ACK。发送方每发送一帧,就停下来等待ACK,这就是停止等待的意思。停止等待协议停止等待协议,简称停-等协议(如图3-7所示),是两个相连的通信节点互相通信的一个通信协议,是一个理论模型,是一种教科书模式,不是某个实际的数据链路层协议或传输层协议,但许多数据链路层协议或传输层协议借鉴了停止等待协议的思想。01现在假设有传输速度不匹配、差错和丢失三种情况存在:接收方的传输速率低于发送方的传输速率;03传输的数据帧可能丢失,ACK确认帧也可能丢失。02传输的数据帧可能出错;停止等待协议停止等待协议我们来看一个停止等待协议的例子,如图3-8所示。010302正常传输分组0(Packet0)被发送且确认。丢失分组1分组1(Packet1)丢失并在计时超时后重传。重传的分组1被确认且计时器停止计时。丢失确认分组0被发送且被确认,但是这个确认帧(ACK1)丢失了。停止等待协议停止等待协议停止等待协议中有两种控制机制,一是流量控制,二是差错控制。流量控制方面,发送方和接收方都使用了大小为1的滑动窗口,发送方一次发送一帧数据,然后在发送下一帧数据之前,先等待一个确认帧。流量控制:等待确认机制。差错控制:发送方使用超时-重传机制。01确认在正常传输时,发送方发送一帧数据,接收方收到一帧数据,并且校验正确,就发送一个确认帧。03帧编号如果接收方正确收到一个数据帧,那么发送ACK,接收窗口滑动,等待接收下一帧。02确认超时重传发送方在每次发送一帧数据时要启动一个重传计时器。停止等待协议停止等待协议停止等待协议的优点是简单,缺点是信道利用率太低,如图3-9所示。信道利用率公式如下:这个公式是主教材中给出的。这个公式已经多次出现在考试中,需要读者完全掌握。我们解读一下这个公式。理解这个公式可分为三步:第一步,理解分母;第二步,理解分子;第三步,计算信道利用率。停止等待协议01计算公式中的分母。分母表示一个“完整周期”,从发送第一帧数据开始,到立即返回的第一帧确认为止。03计算信道利用率。计算时先计算出TD,计算出后TD后,按前两步的分析计算信道利用率。02理解公式中的分子。分子TD是数据帧的发送时延,确定分子是计算的关键。停止等待协议停止等待协议图3-10给了两种情况的例子。停止等待协议帧数n是多少,也就是发送窗口的大小是多少是关键,要分析清楚,如图3-11所示。03GBN协议和SR协议确认号在GBN协议中,采用累积确认的方式,确认号(ackNo)是希望接收的下一帧编号。发送窗口在GBN协议中,发送方发送一组数据帧,然后停止发送,等待确认。接收窗口在GBN协议中,接收窗口的大小Rsize总是1。重传计时器在GBN协议中,只使用一个计时器。GBN协议和SR协议01发送方发送分组。发送方会开启唯一的计时器,Sn的值增大(Sn=Sn+1)。03如果发生超时,发送方重发所有未完成的帧并重新开启计时器。02如果ACK到达,其编号与一个未完成的帧有关,那么发送方滑动窗口的Sf=ackNo,并且如果所有未确认的帧都被确认(ackNo=Sn),那么关闭计时器。如果所有未确认的帧并没有都被确认,那么重新开启计时器。GBN协议和SR协议接收方如果seqNo=Rn,无错的帧到达,那么接收该帧并滑动窗口(Rn=Rn+1),ackNo=Rn的ACK被发送。如果seqNo在窗口之外的无错的帧到达,那么该帧被丢弃,但是ackNo=Rn的ACK被发送。GBN协议和SR协议GBN协议和SR协议一个GBN协议的例子如图3-16所示。010302正常分组0(Packet0)被发送,接收方正确接收后,滑动接收窗口,返回ACK1。发送方收到ACK1,滑动发送窗口,关闭计时器。丢失发送方连续发送了分组1、2、3(Packet1、Packet2、Packet3),但是分组1丢失。计时器接收方收到重传的分组1,接收并发出确认ACK2。GBN协议和SR协议GBN协议和SR协议图3-17给出了一种比较,如果窗口大小是4且所有ACK都丢失,发送方将会重传旧的所有4个分组。SR协议GBN协议和SR协议选择重传(SelectiveRepeat,SR)协议也是一种能提高信道利用率的协议。SR协议可以处理不按顺序到达的分组,其原理非常复杂,我们只简单介绍几个知识点,更多内容读者可参考其他文献学习。在SR协议中,接收窗口大小应不小于发送窗口大小,通常接收窗口和发送窗口大小相同。由上文WT+WR≤2n可知,发送窗口与接收窗口的大小均小于或等于2n-1。GBN协议和SR协议在GBN协议中,确认是累积的;在SR协议中,确认是独立的,ackNo只表示该分组被接收。例如,ackNo=3的ACK,如果用的是GBN协议,意味着分组0、1、2被正确接收,期待接收分组3。如果用的是SR协议,意味着分组3被正确接收,与其他分组无关。理论上讲,SR协议为每个等待确认的分组使用一个计时器,当计时器超时后,只有对应的分组被重传。相反,GBN协议将所有未确认的分组视为一个整体,使用唯一的计时器,当计时器超时后,重传所有未确认分组。04以太网与CSMA/CD以太网与CSMA/CD共享信道有一个基本问题——碰撞(Collision)。如图3-19所示,若某时刻两帧数据同时发出,则它们会相互重叠,使信号无法辨认。解决碰撞的思路大致有两类以太网与CSMA/CD一类是将工作做在前面,预防碰撞;另一类是将工作做在后面,碰撞之后做好事故的处理。先听后发我们当然希望尽量减少碰撞,想个什么办法呢?就是在发送数据帧之前,先监听信道。“载波监听”就是“发送前先监听”的意思,如果信道上有数据帧,就先不发送数据帧,否则一发送就会产生碰撞,若碰撞了,则传输毫无意义。以太网与CSMA/CD边发边听站点发出数据帧后,对于是否碰撞需要有明确的结论。也就是说,需要进行“碰撞检测”。如何检测呢?站点检测信道上信号电压的大小,当几个站点同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站点同时在发送数据,表明产生了碰撞,“碰撞检测”也称为“冲突检测”。以太网与CSMA/CD以太网与CSMA/CD冲突重发发生碰撞后,两个站点发送的数据帧都会损坏,当然需要重发。但是如果两个站点都立即重发数据帧,又会再次碰撞,所以两个站点重发的时刻最好能够错开一些。每个站点在重发时,先产生一个随机数,如整数3或5,第一个站点延迟3×2的时间开始重发,第二个站点延迟5×2的时间开始重发,这样再次碰撞的概率就低一点。以太网与CSMA/CD10Base-T以太网物理结构如图3-22所示,10Base-T以太网逻辑结构如图3-23所示。对数据进行链路管理,主要实现CSMA/CD协议;数据封装与解封装以太网数据帧(MAC帧)。网卡主要完成以下功能:对数据进行串行/并行传输的转换;对数据进行编码与译码,即曼彻斯特编码与译码;以太网与CSMA/CD以太网与CSMA/CD最常用的MAC帧格式是DIXEthernetV2格式,如图3-24所示。05网桥与交换机网桥与交换机有一种网络设备称为网桥(Bridge),网桥使各网段成为隔离的碰撞域,如图3-27所示。网桥与交换机交换机交换机是目前应用最广泛的网络设备。以太网交换机在物理上是内部有一个高带宽背板总线的交换矩阵,在逻辑上是一个多端口的网桥,通常有十几个或更多的端口。交换机是数据链路层设备,工作在全双工方式下。交换机的工作原理也是按转发表转发数据帧。转发表是怎么生成的?交换机是怎样工作的?网桥与交换机在学习了网桥转发表的生成后,我们可以较快地学习交换机转发表的生成。考虑之前的“黑屋子”的例子:听到一句喊话“我是张三,我要找李四。”现在填表。我们的目标是将几台主机互连在一起。怎么互连呢?——使用交换机。交换机能将主机互连在一起,构成局域网。网桥与交换机图3-34和图3-35所示分别是网桥和交换机环路的广播风暴。06无线局域网与CSMA/CA无线局域网在逻辑上也是共享信道,采用的是随机接入的思路。但是,无线局域网与有线局域网的一个重要差异是,无线局域网没有碰撞检测,原因如下。无线局域网与CSMA/CA02第二个原因隐蔽站问题。01第一个原因碰撞检测要求一个站点在发送本站数据的同时,还必须不间断地检测信道,但接收到的信号强度往往会远远小于发送信号强度,在无线局域网的设备中要实现这种功能会花费过大。010302帧间间隔所有的站点在完成一帧数据的发送后,必须再等待一段很短的时间(继续监听)才能发送下一帧。帧间间隔、争用窗口信道从忙变为空闲时,任何一个站点要发送数据帧时,不仅都必须等待一个DIFS,而且还要进入争用窗口,各站点就要执行退避算法。信道预约为了更好地解决隐蔽站带来的碰撞问题,802.11标准允许要发送数据的站对信道进行预约。无线局域网与CSMA/CA无线局域网与CSMA/CA有线局域网与无线局域网的对比如表3-7所示。01数据帧分为三部分。MAC头部:共30字节,帧的复杂性都体现在MAC头部。03MAC尾部:帧检验序列(FCS)是MAC尾部,共4字节。02帧主体:数据部分,不超过2312字节,通常都小于1500字节。无线局域网与CSMA/CA07数据链路层小结数据链路层小结在数据链路层中,我们介绍了三种基本的“构建一个局域网”的方法,如图3-48所示。集线器集线器是物理层设备,只能进行电信号的放大,没有智能,也没有控制程序。交换机交换机是数据链路层设备,内部有控制程序,需要分析MAC帧的MAC地址。无线AP无线AP是数据链路层设备,内部有控制程序。一个局域网在实际工程中应用最广泛的设备是交换机,本章中,交换机的工作原理是重点。数据链路层小结数据链路层小结集线器、交换机与无线AP的对比如表3-11所示。感谢观看网络层第四章白话计算机网络——计算机网络考研辅导01什么是IP地址IP地址与子网掩码什么是IP地址日常生活中,我们想找到某户人家,必须有这户人家的门牌号码。同样,互联网上的某台主机也必须有一个地址,否则无法找到它。IP地址就是计算机在互联网上的“门牌号码”。每台主机必须有一个IP地址,这是网络互连的基础条件。IP地址IP地址就是给每个连接在互联网上的主机分配一个在全世界范围内唯一的32位的标识符。子网掩码IP地址占用连续的32位,看不出网络号与主机号的分界线,可这条分界线非常重要,必须说明白。什么是IP地址什么是IP地址IP地址与子网掩码如图4-4所示。什么是IP地址分析图4-7所示的两个网络拓扑,拓扑一、拓扑二中各有几个网络?什么是IP地址拓扑一与拓扑二的区别是中间设备不同,一个是路由器,另一个是交换机。路由器就是在不同网络之间传递分组的设备。其中有两个关键词——不同网络、传递分组。网络是以路由器为边界的。路由器的一个分支是一个网络,不论分支的大小与复杂程度,只论其与路由器的关系。在拓扑一中,路由器有三个分支,每个分支是一个网络,共有三个网络。路由器将三个区域分隔为三个网络。配置IP地址第一步是分析网络边界,就是能准确地看出拓扑中有多少个网络,每个网络包括哪些区域。能分清网络之后,第二步要配置IP地址,就是要明白有多少个点需要配置IP地址,并能写出正确的IP地址。什么是IP地址什么是IP地址划分子网早期IP地址分为两级,确实不够灵活。例如,甲校有1万台主机,其IP地址只能是甲校1号,甲校2号,……,甲校10000号。而人们更习惯的说法是甲校1系1号,甲校2系1号等。后来IP地址中增加了一个“子网号字段”,从此可以划分子网。在划分子网时,将主机号的一部分作为子网号,但子网也是网,大网号和子网号合并成为新的网络号,使用子网掩码指示网络号与主机号的分界线。划分子网后,一定要保证子网是一个网络,就是子网中所有的IP地址的网络前缀相同,主机号为从全0到全1,也就是说,分配的地址段必须是2的整数次幂。什么是IP地址路由聚合什么是IP地址计算机网络的发展速度超出人们的预料,IPv4地址的消耗速度也超出人们的预料。20世纪90年代,地址耗尽的问题已非常严重。为了避免分配地址时的浪费,人们很快研究出了无分类域间路由选择(ClasslessInter-DomainRouting,CIDR)技术。例如,某企业有10万台主机,一个B类地址有6万5千多个地址,不够用,就得分配一个A类地址,可一个A类地址有40亿个地址,就浪费了39亿9千9百90万个地址,在IP地址耗尽的时候,这么大的浪费是无法忍受的。什么是IP地址CIDR消除了传统的A类、B类和C类地址(关于A类、B类、C类地址,请读者阅读主教材自学)及划分子网的概念,直接按所需的地址空间分配IPv4地址。CIDR的又一个优点就是支持路由聚合(RouteAggregation)。将多个网络地址聚合为一个网络地址的过程,称为路由聚合,它使得路由表中的项目迅速减少,缩短了路由表的检索时间。路由聚合的方法就是提取各网络共同的网络前缀。02两台主机是如何通信的两台主机是如何通信的看图4-18所示的拓扑结构,如果主机H1要向主机H7发送数据,需要知道主机H7的MAC地址,但是主机H1只知道主机H7的IP地址,不知道H7的MAC地址,如何获得H7的MAC地址呢?两台主机是如何通信的知道IP地址,要查询MAC地址,我们使用地址解析协议(AddressResolutionProtocol,ARP)。ARP的工作原理如图4-19所示,有ARP请求(Request)和ARP回答(Reply)两个报文。两台主机是如何通信的将ARP报文封装成MAC帧,作为MAC帧的负载,MAC帧类型值0806指示MAC帧的数据部分是ARP报文。ARP请求报文是广播的,ARP回答报文是单播的,见图4-20。ARP请求报文所封装的MAC帧,目的MAC地址是ff-ff-ff-ff-ff-ff,这个地址是广播地址,交换机就会广播这个帧。ARP请求报文和校园广播的大喇叭是不是很像呢?如果目的主机也在你的网络里,你用大喇叭喊它,要来它的MAC地址,就可以封装MAC帧了。注意,是将ARP直接封装为MAC帧,不是将其封装为IP数据报。从这点看,本书更倾向于将ARP理解为数据链路层协议。两台主机是如何通信的两台主机是如何通信的看图4-22所示的拓扑结构,图中只有交换机和集线器,交换机是数据链路层设备,集线器是物理层设备,这两个设备都是数据链路层以下的设备,不论多少个设备互连在一起,都属于一个网。两台主机是如何通信的看图4-23所示的拓扑,路由器R1连接两个网,LAN1:/16和LAN2:/16。两台主机是如何通信的根据“路由器是网络边界”的原则,路由器R1将整张拓扑分割为两个区域,如图4-24所示,这就是两个网。两台主机是如何通信的任意一个局域网内部,至少要有一个路由器接口。否则,局域网内的所有主机都无法与外部网络通信。现在局域网内已经有一个路由器接口了,主机必须知道这个路由器接口的IP地址,才能将IP数据报正确传递到路由器中。这台主机的第一跳路由器接口称为主机的“网关”。网关就是为主机转发报文的路由器,主机的网关必须配置正确,保证将IP数据报传递到路由器中。网关很重要,没有网关就上不了网。两台主机是如何通信的主机H1要与主机H5通信,主机H1的IP地址、主机H5的IP地址、网关的IP地址在通信过程中都扮演什么角色呢?如图4-25和图4-26所示。两台主机是如何通信的01第一,主机H1构造一个IP数据报(IP数据报格式将在4.3节介绍),在IP数据报中,源IP地址是H1的IP地址,目的IP地址是H5的IP地址。03第三,MAC帧到达路由器后,路由器拆除MAC帧,取出IP数据报,根据目的IP地址检索到转发接口,再次封装一个新的MAC帧转发出去。02第二,在IP数据报外,再封装一层MAC帧,在MAC帧中,目的MAC地址是网关E0的MAC地址,源MAC地址是主机H1的MAC地址。两台主机是如何通信的两台主机是如何通信的看图4-28所示的网络拓扑,3台路由器连接了4个网络。03IP数据报格式IP数据报格式洋葱是一层一层的,IP数据报如同洋葱一样,也是一层一层的。如图4-29所示,我们以传输网页的数据报为例,看看这个“洋葱”的每一层都是什么。IP数据报格式IP数据报格式如图4-32(a)所示,其由两部分组成,IP头部和IP负载。IP头部的长度是20~60字节,但最常见的是20字节。IP头部格式如图4-32(b)所示。IP数据报格式为了方便,将MAC帧格式再复习一下,如图4-33所示。计算方法校验方法IP数据报格式我们以上一节中的IP数据报为例计算校验和,将IP头部数据按2字节一组取出,其中校验和字段暂时填写为全0,计算后,再将结果填入。仍将IP头部数据按2字节一组取出,求和。IP数据报格式不同的链路数据帧格式中,数据字段最大长度是个重要参数,称为最大传送单元(MaximumTransferUnit,MTU),如图4-37所示。04路由器如何工作什么是路由表路由表是指示去往目的网络的前进表(ForwardingTable)。我们先不考虑路由表是怎么生成的,来看一看路由表最终的样子。路由表既然是前进表,表中最主要的有两项,一项是表示终点的目的网络,另一项是表示前进方向的“下一跳”。路由器如何工作路由器如何工作例如,根据图4-28,写出每台路由器的路由表是非常简单的事情。路由器如何工作主机路由通常的路由都是去往某个网络的,但是也可以有去往某台主机的路由,称为主机路由。默认路由在路由器转发IP数据报时,检索整张路由表,若没有匹配的条目,且这时有默认路由,则按默认路由转发。路由器如何工作路由表又是怎么生成的呢?我们将实际多个网络的互连抽象成加权图(如图4-45所示),加权图能表示某节点到其他所有节点的最短路径。路由器如何工作生成路由表就需要计算加权图的最短路径。路由器自动地执行计算过程,从而建立和维护一张记录最优路径的路由表。我们介绍两个计算加权图最短路径的算法,一个是Bellman-Ford算法,是一种距离向量算法(D-V),对应的是RIP路由协议。另一个是迪杰斯特拉(Dijikstra)算法,是一种链路状态算法(L-S),对应的是OSPF路由协议。路由器如何工作我们看图4-46,节点1的邻居有节点2、节点3、节点4。路由器如何工作节点2、节点3、节点4将它们的距离向量(去往各节点的最短距离)通报给节点1,节点1就能推算去往各节点的最优路径了,计算过程如图4-47所示。例如,节点1要去往节点3,通过节点2去,总距离是5;通过节点3去,总距离是5;通过节点4去,总距离是3。那么最优路径就是通过节点4去。这样,目的节点是3,时延为3,下一跳是节点4。路由器如何工作01RIP路由协议的三个要点如下。仅和相邻路由器交换路由信息。03按固定的时间间隔交换路由信息,如30秒。02交换的路由信息是当前路由器的路由表。路由器如何工作路由器如何工作如图4-51所示,在下一个更新周期,路由器R1将自己的路由表发送给R2,按照RIP路由协议,对于路由器x发来的RIP报文,若路由表中下一跳地址是x,则用收到的条目替换原来的条目。毒性逆转毒性逆转也是一种加快收敛的机制,也称为“带毒性逆转的水平分割”。毒性逆转的理由与其让R1对某方向(R2方向)是否还有最优的路由“心存妄想”,不如明确地告诉R1在该方向上(R2)对网1是不可达的。触发更新为了加速收敛,当路由发生改变时,不等到更新周期到时,就立即发送路由信息,这称为触发更新。水平分割水平分割规则规定,路由器从某接口收到某条路由信息并将它写入路由表后,就不能再从同一接口将这条信息发送回去。路由器如何工作迪杰斯特拉算法,即最短路径优先(ShortestPathFirst)算法,用于在一张加权图上计算某一节点到其他所有节点的最短路径。OSPF路由协议是获得这张加权图的方法。对迪杰斯特拉算法的介绍见附录B。如果能得到当前时刻的完整网络拓扑,就可执行迪杰斯特拉算法,计算出某一节点到其他所有节点的最短路径,得到路由表。现在的问题就是如何得到完整的网络拓扑,这就是OSPF路由协议要解决的问题。路由器如何工作想要理解OSPF路由协议,有两个要点。02第二,必须领会“分布式”这三个字的精神。01第一,必须理解LSA(Link-StateAdvertisement,链路状态通告)这个核心概念,否则难以理解OSPF的原理。路由器如何工作第一阶段,确定邻居关系。在路由器上电启动时,首先要完成基本信息正常化,包括身份ID,接口IP地址配置信息。第二阶段,可靠洪泛LSA。要领会“分布式”的精神。第三阶段,链路状态数据库同步。链路状态数据库同步是指相邻路由器之间互相核对数据库信息。第四阶段,运行迪杰斯特拉算法计算。现在每台路由器都得到了一个一致的网络拓扑。路由器如何工作D-V距离向量(RIP)L-S链路状态(OSPF)路由器如何工作两台相邻路由器通信,交换整张路由表。所有路由器通信,洪泛LSA。05网络层小结网络层小结网络层是计算机网络中最重要的一层,是计算机网络的精华部分。数据链路层说明白了一个网,网络层说明白了两个网和三个网(多个网)。在分析网络层时,首先要分析网络拓扑,准确判断有多少个网及各网络的边界,然后根据网络拓扑正确分析网关、子网掩码和路由表。01一个网的工作原理直接向目的主机发送数据帧。03多个网的工作原理主机向网关发送数据帧,由路由器转发IP数据报。02两个网的工作原理主机向网关发送数据帧,由路由器转发IP数据报。网络层小结感谢观看传输层第五章白话计算机网络——计算机网络考研辅导01传输层概述传输服务传输层概述传输层服务与网络层服务很相似,既然如此,计算机网络又为何要分传输层与网络层呢?答案就是“可靠性”。网络层并不提供可靠性,路由器可能丢失分组,用户无法控制中间的网络设备,用户不能选择性能更好的路由器或质量更好的数据链路,那么如何保证数据可以正常传输呢?就要添加一个传输层。传输层应能检测到各种问题,并采取补救措施,从而提供可靠的数据传输。传输层要弥补网络层技术、设计方面的各种缺陷。传输层就是用于“填坑”的,将网络层与应用层之间的“坑”填平。打个比方,传输层服务前,网络是遍布坑的公路,传输层服务后,网络是平坦的公路。再谈谈“低价格”这个关键词。如果在设计网络时,由网络层提供可靠性,会如何呢?如果由网络层提供可靠性,就要在路由器上添加可靠性功能,路由器网络的复杂性会极大地提高,数据传输的成本也会极大地提高,那就与电话通信网的成本差别不大了。传输层概述传输层概述可靠性由通信网承担还是由端用户的计算机承担,二者在价格方面的差别太大了。可靠性由端用户的计算机承担,才能实现低成本的数据传输,低价格是计算机网络将其他通信技术淘汰的本质原因。要想实现低价格,可靠性显然由操作系统内部实现更加合理,直接由操作系统对应用程序提供可靠的数据传输服务是非常自然的选择。传输层封装在端计算机的操作系统内。打个比方,网络如同封装在房间内的电线,在装修时已经埋好了,只是在墙上留了许多插座,人们看到的是插座。将房子装修好,在墙上预留插座,这是工程队做的事;将洗衣机、电冰箱等电器接在插座上,使用洗衣机、电冰箱是用户的事。传输层概述对计算机网络来说,“可靠性”的关键是什么?或者反过来说,造成数据传输不可靠的最主要原因是什么?是网络拥塞。当网络拥塞时,路由器就会丢弃分组。因为要解决网络拥塞问题,所以传输层需要具有“调控网络”的功能。传输层在端计算机内,而端计算机是无法控制中间的网络设备的,“调控网络”从何谈起呢?主机控制不了外部的路由器,只能控制主机自己。如同生活中我们常说的一句话,“你改变不了外部环境,只能改变你自己。”在网络拥塞时,主机“改变自我”恰恰是解决问题的关键。所谓的“调控网络”,就是指主机的“改变自我”,而不是指控制中间的路由器。主机如何“改变自我”呢?主机的传输层要能感知到网络状态,能感知到当前通信网络的态势,若发现网络拥塞,则少发数据,让中间网络尽快恢复传输能力;若发现网络通畅,则多发数据。传输层概述传输层概述端口最常用的从进程到进程的通信模式是客户端与服务器模式。我们这里说的客户端与服务器都是指一个应用进程,而不是机器。客户端是请求服务、主动发起呼叫的进程。服务器是提供服务、被动等待的进程。由客户端呼叫服务器,绝不可能由服务器呼叫客户端。传输层概述端口范围划分如图5-1所示。01熟知端口,端口范围是0~1023,由ICANN分配和控制。03动态端口,端口范围是49152~65535,既不用指派,也不需要注册,可以由任何进程使用。最初建议客户端使用的临时端口应该在这个范围内,但许多程序员没有遵守这个建议。02注册端口,端口范围是1024~49151,ICANN不分配也不控制,但必须在ICANN登记,以防止重复。通常被没有熟知端口的应用程序使用。传输层概述传输层概述当一个实体接收来自多个源的输入时,就称为复用(多到一),而当一个实体将数据交到多个源时,就称为分用(一到多)。源点的传输层执行的是复用,而终点的传输层执行的是分用,如图5-2所示。传输层概述针对应用层的不同需求,传输层有两个主要协议,即面向连接的传输控制协议(TransmissionControlProtocol,TCP)和无连接的用户报文协议(UserDatagramProtocol,UDP),如图5-3所示。02简单的UDP简单的UDPUDP是无连接、不可靠的传输层协议。它只在IP数据报服务之上增加了很少的功能,即端口功能和校验和功能,其中校验和功能是可选的。UDP的缺点是不可靠;优点是开销小,在发送数据之前不需要建立连接,这对某些实时应用是很重要的。当网络出现拥塞时,其无须调整,不会降低发送速率。简单的UDPUDP报文格式如图5-4所示。总长度:16位,头部加数据的长度。校验和:16位,在下文介绍。UDP头部的说明如下。源端口号:16位,标识源端应用进程。目的端口号:16位,标识目的端应用进程。简单的UDP简单的UDP如果不选择UDP校验和功能,那么校验和全为0,否则,计算校验和。计算时包含三部分:伪头部、头部、数据。注意:在UDP中,计算校验和时包含数据部分。伪头部格式如图5-5所示。03复杂的TCP复杂的TCPTCP是面向连接的、可靠的协议。TCP协议首先建立连接,然后传输数据,最后删除连接。TCP协议中包含了GBN与SR两种协议的思想,使用了校验和、累积确认、超时-重传等机制。TCP是最重要的传输层协议。一个TCP报文段分为TCP头部和数据两部分,TCP头部的前20字节是固定的,后面有4n字节是根据需要而增加的选项(n是整数)。因此TCP头部的最小长度是20字节。而TCP的全部功能都体现在它头部各字段上。复杂的TCPTCP报文段格式如图5-7所示。复杂的TCP图5-8中给出了TCP控制位的简要说明。04TCP差错控制TCP是可靠的传输层协议,就是说TCP向应用层交付的是按顺序的、没有差错的、没有丢失的数据。TCP通过三种机制进行差错控制:校验和、确认与超时-重传。校验和TCP规定每个报文段都必须使用16位的校验和。TCP校验计算时包含三部分:伪头部、头部、数据,计算方法与UDP一样。TCP差错控制确认累积确认ACKTCP差错控制TCP采用确认的方式来证实收到报文段。接收方可以在合适的时候单独发送确认报文段,也可以在自己有数据要发送时把确认信息捎带上。TCP使用肯定的累积确认。先解释“肯定”,ACK就是“肯定”的意思。就是只在正确的情况下才发送确认报文段。当发生报文段丢弃、丢失、重复这些错误时,就什么也不做,即“报喜不报忧”。TCP差错控制超时-重传差错控制的核心就是超时-重传机制。具体来说,就是每发送一个报文段,就设置一个重传计时器,如果重传时间到,但还没有收到确认报文段,就要重传这一报文段。怎么设置重传计时器的值(RTO)是TCP中最复杂的事情之一。现在我们只需要知道,对重传计时器的值的估算要尽可能准确,主教材中介绍的重传计时器的值设置算法,大多读者觉得不好理解,本书对其进行如下解读。05TCP流量控制TCP流量控制图5-10是一个发送窗口的例子,TCP中的窗口大小以字节为单位。窗口传输的实际是一个个报文段,但控制窗口的变量是以字节为单位的。TCP只使用一个重传计时器。为方便说明,字节序号取得很小。接收窗口在TCP中,在接收数据时涉及两种变化。一是分配的接收缓冲区(缓存)的变化,二是接收窗口的变化。接收缓冲区和接收窗口都在滑动,在理解的时候有一点困难。接收方会分配一段内存空间作为接收缓冲区。通常情况下,接收方的接收缓冲区中包含已接收且确认的数据,它们正在等待应用进程将它们拉取走,这里将其称为未交付数据。TCP流量控制TCP流量控制来接收新数据的空间称为接收窗口,如图5-11所示。TCP流量控制接收方每次正确接收一部分数据后,发送对这部分数据的确认报文段,发出确认报文段后,接收窗口的后沿Rn就向前滑动。正确接收的数据存储在接收缓冲区内,若应用进程不将其拉取走,随着不断接收新数据,接收窗口(可用的接收缓存)就会越来越小,直到为零。当应用进程拉取走一些已接收数据,释放了对应的缓存空间时,接收窗口前沿向前滑动。任何时刻,总有:rwnd(接收窗口大小)=接收缓冲区大小–未交付数据字节数TCP流量控制TCP通过滑动窗口机制实现流量控制。我们先忽略差错、拥塞等其他因素,只简单讨论一个方向的数据传输。图5-12描述了一个例子,客户端发送数据,服务器确认。窗口的收缩TCP流量控制TCP协议强烈不建议进行发送窗口的前沿收缩操作。但是,如果接收方通告的rwnd会导致发送窗口的前沿向后滑动,那么发送窗口的前沿就会向后收缩。为了保证发送窗口不收缩,接收窗口就不允许收缩。接收窗口必须始终要保证:新前沿≥旧前沿。TCP流量控制见图5-13,发送方最近一次收到通告,ackNo=206,rwnd=12,表示接收方已经正确接收206号字节之前的数据,发送方就将发送窗口的后沿向前滑动到206,前沿向前滑动到206+12=218处。TCP流量控制零窗口与死锁上文说,接收方通告rwnd时,要保证“新前沿≥旧前沿”。但是,TCP允许一个例外,就是rwnd=0。接收方用rwnd=0的报文段暂时关闭窗口,此刻,发送方实际并没有收缩发送窗口,而是暂停发送数据,直到新的rwnd通告到来。由发送方产生的糊涂窗口综合征如果发送方TCP正在为一个产生数据很缓慢的应用进程服务,例如,一次产生1字节数据,就有可能产生糊涂窗口综合征。解决方法是使用Nagle算法。由接收方产生的糊涂窗口综合征如果接收方TCP正在为一个消耗数据很缓慢的应用进程服务,例如,一次消耗1字节数据,接收方每次发送rwnd=1的通告,就有可能产生糊涂窗口综合征。解决方法是使用Nagle算法推迟确认。TCP流量控制01Nagle算法步骤1:发送方TCP把它从应用进程收到的第一个数据发送出去,即使只有1字节。03步骤3:重复步骤2。02步骤2:在发送一个报文段后,发送方TCP就在接收缓冲区中累积数据并等待,直至收到接收方发来的确认,或者已积累了足够的数据已达到报文段的最大长度时,就立即发送一个报文段。TCP流量控制Nagle算法推迟确认TCP流量控制报文段到达时,不立即发送确认报文段,接收方等待一段时间,直到输入缓冲区中有足够的空间(或者接收缓冲区中已有一个最长报文段的空间,又或者接收缓冲区已有一半空闲的空间),就发送确认报文段。但推迟确认等待时间不能超过500ms。06TCP拥塞控制TCP拥塞控制两主机通过中间的一个传输网络连接在一起,如图5-14所示。正是因为中间有网络,就有了网络拥塞问题。在谈网络拥塞之前,先回忆一下路由器的原理。TCP拥塞控制我们将数据传输比喻为流水,发送方如同水龙头,中间水管如同传输网络,接收方如同水桶,如图5-15所示。多个水龙头的水管网如图5-16所示。拥塞窗口TCP拥塞控制上文讨论过流量控制,流量控制是要保证接收方能顺利接收数据。发送方能发送多少数据,由接收方接收能力决定。接收方通告一个接收窗口大小(rwnd),是接收方的可用缓冲区空间,发送方的发送窗口大小不能大于rwnd。现在,我们说的是中间传输网络的传输能力。TCP中有一个控制变量,这个控制变量是根据中间传输网络的拥塞状态来调整的。拥塞窗口(CongestionWindow)大小(cwnd)根据当前网络的拥塞程度动态地变化,发送窗口大小不能大于cwnd。超时上文已经解释过网络拥塞的现象,我们现在简单理解为:发送方的超时事件就表示中间传输网络全部堵死了。3-ACK3-ACK也称为“快重传”(FastRetransmission),发送方发送2个段后,正常收到ACK,这个ACK是初始的ACK,重传计时器清零。TCP拥塞控制TCP拥塞控制策略基于两个阶段:02拥塞避免(CongestionAvoidance,CA)阶段。01慢启动(Slow-Start,SS)阶段和。TCP拥塞控制TCP拥塞控制慢启动,指数增大拥塞窗口大小(cwnd)从1个最大报文段MSS开始。每收到一个ACK,拥塞窗口大小增加一个MSS。慢启动算法开始时,cwnd增大得很慢,但它是以指数形式增大的。拥塞避免,加法增大在拥塞避免阶段,cwnd按加法形式增大。每次整个窗口的所有段都被确认后,cwnd增加1。01拥塞控制策略的转换通畅:无事件发生。拥塞避免阶段持续,cwnd继续按加法形式增大。03全拥塞:标志事件是发送方超时。02半拥塞:标志事件是发送方收到三个重复的ACK。TCP拥塞控制07TCP连接管理TCP连接管理TCP连接建立的过程称为三次握手(Three-WayHandshaking),如图5-24所示。服务器首先打开一个端口,端口处于监听态,称为被动打开。客户端发起连接请求,连接到服务器打开的端口上,连接就建立了。TCP连接管理连接建立后,可进行双向的数据传输,如图5-25所示。客户端和服务器都可以发送数据和ACK。TCP连接使用了序号和确认号的机制。序号TCP把要发送的数据都按字节编上号,两个方向的序号是相互独立的。序号并不是从0开始的,使用一个随机数作为初始序号,初始序号在建立连接的第1个SYN报文段中通告给对方。确认号当报文段中ACK置1时,报文的确认号字段有效,TCP的确认是累积确认,确认号字段值是完全接收到的数据的最后1字节的序号+1,表示此值前的数据已收到,期望接收的下一字节是此值。TCP连接管理TCP连接管理数据传输结束后,客户端和服务器中的任一方都可以断开连接。一般来说,由客户端断开连接。TCP连接的释放过程是四次握手过程,如图5-26所示。010302TCP连接管理的三规则:TCP规定,SYN报文段不能携带数据,但要消耗掉一个序号。TCP规定,ACK报文段可以携带数据,但如果不携带数据,则不消耗序号。TCP规定,FIN报文段即使不携带数据,它也消耗掉一个序号。TCP连接管理08传输层小结传输层小结UDP协议比较简单,掌握报文分析与校验和计算就可以了。TCP协议比较复杂,知识点列表如表5-2所示。感谢观看应用层第六章白话计算机网络——计算机网络考研辅导01客户端-服务器模型要实现本地主机接收远程主机提供的服务,需要两个程序,一个运行在本地主机上,另一个运行在远程计算机上。这两个程序的通信看着简单,但真要实现时,还有许多具体的问题要解决,我们直接介绍结果,就是目前的解决办法。现在的网络编程方式称为客户端-服务器(Client/Server)方式,简称为C/S。还有一种对等(Peer-to-Peer,P2P)方式,其本质仍然是客户端-服务器方式。客户端和服务器都是指通信中涉及的两个应用进程,不是两台特殊的主机。客户端是服务的请求方,服务器是服务的提供方。客户端-服务器模型客户端-服务器模型服务器是运行在远程主机处,向客户端提供服务的程序。启动后,就安静地等待,当被请求时,就提供服务。服务器为大量用户服务。服务器是个无限程序,启动后就一直运行,一直等待,当一个请求到达时,就响应请求。服务器从不会主动提供服务,这很像各地的急救中心,其始终在运行着,当人们求助时,就来急救,但不会主动来找你。显然,客户端需要知道服务器的IP地址、端口号,而服务器不需要知道客户端的IP地址、端口号。服务器因其“一直运行,有大量用户”的特性,一般需要强大的硬件和高级的操作系统支持。客户端-服务器模型客户端是运行在本地主机上的程序,它请求服务器服务。客户端程序是有限的,用户启动一次,服务完成后就终止。因为客户端是主动请求服务的一方,所以必须知道服务器的IP地址及服务端口号(熟知端口),向其发起请求,并接收响应。客户端遵循“有一个用户,一次运行”的原则,不需要特殊的硬件和很复杂的操作系统。服务器:一直运行,有大量用户。对硬件和操作系统的可靠性、性能要求高。客户端:有一个用户,一次运行。对硬件和操作系统的可靠性、性能要求低。02域名系统01第一类问题,怎么给主机起名?互联网上有“无穷多”的主机,这些主机的“名字”信息如何管理,如何组织?03第三类问题,这个映射数据如何查询?02第二类问题,这个无穷大的“名字与IP地址”的映射数据集合,存在哪台主机中?如何存储?域名系统域名系统名字空间给主机起名字并不简单,关键是不能重名。在整个互联网内,不能有两台主机的名字是一样的。互联网采用了层次树状结构的命名方法,用树的叶子节点作为主机名,这样就不会重名了。这棵树的最顶层是根,根标号是空字符串,根下面的第一层是顶级域名,也称一级域名,第二层是二级域名,第三层是三级域名,……,最底层的叶子节点是主机名。域名系统互联网的域名空间如图6-1所示。域名系统顶级域名有三类,第

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论