1、第1章 计算机网络的语言理解计算机网络协议1.1 什么是网络协议为什么在第一章讲网络协议?什么是计算机网络?你所理解的计算机网络是什么?什么是网络协议?网络协议是为计算机网络中数据进行交换而建立的规则、标准或约定的集合网络协议三要素:语义、语法、时序计算机通信和人类交流的对比1.2 网络协议体系结构如何理解网络协议的分层体系结构分层体系结构来源于对整个网络协议体系的设计思路由于网络协议是帮助计算机之间互相理解、相互协作来完成各种网络功能,如果只用一个协议的话很难实现所有功能,并且其实现相当复杂,修改也极不方便因此网络协议体系设计的主要思路是把一个复杂的功能划分为更小的功能模块,我们把它称为“层
2、”,每层实现部分的网络功能,所有层一起完成完整网络功能。1.3 ISO/OSI RM什么是ISO/OSI RM?International Organization for Standardization/Open System Interconnect,Reference Model国际标准化组织/开放系统互联,参考模型计算机网络协议分层体系结构的国际标准,如果希望实现不同开放系统之间的相互通信,可以参照它的分层模型进行协议的体系设计。1.3 ISO/OSI RMISO/OSI RM分层体系结构示意图ISO/OSI RM的工作模式分层协议如何工作的?1.3 TCP/IP协议族ISO/OSI
3、RM是国际标准化组织制定的标准,但它只是一个理论上的国际标准,而大多数计算网络,特别今天使用最广泛的Internet(因特网)事实上使用标准是TCP/IP协议。TCP/IP协议其实是由许多协议组成的一个庞大的协议集合,它包含数量众多的协议,不同的协议实现不同的功能。而TCP(Transfer Control Protocol,传输控制协议)和IP(Internet Protocol,网际协议)是其中两个最为重要的协议,因此通常简称为TCP/IP协议。1.3 TCP/IP协议族1.4 物理层协议1.4.1 物理层协议基础物理层协议的主要作用?简单地说,物理层协议的功能是实现透明比特流传输。也就是
4、说,只要通信双方共同遵守相同的物理层协议,就能够将比特流(或者说由0和1构成的数据流,如10100111.),通过不同的物理介质传送到对方。物理层协议就像一个搬运工,它并不知道他所传送的数据有什么具体含义,它只负责怎样才把数据通过传输介质从一端传到另一端。1.4.1 物理层协议基础物理层的主要任务就是规定各种传输介质和接口与传输信号相关的一些特性1机械特性也叫物理特性,指明通信实体间硬件连接接口的机械特点,如接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等。如在网络中常用的RJ45水晶头,它的形状、大小、引线数目、如何连接网线及如何锁定在接口中等等。1.4.1 物理层协议基础2电气
5、特性规定了在物理连接上,导线的电气连接及有关电路的特性,一般包括:接收器和发送器电路特性的说明、信号的识别、最大传输速率的说明、与互连电缆相关的规则、发送器的输出阻抗、接收器的输入阻抗等电气参数等。如在以太网中,使用什么样的信号来表示0或1,怎样识别0和1,采用什么样的数据编码等等与电气相关特性。1.4.1 物理层协议基础3功能特性指明物理接口各条信号线的用途(用法),包括:接口线功能的规定方法,接口信号线的功能分类(数据信号线、控制信号线、定时信号线和接地线4类)。如在以太网中,每根线的功能是什么,是用于发送数据还是接收数据等。4规程特性指明利用接口传输比特流的全过程及各项用于传输的事件发生
6、的合法顺序,包括事件的执行顺序和数据传输方式,即在物理连接建立、维持和交换信息时,双方在各自电路上的动作序列。即在网络中实现物理信号传输的整个过程的规定。1.4.2 数据通信基本概念1.数据、信号与信道简单地说,数据是用来表示信息的,而信号是用来承载数据的,信道则是用来传送信号的通道。(1)数字数据与模拟数据当我们把信息表示成数据(可以理解为数值)时,就分为两种数据:一种是模拟数据,它的取值是连续的并可以有无穷个取值,如连续函数y=f(x);另一种是数字数据,它的取值是不连续的并只包含有限个取值,如二进制串10110101。1.4.2 数据通信基本概念(2)数字信号与模拟信号数据只是较为抽象的
7、数值,要把这些数据传递给其他人必须把数据用现实生活中存在的物理信号来表示,这些物理信号主要包括:电信号、光信号、无线电信号。对于信号来说如果是连续的并有无穷个取值,就是模拟信号;如果是不连续且取值有限,则是数字信号。1.4.2 数据通信基本概念(3)数字信道与模拟信道信道是传输信号的通道,常用的信道有:有线电缆,用来传输电信号;光纤,用来传输光信号;自由空间,用来传输无线电信号。不同的物理信道由于其物理特性不一样,能够传输的信号也不一样,适合于模拟信号传输的信道称为模拟信道,适合为数字信号传输的信道称为数字信道。1.4.2 数据通信基本概念2.调制与解调1.4.2 数据通信基本概念3.数据通信
8、模型DTE:数据终端设备(Data Terminal Equipment),指所有能够产生数据,并希望进行数据通信的终端设备,如计算机就是一种DTE;DCE:数据通信设备(Data Communication Equipment),指所有辅助数据通信的设备,如DTE产生的数据信号不适合在现有信道传输时,使用DCE对信号作变换,使得数据能够通过现有信道传输。上面讲的调制解调器就是一种DCE。1.4.2 数据通信基本概念4.模拟信号数字化随着数字计算机的出现,使用数字计算机来处理、存储各种信息变得越来越方便。但在现实生活中,很多信号是模拟信号,如我们讲话的声音等,可以对这些模拟信号进行数字化,将模
9、拟信号转化为数字信号,简称模/数转换(A/D,Analog/Digital),转化后的数字信号可以利用计算机进行存储和处理。模拟信号数字化需要经过三个步骤:采样、量化、编码。1.4.2 数据通信基本概念采样:以一定频率对模拟信号的数据进行采样,取得若干个样值。即在时间上对模拟信号离散化,但在幅度上,因为模拟信号是连续变化的,因此取得的样值的值是无穷多的,如图所示,我们只保留了小数点后一位,如果时间不断延长,那么样值是无穷多的。模拟信号数字化采样定理:复杂的模拟信号都可以看作由于固定频率的简单模拟信号组合而成,如人的声音就是由3003400HZ的不同信号组合而成,只要采样频率大于模拟信号最大频率
10、的两倍,通过采样后的样值就能恢复出原来的模拟信号。对于声音信号来说,采样频率必须大于6800HZ,实际应用中对语音的采样频率为8000HZ,即1秒钟取得8000个样值。模拟信号数字化(2)量化:采样虽然在时间上对模拟信号进行了离散化处理,但是由于采样取得的样值是无穷的多的,因此我们需要在幅度上对模拟进行离散化处理,即量化。量化就是把无穷的采样值转化为有限个值。图中,我们将无穷的取值采用4舍5入的方法量化为07共8个等级,当然量化值与实际值存在一定的误差,称为量化误差。量化等级越多,量化值与实际值之间的误差越少。量化误差也叫量化噪声,它是一定存在的,只能把它控制在可容忍范围即可。模拟信号数字化(
11、3)编码:8个等级可以用3个二进制数据进行编码,3位二进制数从000111共有8个数,分别对应不同的等级,这样每个样值就变成了由0和1组成的数字信号了。在实际语音信号数字中,量化等级为256个,每个等级需要8位二进制进行编码,因此一个样值对应8位二进制数。由于采样频率为8000Hz,1秒有8000个样值,每个样值用8bit表示,因此一路数字化语音的速率为80008=64Kbps。1.4.3 数据传输1.数据传输方式并行传输(1)并行传输与串行传输并行传输:并行传输是将数据以成组的方式在多条并行信道上同时传输。串行传输:数据流以串行方式在一条信道上传输。1.数据传输方式(2)异步传输与同步传输异
12、步传输:以字符(几个数据位)为单位,在字符前增加起始位,在字符后增加停止位,以确保每个字符正确识别与接收。异步传输实现简单,由于附加额外数据,因此传输效率低,用于低速数据传输。同步传输:以帧(一组数据位)为单位,需要收发双方以同步的时钟信号进行数据的发送与接收,以正确识别数据帧中的每一位数据。同步传输通过传送特定的同步序列来实现收发双方的同步,传输效率高,用于高速数据传输。1.数据传输方式(3)单工、半双工和全双工数据传输单工:通信双方一方固定为发送端,一方则固定为接收端,数据只能沿一个方向传输。如收音机,传统的有线电视,早期使用的寻呼机等。半双工:通信双方均可以接收和发送数据,通信是双向的,
13、但在任何时刻只能由其中的一方发送数据,另一方接收数据,即双方不可同时进行数据的收发。半双工通信最典型的例子是对讲机,当使用对讲机接收声音时,是不能发送自己的声音的,要发送自己声音时,需要按住切换开关,此时只能发送自己的声音而不能接收声音。全双工:通信双方可同时进行数据的收发。这是使用最广泛的数据通信方式,如电话通信,在自己说话时,仍可听到对方说的话。一般情况下,现在的计算机网络使用的网卡均工作在全双工模式,也可设置网卡为半双工模式。2.数据传输的形式(1)基带传输简单说,基带传输就是传输基带信号。在数据通信中,基带信号是指由DTE(如计算机机)发出的,没有经过变换的数字信号,即基本频带信号。在
14、近距离范围内基带信号的衰减不大,因此比较适合较近距离传输,如在局域网10Base-T中,就使用基带传输,其中的Base就是基带传输的意思。2.数据传输的形式(2)频带传输传输信道不适合基带信号传输,或传输距离太远时,就不能直接使用基带传输了,此时需要对基带信号进行变换,这种变换就是前面提到的调制,即把数字基带信号调制到模拟信号上,以适应模拟信道及远距离传输。调制的实质是对基带信号的频带范围做了变换,从原来的基本频带,变换到模拟信号的频带,因此也叫频带传输。2.数据传输的形式(3)宽带传输利用调制解调技术,可以实现频带传输。也采用多路复用技术,将多路信号分别调制到不同频率的模拟信号上,在同一物理
15、信道上同时传输。即在充分利用信道带宽,实现了更宽频带的数据传输,称为宽带传输。3.数据传输速度(1)比特率比特率,又称为数据速率或信息速率。数据通信中的数字数据采用二进制,把一个二进制位称作1bit,即1比特,如二进制数10100111为8bit。比特率是指每一秒所传输的二进制位数(或比特数),单位为:比特/秒,记为b/s或bps。3.数据传输速度(2)波特率在数字信号中,使用脉冲序列来表示0或1,每一个数字脉冲称为一个码元,每秒钟通过信道传输的码元数称为码元速率,简称波特率,单位为波特,记为Baud。如图所示,图中的数字脉冲序列共包含8个码元。3.数据传输速度(3)比特率与波特率的关系如果使
16、用两种状态的码元来表示二进制数,此时码元种数为2,用M表示有几种码元,即M=2,如果使用高电平表示1,低电平表示0,那么一个码元将携带一位二进制数信息,此时比特率和波特率是相等的。3.数据传输速度(3)比特率与波特率的关系如果使用4种码元来表示二进制数,此时 M=4,一个码元将携带两位进制数信息,波特率只有比特的一半,即只需要传输一半的码元,就能传输同样多的数据了3.数据传输速度(3)比特率与波特率的关系n位二进制可共有2n个数,每个n位二进制数对应一个码元(或者说一个码元对应一个n位的二进制数),可表示2n个不同的码元,即2n=M。如果已知码元数M,那么一个码元可以对应几位二进制数呢?答案是
17、:n=log2M。因此比特率和波特的关系为表示为:R=B*n=B*log2M其中R表示比特率,B表示波特率,M表示有几种码元,n表示一种码元所表示的二进制数的位数。3.数据传输速度(4)奈奎斯特定理奈奎斯特定理:若信道带宽为W,单位Hz,则在无噪声的理想情况下信道的极限码元速率为:B=2W(Baud)信道带宽,指能够通过信道传输信号的频带宽度,如果能够传输信号的最高频率为f2,能够传输信号的最低频率为f1,则W=f2-f1。3.数据传输速度(5)香农公式奈奎斯特定理定义的是在无噪声的理想情况下信道的极限码元速率值。而香农公式定义的是在有噪声的情况下信道的极限数据速率为:C=Wlog2(1+S/
18、N)其中,W为信道带宽,S为信号平均功率,N为噪声平均功率,S/N称为信噪比,C为信道的数据速率。其中S/N常用分贝数(dB)表示。分贝为信噪比的关系为:dB=10lgS/N3.数据传输速度(6)误码率误码率是指出错的数据占总传输数据的比率。如误码率为10-6,指传输106个数据中出现了1个错误数据,误码率越小越好。1.4.4 数据编码1.模拟数据编码2.数字数据编码(1)不归零编码编码规则:高电平表示1,低电平表示0优点:编码简单缺点:抗干扰能力差,没有同步信号2.数字数据编码(2)曼彻斯特编码编码规则:一个比特用两个码元表示,每个比特中间均有一个电平跳变,从高电平跳变到低电平表示1,从低电
19、平跳变到高电平表示0,如图所示,同时每个比特中间的跳变也作为时钟同步信号。优点:抗干扰能力增强,包含时钟信号缺点:由于一个比特用两个码元表示,编码效率低,其编码效率只有不归零编码的一半。2.数字数据编码(3)差分曼彻斯特编码编码规则:一个比特用两个码元表示,每个比特中间均有一个电平跳变,但这个跳变只用于提取时钟同步信号,不表示数据,而是使用相邻两个比特中,后一个比特起始电平是否与前一个比特结束时的电平保持一致来表示数据。如果保持一致表示1,如果不保持,发生跳变表示0,如图1-13所示。优点:抗干扰能力增强,包含时钟信号缺点:由于一个比特用两个码元表示,编码效率低,其编码效率和曼彻斯特编码相同,
20、也只有不归零编码的一半。1.4.5 多路复用技术一般情况下,一条物理信道只用于传输一路信号。为了充分利用物理信道资源,我们总希望在一条物理上传输多路信号,以提高物理信道的利用率。这种将多路信号在一条物理信道中传输的技术叫做多路复用技术。也可以把每一路传输的信号看作一条逻辑信道或子信道,即使用多路复用技术,在一条物理信道中复用多条逻辑信道或子信道。多路复用技术关键是,当多个信号在同一物理信道中传输是,我们如何保证各个信号之间不会发生干扰,以及根据什么识别出不同的信号。1.频分多路复用(FDM,Frequency Division Multiplexing)将物理信道的带宽,根据频率划分为不同的子
21、信道,使用调制技术将不同的信号调制到各子信道中,可实现多路信号同时在一条物理信道中传输。只要在各子信道之间保留一定频带宽度,各子信道之间就不会发生干扰。在频分多路复用中,依靠频率来识别不同的信号。频分多路复用技术使用很广泛,如无线电广播,有线电视,ADSL等。ADSL全称为非对称数字用户线路(Asymmetric Digital Subscriber Line),是一种使得电话线接入Internet的常见方式,ADSL技术提供的上行和下行带宽不对称,下行带宽高于上行带宽,因此称为非对称数字用户线路。ADSL技术采用频分复用技术把普通的电话线分成了电话、上行和下行三个相对独立的子信道,从而避免了
22、相互之间的干扰,用户可以在打电话的同时实现网络数据传输。2.时分多路复用(TDM,Time Division Multiplexing)将物理信道的传输时间划分为若干小的时间片,为每一路信号分配一个固定的时间片,由于不同信号在物理信道中传输的时间不同,因此不会产生干扰。站在一段时间的角度,可以认为有多路信号在一条物理信道上传输,但在某一时刻,只有某一路信号在物理信道传输。时分多路复用主要用于数字通信系统,如T1和E1。T1系统将24路语音数字信号复用在一条物理信道上,一路语音信号速率为64Kbps,24路语音信号复用后的速率为1.544Mbps。我国使得的E1系统,是将32路信号复用到一条物理
23、信道上,每一路仍为64Kbps,复用后速率为2.048Mbps,4个E1和继续复用为E2,4个E2可复用成E3,依此类推。3.波分多路复用(WDM,Wavelength Division Multiplexing)波分多路复用技术主要应用在光通信中,使用不同波长的光承载不同的数据,在同一根光纤上传输。由于光波的波长不同,不同信号之间会产生干扰,根据光的不同波长可以识别出不同的信号。光的波长其实和光的频率相关,因此波分多路复用也可以看作频分多路复用在光通信中的应用。4.码分多路复用(CDM,Code Division Multiplexing)码分多路复用又称码分多址(CDMA,Code Div
24、ision Multiple Access),CDM与FDM(频分多路复用)和TDM(时分多路复用)不同,多信号在同一物理信道中传输时,既可以使用相同频率,也可使用相同的时间。每一路信号被指定一个唯一的n位的码片序列,当发送1时就发送码片序列,发送0时发送码片序列的反码。当多路信号同时发送时,各路信号在信道中被线形相加。为了从信道中分离出各路信号,要求各个站点的码片序列是相互正交的。码分多路复用中由于使用同一频率同时发送多路信号,信号在物理信道中传输时会发生叠加,但由于每一路信号有一个唯一的码片序列,且各码片序列相互正交,因此可以在叠加的信号中识别出不同的信号。5.空分多址(SDMA,Spac
25、e Division Multiple Access)这种技术是利用空间分割构成不同的子信道。举例来说,在一颗卫星上使用多个天线,各个天线的波束射向地球表面的不同区域,地面上不同地区的地球站,它们在同一时间、即使使用相同的频率进行工作,它们之间也不会形成干扰。空分多址是一种信道增容的方式,可以实现频率的重复使用,充分利用频率资源。1.4.6数据交换技术1.电路交换(1)建立连接:节点A发起一个连接请求,目的地址为节点D,中间节点收到连接请求后,根据目的地址选择一条从A到D的通路,假设为A-B-C-D。连接建立成功后,可以看作有一条电路将A和D连接起来。(2)数据交换:A和D之间的数据沿着建立的
26、连接进行数据交换。数据交换期间,通路A-B-C-D被一直占用。(3)释放连接:数据交换完后,发出拆线信号,释放所占用通路。1.电路交换由于在通信之前需要先建立连接,因此称电路交换是面向连接的。电路交换的主要优点:(1)数据传输时延小。在电路交换中,一旦电路连接建立如图1-14所示,建立的电路连接为A-B-C-D,可来看作在A到D之间有一条电路相连,数据沿着这条电路在A和D之间传输,中间没有复杂的处理过程,因此数据传输快。这种方式数据交换方式,适合于对实时性要求高的通信,如日常使用的电话通信就是采用电路交换的方式。1.电路交换电路交换的主要缺点:(1)线路的利用率低。电路连接建立之后,在没有释放
27、连接之前,A-B-C-D这条电路连接被实际通信的双方A和D所独占,即使此时A和D之间没有数据传输,整个电路都是空闲的,其他节点不能使用已被占用的线路。如E如果要和F通信,在A-B-C-D电路被释放前,E到F的电路是不能建立的。正因为如此,使用电路交换方式进行通信时,使得的费用是较高的,这也是为什么我们在打长途电话时资费较高的原因。(2)抗故障能力低。如果由于某种原因,C和D之间的线路中断,那么A到D的通信会立即中断,如果要恢复通信,需要重新发起连接请求,建立A-B-C-F-D电路连接。2.存储转发式交换电路交换的独占电路的工作方式不适合计算机网络通信长时间在线,数据传输突发性的特点,因此人们提
28、出了存储转发的交换方式。(1)报文交换我们把计算机要发送的数据块称为一个报文由于报文交换不需要在数据传输前建立连接,因此称报文交换是面向无连接的。(1)报文交换报文交换的主要优缺点正好和电路交换相反,报文交换的主要优点有:线路利用率高。由于报文交换采用存储转发的工作方式,不需要先建立电路并独占电路,因此所有物理线路得到充分利用。虽然报文仍然沿着A-B-C-D进行转发,如果E要发送报文到F,E先发送到B,此时B可能会收到A和E的报文,B根据先到先处理的原则将A和E的数据在自己的缓存中排队,再依次从缓存中取出收到的报文进行转发,此时B到C虽然只有一条线路,但可以在不同时间为A和E提供数据传输。抗故
29、障能力强。A和D沿着A-B-C-D进行报文交换,如果C和D之间线路故障,C会根据网络的实际情况,将到D的报文转发给F,由F再将给D,从而保障计算机随时接入网络。(1)报文交换报文交换的主要缺点:数据传输时延很大。在存储转发过程,每个报文在途经的每一个节都要进行存储、排队、分析转发等处理过程,如果报文比较大,中间经过节点比较多时,报文从发出到全部到达目的节的时延将会很大。(2)分组交换 数据包方式为了解决报文交换中时延过大的问题,提出了分组交换,分组交换仍然采用存储转发工作方式,与报文交换不同的是将大的报文划分成小的分组在网络中传输,从而有效减小的数据的传输时延。由于同样是采用存储转发的方式,分
30、组交换与报文交换的主要优缺点大致相同,只是分组交换的数据传输时延得到明显改善。这种传统的分组交换方式也叫数据包方式,由于不需要在数据传输前建立也连接,也是面向无连接的。(2)分组交换 虚电路方式为了在分组交换网上进一步减少时延,结合分组交换和电路交换的特点提出了虚电路方式。虚电路方式是在传统的分组交换网络上,结合电路交换的思想而产生的,它的本质仍采用存储转发方式。与数据包方式不同的是,按照电路交换的思想,在数据发送前,需要先建立一条数据传输的通路,与电路交换不同的是,它只是预先定义了一条数据传输的路径,但因为仍采用存储转发方式,并不独占这条通路,这条通路不是电路交换中独占的电路,称为虚电路。由
31、于在数据传输前需要先建立一条虚电路,因此虚电路方式是面向连接的。虚电路方式虚电路方式的主要优点在数据包交换中,网络节点为每个分组单独选择路由,分组可能会沿不同路径到达目的节点,分组到达的先后次序可能会出现错乱,而在虚电路方式中,由于在数据传输前建立了虚电路,网络节点不再为每个分组单独选择路由,缩短了中间转发处理时间,同时由于所有数据沿虚电路依次传输,分组不会出现次序错乱问题,缩短了分组的组装时间,因此虚电路方式的数据传输时延比数据包方式更小,使得可以在分组交换网上引入一些实时性更高的应用另一方面,虚电路方式的基础仍然是存储转发方式,它只是定义的一条通路,但并不独占通路上的线路资源,仍然保持了分
32、组交换线路利用率高的特点,适合计算机突发通信的特点。虚电路方式虚电路方式的主要缺点由于引入了电路交换的思想,也引入了电路交换中抗故障能力差的缺点。在虚电路方式中,数据必须沿虚电路指定的路径传输,因此当虚电路中间某条线路故障时,沿虚电路传输的数据通道被中断,需要重新建立新的虚电路才能恢复通信。(3)信元交换信元交换是也叫ATM(Asynchronous Transfer Mode,异步传输模式),它是一种快速分组交换技术,通过虚电路来进行数据传输,因此属于分组交换的虚电路方式。不同的是它对分组的长度时行了规定,分组固定为53字节,其中分组头5字节,数据48字节,把这种固定长度的分组称为信元,可采
33、用硬件电路对固定长度的信元进行快速转发。1.5 数据链路层协议1.5.1数据链路层协议基础在图中,有两种链路,一种是多个节点共享传输介质,另一种是两个节点之间用传输介质直接相连。数据链路层协议的作用是实现虚线内部区域两个节点之间可靠的数据传输。而虚线区域之间节点的数据传输及路由选则,不是数据链路层协议的功能,是网络层协议的功能,网络层要实现不同区域内节点的数据传输,要依赖所选路由上的每一条数据链路,而每条数据链路实现两个相邻结点的可靠数据传输,也必须依靠相应的物理层协议才能实现。1.5.1数据链路层协议基础常用的数据链路层协议有PPP、HDLC、及以太网的数据链路层协议。PPP(Point t
34、o Point Protocol,点对点协议)为在点对点连接上传输多协议数据包提供了一个标准方法,是一种面向字符的数据链路层协议。HDLC(High Level Data Link Control,高级数据链路控制规程)是一种面向比特的数据链路控制协议,实现有链路相连的点到点的可靠数据传输。计算机网络中使用最广泛的是以太网,因此主要介绍以太网的数据链路层协议。1.5.2 CSMA/CD协议工作原理早期的以太网是总线型结构,所有计算机都连接在一条共享的总线上,如图中PC的连接情况。要实现在共享传输介质上两个节点之间的可靠数据传输,首先应该考虑的是当多个节点需要传输数据时,采用什么方法控制由哪个节
35、点来使用共享的传输介质,称为媒体访问控制(MAC,Media Access Control)方法。C D A EB1.5.2 CSMA/CD协议工作原理以太网采用CSMA/CD协议来控制计算机对媒体的访问。CSMA/CD(Carrier Sense Multiple Access/collision detection,载波侦听多路接入/冲突检测)1坚持非坚持或0坚持p坚持冲突检测检测到冲突,则需要立即停止发送数据,并发送“冲突增强”信号(32bit的“1”),让所有计算机知道产生冲突,都停止发送数据。然后采用二进制指数退避算法,选择一个随机的延迟时间重新进行数据的监听和发送。如果信号在网络中
36、最远的两台计算机的传输时延为t,那么只需要等待2t时间,没有检测到冲突信号,就可以保证以后不会冲突。C D A EB1.5.3 以太网帧格式(1)同步码:共7个相同的字节,每个字节的内容均为10101010,同步码用于使收发双方保持时钟同步。(2)帧首定界符:长度为1个字节,内容为10101011,只有最后一位与前面的同步码不同,用于表示一个以太网帧的开始。1.5.3 以太网帧格式(3)目的地址:长度为6个字节,表示以太网帧发送的目标MAC地址。为了标识以太网上的每台主机,需要给每台主机上的网络适配器(也叫网络接口卡,简称网卡)分配一个唯一的通信地址,称为网卡物理地址或硬件地址,由于该地址是在
37、以太网的MAC层定义,也称为MAC地址。该地址固化在网卡上,长度为6个字节共48bit,其中前3字节(24bit)代表网卡厂商,后3字节(24bit)是厂商给网卡的编号。以太网在数据链路层使用MAC地址来寻找目的计算机,但实际上不是真正地寻找计算机,而是寻找安装在计算机上的以太网卡。如果48bit为全1,表示广播地址。(4)源地址:长度为6个字节,表示发出该以太网帧的源MAC地址。1.5.3 以太网帧格式(5)类型/长度:长度为2个字节,用来指出以太网帧内所含的上层协议。以太网可传输不同的上层协议,如IP、ARP等,如果传输是IP协议,该字段值是0 x0800,如果传输的是ARP协议,该字段的
38、值是0 x0806。说明:0 x0800是十六进制表示法,0 x表示后面的数是十六进制,而0800的每1位都是十六进制,1位十六进制对应4位二进制。由于二进制写起来比较长,因此在书写时,常用十六进制来代替二进制。0 x0800对应二进制为0000 1000 0000 0000,中间的空格是为了表示四位二进制与一位十六进制的对应关系,实际上是没有的。前面的以太网广播地址用十六进制可表示为0 xFFFFFFFFFFFF。1.5.3 以太网帧格式(6)数据:长度可变,461500字节,表示以太网帧可传输的上层协议数据长度必须在这个范围内。其中1500是以太网帧的最大数据传输单元称为MTU,不同链路层
39、的MTU值不相同,46字节为最小数据长度,如果数据长度不足46字节,必须填充到46字节。加上以太网帧的首部和尾部,不包含同步码和帧定界符,以太网帧的长度范围为641518字节。其中64字节的最小以太网帧长,是由以太网的冲突检测时间确定的,即时以太网发送64字节后,如果没有检测到冲突,可以认为没有冲突,而如果发生冲突,一定是在64字节发送完以前。因此如果发现以太网上有小于64字节的帧,是由于冲突产生的碎片帧,应该丢弃。(7)帧校验序列(Frame.Check Sequence,FCS):长度为4个字节,采用32位CRC(Cyclic Redundancy Check,循环冗余校验)对从“目的地址
40、”字段到“数据”字段的数据进行校验,用于保证以太网数据传输正确性。1.5.4 真实以太网帧分析使用协议分析工具软件如wireshark等,可将截获计算机发送及接收的数据包,这些数据就是网络上真实传输的数据,图是使用浏览器浏览一个网站时发送的请求数据包,所有数据以十六进制形式显示,1位十六进制对应4位二进制,2位16进制就是8位二进制,即1个字节。1.5.4 真实以太网帧分析在协议分析软件显示的捕获数据中,并没有显示同步码、帧定界及帧检验码,并不是表示没有,而这些数据主要是保证帧能够正确接收的,软件正确捕获到以太网帧后,说明以太网帧正确接收,因而只显示了有用的信息。浏览器使用应用层的HTTP协议
41、,HTTP协议使用传输层TCP协议,TCP使用网络层IP协议,IP使用数据链路层的以太网协议,以太网数据链路层协议使用以太网的物理层协议。物理层协议实现透明比特流传输,它只定义与物理媒体相关规程,与具体传输的数据内容无关。因此协议数据分析是从数据链路层开始的。如图1-19所示,最开始部分是目的MAC地址,共6个字节48bit,然后是源MAC地址也是6字节48bit,后面是类型字段,表示上层是哪个协议使用以太网传输数据,0 x0800表示是IP协议。各层协议位置示意图1.6 网络层协议1.6.1网络层协议基础数据链路层能够实现在同一网络内部数据的通信,当网络通信跨越多个网络时,特别是如果多个网络
42、的数据链路层不相同时,如何实现跨网络的数据传输是网络层协议负责处理的问题。Internet使用的网络层协议是IP协议,通过在网络层定义统一的逻辑地址,称为IP地址,实现不同数据链路层在网络层上的统一寻址。同时定义相应的路由选择协议,实现IP数据包在网络传输中的最优路径选择。简单说通过网络层协议可实现将数据从一台由IP地址标识的计算机,跨越多个网络传输到远端另一台由不同IP地址标识的计算机。当然IP数据包在传递到中间的不同网络时,都要使用该网络相应数据链路层及物理来实现数据传输。1.6.2 IPv4数据包首部格式(1)版本:长度为4bit,指IP协议的版本。目前使用得较多IP协议版本号为 4(即
43、 IPv4)用十进制表示为0100。(2)首部长度:长度为4bit,最大值为1111,对应十进制值为15,表示首部长度最大为15个单位,其中一个单位为4字节,即图1-20中的一行,因此首部长度最大为60字节。如果只有固定部分则首部长度值为5,二进制表示为0101,表示首部长度为5个单位共20字节。而可变部分的长度必须是4字节的整数倍,以凑成一个单位,如不是应填充至4字节整数倍。1.6.2 IPv4数据包首部格式(3)区分服务:长度为1字节,在区分服务时使用,一般情况没有使用。(4)总长度:长度为2字节,表示首部和数据总共的长度,单位为字节,其最大值为216-1=65535字节。在IP数据交给以
44、太网传输时,由于以太网的MTU值1500字节,如果总长度大于1500字节,需要对数据进行分片,以保证分片后的总长度不大于1500字节。1.6.2 IPv4数据包首部格式(5)标识:长度为2字节,当数据报由于长度超过网络的 MTU 而必须分片时,这个标识字段的值就被复制到所有分片中的标识字段中,相同的标识字段的值使各分片最后能正确地重新组装成为原来的数据报。(6)标志:占3bit,但目前只有2位有意义。标志字段中的最低位记为 MF(More Fragment),MF=1即表示后面“还有分片”,MF=0表示这是最后一个分片。标志字段中间的一位记为 DF(Dont Fragment),意思是“不能分
45、片”,只有当 DF=0时才允许分片。(7)片偏移:占13bit,较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对用户数据字段的起点,该片从何处开始。片偏移以 8个字节为偏移单位,这就是说,每个分片数据部分长度一定是 8字节的整数倍。标识、标志和片偏移共同实现对数据报的分片及重组功能。1.6.2 IPv4数据包首部格式(8)生存时间:长度为1字节,英文缩写是TTL(Time To Live),其表明数据报在网络中的寿命,由发出数据报的源点设置这个字段。其目的是防止无法交付的数据报无限制地在因特网中兜围子,因而白白消耗网络资源。TTL的单位跳数,每经过一个路由器称为一跳,因此当IP包每
46、经过一个路由器时,路由器会把TTL减1,如果TTL为就将这个IP包丢弃,否则,按就把TTL减去数据报在路由器消耗掉的一段时间。若数据报在路由器消耗的时间小于 1 秒,就把TTL值减 1。当 TTL值为 0时,就丢弃这个数据报,否则根据路由表转发该IP包。1.6.2 IPv4数据包首部格式(9)协议:长度为1字节,与以太网帧结构中的类型字段相似,协议字段用于表示使用IP协议的上层协议时什么,以便使接收方的IP协议知道将处理后的数据交给哪个上层协议。常用的上层协议和其对应的协议字段值如表所示1.6.2 IPv4数据包首部格式(10)首部检验和:长度为2个字节,用于检验IP首部是否正确传输,只检验I
47、P首部,不检验数据部分。与以太网帧不同的是,在IPv4的首部检验和不是采用的CRC方式。(11)源地址:长度为4字节32bit,即源IP地址,标识发送IP包的主机。(12)目的地址:长度为4字节32bit,即目的IP地址,标识该IP包要到达的目的主机。1.6.3 真实数据IP协议分析(1)版本号为0 x4,十进制值为4,表示版本为IPv4;(2)首部长度为0 x5,十进制值为5,表示首部长度共5个单位,每单位4字节,共20字节,说明只有固定部分,没有可变部分;(3)区分服务为0 x00,表示没有使用;(4)总长度为0 x012b,换成十进制为299,表示IP包总长度为299字节;(5)标识为0
48、 x227e;(6)标志及片偏移为0 x4000,用二进制表示为010 000000000000,标志部分为010,MF=0,表示这是最后一个分片,DF=1,表示不允许分片,13位片偏移均为0,表示是第一个分片,说明没有分片,或这是唯一一个分片;以太网帧首部版本号首部长度区分服务总长度标识标志及片偏移生存时间目的地址源地址首部检验和协议1.6.3 真实数据IP协议分析(7)生存时间0 x40,换成十进制为64;(8)协议为0 x06,十进制值为6,表示上层协议为TCP;(9)首部检验和为0 xf37a;(10)源地址为0 xc0a85101;(11)目的地址为0 xc0a85182。以太网帧首
49、部版本号首部长度区分服务总长度标识标志及片偏移生存时间目的地址源地址首部检验和协议各层协议位置示意图1.6.4 IP地址在IP协议里定义了两个地址,源地址和目的地址,长度为32bit,我们把它叫做IP地址。32bit二进制书写和记忆都很困难,因此人们常用点分十进制来表示IP地址。即把32bit划分为8bit一组,共4组,将每组的8个bit转化为十进制数,然后每组之间用一个点分隔开,如图所示。1.进制转换(1)二进制转十进制二进制与十进制之间的转换的关键是记住二进制每一位上的单位,称为权。例:将(01111111)2转换为十进制。解法1:(01111111)2=64+32+16+8+4+2+1=
50、127解法2:由于(01111111)2=(10000000)2-1=128-1例:(01110111)2=(01111111)2-(00001000)2=127-8=119(2)十进制转二进制由于在IP地址中最多只有8位的二进制,可以根据二进制转十进制的原理,采取简单拼凑的方法得到十进制对应二进制。例:将十进制数192转换为二进制数。根据8位二进制的单位列表 128 64 32 16 8 4 2 1,我们来凑一下,哪些单位可以凑成192。因为192=128+64,所以(192)10=(11000000)2以此类推81=64+16+1,所以(81)10=(01010001)2(3)二进制与十六